{ "version": 3, "file": "TronWeb.js", "mappings": "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IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//Cw5H,GAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//Cx/B,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/Fw/B,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,GAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,GAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,GAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/F3qB,GAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,GAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/F2qB,GAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,GAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,U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", "sources": [ "webpack://TronWeb/webpack/universalModuleDefinition", "webpack://TronWeb/./node_modules/@tronweb3/google-protobuf/google-protobuf.js", "webpack://TronWeb/./node_modules/@tronweb3/google-protobuf/google/protobuf/any_pb.js", "webpack://TronWeb/./node_modules/base64-js/index.js", "webpack://TronWeb/./node_modules/buffer/index.js", "webpack://TronWeb/./node_modules/eventemitter3/index.js", "webpack://TronWeb/./node_modules/ieee754/index.js", "webpack://TronWeb/./node_modules/semver/semver.js", "webpack://TronWeb/./node_modules/validator/index.js", "webpack://TronWeb/./node_modules/validator/lib/alpha.js", "webpack://TronWeb/./node_modules/validator/lib/blacklist.js", "webpack://TronWeb/./node_modules/validator/lib/contains.js", "webpack://TronWeb/./node_modules/validator/lib/equals.js", "webpack://TronWeb/./node_modules/validator/lib/escape.js", "webpack://TronWeb/./node_modules/validator/lib/isAbaRouting.js", "webpack://TronWeb/./node_modules/validator/lib/isAfter.js", "webpack://TronWeb/./node_modules/validator/lib/isAlpha.js", "webpack://TronWeb/./node_modules/validator/lib/isAlphanumeric.js", "webpack://TronWeb/./node_modules/validator/lib/isAscii.js", "webpack://TronWeb/./node_modules/validator/lib/isBIC.js", "webpack://TronWeb/./node_modules/validator/lib/isBase32.js", "webpack://TronWeb/./node_modules/validator/lib/isBase58.js", "webpack://TronWeb/./node_modules/validator/lib/isBase64.js", "webpack://TronWeb/./node_modules/validator/lib/isBefore.js", "webpack://TronWeb/./node_modules/validator/lib/isBoolean.js", "webpack://TronWeb/./node_modules/validator/lib/isBtcAddress.js", "webpack://TronWeb/./node_modules/validator/lib/isByteLength.js", "webpack://TronWeb/./node_modules/validator/lib/isCreditCard.js", "webpack://TronWeb/./node_modules/validator/lib/isCurrency.js", "webpack://TronWeb/./node_modules/validator/lib/isDataURI.js", "webpack://TronWeb/./node_modules/validator/lib/isDate.js", "webpack://TronWeb/./node_modules/validator/lib/isDecimal.js", "webpack://TronWeb/./node_modules/validator/lib/isDivisibleBy.js", "webpack://TronWeb/./node_modules/validator/lib/isEAN.js", "webpack://TronWeb/./node_modules/validator/lib/isEmail.js", "webpack://TronWeb/./node_modules/validator/lib/isEmpty.js", "webpack://TronWeb/./node_modules/validator/lib/isEthereumAddress.js", "webpack://TronWeb/./node_modules/validator/lib/isFQDN.js", "webpack://TronWeb/./node_modules/validator/lib/isFloat.js", "webpack://TronWeb/./node_modules/validator/lib/isFullWidth.js", "webpack://TronWeb/./node_modules/validator/lib/isHSL.js", "webpack://TronWeb/./node_modules/validator/lib/isHalfWidth.js", "webpack://TronWeb/./node_modules/validator/lib/isHash.js", "webpack://TronWeb/./node_modules/validator/lib/isHexColor.js", "webpack://TronWeb/./node_modules/validator/lib/isHexadecimal.js", "webpack://TronWeb/./node_modules/validator/lib/isIBAN.js", "webpack://TronWeb/./node_modules/validator/lib/isIMEI.js", "webpack://TronWeb/./node_modules/validator/lib/isIP.js", "webpack://TronWeb/./node_modules/validator/lib/isIPRange.js", "webpack://TronWeb/./node_modules/validator/lib/isISBN.js", "webpack://TronWeb/./node_modules/validator/lib/isISIN.js", "webpack://TronWeb/./node_modules/validator/lib/isISO31661Alpha2.js", "webpack://TronWeb/./node_modules/validator/lib/isISO31661Alpha3.js", "webpack://TronWeb/./node_modules/validator/lib/isISO4217.js", "webpack://TronWeb/./node_modules/validator/lib/isISO6346.js", "webpack://TronWeb/./node_modules/validator/lib/isISO6391.js", "webpack://TronWeb/./node_modules/validator/lib/isISO8601.js", "webpack://TronWeb/./node_modules/validator/lib/isISRC.js", "webpack://TronWeb/./node_modules/validator/lib/isISSN.js", "webpack://TronWeb/./node_modules/validator/lib/isIdentityCard.js", "webpack://TronWeb/./node_modules/validator/lib/isIn.js", "webpack://TronWeb/./node_modules/validator/lib/isInt.js", "webpack://TronWeb/./node_modules/validator/lib/isJSON.js", "webpack://TronWeb/./node_modules/validator/lib/isJWT.js", "webpack://TronWeb/./node_modules/validator/lib/isLatLong.js", "webpack://TronWeb/./node_modules/validator/lib/isLength.js", "webpack://TronWeb/./node_modules/validator/lib/isLicensePlate.js", "webpack://TronWeb/./node_modules/validator/lib/isLocale.js", "webpack://TronWeb/./node_modules/validator/lib/isLowercase.js", "webpack://TronWeb/./node_modules/validator/lib/isLuhnNumber.js", "webpack://TronWeb/./node_modules/validator/lib/isMACAddress.js", "webpack://TronWeb/./node_modules/validator/lib/isMD5.js", "webpack://TronWeb/./node_modules/validator/lib/isMagnetURI.js", "webpack://TronWeb/./node_modules/validator/lib/isMailtoURI.js", "webpack://TronWeb/./node_modules/validator/lib/isMimeType.js", "webpack://TronWeb/./node_modules/validator/lib/isMobilePhone.js", "webpack://TronWeb/./node_modules/validator/lib/isMongoId.js", "webpack://TronWeb/./node_modules/validator/lib/isMultibyte.js", "webpack://TronWeb/./node_modules/validator/lib/isNumeric.js", "webpack://TronWeb/./node_modules/validator/lib/isOctal.js", "webpack://TronWeb/./node_modules/validator/lib/isPassportNumber.js", "webpack://TronWeb/./node_modules/validator/lib/isPort.js", "webpack://TronWeb/./node_modules/validator/lib/isPostalCode.js", "webpack://TronWeb/./node_modules/validator/lib/isRFC3339.js", "webpack://TronWeb/./node_modules/validator/lib/isRgbColor.js", "webpack://TronWeb/./node_modules/validator/lib/isSemVer.js", "webpack://TronWeb/./node_modules/validator/lib/isSlug.js", "webpack://TronWeb/./node_modules/validator/lib/isStrongPassword.js", "webpack://TronWeb/./node_modules/validator/lib/isSurrogatePair.js", "webpack://TronWeb/./node_modules/validator/lib/isTaxID.js", "webpack://TronWeb/./node_modules/validator/lib/isTime.js", "webpack://TronWeb/./node_modules/validator/lib/isURL.js", "webpack://TronWeb/./node_modules/validator/lib/isUUID.js", "webpack://TronWeb/./node_modules/validator/lib/isUppercase.js", "webpack://TronWeb/./node_modules/validator/lib/isVAT.js", "webpack://TronWeb/./node_modules/validator/lib/isVariableWidth.js", "webpack://TronWeb/./node_modules/validator/lib/isWhitelisted.js", "webpack://TronWeb/./node_modules/validator/lib/ltrim.js", "webpack://TronWeb/./node_modules/validator/lib/matches.js", "webpack://TronWeb/./node_modules/validator/lib/normalizeEmail.js", "webpack://TronWeb/./node_modules/validator/lib/rtrim.js", "webpack://TronWeb/./node_modules/validator/lib/stripLow.js", "webpack://TronWeb/./node_modules/validator/lib/toBoolean.js", "webpack://TronWeb/./node_modules/validator/lib/toDate.js", "webpack://TronWeb/./node_modules/validator/lib/toFloat.js", "webpack://TronWeb/./node_modules/validator/lib/toInt.js", "webpack://TronWeb/./node_modules/validator/lib/trim.js", "webpack://TronWeb/./node_modules/validator/lib/unescape.js", "webpack://TronWeb/./node_modules/validator/lib/util/algorithms.js", "webpack://TronWeb/./node_modules/validator/lib/util/assertString.js", "webpack://TronWeb/./node_modules/validator/lib/util/includes.js", "webpack://TronWeb/./node_modules/validator/lib/util/merge.js", "webpack://TronWeb/./node_modules/validator/lib/util/multilineRegex.js", "webpack://TronWeb/./node_modules/validator/lib/util/toString.js", "webpack://TronWeb/./node_modules/validator/lib/whitelist.js", "webpack://TronWeb/./src/protocol/core/Tron_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/account_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/asset_issue_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/balance_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/common_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/exchange_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/proposal_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/smart_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/storage_contract_pb.cjs", "webpack://TronWeb/./src/protocol/core/contract/witness_contract_pb.cjs", "webpack://TronWeb/webpack/bootstrap", "webpack://TronWeb/webpack/runtime/compat get default export", "webpack://TronWeb/webpack/runtime/define property getters", "webpack://TronWeb/webpack/runtime/global", "webpack://TronWeb/webpack/runtime/hasOwnProperty shorthand", "webpack://TronWeb/webpack/runtime/make namespace object", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/typeof.js", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/defineProperty.js", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js", "webpack://TronWeb/./src/utils/base64.ts", "webpack://TronWeb/./src/utils/bytes.ts", "webpack://TronWeb/./src/utils/code.ts", "webpack://TronWeb/./node_modules/bignumber.js/bignumber.mjs", "webpack://TronWeb/./src/utils/validations.ts", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js", "webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js", "webpack://TronWeb/../../src.ts/constants/hashes.ts", "webpack://TronWeb/../src.ts/_version.ts", "webpack://TronWeb/../../src.ts/utils/properties.ts", "webpack://TronWeb/../../src.ts/utils/errors.ts", "webpack://TronWeb/../../src.ts/utils/data.ts", "webpack://TronWeb/../../src.ts/utils/maths.ts", "webpack://TronWeb/../../src.ts/crypto/signature.ts", "webpack://TronWeb/../src/_assert.ts", "webpack://TronWeb/../src/crypto.ts", "webpack://TronWeb/../src/utils.ts", "webpack://TronWeb/../src/hmac.ts", "webpack://TronWeb/../src/pbkdf2.ts", "webpack://TronWeb/../src/_sha2.ts", "webpack://TronWeb/../src/sha256.ts", "webpack://TronWeb/../src/_u64.ts", "webpack://TronWeb/../src/sha512.ts", "webpack://TronWeb/../../src.ts/crypto/crypto-browser.ts", "webpack://TronWeb/../../src.ts/crypto/sha2.ts", "webpack://TronWeb/../../src.ts/crypto/pbkdf2.ts", "webpack://TronWeb/../../src.ts/utils/utf8.ts", "webpack://TronWeb/../src/sha3.ts", "webpack://TronWeb/../../src.ts/crypto/keccak.ts", "webpack://TronWeb/../../src.ts/hash/id.ts", "webpack://TronWeb/../../src.ts/wordlists/decode-owl.ts", "webpack://TronWeb/../../src.ts/wordlists/wordlist.ts", "webpack://TronWeb/../../src.ts/wordlists/wordlist-owl.ts", "webpack://TronWeb/../../src.ts/wordlists/lang-en.ts", "webpack://TronWeb/../../src.ts/wallet/mnemonic.ts", "webpack://TronWeb/../../src.ts/crypto/hmac.ts", "webpack://TronWeb/../../src.ts/address/address.ts", "webpack://TronWeb/../../src/abstract/utils.ts", "webpack://TronWeb/../../src/abstract/modular.ts", "webpack://TronWeb/../../src/abstract/curve.ts", "webpack://TronWeb/../../src/abstract/weierstrass.ts", "webpack://TronWeb/../src/secp256k1.ts", "webpack://TronWeb/../src/_shortw_utils.ts", "webpack://TronWeb/../../src.ts/crypto/signing-key.ts", "webpack://TronWeb/../../src.ts/transaction/address.ts", "webpack://TronWeb/../../../src.ts/abi/coders/abstract-coder.ts", "webpack://TronWeb/../../src.ts/abi/typed.ts", "webpack://TronWeb/../../../src.ts/abi/coders/address.ts", "webpack://TronWeb/../../../src.ts/abi/coders/anonymous.ts", "webpack://TronWeb/../../../src.ts/abi/coders/array.ts", "webpack://TronWeb/../../../src.ts/abi/coders/boolean.ts", "webpack://TronWeb/../../../src.ts/abi/coders/bytes.ts", "webpack://TronWeb/../../../src.ts/abi/coders/fixed-bytes.ts", "webpack://TronWeb/../../../src.ts/abi/coders/null.ts", "webpack://TronWeb/../../../src.ts/abi/coders/number.ts", "webpack://TronWeb/../../../src.ts/abi/coders/string.ts", "webpack://TronWeb/../../../src.ts/abi/coders/tuple.ts", "webpack://TronWeb/../../src.ts/abi/fragments.ts", "webpack://TronWeb/../../src.ts/abi/abi-coder.ts", "webpack://TronWeb/../src/ripemd160.ts", "webpack://TronWeb/../../src.ts/crypto/ripemd160.ts", "webpack://TronWeb/../../src.ts/crypto/random.ts", "webpack://TronWeb/../../src.ts/address/checks.ts", "webpack://TronWeb/../../src.ts/constants/addresses.ts", "webpack://TronWeb/../../src.ts/utils/rlp-decode.ts", "webpack://TronWeb/../../src.ts/utils/rlp-encode.ts", "webpack://TronWeb/../../src.ts/transaction/accesslist.ts", "webpack://TronWeb/../../src.ts/transaction/transaction.ts", "webpack://TronWeb/../../src.ts/providers/abstract-signer.ts", "webpack://TronWeb/../../src.ts/providers/provider.ts", "webpack://TronWeb/../../src.ts/utils/base58.ts", "webpack://TronWeb/../../src.ts/hash/typed-data.ts", "webpack://TronWeb/../../src.ts/wallet/base-wallet.ts", "webpack://TronWeb/../../src.ts/hash/message.ts", "webpack://TronWeb/../../src.ts/constants/strings.ts", "webpack://TronWeb/../src.ts/aes.ts", "webpack://TronWeb/../src.ts/mode.ts", "webpack://TronWeb/../src.ts/mode-ctr.ts", "webpack://TronWeb/../src/scrypt.ts", "webpack://TronWeb/../../src.ts/crypto/scrypt.ts", "webpack://TronWeb/../../src.ts/utils/uuid.ts", "webpack://TronWeb/../../src.ts/wallet/utils.ts", "webpack://TronWeb/../../src.ts/wallet/json-keystore.ts", "webpack://TronWeb/../../src.ts/wallet/hdwallet.ts", "webpack://TronWeb/../../src.ts/wordlists/wordlists-browser.ts", "webpack://TronWeb/./src/utils/fragments.ts", "webpack://TronWeb/./src/utils/interface.ts", "webpack://TronWeb/./src/utils/ethersUtils.ts", "webpack://TronWeb/./src/utils/address.ts", "webpack://TronWeb/./src/utils/base58.ts", "webpack://TronWeb/./node_modules/axios/lib/helpers/bind.js", "webpack://TronWeb/./node_modules/axios/lib/utils.js", "webpack://TronWeb/./node_modules/axios/lib/core/AxiosError.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/toFormData.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/buildURL.js", "webpack://TronWeb/./node_modules/axios/lib/core/InterceptorManager.js", "webpack://TronWeb/./node_modules/axios/lib/defaults/transitional.js", "webpack://TronWeb/./node_modules/axios/lib/platform/browser/index.js", "webpack://TronWeb/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js", "webpack://TronWeb/./node_modules/axios/lib/platform/browser/classes/FormData.js", "webpack://TronWeb/./node_modules/axios/lib/platform/browser/classes/Blob.js", "webpack://TronWeb/./node_modules/axios/lib/platform/common/utils.js", "webpack://TronWeb/./node_modules/axios/lib/platform/index.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/formDataToJSON.js", "webpack://TronWeb/./node_modules/axios/lib/defaults/index.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/toURLEncodedForm.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/parseHeaders.js", "webpack://TronWeb/./node_modules/axios/lib/core/AxiosHeaders.js", "webpack://TronWeb/./node_modules/axios/lib/core/transformData.js", "webpack://TronWeb/./node_modules/axios/lib/cancel/isCancel.js", "webpack://TronWeb/./node_modules/axios/lib/cancel/CanceledError.js", "webpack://TronWeb/./node_modules/axios/lib/core/settle.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/speedometer.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/progressEventReducer.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/throttle.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/isURLSameOrigin.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/cookies.js", "webpack://TronWeb/./node_modules/axios/lib/core/buildFullPath.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/isAbsoluteURL.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/combineURLs.js", "webpack://TronWeb/./node_modules/axios/lib/core/mergeConfig.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/resolveConfig.js", "webpack://TronWeb/./node_modules/axios/lib/adapters/xhr.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/parseProtocol.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/composeSignals.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/trackStream.js", "webpack://TronWeb/./node_modules/axios/lib/adapters/fetch.js", "webpack://TronWeb/./node_modules/axios/lib/adapters/adapters.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/null.js", "webpack://TronWeb/./node_modules/axios/lib/core/dispatchRequest.js", "webpack://TronWeb/./node_modules/axios/lib/env/data.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/validator.js", "webpack://TronWeb/./node_modules/axios/lib/core/Axios.js", "webpack://TronWeb/./node_modules/axios/lib/cancel/CancelToken.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/HttpStatusCode.js", "webpack://TronWeb/./node_modules/axios/lib/axios.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/spread.js", "webpack://TronWeb/./node_modules/axios/lib/helpers/isAxiosError.js", "webpack://TronWeb/./src/lib/providers/HttpProvider.ts", "webpack://TronWeb/./src/lib/providers/index.ts", "webpack://TronWeb/./src/utils/abi.ts", "webpack://TronWeb/./src/paramValidator/index.ts", "webpack://TronWeb/./src/types/Contract.ts", "webpack://TronWeb/./src/utils/transaction.ts", "webpack://TronWeb/./src/lib/TransactionBuilder/helper.ts", "webpack://TronWeb/./src/lib/TransactionBuilder/TransactionBuilder.ts", "webpack://TronWeb/./src/lib/trx.ts", "webpack://TronWeb/./src/lib/contract/method.ts", "webpack://TronWeb/./src/lib/contract/index.ts", "webpack://TronWeb/./src/lib/plugin.ts", "webpack://TronWeb/./src/lib/event.ts", "webpack://TronWeb/./src/tronweb.ts", "webpack://TronWeb/./src/utils/typedData.ts", "webpack://TronWeb/../src/_md.ts", "webpack://TronWeb/./src/utils/crypto.ts", "webpack://TronWeb/./src/utils/accounts.ts", "webpack://TronWeb/./src/utils/message.ts", "webpack://TronWeb/./src/utils/index.ts", "webpack://TronWeb/./src/types/Trx.ts", "webpack://TronWeb/./src/index.ts" ], "sourcesContent": [ "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TronWeb\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TronWeb\"] = factory();\n\telse\n\t\troot[\"TronWeb\"] = factory();\n})(self, () => {\nreturn ", "/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},e=\"undefined\"!=typeof window&&window===this?this:\"undefined\"!=typeof global&&null!=global?global:this;function ba(a,b){if(b){var c=e;a=a.split(\".\");for(var d=0;d=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};function sa(a,b,c,d){var f=\"Assertion failed\";if(c){f+=\": \"+c;var h=d}else a&&(f+=\": \"+a,h=b);throw Error(f,h||[]);}function n(a,b,c){for(var d=[],f=2;f=a.length)return String.fromCharCode.apply(null,a);for(var b=\"\",c=0;c>2;f=(f&3)<<4|m>>4;m=(m&15)<<2|B>>6;B&=63;t||(B=64,h||(m=64));c.push(b[M],b[f],b[m]||\"\",b[B]||\"\")}return c.join(\"\")}function Da(a){var b=a.length,c=3*b/4;c%3?c=Math.floor(c):-1!=\"=.\".indexOf(a[b-1])&&(c=-1!=\"=.\".indexOf(a[b-2])?c-2:c-1);var d=new Uint8Array(c),f=0;Ea(a,function(h){d[f++]=h});return d.subarray(0,f)}\nfunction Ea(a,b){function c(B){for(;d>4);64!=m&&(b(h<<4&240|m>>2),64!=t&&b(m<<6&192|t))}}\nfunction Ca(){if(!x){x={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;5>c;c++){var d=a.concat(b[c].split(\"\"));Aa[c]=d;for(var f=0;f>>0;a=Math.floor((a-b)/4294967296)>>>0;y=b;z=a}g(\"jspb.utils.splitUint64\",Fa,void 0);function A(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/4294967296);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295a;a=2*Math.abs(a);Fa(a);a=y;var c=z;b&&(0==a?0==c?c=a=4294967295:(c--,a=4294967295):a--);y=a;z=c}g(\"jspb.utils.splitZigzag64\",Ga,void 0);\nfunction Ha(a){var b=0>a?1:0;a=b?-a:a;if(0===a)0<1/a?y=z=0:(z=0,y=2147483648);else if(isNaN(a))z=0,y=2147483647;else if(3.4028234663852886E38>>0;else if(1.1754943508222875E-38>a)a=Math.round(a/Math.pow(2,-149)),z=0,y=(b<<31|a)>>>0;else{var c=Math.floor(Math.log(a)/Math.LN2);a*=Math.pow(2,-c);a=Math.round(8388608*a);16777216<=a&&++c;z=0;y=(b<<31|c+127<<23|a&8388607)>>>0}}g(\"jspb.utils.splitFloat32\",Ha,void 0);\nfunction Ia(a){var b=0>a?1:0;a=b?-a:a;if(0===a)z=0<1/a?0:2147483648,y=0;else if(isNaN(a))z=2147483647,y=4294967295;else if(1.7976931348623157E308>>0,y=0;else if(2.2250738585072014E-308>a)a/=Math.pow(2,-1074),z=(b<<31|a/4294967296)>>>0,y=a>>>0;else{var c=a,d=0;if(2<=c)for(;2<=c&&1023>d;)d++,c/=2;else for(;1>c&&-1022>>0;y=4503599627370496*a>>>0}}g(\"jspb.utils.splitFloat64\",Ia,void 0);\nfunction C(a){var b=a.charCodeAt(4),c=a.charCodeAt(5),d=a.charCodeAt(6),f=a.charCodeAt(7);y=a.charCodeAt(0)+(a.charCodeAt(1)<<8)+(a.charCodeAt(2)<<16)+(a.charCodeAt(3)<<24)>>>0;z=b+(c<<8)+(d<<16)+(f<<24)>>>0}g(\"jspb.utils.splitHash64\",C,void 0);function D(a,b){return 4294967296*b+(a>>>0)}g(\"jspb.utils.joinUint64\",D,void 0);function E(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=D(a,b);return c?-a:a}g(\"jspb.utils.joinInt64\",E,void 0);\nfunction Ja(a,b,c){var d=b>>31;return c(a<<1^d,(b<<1|a>>>31)^d)}g(\"jspb.utils.toZigzag64\",Ja,void 0);function Ka(a,b){return Ma(a,b,E)}g(\"jspb.utils.joinZigzag64\",Ka,void 0);function Ma(a,b,c){var d=-(a&1);return c((a>>>1|b<<31)^d,b>>>1^d)}g(\"jspb.utils.fromZigzag64\",Ma,void 0);function Na(a){var b=2*(a>>31)+1,c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*a:b*Math.pow(2,c-150)*(a+Math.pow(2,23))}g(\"jspb.utils.joinFloat32\",Na,void 0);\nfunction Oa(a,b){var c=2*(b>>31)+1,d=b>>>20&2047;a=4294967296*(b&1048575)+a;return 2047==d?a?NaN:Infinity*c:0==d?c*Math.pow(2,-1074)*a:c*Math.pow(2,d-1075)*(a+4503599627370496)}g(\"jspb.utils.joinFloat64\",Oa,void 0);function Pa(a,b){return String.fromCharCode(a>>>0&255,a>>>8&255,a>>>16&255,a>>>24&255,b>>>0&255,b>>>8&255,b>>>16&255,b>>>24&255)}g(\"jspb.utils.joinHash64\",Pa,void 0);g(\"jspb.utils.DIGITS\",\"0123456789abcdef\".split(\"\"),void 0);\nfunction F(a,b){function c(f,h){f=f?String(f):\"\";return h?\"0000000\".slice(f.length)+f:f}if(2097151>=b)return\"\"+D(a,b);var d=(a>>>24|b<<8)>>>0&16777215;b=b>>16&65535;a=(a&16777215)+6777216*d+6710656*b;d+=8147497*b;b*=2;1E7<=a&&(d+=Math.floor(a/1E7),a%=1E7);1E7<=d&&(b+=Math.floor(d/1E7),d%=1E7);return c(b,0)+c(d,b)+c(a,1)}g(\"jspb.utils.joinUnsignedDecimalString\",F,void 0);function G(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b+(0==a?1:0)>>>0);a=F(a,b);return c?\"-\"+a:a}\ng(\"jspb.utils.joinSignedDecimalString\",G,void 0);function Qa(a,b){C(a);a=y;var c=z;return b?G(a,c):F(a,c)}g(\"jspb.utils.hash64ToDecimalString\",Qa,void 0);g(\"jspb.utils.hash64ArrayToDecimalStrings\",function(a,b){for(var c=Array(a.length),d=0;dB&&(1!==m||0>>=8}function c(){for(var m=0;8>m;m++)f[m]=~f[m]&255}n(0a?48+a:87+a)}\nfunction Sa(a){return 97<=a?a-97+10:a-48}g(\"jspb.utils.hash64ToHexString\",function(a){var b=Array(18);b[0]=\"0\";b[1]=\"x\";for(var c=0;8>c;c++){var d=a.charCodeAt(7-c);b[2*c+2]=Ra(d>>4);b[2*c+3]=Ra(d&15)}return b.join(\"\")},void 0);g(\"jspb.utils.hexStringToHash64\",function(a){a=a.toLowerCase();n(18==a.length);n(\"0\"==a[0]);n(\"x\"==a[1]);for(var b=\"\",c=0;8>c;c++)b=String.fromCharCode(16*Sa(a.charCodeAt(2*c+2))+Sa(a.charCodeAt(2*c+3)))+b;return b},void 0);\ng(\"jspb.utils.hash64ToNumber\",function(a,b){C(a);a=y;var c=z;return b?E(a,c):D(a,c)},void 0);g(\"jspb.utils.numberToHash64\",function(a){A(a);return Pa(y,z)},void 0);g(\"jspb.utils.countVarints\",function(a,b,c){for(var d=0,f=b;f>7;return c-b-d},void 0);\ng(\"jspb.utils.countVarintFields\",function(a,b,c,d){var f=0;d*=8;if(128>d)for(;b>=7}if(a[b++]!=h)break;for(f++;h=a[b++],0!=(h&128););}return f},void 0);function Ta(a,b,c,d,f){var h=0;if(128>d)for(;b>=7}if(a[b++]!=m)break;h++;b+=f}return h}\ng(\"jspb.utils.countFixed32Fields\",function(a,b,c,d){return Ta(a,b,c,8*d+5,4)},void 0);g(\"jspb.utils.countFixed64Fields\",function(a,b,c,d){return Ta(a,b,c,8*d+1,8)},void 0);g(\"jspb.utils.countDelimitedFields\",function(a,b,c,d){var f=0;for(d=8*d+2;b>=7}if(a[b++]!=h)break;f++;for(var m=0,t=1;h=a[b++],m+=(h&127)*t,t*=128,0!=(h&128););b+=m}return f},void 0);\ng(\"jspb.utils.debugBytesToTextFormat\",function(a){var b='\"';if(a){a=Ua(a);for(var c=0;ca[c]&&(b+=\"0\"),b+=a[c].toString(16)}return b+'\"'},void 0);\ng(\"jspb.utils.debugScalarToTextFormat\",function(a){if(\"string\"===typeof a){a=String(a);for(var b=['\"'],c=0;cf))if(f=d,f in za)d=za[f];else if(f in ya)d=za[f]=ya[f];else{m=f.charCodeAt(0);if(31m)d=f;else{if(256>m){if(d=\"\\\\x\",16>m||256m&&(d+=\"0\");d+=m.toString(16).toUpperCase()}d=za[f]=d}m=d}b[h]=m}b.push('\"');a=b.join(\"\")}else a=a.toString();return a},void 0);\ng(\"jspb.utils.stringToByteArray\",function(a){for(var b=new Uint8Array(a.length),c=0;cVa.length&&Va.push(this)};I.prototype.free=I.prototype.Ca;I.prototype.clone=function(){return Wa(this.b,this.h,this.c-this.h)};I.prototype.clone=I.prototype.clone;\nI.prototype.clear=function(){this.b=null;this.a=this.c=this.h=0;this.v=!1};I.prototype.clear=I.prototype.clear;I.prototype.Y=function(){return this.b};I.prototype.getBuffer=I.prototype.Y;I.prototype.H=function(a,b,c){this.b=Ua(a);this.h=void 0!==b?b:0;this.c=void 0!==c?this.h+c:this.b.length;this.a=this.h};I.prototype.setBlock=I.prototype.H;I.prototype.Db=function(){return this.c};I.prototype.getEnd=I.prototype.Db;I.prototype.setEnd=function(a){this.c=a};I.prototype.setEnd=I.prototype.setEnd;\nI.prototype.reset=function(){this.a=this.h};I.prototype.reset=I.prototype.reset;I.prototype.B=function(){return this.a};I.prototype.getCursor=I.prototype.B;I.prototype.Ma=function(a){this.a=a};I.prototype.setCursor=I.prototype.Ma;I.prototype.advance=function(a){this.a+=a;n(this.a<=this.c)};I.prototype.advance=I.prototype.advance;I.prototype.ya=function(){return this.a==this.c};I.prototype.atEnd=I.prototype.ya;I.prototype.Qb=function(){return this.a>this.c};I.prototype.pastEnd=I.prototype.Qb;\nI.prototype.getError=function(){return this.v||0>this.a||this.a>this.c};I.prototype.getError=I.prototype.getError;I.prototype.w=function(a){for(var b=128,c=0,d=0,f=0;4>f&&128<=b;f++)b=this.b[this.a++],c|=(b&127)<<7*f;128<=b&&(b=this.b[this.a++],c|=(b&127)<<28,d|=(b&127)>>4);if(128<=b)for(f=0;5>f&&128<=b;f++)b=this.b[this.a++],d|=(b&127)<<7*f+3;if(128>b)return a(c>>>0,d>>>0);p(\"Failed to read varint, encoding is invalid.\");this.v=!0};I.prototype.readSplitVarint64=I.prototype.w;\nI.prototype.ea=function(a){return this.w(function(b,c){return Ma(b,c,a)})};I.prototype.readSplitZigzagVarint64=I.prototype.ea;I.prototype.ta=function(a){var b=this.b,c=this.a;this.a+=8;for(var d=0,f=0,h=c+7;h>=c;h--)d=d<<8|b[h],f=f<<8|b[h+4];return a(d,f)};I.prototype.readSplitFixed64=I.prototype.ta;I.prototype.kb=function(){for(;this.b[this.a]&128;)this.a++;this.a++};I.prototype.skipVarint=I.prototype.kb;I.prototype.mb=function(a){for(;128>>=7;this.a--};I.prototype.unskipVarint=I.prototype.mb;\nI.prototype.o=function(){var a=this.b;var b=a[this.a];var c=b&127;if(128>b)return this.a+=1,n(this.a<=this.c),c;b=a[this.a+1];c|=(b&127)<<7;if(128>b)return this.a+=2,n(this.a<=this.c),c;b=a[this.a+2];c|=(b&127)<<14;if(128>b)return this.a+=3,n(this.a<=this.c),c;b=a[this.a+3];c|=(b&127)<<21;if(128>b)return this.a+=4,n(this.a<=this.c),c;b=a[this.a+4];c|=(b&15)<<28;if(128>b)return this.a+=5,n(this.a<=this.c),c>>>0;this.a+=5;128<=a[this.a++]&&128<=a[this.a++]&&128<=a[this.a++]&&128<=a[this.a++]&&128<=\na[this.a++]&&n(!1);n(this.a<=this.c);return c};I.prototype.readUnsignedVarint32=I.prototype.o;I.prototype.da=function(){return~~this.o()};I.prototype.readSignedVarint32=I.prototype.da;I.prototype.O=function(){return this.o().toString()};I.prototype.Ea=function(){return this.da().toString()};I.prototype.readSignedVarint32String=I.prototype.Ea;I.prototype.Ia=function(){var a=this.o();return a>>>1^-(a&1)};I.prototype.readZigzagVarint32=I.prototype.Ia;I.prototype.Ga=function(){return this.w(D)};\nI.prototype.readUnsignedVarint64=I.prototype.Ga;I.prototype.Ha=function(){return this.w(F)};I.prototype.readUnsignedVarint64String=I.prototype.Ha;I.prototype.sa=function(){return this.w(E)};I.prototype.readSignedVarint64=I.prototype.sa;I.prototype.Fa=function(){return this.w(G)};I.prototype.readSignedVarint64String=I.prototype.Fa;I.prototype.Ja=function(){return this.w(Ka)};I.prototype.readZigzagVarint64=I.prototype.Ja;I.prototype.fb=function(){return this.ea(Pa)};\nI.prototype.readZigzagVarintHash64=I.prototype.fb;I.prototype.Ka=function(){return this.ea(G)};I.prototype.readZigzagVarint64String=I.prototype.Ka;I.prototype.Gc=function(){var a=this.b[this.a];this.a+=1;n(this.a<=this.c);return a};I.prototype.readUint8=I.prototype.Gc;I.prototype.Ec=function(){var a=this.b[this.a],b=this.b[this.a+1];this.a+=2;n(this.a<=this.c);return a<<0|b<<8};I.prototype.readUint16=I.prototype.Ec;\nI.prototype.m=function(){var a=this.b[this.a],b=this.b[this.a+1],c=this.b[this.a+2],d=this.b[this.a+3];this.a+=4;n(this.a<=this.c);return(a<<0|b<<8|c<<16|d<<24)>>>0};I.prototype.readUint32=I.prototype.m;I.prototype.ga=function(){var a=this.m(),b=this.m();return D(a,b)};I.prototype.readUint64=I.prototype.ga;I.prototype.ha=function(){var a=this.m(),b=this.m();return F(a,b)};I.prototype.readUint64String=I.prototype.ha;\nI.prototype.Xb=function(){var a=this.b[this.a];this.a+=1;n(this.a<=this.c);return a<<24>>24};I.prototype.readInt8=I.prototype.Xb;I.prototype.Vb=function(){var a=this.b[this.a],b=this.b[this.a+1];this.a+=2;n(this.a<=this.c);return(a<<0|b<<8)<<16>>16};I.prototype.readInt16=I.prototype.Vb;I.prototype.P=function(){var a=this.b[this.a],b=this.b[this.a+1],c=this.b[this.a+2],d=this.b[this.a+3];this.a+=4;n(this.a<=this.c);return a<<0|b<<8|c<<16|d<<24};I.prototype.readInt32=I.prototype.P;\nI.prototype.ba=function(){var a=this.m(),b=this.m();return E(a,b)};I.prototype.readInt64=I.prototype.ba;I.prototype.ca=function(){var a=this.m(),b=this.m();return G(a,b)};I.prototype.readInt64String=I.prototype.ca;I.prototype.aa=function(){var a=this.m();return Na(a,0)};I.prototype.readFloat=I.prototype.aa;I.prototype.Z=function(){var a=this.m(),b=this.m();return Oa(a,b)};I.prototype.readDouble=I.prototype.Z;I.prototype.pa=function(){return!!this.b[this.a++]};I.prototype.readBool=I.prototype.pa;\nI.prototype.ra=function(){return this.da()};I.prototype.readEnum=I.prototype.ra;\nI.prototype.fa=function(a){var b=this.b,c=this.a;a=c+a;for(var d=[],f=\"\";ch)d.push(h);else if(192>h)continue;else if(224>h){var m=b[c++];d.push((h&31)<<6|m&63)}else if(240>h){m=b[c++];var t=b[c++];d.push((h&15)<<12|(m&63)<<6|t&63)}else if(248>h){m=b[c++];t=b[c++];var B=b[c++];h=(h&7)<<18|(m&63)<<12|(t&63)<<6|B&63;h-=65536;d.push((h>>10&1023)+55296,(h&1023)+56320)}8192<=d.length&&(f+=String.fromCharCode.apply(null,d),d.length=0)}f+=xa(d);this.a=c;return f};\nI.prototype.readString=I.prototype.fa;I.prototype.Dc=function(){var a=this.o();return this.fa(a)};I.prototype.readStringWithLength=I.prototype.Dc;I.prototype.qa=function(a){if(0>a||this.a+a>this.b.length)return this.v=!0,p(\"Invalid byte length!\"),new Uint8Array(0);var b=this.b.subarray(this.a,this.a+a);this.a+=a;n(this.a<=this.c);return b};I.prototype.readBytes=I.prototype.qa;I.prototype.ia=function(){return this.w(Pa)};I.prototype.readVarintHash64=I.prototype.ia;\nI.prototype.$=function(){var a=this.b,b=this.a,c=a[b],d=a[b+1],f=a[b+2],h=a[b+3],m=a[b+4],t=a[b+5],B=a[b+6];a=a[b+7];this.a+=8;return String.fromCharCode(c,d,f,h,m,t,B,a)};I.prototype.readFixedHash64=I.prototype.$;function J(a,b,c){this.a=Wa(a,b,c);this.O=this.a.B();this.b=this.c=-1;this.h=!1;this.v=null}g(\"jspb.BinaryReader\",J,void 0);var K=[];J.clearInstanceCache=function(){K=[]};J.getInstanceCacheLength=function(){return K.length};function Xa(a,b,c){if(K.length){var d=K.pop();a&&d.a.H(a,b,c);return d}return new J(a,b,c)}J.alloc=Xa;J.prototype.zb=Xa;J.prototype.alloc=J.prototype.zb;J.prototype.Ca=function(){this.a.clear();this.b=this.c=-1;this.h=!1;this.v=null;100>K.length&&K.push(this)};\nJ.prototype.free=J.prototype.Ca;J.prototype.Fb=function(){return this.O};J.prototype.getFieldCursor=J.prototype.Fb;J.prototype.B=function(){return this.a.B()};J.prototype.getCursor=J.prototype.B;J.prototype.Y=function(){return this.a.Y()};J.prototype.getBuffer=J.prototype.Y;J.prototype.Hb=function(){return this.c};J.prototype.getFieldNumber=J.prototype.Hb;J.prototype.Lb=function(){return this.b};J.prototype.getWireType=J.prototype.Lb;J.prototype.Mb=function(){return 2==this.b};\nJ.prototype.isDelimited=J.prototype.Mb;J.prototype.bb=function(){return 4==this.b};J.prototype.isEndGroup=J.prototype.bb;J.prototype.getError=function(){return this.h||this.a.getError()};J.prototype.getError=J.prototype.getError;J.prototype.H=function(a,b,c){this.a.H(a,b,c);this.b=this.c=-1};J.prototype.setBlock=J.prototype.H;J.prototype.reset=function(){this.a.reset();this.b=this.c=-1};J.prototype.reset=J.prototype.reset;J.prototype.advance=function(a){this.a.advance(a)};J.prototype.advance=J.prototype.advance;\nJ.prototype.oa=function(){if(this.a.ya())return!1;if(this.getError())return p(\"Decoder hit an error\"),!1;this.O=this.a.B();var a=this.a.o(),b=a>>>3;a&=7;if(0!=a&&5!=a&&1!=a&&2!=a&&3!=a&&4!=a)return p(\"Invalid wire type: %s (at position %s)\",a,this.O),this.h=!0,!1;this.c=b;this.b=a;return!0};J.prototype.nextField=J.prototype.oa;J.prototype.Oa=function(){this.a.mb(this.c<<3|this.b)};J.prototype.unskipHeader=J.prototype.Oa;\nJ.prototype.Lc=function(){var a=this.c;for(this.Oa();this.oa()&&this.c==a;)this.C();this.a.ya()||this.Oa()};J.prototype.skipMatchingFields=J.prototype.Lc;J.prototype.lb=function(){0!=this.b?(p(\"Invalid wire type for skipVarintField\"),this.C()):this.a.kb()};J.prototype.skipVarintField=J.prototype.lb;J.prototype.gb=function(){if(2!=this.b)p(\"Invalid wire type for skipDelimitedField\"),this.C();else{var a=this.a.o();this.a.advance(a)}};J.prototype.skipDelimitedField=J.prototype.gb;\nJ.prototype.hb=function(){5!=this.b?(p(\"Invalid wire type for skipFixed32Field\"),this.C()):this.a.advance(4)};J.prototype.skipFixed32Field=J.prototype.hb;J.prototype.ib=function(){1!=this.b?(p(\"Invalid wire type for skipFixed64Field\"),this.C()):this.a.advance(8)};J.prototype.skipFixed64Field=J.prototype.ib;J.prototype.jb=function(){var a=this.c;do{if(!this.oa()){p(\"Unmatched start-group tag: stream EOF\");this.h=!0;break}if(4==this.b){this.c!=a&&(p(\"Unmatched end-group tag\"),this.h=!0);break}this.C()}while(1)};\nJ.prototype.skipGroup=J.prototype.jb;J.prototype.C=function(){switch(this.b){case 0:this.lb();break;case 1:this.ib();break;case 2:this.gb();break;case 5:this.hb();break;case 3:this.jb();break;default:p(\"Invalid wire encoding for field.\")}};J.prototype.skipField=J.prototype.C;J.prototype.Hc=function(a,b){null===this.v&&(this.v={});n(!this.v[a]);this.v[a]=b};J.prototype.registerReadCallback=J.prototype.Hc;J.prototype.Ic=function(a){n(null!==this.v);a=this.v[a];n(a);return a(this)};\nJ.prototype.runReadCallback=J.prototype.Ic;J.prototype.Yb=function(a,b){n(2==this.b);var c=this.a.c,d=this.a.o();d=this.a.B()+d;this.a.setEnd(d);b(a,this);this.a.Ma(d);this.a.setEnd(c)};J.prototype.readMessage=J.prototype.Yb;J.prototype.Ub=function(a,b,c){n(3==this.b);n(this.c==a);c(b,this);this.h||4==this.b||(p(\"Group submessage did not end with an END_GROUP tag\"),this.h=!0)};J.prototype.readGroup=J.prototype.Ub;\nJ.prototype.Gb=function(){n(2==this.b);var a=this.a.o(),b=this.a.B(),c=b+a;a=Wa(this.a.Y(),b,a);this.a.Ma(c);return a};J.prototype.getFieldDecoder=J.prototype.Gb;J.prototype.P=function(){n(0==this.b);return this.a.da()};J.prototype.readInt32=J.prototype.P;J.prototype.Wb=function(){n(0==this.b);return this.a.Ea()};J.prototype.readInt32String=J.prototype.Wb;J.prototype.ba=function(){n(0==this.b);return this.a.sa()};J.prototype.readInt64=J.prototype.ba;J.prototype.ca=function(){n(0==this.b);return this.a.Fa()};\nJ.prototype.readInt64String=J.prototype.ca;J.prototype.m=function(){n(0==this.b);return this.a.o()};J.prototype.readUint32=J.prototype.m;J.prototype.Fc=function(){n(0==this.b);return this.a.O()};J.prototype.readUint32String=J.prototype.Fc;J.prototype.ga=function(){n(0==this.b);return this.a.Ga()};J.prototype.readUint64=J.prototype.ga;J.prototype.ha=function(){n(0==this.b);return this.a.Ha()};J.prototype.readUint64String=J.prototype.ha;J.prototype.zc=function(){n(0==this.b);return this.a.Ia()};\nJ.prototype.readSint32=J.prototype.zc;J.prototype.Ac=function(){n(0==this.b);return this.a.Ja()};J.prototype.readSint64=J.prototype.Ac;J.prototype.Bc=function(){n(0==this.b);return this.a.Ka()};J.prototype.readSint64String=J.prototype.Bc;J.prototype.Rb=function(){n(5==this.b);return this.a.m()};J.prototype.readFixed32=J.prototype.Rb;J.prototype.Sb=function(){n(1==this.b);return this.a.ga()};J.prototype.readFixed64=J.prototype.Sb;J.prototype.Tb=function(){n(1==this.b);return this.a.ha()};\nJ.prototype.readFixed64String=J.prototype.Tb;J.prototype.vc=function(){n(5==this.b);return this.a.P()};J.prototype.readSfixed32=J.prototype.vc;J.prototype.wc=function(){n(5==this.b);return this.a.P().toString()};J.prototype.readSfixed32String=J.prototype.wc;J.prototype.xc=function(){n(1==this.b);return this.a.ba()};J.prototype.readSfixed64=J.prototype.xc;J.prototype.yc=function(){n(1==this.b);return this.a.ca()};J.prototype.readSfixed64String=J.prototype.yc;\nJ.prototype.aa=function(){n(5==this.b);return this.a.aa()};J.prototype.readFloat=J.prototype.aa;J.prototype.Z=function(){n(1==this.b);return this.a.Z()};J.prototype.readDouble=J.prototype.Z;J.prototype.pa=function(){n(0==this.b);return!!this.a.o()};J.prototype.readBool=J.prototype.pa;J.prototype.ra=function(){n(0==this.b);return this.a.sa()};J.prototype.readEnum=J.prototype.ra;J.prototype.fa=function(){n(2==this.b);var a=this.a.o();return this.a.fa(a)};J.prototype.readString=J.prototype.fa;\nJ.prototype.qa=function(){n(2==this.b);var a=this.a.o();return this.a.qa(a)};J.prototype.readBytes=J.prototype.qa;J.prototype.ia=function(){n(0==this.b);return this.a.ia()};J.prototype.readVarintHash64=J.prototype.ia;J.prototype.Cc=function(){n(0==this.b);return this.a.fb()};J.prototype.readSintHash64=J.prototype.Cc;J.prototype.w=function(a){n(0==this.b);return this.a.w(a)};J.prototype.readSplitVarint64=J.prototype.w;\nJ.prototype.ea=function(a){n(0==this.b);return this.a.w(function(b,c){return Ma(b,c,a)})};J.prototype.readSplitZigzagVarint64=J.prototype.ea;J.prototype.$=function(){n(1==this.b);return this.a.$()};J.prototype.readFixedHash64=J.prototype.$;J.prototype.ta=function(a){n(1==this.b);return this.a.ta(a)};J.prototype.readSplitFixed64=J.prototype.ta;function L(a,b){n(2==a.b);var c=a.a.o();c=a.a.B()+c;for(var d=[];a.a.B()b.length?c.length:b.length;a.b&&(d[0]=a.b,f=1);for(;fa);for(n(0<=b&&4294967296>b);0>>7|b<<25)>>>0,b>>>=7;this.a.push(a)};S.prototype.writeSplitVarint64=S.prototype.l;\nS.prototype.A=function(a,b){n(a==Math.floor(a));n(b==Math.floor(b));n(0<=a&&4294967296>a);n(0<=b&&4294967296>b);this.s(a);this.s(b)};S.prototype.writeSplitFixed64=S.prototype.A;S.prototype.j=function(a){n(a==Math.floor(a));for(n(0<=a&&4294967296>a);127>>=7;this.a.push(a)};S.prototype.writeUnsignedVarint32=S.prototype.j;S.prototype.M=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);if(0<=a)this.j(a);else{for(var b=0;9>b;b++)this.a.push(a&127|128),a>>=7;this.a.push(1)}};\nS.prototype.writeSignedVarint32=S.prototype.M;S.prototype.va=function(a){n(a==Math.floor(a));n(0<=a&&1.8446744073709552E19>a);A(a);this.l(y,z)};S.prototype.writeUnsignedVarint64=S.prototype.va;S.prototype.ua=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);A(a);this.l(y,z)};S.prototype.writeSignedVarint64=S.prototype.ua;S.prototype.wa=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.j((a<<1^a>>31)>>>0)};S.prototype.writeZigzagVarint32=S.prototype.wa;\nS.prototype.xa=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);Ga(a);this.l(y,z)};S.prototype.writeZigzagVarint64=S.prototype.xa;S.prototype.Ta=function(a){this.W(H(a))};S.prototype.writeZigzagVarint64String=S.prototype.Ta;S.prototype.W=function(a){var b=this;C(a);Ja(y,z,function(c,d){b.l(c>>>0,d>>>0)})};S.prototype.writeZigzagVarintHash64=S.prototype.W;S.prototype.be=function(a){n(a==Math.floor(a));n(0<=a&&256>a);this.a.push(a>>>0&255)};S.prototype.writeUint8=S.prototype.be;\nS.prototype.ae=function(a){n(a==Math.floor(a));n(0<=a&&65536>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255)};S.prototype.writeUint16=S.prototype.ae;S.prototype.s=function(a){n(a==Math.floor(a));n(0<=a&&4294967296>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255);this.a.push(a>>>16&255);this.a.push(a>>>24&255)};S.prototype.writeUint32=S.prototype.s;S.prototype.V=function(a){n(a==Math.floor(a));n(0<=a&&1.8446744073709552E19>a);Fa(a);this.s(y);this.s(z)};S.prototype.writeUint64=S.prototype.V;\nS.prototype.Qc=function(a){n(a==Math.floor(a));n(-128<=a&&128>a);this.a.push(a>>>0&255)};S.prototype.writeInt8=S.prototype.Qc;S.prototype.Pc=function(a){n(a==Math.floor(a));n(-32768<=a&&32768>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255)};S.prototype.writeInt16=S.prototype.Pc;S.prototype.S=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.a.push(a>>>0&255);this.a.push(a>>>8&255);this.a.push(a>>>16&255);this.a.push(a>>>24&255)};S.prototype.writeInt32=S.prototype.S;\nS.prototype.T=function(a){n(a==Math.floor(a));n(-9223372036854775808<=a&&0x7fffffffffffffff>a);A(a);this.A(y,z)};S.prototype.writeInt64=S.prototype.T;S.prototype.ka=function(a){n(a==Math.floor(a));n(-9223372036854775808<=+a&&0x7fffffffffffffff>+a);C(H(a));this.A(y,z)};S.prototype.writeInt64String=S.prototype.ka;S.prototype.L=function(a){n(Infinity===a||-Infinity===a||isNaN(a)||-3.4028234663852886E38<=a&&3.4028234663852886E38>=a);Ha(a);this.s(y)};S.prototype.writeFloat=S.prototype.L;\nS.prototype.J=function(a){n(Infinity===a||-Infinity===a||isNaN(a)||-1.7976931348623157E308<=a&&1.7976931348623157E308>=a);Ia(a);this.s(y);this.s(z)};S.prototype.writeDouble=S.prototype.J;S.prototype.I=function(a){n(\"boolean\"===typeof a||\"number\"===typeof a);this.a.push(a?1:0)};S.prototype.writeBool=S.prototype.I;S.prototype.R=function(a){n(a==Math.floor(a));n(-2147483648<=a&&2147483648>a);this.M(a)};S.prototype.writeEnum=S.prototype.R;S.prototype.ja=function(a){this.a.push.apply(this.a,a)};\nS.prototype.writeBytes=S.prototype.ja;S.prototype.N=function(a){C(a);this.l(y,z)};S.prototype.writeVarintHash64=S.prototype.N;S.prototype.K=function(a){C(a);this.s(y);this.s(z)};S.prototype.writeFixedHash64=S.prototype.K;\nS.prototype.U=function(a){var b=this.a.length;ta(a);for(var c=0;cd)this.a.push(d);else if(2048>d)this.a.push(d>>6|192),this.a.push(d&63|128);else if(65536>d)if(55296<=d&&56319>=d&&c+1=f&&(d=1024*(d-55296)+f-56320+65536,this.a.push(d>>18|240),this.a.push(d>>12&63|128),this.a.push(d>>6&63|128),this.a.push(d&63|128),c++)}else this.a.push(d>>12|224),this.a.push(d>>6&63|128),this.a.push(d&63|128)}return this.a.length-\nb};S.prototype.writeString=S.prototype.U;function T(a,b){this.lo=a;this.hi=b}g(\"jspb.arith.UInt64\",T,void 0);T.prototype.cmp=function(a){return this.hi>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)};T.prototype.rightShift=T.prototype.La;T.prototype.Da=function(){return new T(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)};T.prototype.leftShift=T.prototype.Da;\nT.prototype.cb=function(){return!!(this.hi&2147483648)};T.prototype.msb=T.prototype.cb;T.prototype.Ob=function(){return!!(this.lo&1)};T.prototype.lsb=T.prototype.Ob;T.prototype.Ua=function(){return 0==this.lo&&0==this.hi};T.prototype.zero=T.prototype.Ua;T.prototype.add=function(a){return new T((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};T.prototype.add=T.prototype.add;\nT.prototype.sub=function(a){return new T((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};T.prototype.sub=T.prototype.sub;function rb(a,b){var c=a&65535;a>>>=16;var d=b&65535,f=b>>>16;b=c*d+65536*(c*f&65535)+65536*(a*d&65535);for(c=a*f+(c*f>>>16)+(a*d>>>16);4294967296<=b;)b-=4294967296,c+=1;return new T(b>>>0,c>>>0)}T.mul32x32=rb;T.prototype.eb=function(a){var b=rb(this.lo,a);a=rb(this.hi,a);a.hi=a.lo;a.lo=0;return b.add(a)};T.prototype.mul=T.prototype.eb;\nT.prototype.Xa=function(a){if(0==a)return[];var b=new T(0,0),c=new T(this.lo,this.hi);a=new T(a,0);for(var d=new T(1,0);!a.cb();)a=a.Da(),d=d.Da();for(;!d.Ua();)0>=a.cmp(c)&&(b=b.add(d),c=c.sub(a)),a=a.La(),d=d.La();return[b,c]};T.prototype.div=T.prototype.Xa;T.prototype.toString=function(){for(var a=\"\",b=this;!b.Ua();){b=b.Xa(10);var c=b[0];a=b[1].lo+a;b=c}\"\"==a&&(a=\"0\");return a};T.prototype.toString=T.prototype.toString;\nfunction U(a){for(var b=new T(0,0),c=new T(0,0),d=0;da[d]||\"9\">>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};V.prototype.add=V.prototype.add;\nV.prototype.sub=function(a){return new V((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};V.prototype.sub=V.prototype.sub;V.prototype.clone=function(){return new V(this.lo,this.hi)};V.prototype.clone=V.prototype.clone;V.prototype.toString=function(){var a=0!=(this.hi&2147483648),b=new T(this.lo,this.hi);a&&(b=(new T(0,0)).sub(b));return(a?\"-\":\"\")+b.toString()};V.prototype.toString=V.prototype.toString;\nfunction sb(a){var b=0>>=7,a.b++;b.push(c);a.b++}W.prototype.pb=function(a,b,c){tb(this,a.subarray(b,c))};W.prototype.writeSerializedMessage=W.prototype.pb;\nW.prototype.Pb=function(a,b,c){null!=a&&null!=b&&null!=c&&this.pb(a,b,c)};W.prototype.maybeWriteSerializedMessage=W.prototype.Pb;W.prototype.reset=function(){this.c=[];this.a.end();this.b=0;this.h=[]};W.prototype.reset=W.prototype.reset;W.prototype.ab=function(){n(0==this.h.length);for(var a=new Uint8Array(this.b+this.a.length()),b=this.c,c=b.length,d=0,f=0;fb),vb(this,a,b))};W.prototype.writeInt32=W.prototype.S;\nW.prototype.ob=function(a,b){null!=b&&(b=parseInt(b,10),n(-2147483648<=b&&2147483648>b),vb(this,a,b))};W.prototype.writeInt32String=W.prototype.ob;W.prototype.T=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),null!=b&&(Y(this,a,0),this.a.ua(b)))};W.prototype.writeInt64=W.prototype.T;W.prototype.ka=function(a,b){null!=b&&(b=sb(b),Y(this,a,0),this.a.l(b.lo,b.hi))};W.prototype.writeInt64String=W.prototype.ka;\nW.prototype.s=function(a,b){null!=b&&(n(0<=b&&4294967296>b),ub(this,a,b))};W.prototype.writeUint32=W.prototype.s;W.prototype.ub=function(a,b){null!=b&&(b=parseInt(b,10),n(0<=b&&4294967296>b),ub(this,a,b))};W.prototype.writeUint32String=W.prototype.ub;W.prototype.V=function(a,b){null!=b&&(n(0<=b&&1.8446744073709552E19>b),null!=b&&(Y(this,a,0),this.a.va(b)))};W.prototype.writeUint64=W.prototype.V;W.prototype.vb=function(a,b){null!=b&&(b=U(b),Y(this,a,0),this.a.l(b.lo,b.hi))};\nW.prototype.writeUint64String=W.prototype.vb;W.prototype.rb=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),null!=b&&(Y(this,a,0),this.a.wa(b)))};W.prototype.writeSint32=W.prototype.rb;W.prototype.sb=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),null!=b&&(Y(this,a,0),this.a.xa(b)))};W.prototype.writeSint64=W.prototype.sb;W.prototype.$d=function(a,b){null!=b&&null!=b&&(Y(this,a,0),this.a.W(b))};W.prototype.writeSintHash64=W.prototype.$d;\nW.prototype.Zd=function(a,b){null!=b&&null!=b&&(Y(this,a,0),this.a.Ta(b))};W.prototype.writeSint64String=W.prototype.Zd;W.prototype.Pa=function(a,b){null!=b&&(n(0<=b&&4294967296>b),Y(this,a,5),this.a.s(b))};W.prototype.writeFixed32=W.prototype.Pa;W.prototype.Qa=function(a,b){null!=b&&(n(0<=b&&1.8446744073709552E19>b),Y(this,a,1),this.a.V(b))};W.prototype.writeFixed64=W.prototype.Qa;W.prototype.nb=function(a,b){null!=b&&(b=U(b),Y(this,a,1),this.a.A(b.lo,b.hi))};W.prototype.writeFixed64String=W.prototype.nb;\nW.prototype.Ra=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),Y(this,a,5),this.a.S(b))};W.prototype.writeSfixed32=W.prototype.Ra;W.prototype.Sa=function(a,b){null!=b&&(n(-9223372036854775808<=b&&0x7fffffffffffffff>b),Y(this,a,1),this.a.T(b))};W.prototype.writeSfixed64=W.prototype.Sa;W.prototype.qb=function(a,b){null!=b&&(b=sb(b),Y(this,a,1),this.a.A(b.lo,b.hi))};W.prototype.writeSfixed64String=W.prototype.qb;W.prototype.L=function(a,b){null!=b&&(Y(this,a,5),this.a.L(b))};\nW.prototype.writeFloat=W.prototype.L;W.prototype.J=function(a,b){null!=b&&(Y(this,a,1),this.a.J(b))};W.prototype.writeDouble=W.prototype.J;W.prototype.I=function(a,b){null!=b&&(n(\"boolean\"===typeof b||\"number\"===typeof b),Y(this,a,0),this.a.I(b))};W.prototype.writeBool=W.prototype.I;W.prototype.R=function(a,b){null!=b&&(n(-2147483648<=b&&2147483648>b),Y(this,a,0),this.a.M(b))};W.prototype.writeEnum=W.prototype.R;W.prototype.U=function(a,b){null!=b&&(a=X(this,a),this.a.U(b),Z(this,a))};\nW.prototype.writeString=W.prototype.U;W.prototype.ja=function(a,b){null!=b&&(b=Ua(b),Y(this,a,2),this.a.j(b.length),tb(this,b))};W.prototype.writeBytes=W.prototype.ja;W.prototype.Rc=function(a,b,c){null!=b&&(a=X(this,a),c(b,this),Z(this,a))};W.prototype.writeMessage=W.prototype.Rc;W.prototype.Sc=function(a,b,c){null!=b&&(Y(this,1,3),Y(this,2,0),this.a.M(a),a=X(this,3),c(b,this),Z(this,a),Y(this,1,4))};W.prototype.writeMessageSet=W.prototype.Sc;\nW.prototype.Oc=function(a,b,c){null!=b&&(Y(this,a,3),c(b,this),Y(this,a,4))};W.prototype.writeGroup=W.prototype.Oc;W.prototype.K=function(a,b){null!=b&&(n(8==b.length),Y(this,a,1),this.a.K(b))};W.prototype.writeFixedHash64=W.prototype.K;W.prototype.N=function(a,b){null!=b&&(n(8==b.length),Y(this,a,0),this.a.N(b))};W.prototype.writeVarintHash64=W.prototype.N;W.prototype.A=function(a,b,c){Y(this,a,1);this.a.A(b,c)};W.prototype.writeSplitFixed64=W.prototype.A;\nW.prototype.l=function(a,b,c){Y(this,a,0);this.a.l(b,c)};W.prototype.writeSplitVarint64=W.prototype.l;W.prototype.tb=function(a,b,c){Y(this,a,0);var d=this.a;Ja(b,c,function(f,h){d.l(f>>>0,h>>>0)})};W.prototype.writeSplitZigzagVarint64=W.prototype.tb;W.prototype.Ed=function(a,b){if(null!=b)for(var c=0;c>>0,t>>>0)});Z(this,a)}};\nW.prototype.writePackedSplitZigzagVarint64=W.prototype.od;W.prototype.dd=function(a,b){if(null!=b&&b.length){a=X(this,a);for(var c=0;c, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.google.protobuf.Any.prototype.toObject = function(opt_includeInstance) {\n return proto.google.protobuf.Any.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.google.protobuf.Any} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.toObject = function(includeInstance, msg) {\n var f, obj = {\n typeUrl: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n value: msg.getValue_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.google.protobuf.Any;\n return proto.google.protobuf.Any.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.google.protobuf.Any} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTypeUrl(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.google.protobuf.Any.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.google.protobuf.Any} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTypeUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getValue_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string type_url = 1;\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getTypeUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setTypeUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes value = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.google.protobuf.Any.prototype.getValue = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes value = 2;\n * This is a type-conversion wrapper around `getValue()`\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getValue_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getValue()));\n};\n\n\n/**\n * optional bytes value = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getValue()`\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.getValue_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getValue()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setValue = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.google.protobuf);\n/* This code will be inserted into generated code for\n * google/protobuf/any.proto. */\n\n/**\n * Returns the type name contained in this instance, if any.\n * @return {string|undefined}\n */\nproto.google.protobuf.Any.prototype.getTypeName = function() {\n return this.getTypeUrl().split('/').pop();\n};\n\n\n/**\n * Packs the given message instance into this Any.\n * For binary format usage only.\n * @param {!Uint8Array} serialized The serialized data to pack.\n * @param {string} name The type name of this message object.\n * @param {string=} opt_typeUrlPrefix the type URL prefix.\n */\nproto.google.protobuf.Any.prototype.pack = function(serialized, name,\n opt_typeUrlPrefix) {\n if (!opt_typeUrlPrefix) {\n opt_typeUrlPrefix = 'type.googleapis.com/';\n }\n\n if (opt_typeUrlPrefix.substr(-1) != '/') {\n this.setTypeUrl(opt_typeUrlPrefix + '/' + name);\n } else {\n this.setTypeUrl(opt_typeUrlPrefix + name);\n }\n\n this.setValue(serialized);\n};\n\n\n/**\n * @template T\n * Unpacks this Any into the given message object.\n * @param {function(Uint8Array):T} deserialize Function that will deserialize\n * the binary data properly.\n * @param {string} name The expected type name of this message object.\n * @return {?T} If the name matched the expected name, returns the deserialized\n * object, otherwise returns null.\n */\nproto.google.protobuf.Any.prototype.unpack = function(deserialize, name) {\n if (this.getTypeName() == name) {\n return deserialize(this.getValue_asU8());\n } else {\n return null;\n }\n};\n", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar R = 0\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\nvar NUMERICIDENTIFIER = R++\nsrc[NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\nvar NUMERICIDENTIFIERLOOSE = R++\nsrc[NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\nvar NONNUMERICIDENTIFIER = R++\nsrc[NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\nvar MAINVERSION = R++\nsrc[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIER] + ')'\n\nvar MAINVERSIONLOOSE = R++\nsrc[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\nvar PRERELEASEIDENTIFIER = R++\nsrc[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +\n '|' + src[NONNUMERICIDENTIFIER] + ')'\n\nvar PRERELEASEIDENTIFIERLOOSE = R++\nsrc[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +\n '|' + src[NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\nvar PRERELEASE = R++\nsrc[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIER] + ')*))'\n\nvar PRERELEASELOOSE = R++\nsrc[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\nvar BUILDIDENTIFIER = R++\nsrc[BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\nvar BUILD = R++\nsrc[BUILD] = '(?:\\\\+(' + src[BUILDIDENTIFIER] +\n '(?:\\\\.' + src[BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\nvar FULL = R++\nvar FULLPLAIN = 'v?' + src[MAINVERSION] +\n src[PRERELEASE] + '?' +\n src[BUILD] + '?'\n\nsrc[FULL] = '^' + FULLPLAIN + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\nvar LOOSEPLAIN = '[v=\\\\s]*' + src[MAINVERSIONLOOSE] +\n src[PRERELEASELOOSE] + '?' +\n src[BUILD] + '?'\n\nvar LOOSE = R++\nsrc[LOOSE] = '^' + LOOSEPLAIN + '$'\n\nvar GTLT = R++\nsrc[GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\nvar XRANGEIDENTIFIERLOOSE = R++\nsrc[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\nvar XRANGEIDENTIFIER = R++\nsrc[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\nvar XRANGEPLAIN = R++\nsrc[XRANGEPLAIN] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIER] + ')' +\n '(?:' + src[PRERELEASE] + ')?' +\n src[BUILD] + '?' +\n ')?)?'\n\nvar XRANGEPLAINLOOSE = R++\nsrc[XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[PRERELEASELOOSE] + ')?' +\n src[BUILD] + '?' +\n ')?)?'\n\nvar XRANGE = R++\nsrc[XRANGE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAIN] + '$'\nvar XRANGELOOSE = R++\nsrc[XRANGELOOSE] = '^' + src[GTLT] + '\\\\s*' + src[XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\nvar COERCE = R++\nsrc[COERCE] = '(?:^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\nvar LONETILDE = R++\nsrc[LONETILDE] = '(?:~>?)'\n\nvar TILDETRIM = R++\nsrc[TILDETRIM] = '(\\\\s*)' + src[LONETILDE] + '\\\\s+'\nre[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')\nsafeRe[TILDETRIM] = new RegExp(makeSafeRe(src[TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\nvar TILDE = R++\nsrc[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'\nvar TILDELOOSE = R++\nsrc[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\nvar LONECARET = R++\nsrc[LONECARET] = '(?:\\\\^)'\n\nvar CARETTRIM = R++\nsrc[CARETTRIM] = '(\\\\s*)' + src[LONECARET] + '\\\\s+'\nre[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')\nsafeRe[CARETTRIM] = new RegExp(makeSafeRe(src[CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\nvar CARET = R++\nsrc[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'\nvar CARETLOOSE = R++\nsrc[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\nvar COMPARATORLOOSE = R++\nsrc[COMPARATORLOOSE] = '^' + src[GTLT] + '\\\\s*(' + LOOSEPLAIN + ')$|^$'\nvar COMPARATOR = R++\nsrc[COMPARATOR] = '^' + src[GTLT] + '\\\\s*(' + FULLPLAIN + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\nvar COMPARATORTRIM = R++\nsrc[COMPARATORTRIM] = '(\\\\s*)' + src[GTLT] +\n '\\\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')\nsafeRe[COMPARATORTRIM] = new RegExp(makeSafeRe(src[COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\nvar HYPHENRANGE = R++\nsrc[HYPHENRANGE] = '^\\\\s*(' + src[XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\nvar HYPHENRANGELOOSE = R++\nsrc[HYPHENRANGELOOSE] = '^\\\\s*(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\nvar STAR = R++\nsrc[STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[LOOSE] : safeRe[FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[LOOSE] : safeRe[FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compare(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.rcompare(a, b, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1]\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n version = new SemVer(version, this.options)\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[HYPHENRANGELOOSE] : safeRe[HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[CARETTRIM], caretTrimReplace)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n var compRe = loose ? safeRe[COMPARATORLOOSE] : safeRe[COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return thisComparators.every(function (thisComparator) {\n return range.set.some(function (rangeComparators) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n })\n })\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[TILDELOOSE] : safeRe[TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[CARETLOOSE] : safeRe[CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[XRANGELOOSE] : safeRe[XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p\n } else if (xm) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[STAR], '')\n}\n\n// This function is passed to string.replace(safeRe[HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n version = new SemVer(version, this.options)\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n var match = version.match(safeRe[COERCE])\n\n if (match == null) {\n return null\n }\n\n return parse(match[1] +\n '.' + (match[2] || '0') +\n '.' + (match[3] || '0'))\n}\n", "\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\nvar _isTime = _interopRequireDefault(require(\"./lib/isTime\"));\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\nvar _isAbaRouting = _interopRequireDefault(require(\"./lib/isAbaRouting\"));\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./lib/isLuhnNumber\"));\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\nvar _isISO = require(\"./lib/isISO6346\");\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO6391\"));\nvar _isISO3 = _interopRequireDefault(require(\"./lib/isISO8601\"));\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\nvar _isISO4 = _interopRequireDefault(require(\"./lib/isISO4217\"));\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\nvar _isMailtoURI = _interopRequireDefault(require(\"./lib/isMailtoURI\"));\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar version = '13.12.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAbaRouting: _isAbaRouting.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isIMEI: _isIMEI.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isLuhnNumber: _isLuhnNumber.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO6346: _isISO.isISO6346,\n isFreightContainerID: _isISO.isFreightContainerID,\n isISO6391: _isISO2.default,\n isISO8601: _isISO3.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO4.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMailtoURI: _isMailtoURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default,\n isStrongPassword: _isStrongPassword.default,\n isTaxID: _isTaxID.default,\n isDate: _isDate.default,\n isTime: _isTime.default,\n isLicensePlate: _isLicensePlate.default,\n isVAT: _isVAT.default,\n ibanLocales: _isIBAN.locales\n};\nvar _default = exports.default = validator;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.farsiLocales = exports.englishLocales = exports.dotDecimal = exports.decimal = exports.commaDecimal = exports.bengaliLocales = exports.arabicLocales = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = exports.alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'kk-KZ': /^[А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ko-KR': /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nvar alphanumeric = exports.alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'kk-KZ': /^[0-9А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ko-KR': /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nvar decimal = exports.decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nvar englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n}\n\n// Source: http://www.localeplanet.com/java/\nvar arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\nvar farsiLocales = exports.farsiLocales = ['IR', 'AF'];\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n}\nvar bengaliLocales = exports.bengaliLocales = ['BD', 'IN'];\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n alpha[_locale3] = alpha.bn;\n alphanumeric[_locale3] = alphanumeric.bn;\n decimal[_locale3] = decimal['en-US'];\n}\n\n// Source: https://en.wikipedia.org/wiki/Decimal_mark\nvar dotDecimal = exports.dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nvar commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'eo', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'kk-KZ', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT'];\n\n// see #862\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];\n\n// see #1455\nalpha['fa-AF'] = alpha.fa;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>').replace(/\\//g, '/').replace(/\\\\/g, '\').replace(/`/g, '`');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAbaRouting;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// http://www.brainjar.com/js/validation/\n// https://www.aba.com/news-research/research-analysis/routing-number-policy-procedures\n// series reserved for future use are excluded\nvar isRoutingReg = /^(?!(1[3-9])|(20)|(3[3-9])|(4[0-9])|(5[0-9])|(60)|(7[3-9])|(8[1-9])|(9[0-2])|(9[3-9]))[0-9]{9}$/;\nfunction isAbaRouting(str) {\n (0, _assertString.default)(str);\n if (!isRoutingReg.test(str)) return false;\n var checkSumVal = 0;\n for (var i = 0; i < str.length; i++) {\n if (i % 3 === 0) checkSumVal += str[i] * 3;else if (i % 3 === 1) checkSumVal += str[i] * 7;else checkSumVal += str[i] * 1;\n }\n return checkSumVal % 10 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAfter(date, options) {\n // For backwards compatibility:\n // isAfter(str [, date]), i.e. `options` could be used as argument for the legacy `date`\n var comparisonDate = (options === null || options === void 0 ? void 0 : options.comparisonDate) || options || Date().toString();\n var comparison = (0, _toDate.default)(comparisonDate);\n var original = (0, _toDate.default)(date);\n return !!(original && comparison && original > comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alpha);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alphanumeric);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n\n // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n var countryCode = str.slice(4, 6).toUpperCase();\n if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== 'XK') {\n return false;\n }\n return isBICReg.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar base32 = /^[A-Z2-7]+=*$/;\nvar crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;\nvar defaultBase32Options = {\n crockford: false\n};\nfunction isBase32(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase32Options);\n if (options.crockford) {\n return crockfordBase32.test(str);\n }\n var len = str.length;\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n if (base58Reg.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n return strictBooleans.includes(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return bech32.test(str) || base58.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar cards = {\n amex: /^3[47][0-9]{13}$/,\n dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n // /^[25][1-7][0-9]{14}$/;\n unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,\n visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/\n};\nvar allCards = function () {\n var tmpCardsArray = [];\n for (var cardProvider in cards) {\n // istanbul ignore else\n if (cards.hasOwnProperty(cardProvider)) {\n tmpCardsArray.push(cards[cardProvider]);\n }\n }\n return tmpCardsArray;\n}();\nfunction isCreditCard(card) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(card);\n var provider = options.provider;\n var sanitized = card.replace(/[- ]+/g, '');\n if (provider && provider.toLowerCase() in cards) {\n // specific provider in the list\n if (!cards[provider.toLowerCase()].test(sanitized)) {\n return false;\n }\n } else if (provider && !(provider.toLowerCase() in cards)) {\n /* specific provider not in the list */\n throw new Error(\"\".concat(provider, \" is not a valid credit card provider.\"));\n } else if (!allCards.some(function (cardProvider) {\n return cardProvider.test(sanitized);\n })) {\n // no specific provider\n return false;\n }\n return (0, _isLuhnNumber.default)(card);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : '');\n\n // default is negative sign before symbol, but there are two other options (besides parens)\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n }\n\n // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n }\n\n // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+\\._]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n if (data.length < 2) {\n return false;\n }\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n if (schemeAndMediaType.slice(0, 5) !== 'data:') {\n return false;\n }\n var mediaType = schemeAndMediaType.slice(5);\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n for (var i = 0; i < attributes.length; i++) {\n if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {\n return false;\n }\n }\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * Also EAN/UCC-14 is used for Grouping of individual\n * trade items above unit level(Intermediate, Carton or Pallet).\n * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n * Reference: https://www.gtin.info/\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14\n * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),\n * with exact numberic matching of 8 or 13 or 14 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar LENGTH_EAN_14 = 14;\nvar validEanRegex = /^(\\d{8}|\\d{13}|\\d{14})$/;\n\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n return index % 2 === 0 ? 1 : 3;\n}\n\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13/EAN-14 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar eth = /^(0x)[0-9a-f]{40}$/i;\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n return false;\n }\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\nvar locales = exports.locales = Object.keys(_alpha.decimal);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar fullWidth = exports.fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hslComma = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}(,((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?))?\\)$/i;\nvar hslSpace = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(\\s(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s?(\\/\\s((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s?)?\\)$/i;\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n\n // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n return hslSpace.test(strippedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar halfWidth = exports.halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n DZ: /^(DZ\\d{24})$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MA: /^(MA[0-9]{26})$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n\n/**\n * Check if the country codes passed are valid using the\n * ibanRegexThroughCountryCode as a reference\n *\n * @param {array} countryCodeArray\n * @return {boolean}\n */\n\nfunction hasOnlyValidCountryCodes(countryCodeArray) {\n var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function (countryCode) {\n return !(countryCode in ibanRegexThroughCountryCode);\n });\n if (countryCodeArrayFilteredWithObjectIbanCode.length > 0) {\n return false;\n }\n return true;\n}\n\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @param {object} options - object to pass the countries to be either whitelisted or blacklisted\n * @return {boolean}\n */\nfunction hasValidIbanFormat(str, options) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n var isoCountryCodeInIbanRegexCodeObject = (isoCountryCode in ibanRegexThroughCountryCode);\n if (options.whitelist) {\n if (!hasOnlyValidCountryCodes(options.whitelist)) {\n return false;\n }\n var isoCountryCodeInWhiteList = options.whitelist.includes(isoCountryCode);\n if (!isoCountryCodeInWhiteList) {\n return false;\n }\n }\n if (options.blacklist) {\n var isoCountryCodeInBlackList = options.blacklist.includes(isoCountryCode);\n if (isoCountryCodeInBlackList) {\n return false;\n }\n }\n return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\nfunction isIBAN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str);\n}\nvar locales = exports.locales = Object.keys(ibanRegexThroughCountryCode);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n if (!imeiRegex.test(str)) {\n return false;\n }\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n for (var i = 0; i < l; i++) {\n var digit = str.substring(l - i - 1, l - i);\n var tp = parseInt(digit, 10) * mul;\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n var chk = (10 - sum % 10) % 10;\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/');\n\n // parts[0] -> ip, parts[1] -> subnet\n if (parts.length !== 2) {\n return false;\n }\n if (!subnetMaybe.test(parts[1])) {\n return false;\n }\n\n // Disallow preceding 0 i.e. 01, 02, ...\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n var isValidIP = (0, _isIP.default)(parts[0], version);\n if (!isValidIP) {\n return false;\n }\n\n // Define valid subnet according to IP's version\n var expectedSubnet = null;\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n case '6':\n expectedSubnet = v6Subnet;\n break;\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar possibleIsbn13 = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\nfunction isISBN(isbn, options) {\n (0, _assertString.default)(isbn);\n\n // For backwards compatibility:\n // isISBN(str [, version]), i.e. `options` could be used as argument for the legacy `version`\n var version = String((options === null || options === void 0 ? void 0 : options.version) || options);\n if (!(options !== null && options !== void 0 && options.version || options)) {\n return isISBN(isbn, {\n version: 10\n }) || isISBN(isbn, {\n version: 13\n });\n }\n var sanitizedIsbn = isbn.replace(/[\\s-]+/g, '');\n var checksum = 0;\n if (version === '10') {\n if (!possibleIsbn10.test(sanitizedIsbn)) {\n return false;\n }\n for (var i = 0; i < version - 1; i++) {\n checksum += (i + 1) * sanitizedIsbn.charAt(i);\n }\n if (sanitizedIsbn.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitizedIsbn.charAt(9);\n }\n if (checksum % 11 === 0) {\n return true;\n }\n } else if (version === '13') {\n if (!possibleIsbn13.test(sanitizedIsbn)) {\n return false;\n }\n for (var _i = 0; _i < 12; _i++) {\n checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);\n }\n if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\n// this link details how the check digit is calculated:\n// https://www.isin.org/isin-format/. it is a little bit\n// odd in that it works with digits, not numbers. in order\n// to make only one pass through the ISIN characters, the\n// each alpha character is handled as 2 characters within\n// the loop.\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n if (!isin.test(str)) {\n return false;\n }\n var double = true;\n var sum = 0;\n // convert values\n for (var i = str.length - 2; i >= 0; i--) {\n if (str[i] >= 'A' && str[i] <= 'Z') {\n var value = str[i].charCodeAt(0) - 55;\n var lo = value % 10;\n var hi = Math.trunc(value / 10);\n // letters have two digits, so handle the low order\n // and high order digits separately.\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n if (double) {\n if (digit >= 5) {\n sum += 1 + (digit - 5) * 2;\n } else {\n sum += digit * 2;\n }\n } else {\n sum += digit;\n }\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n if (double) {\n if (_digit >= 5) {\n sum += 1 + (_digit - 5) * 2;\n } else {\n sum += _digit * 2;\n }\n } else {\n sum += _digit;\n }\n double = !double;\n }\n }\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CountryCodes = void 0;\nexports.default = isISO31661Alpha2;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\nvar CountryCodes = exports.CountryCodes = validISO31661Alpha2CountriesCodes;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CurrencyCodes = void 0;\nexports.default = isISO4217;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_4217\nvar validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLE', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\nvar CurrencyCodes = exports.CurrencyCodes = validISO4217CurrencyCodes;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isFreightContainerID = void 0;\nexports.isISO6346 = isISO6346;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_6346\n// according to ISO6346 standard, checksum digit is mandatory for freight container but recommended\n// for other container types (J and Z)\nvar isISO6346Str = /^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/;\nvar isDigit = /^[0-9]$/;\nfunction isISO6346(str) {\n (0, _assertString.default)(str);\n str = str.toUpperCase();\n if (!isISO6346Str.test(str)) return false;\n if (str.length === 11) {\n var sum = 0;\n for (var i = 0; i < str.length - 1; i++) {\n if (!isDigit.test(str[i])) {\n var convertedCode = void 0;\n var letterCode = str.charCodeAt(i) - 55;\n if (letterCode < 11) convertedCode = letterCode;else if (letterCode >= 11 && letterCode <= 20) convertedCode = 12 + letterCode % 11;else if (letterCode >= 21 && letterCode <= 30) convertedCode = 23 + letterCode % 21;else convertedCode = 34 + letterCode % 31;\n sum += convertedCode * Math.pow(2, i);\n } else sum += str[i] * Math.pow(2, i);\n }\n var checkSumDigit = sum % 11;\n return Number(str[str.length - 1]) === checkSumDigit;\n }\n return true;\n}\nvar isFreightContainerID = exports.isFreightContainerID = isISO6346;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO6391;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isISO6391Set = new Set(['aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw', 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv', 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd', 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu']);\nfunction isISO6391(str) {\n (0, _assertString.default)(str);\n return isISO6391Set.has(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n// same as above, except with a strict 'T' separator between date and time\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]);\n // if is leap year\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day;\n\n // create a date object and compare\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n return true;\n};\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n if (!testIssn.test(str)) {\n return false;\n }\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n return checksum % 11 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n PL: function PL(str) {\n (0, _assertString.default)(str);\n var weightOfDigits = {\n 1: 1,\n 2: 3,\n 3: 7,\n 4: 9,\n 5: 1,\n 6: 3,\n 7: 7,\n 8: 9,\n 9: 1,\n 10: 3,\n 11: 0\n };\n if (str != null && str.length === 11 && (0, _isInt.default)(str, {\n allow_leading_zeroes: true\n })) {\n var digits = str.split('').slice(0, -1);\n var sum = digits.reduce(function (acc, digit, index) {\n return acc + Number(digit) * weightOfDigits[index + 1];\n }, 0);\n var modulo = sum % 10;\n var lastDigit = Number(str.charAt(str.length - 1));\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\n }\n return false;\n },\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n\n // sanitize user input\n var sanitized = str.trim().toUpperCase();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n // validate the control digit\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n FI: function FI(str) {\n // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated\n (0, _assertString.default)(str);\n if (str.length !== 11) {\n return false;\n }\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\n var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';\n var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);\n var remainder = idAsNumber % 31;\n var checkDigit = checkDigits[remainder];\n return checkDigit === str.slice(10, 11);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/;\n\n // multiplication table\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n\n // permutation table\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IR: function IR(str) {\n if (!str.match(/^\\d{10}$/)) return false;\n str = \"0000\".concat(str).slice(str.length - 6);\n if (parseInt(str.slice(3, 9), 10) === 0) return false;\n var lastNumber = parseInt(str.slice(9, 10), 10);\n var sum = 0;\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);\n }\n sum %= 11;\n return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n return str.search(/C[A-Z]\\d{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false;\n\n // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n TH: function TH(str) {\n if (!str.match(/^[1-8]\\d{12}$/)) return false;\n\n // validate check digit\n var sum = 0;\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\n return str[12] === ((11 - sum % 11) % 10).toString();\n },\n LK: function LK(str) {\n var old_nic = /^[1-9]\\d{8}[vx]$/i;\n var new_nic = /^[1-9]\\d{11}$/i;\n if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;\n return false;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var id = sanitized;\n var sum = 0,\n incNum;\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n return sum % 10 === 0;\n },\n 'ar-LY': function arLY(str) {\n // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2\n var NIN = /^(1|2)\\d{11}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!NIN.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11',\n // 北京\n '12',\n // 天津\n '13',\n // 河北\n '14',\n // 山西\n '15',\n // 内蒙古\n '21',\n // 辽宁\n '22',\n // 吉林\n '23',\n // 黑龙江\n '31',\n // 上海\n '32',\n // 江苏\n '33',\n // 浙江\n '34',\n // 安徽\n '35',\n // 福建\n '36',\n // 江西\n '37',\n // 山东\n '41',\n // 河南\n '42',\n // 湖北\n '43',\n // 湖南\n '44',\n // 广东\n '45',\n // 广西\n '46',\n // 海南\n '50',\n // 重庆\n '51',\n // 四川\n '52',\n // 贵州\n '53',\n // 云南\n '54',\n // 西藏\n '61',\n // 陕西\n '62',\n // 甘肃\n '63',\n // 青海\n '64',\n // 宁夏\n '65',\n // 新疆\n '71',\n // 台湾\n '81',\n // 香港\n '82',\n // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n if (xdata > new Date()) {\n return false;\n // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n return false;\n };\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n var mod = power % 11;\n return parityBit[mod];\n };\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n return check18IdCardNo(idCardNo);\n };\n return checkIdCardNo(str);\n },\n 'zh-HK': function zhHK(str) {\n // sanitize user input\n str = str.trim();\n\n // HKID number starts with 1 or 2 letters, followed by 6 digits,\n // then a checksum contained in square / round brackets or nothing\n var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\\([0-9A]\\))|(\\[[0-9A]\\])|([0-9A]))$/;\n var regexIsDigit = /^[0-9]$/;\n\n // convert the user input to all uppercase and apply regex\n str = str.toUpperCase();\n if (!regexHKID.test(str)) return false;\n str = str.replace(/\\[|\\]|\\(|\\)/g, '');\n if (str.length === 8) str = \"3\".concat(str);\n var checkSumVal = 0;\n for (var i = 0; i <= 7; i++) {\n var convertedChar = void 0;\n if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;else convertedChar = str[i];\n checkSumVal += convertedChar * (9 - i);\n }\n checkSumVal %= 11;\n var checkSumConverted;\n if (checkSumVal === 0) checkSumConverted = '0';else if (checkSumVal === 1) checkSumConverted = 'A';else checkSumConverted = String(11 - checkSumVal);\n if (checkSumConverted === str[str.length - 1]) return true;\n return false;\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes;\n\n // Check min/max/lt/gt\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar default_json_options = {\n allow_primitives: false\n};\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {/* ignore */}\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n if (len !== 3) {\n return false;\n }\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n return lat.test(pair[0]) && long.test(pair[1]);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n var presentationSequences = str.match(/(\\uFE0F|\\uFE0E)/g) || [];\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - presentationSequences.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n 'cs-CZ': function csCZ(str) {\n return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);\n },\n 'de-DE': function deDE(str) {\n return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\\d{1,4})|([A-Z]{2}[- ]?\\d{1,3})))[- ]?(E|H)?$/.test(str);\n },\n 'de-LI': function deLI(str) {\n return /^FL[- ]?\\d{1,5}[UZ]?$/.test(str);\n },\n 'en-IN': function enIN(str) {\n return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str);\n },\n 'es-AR': function esAR(str) {\n return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str);\n },\n 'fi-FI': function fiFI(str) {\n return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);\n },\n 'hu-HU': function huHU(str) {\n return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\\d{3})|(M\\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \\d{2}-\\d{2})|(CD \\d{3}-\\d{3})|(C-(C|X) \\d{4})|(X-(A|B|C) \\d{4})|(([EPVZ]-\\d{5}))|(S A[A-Z]{2} \\d{2})|(SP \\d{2}-\\d{2}))$/.test(str);\n },\n 'pt-BR': function ptBR(str) {\n return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);\n },\n 'pt-PT': function ptPT(str) {\n return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);\n },\n 'sq-AL': function sqAL(str) {\n return /^[A-Z]{2}[- ]?((\\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\\d{3}))$/.test(str);\n },\n 'sv-SE': function svSE(str) {\n return /^[A-HJ-PR-UW-Z]{3} ?[\\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim());\n },\n 'en-PK': function enPK(str) {\n return /(^[A-Z]{2}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\\s|-){0,1})[0-9]{4}((\\s|-)[0-9]{2}){0,1}$)/.test(str.trim());\n }\n};\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n /* eslint guard-for-in: 0 */\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n = 3ALPHA ; selected ISO 639 codes\n *2(\"-\" 3ALPHA) ; permanently reserved\n */\nvar extlang = '([A-Za-z]{3}(-[A-Za-z]{3}){0,2})';\n\n/*\n = 2*3ALPHA ; shortest ISO 639 code\n [\"-\" extlang] ; sometimes followed by\n ; extended language subtags\n / 4ALPHA ; or reserved for future use\n / 5*8ALPHA ; or registered language subtag\n */\nvar language = \"(([a-zA-Z]{2,3}(-\".concat(extlang, \")?)|([a-zA-Z]{5,8}))\");\n\n/*\n = 4ALPHA ; ISO 15924 code\n */\nvar script = '([A-Za-z]{4})';\n\n/*\n = 2ALPHA ; ISO 3166-1 code\n / 3DIGIT ; UN M.49 code\n */\nvar region = '([A-Za-z]{2}|\\\\d{3})';\n\n/*\n = 5*8alphanum ; registered variants\n / (DIGIT 3alphanum)\n */\nvar variant = '([A-Za-z0-9]{5,8}|(\\\\d[A-Z-a-z0-9]{3}))';\n\n/*\n = DIGIT ; 0 - 9\n / %x41-57 ; A - W\n / %x59-5A ; Y - Z\n / %x61-77 ; a - w\n / %x79-7A ; y - z\n */\nvar singleton = '(\\\\d|[A-W]|[Y-Z]|[a-w]|[y-z])';\n\n/*\n = singleton 1*(\"-\" (2*8alphanum))\n ; Single alphanumerics\n ; \"x\" reserved for private use\n */\nvar extension = \"(\".concat(singleton, \"(-[A-Za-z0-9]{2,8})+)\");\n\n/*\n = \"x\" 1*(\"-\" (1*8alphanum))\n */\nvar privateuse = '(x(-[A-Za-z0-9]{1,8})+)';\n\n// irregular tags do not match the 'langtag' production and would not\n// otherwise be considered 'well-formed'. These tags are all valid, but\n// most are deprecated in favor of more modern subtags or subtag combination\n\nvar irregular = '((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|' + '(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|' + '(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))';\n\n// regular tags match the 'langtag' production, but their subtags are not\n// extended language or variant subtags: their meaning is defined by\n// their registration and all of these are deprecated in favor of a more\n// modern subtag or sequence of subtags\n\nvar regular = '((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|' + '(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))';\n\n/*\n = irregular ; non-redundant tags registered\n / regular ; during the RFC 3066 era\n\n */\nvar grandfathered = \"(\".concat(irregular, \"|\").concat(regular, \")\");\n\n/*\n RFC 5646 defines delimitation of subtags via a hyphen:\n\n \"Subtag\" refers to a specific section of a tag, delimited by a\n hyphen, such as the subtags 'zh', 'Hant', and 'CN' in the tag \"zh-\n Hant-CN\". Examples of subtags in this document are enclosed in\n single quotes ('Hant')\n\n However, we need to add \"_\" to maintain the existing behaviour.\n */\nvar delimiter = '(-|_)';\n\n/*\n = language\n [\"-\" script]\n [\"-\" region]\n *(\"-\" variant)\n *(\"-\" extension)\n [\"-\" privateuse]\n */\nvar langtag = \"\".concat(language, \"(\").concat(delimiter).concat(script, \")?(\").concat(delimiter).concat(region, \")?(\").concat(delimiter).concat(variant, \")*(\").concat(delimiter).concat(extension, \")*(\").concat(delimiter).concat(privateuse, \")?\");\n\n/*\n Regex implementation based on BCP RFC 5646\n Tags for Identifying Languages\n https://www.rfc-editor.org/rfc/rfc5646.html\n */\nvar languageTagRegex = new RegExp(\"(^\".concat(privateuse, \"$)|(^\").concat(grandfathered, \"$)|(^\").concat(langtag, \"$)\"));\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n return languageTagRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLuhnNumber(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n return !!(sum % 10 === 0 ? sanitized : false);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){4}([0-9a-fA-F]{2})$/;\nvar macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/;\nvar macAddress48WithDots = /^([0-9a-fA-F]{4}\\.){2}([0-9a-fA-F]{4})$/;\nvar macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){6}([0-9a-fA-F]{2})$/;\nvar macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/;\nvar macAddress64WithDots = /^([0-9a-fA-F]{4}\\.){3}([0-9a-fA-F]{4})$/;\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n if (options !== null && options !== void 0 && options.eui) {\n options.eui = String(options.eui);\n }\n /**\n * @deprecated `no_colons` TODO: remove it in the next major\n */\n if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) {\n if (options.eui === '48') {\n return macAddress48NoSeparators.test(str);\n }\n if (options.eui === '64') {\n return macAddress64NoSeparators.test(str);\n }\n return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '48') {\n return macAddress48.test(str) || macAddress48WithDots.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '64') {\n return macAddress64.test(str) || macAddress64WithDots.test(str);\n }\n return isMACAddress(str, {\n eui: '48'\n }) || isMACAddress(str, {\n eui: '64'\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar md5 = /^[a-f0-9]{32}$/;\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar magnetURIComponent = /(?:^magnet:\\?|[^?&]&)xt(?:\\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n if (url.indexOf('magnet:?') !== 0) {\n return false;\n }\n return magnetURIComponent.test(url);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMailtoURI;\nvar _trim = _interopRequireDefault(require(\"./trim\"));\nvar _isEmail = _interopRequireDefault(require(\"./isEmail\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction parseMailtoQueryString(queryString) {\n var allowedParams = new Set(['subject', 'body', 'cc', 'bcc']),\n query = {\n cc: '',\n bcc: ''\n };\n var isParseFailed = false;\n var queryParams = queryString.split('&');\n if (queryParams.length > 4) {\n return false;\n }\n var _iterator = _createForOfIteratorHelper(queryParams),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var q = _step.value;\n var _q$split = q.split('='),\n _q$split2 = _slicedToArray(_q$split, 2),\n key = _q$split2[0],\n value = _q$split2[1];\n\n // checked for invalid and duplicated query params\n if (key && !allowedParams.has(key)) {\n isParseFailed = true;\n break;\n }\n if (value && (key === 'cc' || key === 'bcc')) {\n query[key] = value;\n }\n if (key) {\n allowedParams.delete(key);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return isParseFailed ? false : query;\n}\nfunction isMailtoURI(url, options) {\n (0, _assertString.default)(url);\n if (url.indexOf('mailto:') !== 0) {\n return false;\n }\n var _url$replace$split = url.replace('mailto:', '').split('?'),\n _url$replace$split2 = _slicedToArray(_url$replace$split, 2),\n to = _url$replace$split2[0],\n _url$replace$split2$ = _url$replace$split2[1],\n queryString = _url$replace$split2$ === void 0 ? '' : _url$replace$split2$;\n if (!to && !queryString) {\n return true;\n }\n var query = parseMailtoQueryString(queryString);\n if (!query) {\n return false;\n }\n return \"\".concat(to, \",\").concat(query.cc, \",\").concat(query.bcc).split(',').every(function (email) {\n email = (0, _trim.default)(email, ' ');\n if (email) {\n return (0, _isEmail.default)(email, options);\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+_]{1,100}$/i; // eslint-disable-line max-len\n\n// Handle \"charset\" in \"text/*\"\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n\n// Handle \"boundary\" in \"multipart/*\"\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)(33|4[134]|55|77|88|9[13-689])\\d{6}$/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)([569]\\d{7}|41\\d{6})$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SD': /^((\\+?249)|0)?(9[012369]|1[012])\\d{7}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(10|5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)1)(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|9[1-9])\\d{5}$/,\n 'el-GR': /^(\\+?30|0)?6(8[5-9]|9(?![26])[0-9])\\d{7}$/,\n 'el-CY': /^(\\+?357?)?(9(9|6)\\d{6})$/,\n 'en-AI': /^(\\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\\d{4}$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-AG': /^(?:\\+1|1)268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}$))/,\n 'en-BS': /^(\\+?1[-\\s]?|0)?\\(?242\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-JM': /^(\\+?876)?\\d{7}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'fr-CF': /^(\\+?236| ?)(70|75|77|72|21|22)\\d{6}$/,\n 'en-SS': /^(\\+?211|0)(9[1257])\\d{7}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-KN': /^(?:\\+1|1)869(?:46\\d|48[89]|55[6-8]|66\\d|76[02-7])\\d{4}$/,\n 'en-LS': /^(\\+?266)(22|28|57|58|59|27|52)\\d{6}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-MW': /^(\\+?265|0)(((77|88|31|99|98|21)\\d{7})|(((111)|1)\\d{6})|(32000\\d{4}))$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PG': /^(\\+?675|0)?(7\\d|8[18])\\d{6}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8|3|2]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-NI': /^(\\+?505)\\d{7,8}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4[0-6]|50)\\s?(\\d\\s?){4,8}$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-BJ': /^(\\+229)\\d{8}$/,\n 'fr-CD': /^(\\+?243|0)?(8|9)\\d{8}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'fr-WF': /^(\\+681)?\\d{6}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'ir-IR': /^(\\+98|0)?9\\d{9}$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(79\\d{7}|5\\d{8})$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'ky-KG': /^(\\+?7\\s?\\+?7|0)\\s?\\d{2}\\s?\\d{3}\\s?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'mg-MG': /^((\\+?261|0)(2|3)\\d)?\\d{7}$/,\n 'mn-MN': /^(\\+|00|011)?976(77|81|88|91|94|95|96|99)\\d{6}$/,\n 'my-MM': /^(\\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,\n 'ms-MY': /^(\\+?60|0)1(([0145](-|\\s)?\\d{7,8})|([236-9](-|\\s)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nl-AW': /^(\\+)?297(56|59|64|73|74|99)\\d{5}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?([5-8]\\d|45) ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[1-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-MD': /^(\\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\\d{6}$/,\n 'ro-RO': /^(\\+?40|0)\\s?7\\d{2}(\\/|\\s|\\.|-)?\\d{3}(\\s|\\.|-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'so-SO': /^(\\+?252|0)((6[0-9])\\d{7}|(7[1-9])\\d{7})$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/,\n 'ar-YE': /^(((\\+|00)9677|0?7)[0137]\\d{7}|((\\+|00)967|0)[1-7]\\d{6})$/,\n 'ar-EH': /^(\\+?212|0)[\\s\\-]?(5288|5289)[\\s\\-]?\\d{5}$/,\n 'fa-AF': /^(\\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\\d{7})$/\n};\n/* eslint-enable max-len */\n\n// aliases\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str);\n // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(phones);", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar numericNoSymbols = /^[0-9]+$/;\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar octal = /^(0o)?[0-7]+$/i;\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n AZ: /^[A-Z]{1}\\d{8}$/,\n // AZERBAIJAN\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JM: /^[Aa]\\d{7}$/,\n // JAMAICA\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n KZ: /^[a-zA-Z]\\d{7}$/,\n // KAZAKHSTAN\n LI: /^[a-zA-Z]\\d{5}$/,\n // LIECHTENSTEIN\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n MX: /^\\d{10,11}$/,\n // MEXICO\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\\d{6}$/,\n // NEW ZEALAND\n PH: /^([A-Z](\\d{6}|\\d{7}[A-Z]))|([A-Z]{2}(\\d{6}|\\d{7}))$/,\n // PHILIPPINES\n PK: /^[A-Z]{2}\\d{7}$/,\n // PAKISTAN\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVENIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TH: /^[A-Z]{1,2}\\d{6,7}$/,\n // THAILAND\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/,\n // UNITED STATES\n ZA: /^[TAMD]\\d{8}$/ // SOUTH AFRICA\n};\n\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n allow_leading_zeroes: false,\n min: 0,\n max: 65535\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BA: /^([7-8]\\d{4}$)/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /^2[1-4]\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /^(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MG: threeDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^[1-9]\\d{3}\\s?(?!sa|sd|ss)[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = exports.locales = Object.keys(patterns);\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\n\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"^\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source, \"$\"));\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)$/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar upperCaseRegex = /^[A-Z]$/;\nvar lowerCaseRegex = /^[a-z]$/;\nvar numberRegex = /^[0-9]$/;\nvar symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\\\ ]$/;\nvar defaultOptions = {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 1,\n minNumbers: 1,\n minSymbols: 1,\n returnScore: false,\n pointsPerUnique: 1,\n pointsPerRepeat: 0.5,\n pointsForContainingLower: 10,\n pointsForContainingUpper: 10,\n pointsForContainingNumber: 10,\n pointsForContainingSymbol: 10\n};\n\n/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n\n/* Return information about a password */\nfunction analyzePassword(password) {\n var charMap = countChars(password);\n var analysis = {\n length: password.length,\n uniqueChars: Object.keys(charMap).length,\n uppercaseCount: 0,\n lowercaseCount: 0,\n numberCount: 0,\n symbolCount: 0\n };\n Object.keys(charMap).forEach(function (char) {\n /* istanbul ignore else */\n if (upperCaseRegex.test(char)) {\n analysis.uppercaseCount += charMap[char];\n } else if (lowerCaseRegex.test(char)) {\n analysis.lowercaseCount += charMap[char];\n } else if (numberRegex.test(char)) {\n analysis.numberCount += charMap[char];\n } else if (symbolRegex.test(char)) {\n analysis.symbolCount += charMap[char];\n }\n });\n return analysis;\n}\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n return points;\n}\nfunction isStrongPassword(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _assertString.default)(str);\n var analysis = analyzePassword(str);\n options = (0, _merge.default)(options || {}, defaultOptions);\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * TIN Validation\n * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.\n *\n * EU-UK:\n * National TIN validity is calculated using public algorithms as made available by DG TAXUD.\n *\n * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.\n *\n * US:\n * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,\n * is used to identify a business entity.\n *\n * NOTES:\n * - Prefix 47 is being reserved for future use\n * - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.\n *\n * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`\n * for more information.\n */\n\n// Locale functions\n\n/*\n * bg-BG validation function\n * (Edinen graždanski nomer (EGN/ЕГН), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last) digit\n */\nfunction bgBgCheck(tin) {\n // Extract full year, normalize month and check birth date validity\n var century_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 40) {\n month -= 40;\n century_year = \"20\".concat(century_year);\n } else if (month > 20) {\n month -= 20;\n century_year = \"18\".concat(century_year);\n } else {\n century_year = \"19\".concat(century_year);\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Calculate checksum by multiplying digits with fixed values\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\n}\n\n/**\n * Check if an input is a valid Canadian SIN (Social Insurance Number)\n *\n * The Social Insurance Number (SIN) is a 9 digit number that\n * you need to work in Canada or to have access to government programs and benefits.\n *\n * https://en.wikipedia.org/wiki/Social_Insurance_Number\n * https://www.canada.ca/en/employment-social-development/services/sin.html\n * https://www.codercrunch.com/challenge/819302488/sin-validator\n *\n * @param {string} input\n * @return {boolean}\n */\nfunction isCanadianSIN(input) {\n var digitsArray = input.split('');\n var even = digitsArray.filter(function (_, idx) {\n return idx % 2;\n }).map(function (i) {\n return Number(i) * 2;\n }).join('').split('');\n var total = digitsArray.filter(function (_, idx) {\n return !(idx % 2);\n }).concat(even).map(function (i) {\n return Number(i);\n }).reduce(function (acc, cur) {\n return acc + cur;\n });\n return total % 10 === 0;\n}\n\n/*\n * cs-CZ validation function\n * (Rodné číslo (RČ), persons only)\n * Checks if birth date (first six digits) is valid and divisibility by 11\n * Material not in DG TAXUD document sourced from:\n * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`\n * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`\n */\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (tin.length === 10) {\n if (full_year < 54) {\n full_year = \"20\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n } else {\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n if (full_year < 54) {\n full_year = \"19\".concat(full_year);\n } else {\n return false; // No 18XX years seen in any of the resources\n }\n }\n // Add missing zero if needed\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month > 20) {\n // Month-plus-twenty was only introduced in 2004\n if (parseInt(full_year, 10) < 2004) {\n return false;\n }\n month -= 20;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Verify divisibility by 11\n if (tin.length === 10) {\n if (parseInt(tin, 10) % 11 !== 0) {\n // Some numbers up to and including 1985 are still valid if\n // check (last) digit equals 0 and modulo of first 9 digits equals 10\n var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;\n if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {\n if (parseInt(tin.slice(9), 10) !== 0) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\n}\n\n/*\n * de-DE validation function\n * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)\n * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit\n * Partial implementation of spec (same result with both algorithms always)\n */\nfunction deDeCheck(tin) {\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Fill array with strings of number positions\n var occurences = [];\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n }\n\n // Remove digits with one occurence and test for only one duplicate/triplicate\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n }\n\n // In case of triplicate value only two digits are allowed next to each other\n if (occurences[0].length === 3) {\n var trip_locations = occurences[0].split('').map(function (a) {\n return parseInt(a, 10);\n });\n var recurrent = 0; // Amount of neighbour occurences\n for (var _i = 0; _i < trip_locations.length - 1; _i++) {\n if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {\n recurrent += 1;\n }\n }\n if (recurrent === 2) {\n return false;\n }\n }\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * dk-DK validation function\n * (CPR-nummer (personnummer), persons only)\n * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,\n * and calculates check (last) digit\n */\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract year, check if valid for given century digit and add century\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n break;\n default:\n if (year < 37) {\n year = \"20\".concat(year);\n } else if (year > 58) {\n year = \"18\".concat(year);\n } else {\n return false;\n }\n break;\n }\n // Add missing zero if needed\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n }\n // Check date validity\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n if (weight === 1) {\n weight = 7;\n }\n }\n checksum %= 11;\n if (checksum === 1) {\n return false;\n }\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\n}\n\n/*\n * el-CY validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)\n * Verify TIN validity by calculating ASCII value of check (last) character\n */\nfunction elCyCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.slice(0, 8).split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n // add digits in even places\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n }\n\n // add digits in odd places\n for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {\n if (digits[_i2] < 2) {\n checksum += 1 - digits[_i2];\n } else {\n checksum += 2 * (digits[_i2] - 2) + 5;\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\n}\n\n/*\n * el-GR validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)\n * Verify TIN validity by calculating check (last) digit\n * Algorithm not in DG TAXUD document- sourced from:\n * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`\n */\nfunction elGrCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n return checksum % 11 % 10 === digits[8];\n}\n\n/*\n * en-GB validation function (should go here if needed)\n * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),\n * persons/entities respectively)\n */\n\n/*\n * en-IE validation function\n * (Personal Public Service Number (PPS No), persons only)\n * Verify TIN validity by calculating check (second to last) character\n */\nfunction enIeCheck(tin) {\n var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8);\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n checksum %= 23;\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n}\n\n// Valid US IRS campus prefixes\nvar enUsCampusPrefix = {\n andover: ['10', '12'],\n atlanta: ['60', '67'],\n austin: ['50', '53'],\n brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],\n cincinnati: ['30', '32', '35', '36', '37', '38', '61'],\n fresno: ['15', '24'],\n internet: ['20', '26', '27', '45', '46', '47'],\n kansas: ['40', '44'],\n memphis: ['94', '95'],\n ogden: ['80', '90'],\n philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],\n sba: ['31']\n};\n\n// Return an array of all US IRS campus prefixes\nfunction enUsGetPrefixes() {\n var prefixes = [];\n for (var location in enUsCampusPrefix) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (enUsCampusPrefix.hasOwnProperty(location)) {\n prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));\n }\n }\n return prefixes;\n}\n\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;\n}\n\n/*\n * es-AR validation function\n * Clave Única de Identificación Tributaria (CUIT/CUIL)\n * Sourced from:\n * - https://servicioscf.afip.gob.ar/publico/abc/ABCpaso2.aspx?id_nivel1=3036&id_nivel2=3040&p=Conceptos%20b%C3%A1sicos\n * - https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Identificaci%C3%B3n_Tributaria\n */\n\nfunction esArCheck(tin) {\n var accum = 0;\n var digits = tin.split('');\n var digit = parseInt(digits.pop(), 10);\n for (var i = 0; i < digits.length; i++) {\n accum += digits[9 - i] * (2 + i % 6);\n }\n var verif = 11 - accum % 11;\n if (verif === 11) {\n verif = 0;\n } else if (verif === 10) {\n verif = 9;\n }\n return digit === verif;\n}\n\n/*\n * es-ES validation function\n * (Documento Nacional de Identidad (DNI)\n * or Número de Identificación de Extranjero (NIE), persons only)\n * Verify TIN validity by calculating check (last) character\n */\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Replace initial letter if needed\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n case 'Z':\n lead_replace = 2;\n break;\n default:\n }\n chars.splice(0, 1, lead_replace);\n // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n }\n\n // Calculate checksum and check according to lookup\n var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n chars = chars.join('');\n var checksum = parseInt(chars.slice(0, 8), 10) % 23;\n return chars[8] === lookup[checksum];\n}\n\n/*\n * et-EE validation function\n * (Isikukood (IK), persons only)\n * Checks if birth date (century digit and six following) is valid and calculates check (last) digit\n * Material not in DG TAXUD document sourced from:\n * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`\n */\nfunction etEeCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(1, 3);\n var century_digit = tin.slice(0, 1);\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n // Do again if modulo 11 of checksum is 10\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n return checksum % 11 === digits[10];\n}\n\n/*\n * fi-FI validation function\n * (Henkilötunnus (HETU), persons only)\n * Checks if birth date (first six digits plus century symbol) is valid\n * and calculates check (last) digit\n */\nfunction fiFiCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(4, 6);\n var century_symbol = tin.slice(6, 7);\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check character\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\n checksum -= 10;\n var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];\n return letters_lookup[checksum] === tin.slice(10);\n}\n\n/*\n * fr/nl-BE validation function\n * (Numéro national (N.N.), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last two) digits\n */\nfunction frBeCheck(tin) {\n // Zero month/day value is acceptable\n if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {\n // Extract date from first six digits of TIN\n var date = \"\".concat(tin.slice(0, 2), \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n if (checksum !== checkdigits) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * fr-FR validation function\n * (Numéro fiscal de référence (numéro SPI), persons only)\n * Verify TIN validity by calculating check (last three) digits\n */\nfunction frFrCheck(tin) {\n tin = tin.replace(/\\s/g, '');\n var checksum = parseInt(tin.slice(0, 10), 10) % 511;\n var checkdigits = parseInt(tin.slice(10, 13), 10);\n return checksum === checkdigits;\n}\n\n/*\n * fr/lb-LU validation function\n * (numéro d’identification personnelle, persons only)\n * Verify birth date validity and run Luhn and Verhoeff checks\n */\nfunction frLuCheck(tin) {\n // Extract date and check validity\n var date = \"\".concat(tin.slice(0, 4), \"/\").concat(tin.slice(4, 6), \"/\").concat(tin.slice(6, 8));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Run Luhn check\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n }\n // Remove Luhn check digit and run Verhoeff check\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * hu-HU validation function\n * (Adóazonosító jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\nfunction huHuCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 8;\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n return checksum % 11 === digits[9];\n}\n\n/*\n * lt-LT validation function (should go here if needed)\n * (Asmens kodas, persons/entities respectively)\n * Current validation check is alias of etEeCheck- same format applies\n */\n\n/*\n * it-IT first/last name validity check\n * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity\n * Due to lack of clarity between resources (\"Are only Italian consonants used?\n * What happens if a person has X in their name?\" etc.) only two test conditions\n * have been implemented:\n * Vowels may only be followed by other vowels or an X character\n * and X characters after vowels may only be followed by other X characters.\n */\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false;\n\n // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n var xflag = false;\n for (var i = 0; i < 3; i++) {\n if (!vowelflag && /[AEIOU]/.test(name[i])) {\n vowelflag = true;\n } else if (!xflag && vowelflag && name[i] === 'X') {\n xflag = true;\n } else if (i > 0) {\n if (vowelflag && !xflag) {\n if (!/[AEIOU]/.test(name[i])) {\n return false;\n }\n }\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * it-IT validation function\n * (Codice fiscale (TIN-IT), persons only)\n * Verify name, birth date and codice catastale validity\n * and calculate check character.\n * Material not in DG-TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/Italian_fiscal_code`\n */\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Check first and last name validity calling itItNameCheck()\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n }\n\n // Convert letters in number spaces back to numbers if any\n var number_locations = [6, 7, 9, 10, 12, 13, 14];\n var number_replace = {\n L: '0',\n M: '1',\n N: '2',\n P: '3',\n Q: '4',\n R: '5',\n S: '6',\n T: '7',\n U: '8',\n V: '9'\n };\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n }\n\n // Extract month and day, and check date validity\n var month_replace = {\n A: '01',\n B: '02',\n C: '03',\n D: '04',\n E: '05',\n H: '06',\n L: '07',\n M: '08',\n P: '09',\n R: '10',\n S: '11',\n T: '12'\n };\n var month = month_replace[chars[8]];\n var day = parseInt(chars[9] + chars[10], 10);\n if (day > 40) {\n day -= 40;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n\n // Calculate check character by adding up even and odd characters as numbers\n var checksum = 0;\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n checksum += char_to_int;\n }\n var odd_convert = {\n // Maps of characters at odd places\n A: 1,\n B: 0,\n C: 5,\n D: 7,\n E: 9,\n F: 13,\n G: 15,\n H: 17,\n I: 19,\n J: 21,\n K: 2,\n L: 4,\n M: 18,\n N: 20,\n O: 11,\n P: 3,\n Q: 6,\n R: 8,\n S: 12,\n T: 14,\n U: 16,\n V: 10,\n W: 22,\n X: 25,\n Y: 24,\n Z: 23,\n 0: 1,\n 1: 0\n };\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n if (chars[_i6] in odd_convert) {\n _char_to_int = odd_convert[chars[_i6]];\n } else {\n var multiplier = parseInt(chars[_i6], 10);\n _char_to_int = 2 * multiplier + 1;\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n checksum += _char_to_int;\n }\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n return true;\n}\n\n/*\n * lv-LV validation function\n * (Personas kods (PK), persons only)\n * Check validity of birth date and calculate check (last) digit\n * Support only for old format numbers (not starting with '32', issued before 2017/07/01)\n * Material not in DG TAXUD document sourced from:\n * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`\n */\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, '');\n // Extract date from TIN\n var day = tin.slice(0, 2);\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n // Calculate check digit\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n return parseInt(tin[10], 10) === checksum % 11;\n }\n return true;\n}\n\n/*\n * mt-MT validation function\n * (Identity Card Number or Unique Taxpayer Reference, persons/entities)\n * Verify Identity Card Number structure (no other tests found)\n */\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split('');\n // Fill with zeros if smaller than proper\n while (chars.length < 8) {\n chars.unshift(0);\n }\n // Validate format according to last character\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n break;\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n if (first_part > 32000) {\n return false;\n }\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * nl-NL validation function\n * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),\n * persons/entities respectively)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction nlNlCheck(tin) {\n return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11 === parseInt(tin[8], 10);\n}\n\n/*\n * pl-PL validation function\n * (Powszechny Elektroniczny System Ewidencji Ludności (PESEL)\n * or Numer identyfikacji podatkowej (NIP), persons/entities)\n * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit\n */\nfunction plPlCheck(tin) {\n // NIP\n if (tin.length === 10) {\n // Calculate last digit by multiplying with lookup\n var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n var _checksum = 0;\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n _checksum %= 11;\n if (_checksum === 10) {\n return false;\n }\n return _checksum === parseInt(tin[9], 10);\n }\n\n // PESEL\n // Extract full year using month\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 80) {\n full_year = \"18\".concat(full_year);\n month -= 80;\n } else if (month > 60) {\n full_year = \"22\".concat(full_year);\n month -= 60;\n } else if (month > 40) {\n full_year = \"21\".concat(full_year);\n month -= 40;\n } else if (month > 20) {\n full_year = \"20\".concat(full_year);\n month -= 20;\n } else {\n full_year = \"19\".concat(full_year);\n }\n // Add leading zero to month if needed\n if (month < 10) {\n month = \"0\".concat(month);\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate last digit by mulitplying with odd one-digit numbers except 5\n var checksum = 0;\n var multiplier = 1;\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\n}\n\n/*\n* pt-BR validation function\n* (Cadastro de Pessoas Físicas (CPF, persons)\n* Cadastro Nacional de Pessoas Jurídicas (CNPJ, entities)\n* Both inputs will be validated\n*/\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n var remainder;\n _sum = 0;\n if (\n // Reject known invalid CPFs\n tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;\n for (var i = 1; i <= 9; i++) _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;\n _sum = 0;\n for (var _i8 = 1; _i8 <= 10; _i8++) _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;\n return true;\n }\n if (\n // Reject know invalid CNPJs\n tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {\n return false;\n }\n var length = tin.length - 2;\n var identifiers = tin.substring(0, length);\n var verificators = tin.substring(length);\n var sum = 0;\n var pos = length - 7;\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n return true;\n}\n\n/*\n * pt-PT validation function\n * (Número de identificação fiscal (NIF), persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ptPtCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n}\n\n/*\n * ro-RO validation function\n * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),\n * persons only)\n * Verify CNP validity by calculating check (last) digit (test not found for CIF)\n * Material not in DG TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/National_identification_number#Romania`\n */\nfunction roRoCheck(tin) {\n if (tin.slice(0, 4) !== '9000') {\n // No test found for this format\n // Extract full year using century digit if possible\n var full_year = tin.slice(1, 3);\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n default:\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n return digits[12] === checksum % 11;\n }\n return true;\n}\n\n/*\n * sk-SK validation function\n * (Rodné číslo (RČ) or bezvýznamové identifikačné číslo (BIČ), persons only)\n * Checks validity of pre-1954 birth numbers (rodné číslo) only\n * Due to the introduction of the pseudo-random BIČ it is not possible to test\n * post-1954 birth numbers without knowing whether they are BIČ or RČ beforehand\n */\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (full_year > 53) {\n return false;\n }\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * sl-SI validation function\n * (Davčna številka, persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction slSiCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8) % 11;\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n return checksum === parseInt(tin[7], 10);\n}\n\n/*\n * sv-SE validation function\n * (Personnummer or samordningsnummer, persons only)\n * Checks validity of birth date and calls luhnCheck() to validate check (last) digit\n */\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n }\n\n // Extract date of birth\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n if (tin.length === 11 && day < 60) {\n // Extract full year from centenarian symbol\n // Should work just fine until year 10000 or so\n var current_year = new Date().getFullYear().toString();\n var current_century = parseInt(current_year.slice(0, 2), 10);\n current_year = parseInt(current_year, 10);\n if (tin[6] === '-') {\n if (parseInt(\"\".concat(current_century).concat(full_year), 10) > current_year) {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n } else {\n full_year = \"\".concat(current_century).concat(full_year);\n }\n } else {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n }\n\n // Normalize day and check date validity\n if (day > 60) {\n day -= 60;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n return algorithms.luhnCheck(tin.replace(/\\W/, ''));\n}\n\n/**\n * uk-UA validation function\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ukUaCheck(tin) {\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [-1, 5, 7, 9, 4, 6, 10, 5, 7];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n return checksum % 11 === 10 ? digits[9] === 0 : digits[9] === checksum % 11;\n}\n\n// Locale lookup objects\n\n/*\n * Tax id regex formats for various locales\n *\n * Where not explicitly specified in DG-TAXUD document both\n * uppercase and lowercase letters are acceptable.\n */\nvar taxIdFormat = {\n 'bg-BG': /^\\d{10}$/,\n 'cs-CZ': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'de-AT': /^\\d{9}$/,\n 'de-DE': /^[1-9]\\d{10}$/,\n 'dk-DK': /^\\d{6}-{0,1}\\d{4}$/,\n 'el-CY': /^[09]\\d{7}[A-Z]$/,\n 'el-GR': /^([0-4]|[7-9])\\d{8}$/,\n 'en-CA': /^\\d{9}$/,\n 'en-GB': /^\\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\\d{6}[ABCD ]$/i,\n 'en-IE': /^\\d{7}[A-W][A-IW]{0,1}$/i,\n 'en-US': /^\\d{2}[- ]{0,1}\\d{7}$/,\n 'es-AR': /(20|23|24|27|30|33|34)[0-9]{8}[0-9]/,\n 'es-ES': /^(\\d{0,8}|[XYZKLM]\\d{7})[A-HJ-NP-TV-Z]$/i,\n 'et-EE': /^[1-6]\\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\\d$/,\n 'fi-FI': /^\\d{6}[-+A]\\d{3}[0-9A-FHJ-NPR-Y]$/i,\n 'fr-BE': /^\\d{11}$/,\n 'fr-FR': /^[0-3]\\d{12}$|^[0-3]\\d\\s\\d{2}(\\s\\d{3}){3}$/,\n // Conforms both to official spec and provided example\n 'fr-LU': /^\\d{13}$/,\n 'hr-HR': /^\\d{11}$/,\n 'hu-HU': /^8\\d{9}$/,\n 'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,\n 'lv-LV': /^\\d{6}-{0,1}\\d{5}$/,\n // Conforms both to DG TAXUD spec and original research\n 'mt-MT': /^\\d{3,7}[APMGLHBZ]$|^([1-8])\\1\\d{7}$/i,\n 'nl-NL': /^\\d{9}$/,\n 'pl-PL': /^\\d{10,11}$/,\n 'pt-BR': /(?:^\\d{11}$)|(?:^\\d{14}$)/,\n 'pt-PT': /^\\d{9}$/,\n 'ro-RO': /^\\d{13}$/,\n 'sk-SK': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'sl-SI': /^[1-9]\\d{7}$/,\n 'sv-SE': /^(\\d{6}[-+]{0,1}\\d{4}|(18|19|20)\\d{6}[-+]{0,1}\\d{4})$/,\n 'uk-UA': /^\\d{10}$/\n};\n// taxIdFormat locale aliases\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE'];\ntaxIdFormat['fr-CA'] = taxIdFormat['en-CA'];\n\n// Algorithmic tax id check functions for various locales\nvar taxIdCheck = {\n 'bg-BG': bgBgCheck,\n 'cs-CZ': csCzCheck,\n 'de-AT': deAtCheck,\n 'de-DE': deDeCheck,\n 'dk-DK': dkDkCheck,\n 'el-CY': elCyCheck,\n 'el-GR': elGrCheck,\n 'en-CA': isCanadianSIN,\n 'en-IE': enIeCheck,\n 'en-US': enUsCheck,\n 'es-AR': esArCheck,\n 'es-ES': esEsCheck,\n 'et-EE': etEeCheck,\n 'fi-FI': fiFiCheck,\n 'fr-BE': frBeCheck,\n 'fr-FR': frFrCheck,\n 'fr-LU': frLuCheck,\n 'hr-HR': hrHrCheck,\n 'hu-HU': huHuCheck,\n 'it-IT': itItCheck,\n 'lv-LV': lvLvCheck,\n 'mt-MT': mtMtCheck,\n 'nl-NL': nlNlCheck,\n 'pl-PL': plPlCheck,\n 'pt-BR': ptBrCheck,\n 'pt-PT': ptPtCheck,\n 'ro-RO': roRoCheck,\n 'sk-SK': skSkCheck,\n 'sl-SI': slSiCheck,\n 'sv-SE': svSeCheck,\n 'uk-UA': ukUaCheck\n};\n// taxIdCheck locale aliases\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE'];\ntaxIdCheck['fr-CA'] = taxIdCheck['en-CA'];\n\n// Regexes for locales where characters should be omitted before checking format\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n};\n// sanitizeRegexes locale aliases\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\n\n/*\n * Validator function\n * Return true if the passed string is a valid tax identification number\n * for the specified locale.\n * Throw an error exception if the locale is not supported.\n */\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n // Copy TIN to avoid replacement if sanitized\n var strcopy = str.slice(0);\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n }\n // Fallthrough; not all locales have algorithmic checks\n return true;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTime;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_time_options = {\n hourFormat: 'hour24',\n mode: 'default'\n};\nvar formats = {\n hour24: {\n default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,\n withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/\n },\n hour12: {\n default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,\n withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/\n }\n};\nfunction isTime(input, options) {\n options = (0, _merge.default)(options, default_time_options);\n if (typeof input !== 'string') return false;\n return formats[options.hourFormat][options.mode].test(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar AU = function AU(str) {\n var match = str.match(/^(AU)?(\\d{11})$/);\n if (!match) {\n return false;\n }\n // @see {@link https://abr.business.gov.au/Help/AbnFormat}\n var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];\n str = str.replace(/^AU/, '');\n var ABN = (parseInt(str.slice(0, 1), 10) - 1).toString() + str.slice(1);\n var total = 0;\n for (var i = 0; i < 11; i++) {\n total += weights[i] * ABN.charAt(i);\n }\n return total !== 0 && total % 89 === 0;\n};\nvar CH = function CH(str) {\n // @see {@link https://www.ech.ch/de/ech/ech-0097/5.2.0}\n var hasValidCheckNumber = function hasValidCheckNumber(digits) {\n var lastDigit = digits.pop(); // used as check number\n var weights = [5, 4, 3, 2, 7, 6, 5, 4];\n var calculatedCheckNumber = (11 - digits.reduce(function (acc, el, idx) {\n return acc + el * weights[idx];\n }, 0) % 11) % 11;\n return lastDigit === calculatedCheckNumber;\n };\n\n // @see {@link https://www.estv.admin.ch/estv/de/home/mehrwertsteuer/uid/mwst-uid-nummer.html}\n return /^(CHE[- ]?)?(\\d{9}|(\\d{3}\\.\\d{3}\\.\\d{3})|(\\d{3} \\d{3} \\d{3})) ?(TVA|MWST|IVA)?$/.test(str) && hasValidCheckNumber(str.match(/\\d/g).map(function (el) {\n return +el;\n }));\n};\nvar PT = function PT(str) {\n var match = str.match(/^(PT)?(\\d{9})$/);\n if (!match) {\n return false;\n }\n var tin = match[2];\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n};\nvar vatMatchers = exports.vatMatchers = {\n /**\r\n * European Union VAT identification numbers\r\n */\n AT: function AT(str) {\n return /^(AT)?U\\d{8}$/.test(str);\n },\n BE: function BE(str) {\n return /^(BE)?\\d{10}$/.test(str);\n },\n BG: function BG(str) {\n return /^(BG)?\\d{9,10}$/.test(str);\n },\n HR: function HR(str) {\n return /^(HR)?\\d{11}$/.test(str);\n },\n CY: function CY(str) {\n return /^(CY)?\\w{9}$/.test(str);\n },\n CZ: function CZ(str) {\n return /^(CZ)?\\d{8,10}$/.test(str);\n },\n DK: function DK(str) {\n return /^(DK)?\\d{8}$/.test(str);\n },\n EE: function EE(str) {\n return /^(EE)?\\d{9}$/.test(str);\n },\n FI: function FI(str) {\n return /^(FI)?\\d{8}$/.test(str);\n },\n FR: function FR(str) {\n return /^(FR)?\\w{2}\\d{9}$/.test(str);\n },\n DE: function DE(str) {\n return /^(DE)?\\d{9}$/.test(str);\n },\n EL: function EL(str) {\n return /^(EL)?\\d{9}$/.test(str);\n },\n HU: function HU(str) {\n return /^(HU)?\\d{8}$/.test(str);\n },\n IE: function IE(str) {\n return /^(IE)?\\d{7}\\w{1}(W)?$/.test(str);\n },\n IT: function IT(str) {\n return /^(IT)?\\d{11}$/.test(str);\n },\n LV: function LV(str) {\n return /^(LV)?\\d{11}$/.test(str);\n },\n LT: function LT(str) {\n return /^(LT)?\\d{9,12}$/.test(str);\n },\n LU: function LU(str) {\n return /^(LU)?\\d{8}$/.test(str);\n },\n MT: function MT(str) {\n return /^(MT)?\\d{8}$/.test(str);\n },\n NL: function NL(str) {\n return /^(NL)?\\d{9}B\\d{2}$/.test(str);\n },\n PL: function PL(str) {\n return /^(PL)?(\\d{10}|(\\d{3}-\\d{3}-\\d{2}-\\d{2})|(\\d{3}-\\d{2}-\\d{2}-\\d{3}))$/.test(str);\n },\n PT: PT,\n RO: function RO(str) {\n return /^(RO)?\\d{2,10}$/.test(str);\n },\n SK: function SK(str) {\n return /^(SK)?\\d{10}$/.test(str);\n },\n SI: function SI(str) {\n return /^(SI)?\\d{8}$/.test(str);\n },\n ES: function ES(str) {\n return /^(ES)?\\w\\d{7}[A-Z]$/.test(str);\n },\n SE: function SE(str) {\n return /^(SE)?\\d{12}$/.test(str);\n },\n /**\r\n * VAT numbers of non-EU countries\r\n */\n AL: function AL(str) {\n return /^(AL)?\\w{9}[A-Z]$/.test(str);\n },\n MK: function MK(str) {\n return /^(MK)?\\d{13}$/.test(str);\n },\n AU: AU,\n BY: function BY(str) {\n return /^(УНП )?\\d{9}$/.test(str);\n },\n CA: function CA(str) {\n return /^(CA)?\\d{9}$/.test(str);\n },\n IS: function IS(str) {\n return /^(IS)?\\d{5,6}$/.test(str);\n },\n IN: function IN(str) {\n return /^(IN)?\\d{15}$/.test(str);\n },\n ID: function ID(str) {\n return /^(ID)?(\\d{15}|(\\d{2}.\\d{3}.\\d{3}.\\d{1}-\\d{3}.\\d{3}))$/.test(str);\n },\n IL: function IL(str) {\n return /^(IL)?\\d{9}$/.test(str);\n },\n KZ: function KZ(str) {\n return /^(KZ)?\\d{12}$/.test(str);\n },\n NZ: function NZ(str) {\n return /^(NZ)?\\d{9}$/.test(str);\n },\n NG: function NG(str) {\n return /^(NG)?(\\d{12}|(\\d{8}-\\d{4}))$/.test(str);\n },\n NO: function NO(str) {\n return /^(NO)?\\d{9}MVA$/.test(str);\n },\n PH: function PH(str) {\n return /^(PH)?(\\d{12}|\\d{3} \\d{3} \\d{3} \\d{3})$/.test(str);\n },\n RU: function RU(str) {\n return /^(RU)?(\\d{10}|\\d{12})$/.test(str);\n },\n SM: function SM(str) {\n return /^(SM)?\\d{5}$/.test(str);\n },\n SA: function SA(str) {\n return /^(SA)?\\d{15}$/.test(str);\n },\n RS: function RS(str) {\n return /^(RS)?\\d{9}$/.test(str);\n },\n CH: CH,\n TR: function TR(str) {\n return /^(TR)?\\d{10}$/.test(str);\n },\n UA: function UA(str) {\n return /^(UA)?\\d{12}$/.test(str);\n },\n GB: function GB(str) {\n return /^GB((\\d{3} \\d{4} ([0-8][0-9]|9[0-6]))|(\\d{9} \\d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str);\n },\n UZ: function UZ(str) {\n return /^(UZ)?\\d{9}$/.test(str);\n },\n /**\r\n * VAT numbers of Latin American countries\r\n */\n AR: function AR(str) {\n return /^(AR)?\\d{11}$/.test(str);\n },\n BO: function BO(str) {\n return /^(BO)?\\d{7}$/.test(str);\n },\n BR: function BR(str) {\n return /^(BR)?((\\d{2}.\\d{3}.\\d{3}\\/\\d{4}-\\d{2})|(\\d{3}.\\d{3}.\\d{3}-\\d{2}))$/.test(str);\n },\n CL: function CL(str) {\n return /^(CL)?\\d{8}-\\d{1}$/.test(str);\n },\n CO: function CO(str) {\n return /^(CO)?\\d{10}$/.test(str);\n },\n CR: function CR(str) {\n return /^(CR)?\\d{9,12}$/.test(str);\n },\n EC: function EC(str) {\n return /^(EC)?\\d{13}$/.test(str);\n },\n SV: function SV(str) {\n return /^(SV)?\\d{4}-\\d{6}-\\d{3}-\\d{1}$/.test(str);\n },\n GT: function GT(str) {\n return /^(GT)?\\d{7}-\\d{1}$/.test(str);\n },\n HN: function HN(str) {\n return /^(HN)?$/.test(str);\n },\n MX: function MX(str) {\n return /^(MX)?\\w{3,4}\\d{6}\\w{3}$/.test(str);\n },\n NI: function NI(str) {\n return /^(NI)?\\d{3}-\\d{6}-\\d{4}\\w{1}$/.test(str);\n },\n PA: function PA(str) {\n return /^(PA)?$/.test(str);\n },\n PY: function PY(str) {\n return /^(PY)?\\d{6,8}-\\d{1}$/.test(str);\n },\n PE: function PE(str) {\n return /^(PE)?\\d{11}$/.test(str);\n },\n DO: function DO(str) {\n return /^(DO)?(\\d{11}|(\\d{3}-\\d{7}-\\d{1})|[1,4,5]{1}\\d{8}|([1,4,5]{1})-\\d{2}-\\d{5}-\\d{1})$/.test(str);\n },\n UY: function UY(str) {\n return /^(UY)?\\d{12}$/.test(str);\n },\n VE: function VE(str) {\n return /^(VE)?[J,G,V,E]{1}-(\\d{9}|(\\d{8}-\\d{1}))$/.test(str);\n }\n};\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode](str);\n }\n throw new Error(\"Invalid country code: '\".concat(countryCode, \"'\"));\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFullWidth = require(\"./isFullWidth\");\nvar _isHalfWidth = require(\"./isHalfWidth\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str);\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n return !!str.match(pattern);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n};\n\n// List of domains used by iCloud\nvar icloud_domains = ['icloud.com', 'me.com'];\n\n// List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com'];\n\n// List of domains used by Yahoo Mail\n// This list is likely incomplete\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com'];\n\n// List of domains used by yandex.ru\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru'];\n\n// replace single dots, but not multiple consecutive dots\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n return '';\n}\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain];\n\n // The domain is always lowercased, as it's case-insensitive per RFC 1035\n parts[1] = parts[1].toLowerCase();\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n return parts.join('@');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n if (chars) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g');\n return str.replace(pattern, '');\n }\n // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n var strIndex = str.length - 1;\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n return str.slice(0, strIndex + 1);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/"/g, '\"').replace(/'/g, \"'\").replace(/</g, '<').replace(/>/g, '>').replace(///g, '/').replace(/\/g, '\\\\').replace(/`/g, '`').replace(/&/g, '&');\n // & replacement has to be the last one to prevent\n // bugs with intermediate strings containing escape sequences\n // See: https://github.com/validatorjs/validator.js/issues/1827\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.iso7064Check = iso7064Check;\nexports.luhnCheck = luhnCheck;\nexports.reverseMultiplyAndSum = reverseMultiplyAndSum;\nexports.verhoeffCheck = verhoeffCheck;\n/**\n * Algorithmic validation functions\n * May be used as is or implemented in the workflow of other validators.\n */\n\n/*\n * ISO 7064 validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to ISO 7064 (MOD 11, 10).\n */\nfunction iso7064Check(str) {\n var checkvalue = 10;\n for (var i = 0; i < str.length - 1; i++) {\n checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;\n }\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\n}\n\n/*\n * Luhn (mod 10) validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to the Luhn algorithm.\n */\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n if (product > 9) {\n // sum digits of product and add to checksum\n checksum += product.toString().split('').map(function (a) {\n return parseInt(a, 10);\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n } else {\n checksum += product;\n }\n } else {\n checksum += parseInt(str[i], 10);\n }\n second = !second;\n }\n return checksum % 10 === 0;\n}\n\n/*\n * Reverse TIN multiplication and summation helper function\n * Called with an array of single-digit integers and a base multiplier\n * to calculate the sum of the digits multiplied in reverse.\n * Normally used in variations of MOD 11 algorithmic checks.\n */\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n return total;\n}\n\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\nfunction verhoeffCheck(str) {\n var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // Copy (to prevent replacement) and reverse\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n for (var i = 0; i < str_copy.length; i++) {\n checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];\n }\n return checksum === 0;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n return String(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "// source: core/Tron.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar google_protobuf_any_pb = require('@tronweb3/google-protobuf/google/protobuf/any_pb.js');\ngoog.object.extend(proto, google_protobuf_any_pb);\ngoog.exportSymbol('TronWebProto.Account', null, global);\ngoog.exportSymbol('TronWebProto.Account.AccountResource', null, global);\ngoog.exportSymbol('TronWebProto.Account.Frozen', null, global);\ngoog.exportSymbol('TronWebProto.AccountId', null, global);\ngoog.exportSymbol('TronWebProto.AccountType', null, global);\ngoog.exportSymbol('TronWebProto.DelegatedResource', null, global);\ngoog.exportSymbol('TronWebProto.Exchange', null, global);\ngoog.exportSymbol('TronWebProto.Key', null, global);\ngoog.exportSymbol('TronWebProto.MarketOrderDetail', null, global);\ngoog.exportSymbol('TronWebProto.Permission', null, global);\ngoog.exportSymbol('TronWebProto.Permission.PermissionType', null, global);\ngoog.exportSymbol('TronWebProto.Proposal', null, global);\ngoog.exportSymbol('TronWebProto.Proposal.State', null, global);\ngoog.exportSymbol('TronWebProto.Transaction', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Contract', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Contract.ContractType', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result.code', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result.contractResult', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.raw', null, global);\ngoog.exportSymbol('TronWebProto.Vote', null, global);\ngoog.exportSymbol('TronWebProto.Votes', null, global);\ngoog.exportSymbol('TronWebProto.Witness', null, global);\ngoog.exportSymbol('TronWebProto.authority', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountId = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountId, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountId.displayName = 'TronWebProto.AccountId';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Vote = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Vote, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Vote.displayName = 'TronWebProto.Vote';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Proposal = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Proposal.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Proposal, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Proposal.displayName = 'TronWebProto.Proposal';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Exchange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Exchange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Exchange.displayName = 'TronWebProto.Exchange';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Account.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Account, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.displayName = 'TronWebProto.Account';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account.Frozen = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Account.Frozen, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.Frozen.displayName = 'TronWebProto.Account.Frozen';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account.AccountResource = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Account.AccountResource, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.AccountResource.displayName = 'TronWebProto.Account.AccountResource';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Key = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Key, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Key.displayName = 'TronWebProto.Key';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.DelegatedResource = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.DelegatedResource, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.DelegatedResource.displayName = 'TronWebProto.DelegatedResource';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.authority = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.authority, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.authority.displayName = 'TronWebProto.authority';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Permission = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Permission.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Permission, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Permission.displayName = 'TronWebProto.Permission';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Witness = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Witness, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Witness.displayName = 'TronWebProto.Witness';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Votes = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Votes.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Votes, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Votes.displayName = 'TronWebProto.Votes';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.MarketOrderDetail = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.MarketOrderDetail, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.MarketOrderDetail.displayName = 'TronWebProto.MarketOrderDetail';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.displayName = 'TronWebProto.Transaction';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.Contract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Transaction.Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.Contract.displayName = 'TronWebProto.Transaction.Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.Result = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.Result.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction.Result, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.Result.displayName = 'TronWebProto.Transaction.Result';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.raw = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.raw.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction.raw, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.raw.displayName = 'TronWebProto.Transaction.raw';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AccountId.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountId.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountId} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountId.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: msg.getName_asB64(),\n address: msg.getAddress_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountId}\n */\nTronWebProto.AccountId.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountId;\n return TronWebProto.AccountId.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountId} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountId}\n */\nTronWebProto.AccountId.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountId.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountId} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountId.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountId.prototype.getName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes name = 1;\n * This is a type-conversion wrapper around `getName()`\n * @return {string}\n */\nTronWebProto.AccountId.prototype.getName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getName()));\n};\n\n\n/**\n * optional bytes name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.getName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountId} returns this\n */\nTronWebProto.AccountId.prototype.setName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountId.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes address = 2;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.AccountId.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountId} returns this\n */\nTronWebProto.AccountId.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Vote.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Vote.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Vote} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Vote.toObject = function(includeInstance, msg) {\n var f, obj = {\n voteAddress: msg.getVoteAddress_asB64(),\n voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Vote.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Vote;\n return TronWebProto.Vote.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Vote} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Vote.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setVoteAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVoteCount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Vote.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Vote.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Vote} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Vote.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVoteAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVoteCount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Vote.prototype.getVoteAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {string}\n */\nTronWebProto.Vote.prototype.getVoteAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getVoteAddress()));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Vote.prototype.getVoteAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getVoteAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Vote} returns this\n */\nTronWebProto.Vote.prototype.setVoteAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 vote_count = 2;\n * @return {number}\n */\nTronWebProto.Vote.prototype.getVoteCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Vote} returns this\n */\nTronWebProto.Vote.prototype.setVoteCount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Proposal.repeatedFields_ = [6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Proposal.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Proposal.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Proposal} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Proposal.toObject = function(includeInstance, msg) {\n var f, obj = {\n proposalId: jspb.Message.getFieldWithDefault(msg, 1, 0),\n proposerAddress: msg.getProposerAddress_asB64(),\n parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : [],\n expirationTime: jspb.Message.getFieldWithDefault(msg, 4, 0),\n createTime: jspb.Message.getFieldWithDefault(msg, 5, 0),\n approvalsList: msg.getApprovalsList_asB64(),\n state: jspb.Message.getFieldWithDefault(msg, 7, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Proposal}\n */\nTronWebProto.Proposal.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Proposal;\n return TronWebProto.Proposal.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Proposal} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Proposal}\n */\nTronWebProto.Proposal.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setProposerAddress(value);\n break;\n case 3:\n var value = msg.getParametersMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt64, jspb.BinaryReader.prototype.readInt64, null, 0, 0);\n });\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpirationTime(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.addApprovals(value);\n break;\n case 7:\n var value = /** @type {!TronWebProto.Proposal.State} */ (reader.readEnum());\n msg.setState(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Proposal.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Proposal.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Proposal} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Proposal.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getProposerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getParametersMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeInt64, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getExpirationTime();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getApprovalsList_asU8();\n if (f.length > 0) {\n writer.writeRepeatedBytes(\n 6,\n f\n );\n }\n f = message.getState();\n if (f !== 0.0) {\n writer.writeEnum(\n 7,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Proposal.State = {\n PENDING: 0,\n DISAPPROVED: 1,\n APPROVED: 2,\n CANCELED: 3\n};\n\n/**\n * optional int64 proposal_id = 1;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Proposal.prototype.getProposerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * This is a type-conversion wrapper around `getProposerAddress()`\n * @return {string}\n */\nTronWebProto.Proposal.prototype.getProposerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getProposerAddress()));\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getProposerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Proposal.prototype.getProposerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getProposerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setProposerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * map parameters = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Proposal.prototype.getParametersMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.clearParametersMap = function() {\n this.getParametersMap().clear();\n return this;};\n\n\n/**\n * optional int64 expiration_time = 4;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getExpirationTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setExpirationTime = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 create_time = 5;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * @return {!(Array|Array)}\n */\nTronWebProto.Proposal.prototype.getApprovalsList = function() {\n return /** @type {!(Array|Array)} */ (jspb.Message.getRepeatedField(this, 6));\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * This is a type-conversion wrapper around `getApprovalsList()`\n * @return {!Array}\n */\nTronWebProto.Proposal.prototype.getApprovalsList_asB64 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsB64(\n this.getApprovalsList()));\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getApprovalsList()`\n * @return {!Array}\n */\nTronWebProto.Proposal.prototype.getApprovalsList_asU8 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsU8(\n this.getApprovalsList()));\n};\n\n\n/**\n * @param {!(Array|Array)} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setApprovalsList = function(value) {\n return jspb.Message.setField(this, 6, value || []);\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @param {number=} opt_index\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.addApprovals = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 6, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.clearApprovalsList = function() {\n return this.setApprovalsList([]);\n};\n\n\n/**\n * optional State state = 7;\n * @return {!TronWebProto.Proposal.State}\n */\nTronWebProto.Proposal.prototype.getState = function() {\n return /** @type {!TronWebProto.Proposal.State} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Proposal.State} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setState = function(value) {\n return jspb.Message.setProto3EnumField(this, 7, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Exchange.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Exchange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Exchange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Exchange.toObject = function(includeInstance, msg) {\n var f, obj = {\n exchangeId: jspb.Message.getFieldWithDefault(msg, 1, 0),\n creatorAddress: msg.getCreatorAddress_asB64(),\n createTime: jspb.Message.getFieldWithDefault(msg, 3, 0),\n firstTokenId: msg.getFirstTokenId_asB64(),\n firstTokenBalance: jspb.Message.getFieldWithDefault(msg, 7, 0),\n secondTokenId: msg.getSecondTokenId_asB64(),\n secondTokenBalance: jspb.Message.getFieldWithDefault(msg, 9, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Exchange}\n */\nTronWebProto.Exchange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Exchange;\n return TronWebProto.Exchange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Exchange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Exchange}\n */\nTronWebProto.Exchange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCreatorAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFirstTokenId(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFirstTokenBalance(value);\n break;\n case 8:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setSecondTokenId(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSecondTokenBalance(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Exchange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Exchange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Exchange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getCreatorAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFirstTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getFirstTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getSecondTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 8,\n f\n );\n }\n f = message.getSecondTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n};\n\n\n/**\n * optional int64 exchange_id = 1;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * This is a type-conversion wrapper around `getCreatorAddress()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCreatorAddress()));\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCreatorAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCreatorAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setCreatorAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 create_time = 3;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFirstTokenId()));\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFirstTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setFirstTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * optional int64 first_token_balance = 7;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getFirstTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setFirstTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getSecondTokenId()));\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getSecondTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setSecondTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 8, value);\n};\n\n\n/**\n * optional int64 second_token_balance = 9;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getSecondTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setSecondTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Account.repeatedFields_ = [5,7,16,33];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.toObject = function(includeInstance, msg) {\n var f, obj = {\n accountName: msg.getAccountName_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 2, 0),\n address: msg.getAddress_asB64(),\n balance: jspb.Message.getFieldWithDefault(msg, 4, 0),\n votesList: jspb.Message.toObjectList(msg.getVotesList(),\n TronWebProto.Vote.toObject, includeInstance),\n assetMap: (f = msg.getAssetMap()) ? f.toObject(includeInstance, undefined) : [],\n assetv2Map: (f = msg.getAssetv2Map()) ? f.toObject(includeInstance, undefined) : [],\n frozenList: jspb.Message.toObjectList(msg.getFrozenList(),\n TronWebProto.Account.Frozen.toObject, includeInstance),\n netUsage: jspb.Message.getFieldWithDefault(msg, 8, 0),\n acquiredDelegatedFrozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 41, 0),\n delegatedFrozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 42, 0),\n oldTronPower: jspb.Message.getFieldWithDefault(msg, 46, 0),\n tronPower: (f = msg.getTronPower()) && TronWebProto.Account.Frozen.toObject(includeInstance, f),\n assetOptimized: jspb.Message.getBooleanFieldWithDefault(msg, 60, false),\n createTime: jspb.Message.getFieldWithDefault(msg, 9, 0),\n latestOprationTime: jspb.Message.getFieldWithDefault(msg, 10, 0),\n allowance: jspb.Message.getFieldWithDefault(msg, 11, 0),\n latestWithdrawTime: jspb.Message.getFieldWithDefault(msg, 12, 0),\n code: msg.getCode_asB64(),\n isWitness: jspb.Message.getBooleanFieldWithDefault(msg, 14, false),\n isCommittee: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),\n frozenSupplyList: jspb.Message.toObjectList(msg.getFrozenSupplyList(),\n TronWebProto.Account.Frozen.toObject, includeInstance),\n assetIssuedName: msg.getAssetIssuedName_asB64(),\n assetIssuedId: msg.getAssetIssuedId_asB64(),\n latestAssetOperationTimeMap: (f = msg.getLatestAssetOperationTimeMap()) ? f.toObject(includeInstance, undefined) : [],\n latestAssetOperationTimev2Map: (f = msg.getLatestAssetOperationTimev2Map()) ? f.toObject(includeInstance, undefined) : [],\n freeNetUsage: jspb.Message.getFieldWithDefault(msg, 19, 0),\n freeAssetNetUsageMap: (f = msg.getFreeAssetNetUsageMap()) ? f.toObject(includeInstance, undefined) : [],\n freeAssetNetUsagev2Map: (f = msg.getFreeAssetNetUsagev2Map()) ? f.toObject(includeInstance, undefined) : [],\n latestConsumeTime: jspb.Message.getFieldWithDefault(msg, 21, 0),\n latestConsumeFreeTime: jspb.Message.getFieldWithDefault(msg, 22, 0),\n accountId: msg.getAccountId_asB64(),\n accountResource: (f = msg.getAccountResource()) && TronWebProto.Account.AccountResource.toObject(includeInstance, f),\n codehash: msg.getCodehash_asB64(),\n ownerPermission: (f = msg.getOwnerPermission()) && TronWebProto.Permission.toObject(includeInstance, f),\n witnessPermission: (f = msg.getWitnessPermission()) && TronWebProto.Permission.toObject(includeInstance, f),\n activePermissionList: jspb.Message.toObjectList(msg.getActivePermissionList(),\n TronWebProto.Permission.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account}\n */\nTronWebProto.Account.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account;\n return TronWebProto.Account.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account}\n */\nTronWebProto.Account.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountName(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.AccountType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 5:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addVotes(value);\n break;\n case 6:\n var value = msg.getAssetMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 56:\n var value = msg.getAssetv2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 7:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.addFrozen(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNetUsage(value);\n break;\n case 41:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAcquiredDelegatedFrozenBalanceForBandwidth(value);\n break;\n case 42:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setDelegatedFrozenBalanceForBandwidth(value);\n break;\n case 46:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOldTronPower(value);\n break;\n case 47:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.setTronPower(value);\n break;\n case 60:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAssetOptimized(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestOprationTime(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAllowance(value);\n break;\n case 12:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestWithdrawTime(value);\n break;\n case 13:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCode(value);\n break;\n case 14:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsWitness(value);\n break;\n case 15:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsCommittee(value);\n break;\n case 16:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.addFrozenSupply(value);\n break;\n case 17:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetIssuedName(value);\n break;\n case 57:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetIssuedId(value);\n break;\n case 18:\n var value = msg.getLatestAssetOperationTimeMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 58:\n var value = msg.getLatestAssetOperationTimev2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 19:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFreeNetUsage(value);\n break;\n case 20:\n var value = msg.getFreeAssetNetUsageMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 59:\n var value = msg.getFreeAssetNetUsagev2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 21:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeTime(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeFreeTime(value);\n break;\n case 23:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountId(value);\n break;\n case 26:\n var value = new TronWebProto.Account.AccountResource;\n reader.readMessage(value,TronWebProto.Account.AccountResource.deserializeBinaryFromReader);\n msg.setAccountResource(value);\n break;\n case 30:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCodehash(value);\n break;\n case 31:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.setOwnerPermission(value);\n break;\n case 32:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.setWitnessPermission(value);\n break;\n case 33:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.addActivePermission(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAccountName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n f = message.getAssetMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getAssetv2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(56, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFrozenList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 7,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getAcquiredDelegatedFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 41,\n f\n );\n }\n f = message.getDelegatedFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 42,\n f\n );\n }\n f = message.getOldTronPower();\n if (f !== 0) {\n writer.writeInt64(\n 46,\n f\n );\n }\n f = message.getTronPower();\n if (f != null) {\n writer.writeMessage(\n 47,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getAssetOptimized();\n if (f) {\n writer.writeBool(\n 60,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getLatestOprationTime();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getAllowance();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getLatestWithdrawTime();\n if (f !== 0) {\n writer.writeInt64(\n 12,\n f\n );\n }\n f = message.getCode_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 13,\n f\n );\n }\n f = message.getIsWitness();\n if (f) {\n writer.writeBool(\n 14,\n f\n );\n }\n f = message.getIsCommittee();\n if (f) {\n writer.writeBool(\n 15,\n f\n );\n }\n f = message.getFrozenSupplyList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 16,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getAssetIssuedName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 17,\n f\n );\n }\n f = message.getAssetIssuedId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 57,\n f\n );\n }\n f = message.getLatestAssetOperationTimeMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(18, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getLatestAssetOperationTimev2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(58, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFreeNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 19,\n f\n );\n }\n f = message.getFreeAssetNetUsageMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(20, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFreeAssetNetUsagev2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(59, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getLatestConsumeTime();\n if (f !== 0) {\n writer.writeInt64(\n 21,\n f\n );\n }\n f = message.getLatestConsumeFreeTime();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getAccountId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 23,\n f\n );\n }\n f = message.getAccountResource();\n if (f != null) {\n writer.writeMessage(\n 26,\n f,\n TronWebProto.Account.AccountResource.serializeBinaryToWriter\n );\n }\n f = message.getCodehash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 30,\n f\n );\n }\n f = message.getOwnerPermission();\n if (f != null) {\n writer.writeMessage(\n 31,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n f = message.getWitnessPermission();\n if (f != null) {\n writer.writeMessage(\n 32,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n f = message.getActivePermissionList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 33,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.Frozen.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.Frozen.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account.Frozen} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.Frozen.toObject = function(includeInstance, msg) {\n var f, obj = {\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n expireTime: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.Frozen.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account.Frozen;\n return TronWebProto.Account.Frozen.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account.Frozen} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.Frozen.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.Frozen.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.Frozen.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account.Frozen} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.Frozen.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getExpireTime();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 frozen_balance = 1;\n * @return {number}\n */\nTronWebProto.Account.Frozen.prototype.getFrozenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.Frozen} returns this\n */\nTronWebProto.Account.Frozen.prototype.setFrozenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 expire_time = 2;\n * @return {number}\n */\nTronWebProto.Account.Frozen.prototype.getExpireTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.Frozen} returns this\n */\nTronWebProto.Account.Frozen.prototype.setExpireTime = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.AccountResource.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.AccountResource.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account.AccountResource} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.AccountResource.toObject = function(includeInstance, msg) {\n var f, obj = {\n energyUsage: jspb.Message.getFieldWithDefault(msg, 1, 0),\n frozenBalanceForEnergy: (f = msg.getFrozenBalanceForEnergy()) && TronWebProto.Account.Frozen.toObject(includeInstance, f),\n latestConsumeTimeForEnergy: jspb.Message.getFieldWithDefault(msg, 3, 0),\n acquiredDelegatedFrozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 4, 0),\n delegatedFrozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 5, 0),\n storageLimit: jspb.Message.getFieldWithDefault(msg, 6, 0),\n storageUsage: jspb.Message.getFieldWithDefault(msg, 7, 0),\n latestExchangeStorageTime: jspb.Message.getFieldWithDefault(msg, 8, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.AccountResource.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account.AccountResource;\n return TronWebProto.Account.AccountResource.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account.AccountResource} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.AccountResource.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyUsage(value);\n break;\n case 2:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.setFrozenBalanceForEnergy(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeTimeForEnergy(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAcquiredDelegatedFrozenBalanceForEnergy(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setDelegatedFrozenBalanceForEnergy(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageLimit(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageUsage(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestExchangeStorageTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.AccountResource.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.AccountResource.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account.AccountResource} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.AccountResource.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEnergyUsage();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getFrozenBalanceForEnergy();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getLatestConsumeTimeForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getAcquiredDelegatedFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getDelegatedFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getStorageLimit();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getStorageUsage();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getLatestExchangeStorageTime();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n};\n\n\n/**\n * optional int64 energy_usage = 1;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getEnergyUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setEnergyUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional Frozen frozen_balance_for_energy = 2;\n * @return {?TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.AccountResource.prototype.getFrozenBalanceForEnergy = function() {\n return /** @type{?TronWebProto.Account.Frozen} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.Frozen, 2));\n};\n\n\n/**\n * @param {?TronWebProto.Account.Frozen|undefined} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n*/\nTronWebProto.Account.AccountResource.prototype.setFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.clearFrozenBalanceForEnergy = function() {\n return this.setFrozenBalanceForEnergy(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.AccountResource.prototype.hasFrozenBalanceForEnergy = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional int64 latest_consume_time_for_energy = 3;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getLatestConsumeTimeForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setLatestConsumeTimeForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 acquired_delegated_frozen_balance_for_energy = 4;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getAcquiredDelegatedFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setAcquiredDelegatedFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 delegated_frozen_balance_for_energy = 5;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getDelegatedFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setDelegatedFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 storage_limit = 6;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getStorageLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setStorageLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int64 storage_usage = 7;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getStorageUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setStorageUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 latest_exchange_storage_time = 8;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getLatestExchangeStorageTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setLatestExchangeStorageTime = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional bytes account_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAccountName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes account_name = 1;\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAccountName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAccountName()));\n};\n\n\n/**\n * optional bytes account_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAccountName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAccountName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAccountName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional AccountType type = 2;\n * @return {!TronWebProto.AccountType}\n */\nTronWebProto.Account.prototype.getType = function() {\n return /** @type {!TronWebProto.AccountType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!TronWebProto.AccountType} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional bytes address = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes address = 3;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 balance = 4;\n * @return {number}\n */\nTronWebProto.Account.prototype.getBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * repeated Vote votes = 5;\n * @return {!Array}\n */\nTronWebProto.Account.prototype.getVotesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 5));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Account.prototype.addVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearVotesList = function() {\n return this.setVotesList([]);\n};\n\n\n/**\n * map asset = 6;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getAssetMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 6, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAssetMap = function() {\n this.getAssetMap().clear();\n return this;};\n\n\n/**\n * map assetV2 = 56;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getAssetv2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 56, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAssetv2Map = function() {\n this.getAssetv2Map().clear();\n return this;};\n\n\n/**\n * repeated Frozen frozen = 7;\n * @return {!Array}\n */\nTronWebProto.Account.prototype.getFrozenList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Account.Frozen, 7));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setFrozenList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!TronWebProto.Account.Frozen=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.addFrozen = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, TronWebProto.Account.Frozen, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFrozenList = function() {\n return this.setFrozenList([]);\n};\n\n\n/**\n * optional int64 net_usage = 8;\n * @return {number}\n */\nTronWebProto.Account.prototype.getNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 acquired_delegated_frozen_balance_for_bandwidth = 41;\n * @return {number}\n */\nTronWebProto.Account.prototype.getAcquiredDelegatedFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 41, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAcquiredDelegatedFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 41, value);\n};\n\n\n/**\n * optional int64 delegated_frozen_balance_for_bandwidth = 42;\n * @return {number}\n */\nTronWebProto.Account.prototype.getDelegatedFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 42, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setDelegatedFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 42, value);\n};\n\n\n/**\n * optional int64 old_tron_power = 46;\n * @return {number}\n */\nTronWebProto.Account.prototype.getOldTronPower = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 46, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setOldTronPower = function(value) {\n return jspb.Message.setProto3IntField(this, 46, value);\n};\n\n\n/**\n * optional Frozen tron_power = 47;\n * @return {?TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.getTronPower = function() {\n return /** @type{?TronWebProto.Account.Frozen} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.Frozen, 47));\n};\n\n\n/**\n * @param {?TronWebProto.Account.Frozen|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setTronPower = function(value) {\n return jspb.Message.setWrapperField(this, 47, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearTronPower = function() {\n return this.setTronPower(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasTronPower = function() {\n return jspb.Message.getField(this, 47) != null;\n};\n\n\n/**\n * optional bool asset_optimized = 60;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getAssetOptimized = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 60, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetOptimized = function(value) {\n return jspb.Message.setProto3BooleanField(this, 60, value);\n};\n\n\n/**\n * optional int64 create_time = 9;\n * @return {number}\n */\nTronWebProto.Account.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int64 latest_opration_time = 10;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestOprationTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestOprationTime = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 allowance = 11;\n * @return {number}\n */\nTronWebProto.Account.prototype.getAllowance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAllowance = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional int64 latest_withdraw_time = 12;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestWithdrawTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestWithdrawTime = function(value) {\n return jspb.Message.setProto3IntField(this, 12, value);\n};\n\n\n/**\n * optional bytes code = 13;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getCode = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * optional bytes code = 13;\n * This is a type-conversion wrapper around `getCode()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getCode_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCode()));\n};\n\n\n/**\n * optional bytes code = 13;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCode()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getCode_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCode()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCode = function(value) {\n return jspb.Message.setProto3BytesField(this, 13, value);\n};\n\n\n/**\n * optional bool is_witness = 14;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getIsWitness = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setIsWitness = function(value) {\n return jspb.Message.setProto3BooleanField(this, 14, value);\n};\n\n\n/**\n * optional bool is_committee = 15;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getIsCommittee = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setIsCommittee = function(value) {\n return jspb.Message.setProto3BooleanField(this, 15, value);\n};\n\n\n/**\n * repeated Frozen frozen_supply = 16;\n * @return {!Array}\n */\nTronWebProto.Account.prototype.getFrozenSupplyList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Account.Frozen, 16));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setFrozenSupplyList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 16, value);\n};\n\n\n/**\n * @param {!TronWebProto.Account.Frozen=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.addFrozenSupply = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 16, opt_value, TronWebProto.Account.Frozen, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFrozenSupplyList = function() {\n return this.setFrozenSupplyList([]);\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAssetIssuedName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 17, \"\"));\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * This is a type-conversion wrapper around `getAssetIssuedName()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAssetIssuedName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetIssuedName()));\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetIssuedName()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAssetIssuedName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetIssuedName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetIssuedName = function(value) {\n return jspb.Message.setProto3BytesField(this, 17, value);\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAssetIssuedId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 57, \"\"));\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * This is a type-conversion wrapper around `getAssetIssuedId()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAssetIssuedId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetIssuedId()));\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetIssuedId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAssetIssuedId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetIssuedId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetIssuedId = function(value) {\n return jspb.Message.setProto3BytesField(this, 57, value);\n};\n\n\n/**\n * map latest_asset_operation_time = 18;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getLatestAssetOperationTimeMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 18, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearLatestAssetOperationTimeMap = function() {\n this.getLatestAssetOperationTimeMap().clear();\n return this;};\n\n\n/**\n * map latest_asset_operation_timeV2 = 58;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getLatestAssetOperationTimev2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 58, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearLatestAssetOperationTimev2Map = function() {\n this.getLatestAssetOperationTimev2Map().clear();\n return this;};\n\n\n/**\n * optional int64 free_net_usage = 19;\n * @return {number}\n */\nTronWebProto.Account.prototype.getFreeNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setFreeNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 19, value);\n};\n\n\n/**\n * map free_asset_net_usage = 20;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getFreeAssetNetUsageMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 20, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFreeAssetNetUsageMap = function() {\n this.getFreeAssetNetUsageMap().clear();\n return this;};\n\n\n/**\n * map free_asset_net_usageV2 = 59;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.Account.prototype.getFreeAssetNetUsagev2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 59, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFreeAssetNetUsagev2Map = function() {\n this.getFreeAssetNetUsagev2Map().clear();\n return this;};\n\n\n/**\n * optional int64 latest_consume_time = 21;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestConsumeTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestConsumeTime = function(value) {\n return jspb.Message.setProto3IntField(this, 21, value);\n};\n\n\n/**\n * optional int64 latest_consume_free_time = 22;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestConsumeFreeTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestConsumeFreeTime = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional bytes account_id = 23;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAccountId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 23, \"\"));\n};\n\n\n/**\n * optional bytes account_id = 23;\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAccountId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAccountId()));\n};\n\n\n/**\n * optional bytes account_id = 23;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAccountId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAccountId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAccountId = function(value) {\n return jspb.Message.setProto3BytesField(this, 23, value);\n};\n\n\n/**\n * optional AccountResource account_resource = 26;\n * @return {?TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.prototype.getAccountResource = function() {\n return /** @type{?TronWebProto.Account.AccountResource} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.AccountResource, 26));\n};\n\n\n/**\n * @param {?TronWebProto.Account.AccountResource|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setAccountResource = function(value) {\n return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAccountResource = function() {\n return this.setAccountResource(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasAccountResource = function() {\n return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getCodehash = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 30, \"\"));\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * This is a type-conversion wrapper around `getCodehash()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getCodehash_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCodehash()));\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCodehash()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getCodehash_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCodehash()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCodehash = function(value) {\n return jspb.Message.setProto3BytesField(this, 30, value);\n};\n\n\n/**\n * optional Permission owner_permission = 31;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.getOwnerPermission = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Permission, 31));\n};\n\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setOwnerPermission = function(value) {\n return jspb.Message.setWrapperField(this, 31, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearOwnerPermission = function() {\n return this.setOwnerPermission(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasOwnerPermission = function() {\n return jspb.Message.getField(this, 31) != null;\n};\n\n\n/**\n * optional Permission witness_permission = 32;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.getWitnessPermission = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Permission, 32));\n};\n\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setWitnessPermission = function(value) {\n return jspb.Message.setWrapperField(this, 32, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearWitnessPermission = function() {\n return this.setWitnessPermission(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasWitnessPermission = function() {\n return jspb.Message.getField(this, 32) != null;\n};\n\n\n/**\n * repeated Permission active_permission = 33;\n * @return {!Array}\n */\nTronWebProto.Account.prototype.getActivePermissionList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Permission, 33));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setActivePermissionList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 33, value);\n};\n\n\n/**\n * @param {!TronWebProto.Permission=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.addActivePermission = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 33, opt_value, TronWebProto.Permission, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearActivePermissionList = function() {\n return this.setActivePermissionList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Key.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Key.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Key} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Key.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n weight: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Key.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Key;\n return TronWebProto.Key.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Key} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Key.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setWeight(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Key.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Key.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Key} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Key.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getWeight();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Key.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Key.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Key.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Key} returns this\n */\nTronWebProto.Key.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 weight = 2;\n * @return {number}\n */\nTronWebProto.Key.prototype.getWeight = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Key} returns this\n */\nTronWebProto.Key.prototype.setWeight = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.DelegatedResource.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.DelegatedResource.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.DelegatedResource} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegatedResource.toObject = function(includeInstance, msg) {\n var f, obj = {\n from: msg.getFrom_asB64(),\n to: msg.getTo_asB64(),\n frozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 3, 0),\n frozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 4, 0),\n expireTimeForBandwidth: jspb.Message.getFieldWithDefault(msg, 5, 0),\n expireTimeForEnergy: jspb.Message.getFieldWithDefault(msg, 6, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.DelegatedResource}\n */\nTronWebProto.DelegatedResource.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.DelegatedResource;\n return TronWebProto.DelegatedResource.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.DelegatedResource} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.DelegatedResource}\n */\nTronWebProto.DelegatedResource.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFrom(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTo(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalanceForBandwidth(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalanceForEnergy(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTimeForBandwidth(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTimeForEnergy(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.DelegatedResource.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.DelegatedResource} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegatedResource.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrom_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getTo_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getExpireTimeForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getExpireTimeForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n};\n\n\n/**\n * optional bytes from = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegatedResource.prototype.getFrom = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes from = 1;\n * This is a type-conversion wrapper around `getFrom()`\n * @return {string}\n */\nTronWebProto.DelegatedResource.prototype.getFrom_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFrom()));\n};\n\n\n/**\n * optional bytes from = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFrom()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.getFrom_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFrom()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrom = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes to = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegatedResource.prototype.getTo = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes to = 2;\n * This is a type-conversion wrapper around `getTo()`\n * @return {string}\n */\nTronWebProto.DelegatedResource.prototype.getTo_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTo()));\n};\n\n\n/**\n * optional bytes to = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTo()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.getTo_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTo()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setTo = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 frozen_balance_for_bandwidth = 3;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 frozen_balance_for_energy = 4;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 expire_time_for_bandwidth = 5;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getExpireTimeForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setExpireTimeForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 expire_time_for_energy = 6;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getExpireTimeForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setExpireTimeForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.authority.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.authority.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.authority} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.authority.toObject = function(includeInstance, msg) {\n var f, obj = {\n account: (f = msg.getAccount()) && TronWebProto.AccountId.toObject(includeInstance, f),\n permissionName: msg.getPermissionName_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.authority}\n */\nTronWebProto.authority.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.authority;\n return TronWebProto.authority.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.authority} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.authority}\n */\nTronWebProto.authority.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.AccountId;\n reader.readMessage(value,TronWebProto.AccountId.deserializeBinaryFromReader);\n msg.setAccount(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setPermissionName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.authority.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.authority.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.authority} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.authority.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAccount();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n TronWebProto.AccountId.serializeBinaryToWriter\n );\n }\n f = message.getPermissionName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional AccountId account = 1;\n * @return {?TronWebProto.AccountId}\n */\nTronWebProto.authority.prototype.getAccount = function() {\n return /** @type{?TronWebProto.AccountId} */ (\n jspb.Message.getWrapperField(this, TronWebProto.AccountId, 1));\n};\n\n\n/**\n * @param {?TronWebProto.AccountId|undefined} value\n * @return {!TronWebProto.authority} returns this\n*/\nTronWebProto.authority.prototype.setAccount = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.authority} returns this\n */\nTronWebProto.authority.prototype.clearAccount = function() {\n return this.setAccount(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.authority.prototype.hasAccount = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.authority.prototype.getPermissionName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * This is a type-conversion wrapper around `getPermissionName()`\n * @return {string}\n */\nTronWebProto.authority.prototype.getPermissionName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getPermissionName()));\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getPermissionName()`\n * @return {!Uint8Array}\n */\nTronWebProto.authority.prototype.getPermissionName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getPermissionName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.authority} returns this\n */\nTronWebProto.authority.prototype.setPermissionName = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Permission.repeatedFields_ = [7];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Permission.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Permission.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Permission} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Permission.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n id: jspb.Message.getFieldWithDefault(msg, 2, 0),\n permissionName: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n threshold: jspb.Message.getFieldWithDefault(msg, 4, 0),\n parentId: jspb.Message.getFieldWithDefault(msg, 5, 0),\n operations: msg.getOperations_asB64(),\n keysList: jspb.Message.toObjectList(msg.getKeysList(),\n TronWebProto.Key.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Permission.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Permission;\n return TronWebProto.Permission.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Permission} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Permission.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!TronWebProto.Permission.PermissionType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setPermissionName(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setThreshold(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setParentId(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOperations(value);\n break;\n case 7:\n var value = new TronWebProto.Key;\n reader.readMessage(value,TronWebProto.Key.deserializeBinaryFromReader);\n msg.addKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Permission.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Permission.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Permission} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Permission.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getId();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n f = message.getPermissionName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getThreshold();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getParentId();\n if (f !== 0) {\n writer.writeInt32(\n 5,\n f\n );\n }\n f = message.getOperations_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getKeysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 7,\n f,\n TronWebProto.Key.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Permission.PermissionType = {\n OWNER: 0,\n WITNESS: 1,\n ACTIVE: 2\n};\n\n/**\n * optional PermissionType type = 1;\n * @return {!TronWebProto.Permission.PermissionType}\n */\nTronWebProto.Permission.prototype.getType = function() {\n return /** @type {!TronWebProto.Permission.PermissionType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Permission.PermissionType} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional int32 id = 2;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string permission_name = 3;\n * @return {string}\n */\nTronWebProto.Permission.prototype.getPermissionName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setPermissionName = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional int64 threshold = 4;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getThreshold = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setThreshold = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int32 parent_id = 5;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getParentId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setParentId = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional bytes operations = 6;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Permission.prototype.getOperations = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes operations = 6;\n * This is a type-conversion wrapper around `getOperations()`\n * @return {string}\n */\nTronWebProto.Permission.prototype.getOperations_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOperations()));\n};\n\n\n/**\n * optional bytes operations = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOperations()`\n * @return {!Uint8Array}\n */\nTronWebProto.Permission.prototype.getOperations_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOperations()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setOperations = function(value) {\n return jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * repeated Key keys = 7;\n * @return {!Array}\n */\nTronWebProto.Permission.prototype.getKeysList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Key, 7));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Permission} returns this\n*/\nTronWebProto.Permission.prototype.setKeysList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!TronWebProto.Key=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Permission.prototype.addKeys = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, TronWebProto.Key, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.clearKeysList = function() {\n return this.setKeysList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Witness.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Witness.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Witness} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Witness.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n votecount: jspb.Message.getFieldWithDefault(msg, 2, 0),\n pubkey: msg.getPubkey_asB64(),\n url: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n totalproduced: jspb.Message.getFieldWithDefault(msg, 5, 0),\n totalmissed: jspb.Message.getFieldWithDefault(msg, 6, 0),\n latestblocknum: jspb.Message.getFieldWithDefault(msg, 7, 0),\n latestslotnum: jspb.Message.getFieldWithDefault(msg, 8, 0),\n isjobs: jspb.Message.getBooleanFieldWithDefault(msg, 9, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Witness}\n */\nTronWebProto.Witness.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Witness;\n return TronWebProto.Witness.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Witness} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Witness}\n */\nTronWebProto.Witness.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVotecount(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setPubkey(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setUrl(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalproduced(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalmissed(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestblocknum(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestslotnum(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsjobs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Witness.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Witness} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Witness.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVotecount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getPubkey_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getUrl();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getTotalproduced();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getTotalmissed();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getLatestblocknum();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getLatestslotnum();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getIsjobs();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Witness.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Witness.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 voteCount = 2;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getVotecount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setVotecount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Witness.prototype.getPubkey = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * This is a type-conversion wrapper around `getPubkey()`\n * @return {string}\n */\nTronWebProto.Witness.prototype.getPubkey_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getPubkey()));\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getPubkey()`\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.getPubkey_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getPubkey()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setPubkey = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional string url = 4;\n * @return {string}\n */\nTronWebProto.Witness.prototype.getUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional int64 totalProduced = 5;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getTotalproduced = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setTotalproduced = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 totalMissed = 6;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getTotalmissed = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setTotalmissed = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int64 latestBlockNum = 7;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getLatestblocknum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setLatestblocknum = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 latestSlotNum = 8;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getLatestslotnum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setLatestslotnum = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional bool isJobs = 9;\n * @return {boolean}\n */\nTronWebProto.Witness.prototype.getIsjobs = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setIsjobs = function(value) {\n return jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Votes.repeatedFields_ = [2,3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Votes.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Votes.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Votes} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Votes.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n oldVotesList: jspb.Message.toObjectList(msg.getOldVotesList(),\n TronWebProto.Vote.toObject, includeInstance),\n newVotesList: jspb.Message.toObjectList(msg.getNewVotesList(),\n TronWebProto.Vote.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Votes}\n */\nTronWebProto.Votes.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Votes;\n return TronWebProto.Votes.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Votes} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Votes}\n */\nTronWebProto.Votes.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addOldVotes(value);\n break;\n case 3:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addNewVotes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Votes.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Votes.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Votes} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Votes.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOldVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n f = message.getNewVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Votes.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Votes.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Votes.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * repeated Vote old_votes = 2;\n * @return {!Array}\n */\nTronWebProto.Votes.prototype.getOldVotesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 2));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Votes} returns this\n*/\nTronWebProto.Votes.prototype.setOldVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Votes.prototype.addOldVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.clearOldVotesList = function() {\n return this.setOldVotesList([]);\n};\n\n\n/**\n * repeated Vote new_votes = 3;\n * @return {!Array}\n */\nTronWebProto.Votes.prototype.getNewVotesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 3));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Votes} returns this\n*/\nTronWebProto.Votes.prototype.setNewVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Votes.prototype.addNewVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.clearNewVotesList = function() {\n return this.setNewVotesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.MarketOrderDetail.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.MarketOrderDetail.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.MarketOrderDetail} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.MarketOrderDetail.toObject = function(includeInstance, msg) {\n var f, obj = {\n makerorderid: msg.getMakerorderid_asB64(),\n takerorderid: msg.getTakerorderid_asB64(),\n fillsellquantity: jspb.Message.getFieldWithDefault(msg, 3, 0),\n fillbuyquantity: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.MarketOrderDetail.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.MarketOrderDetail;\n return TronWebProto.MarketOrderDetail.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.MarketOrderDetail} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.MarketOrderDetail.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setMakerorderid(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTakerorderid(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFillsellquantity(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFillbuyquantity(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.MarketOrderDetail.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.MarketOrderDetail} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.MarketOrderDetail.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMakerorderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getTakerorderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFillsellquantity();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFillbuyquantity();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * This is a type-conversion wrapper around `getMakerorderid()`\n * @return {string}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getMakerorderid()));\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getMakerorderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getMakerorderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setMakerorderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * This is a type-conversion wrapper around `getTakerorderid()`\n * @return {string}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTakerorderid()));\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTakerorderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTakerorderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setTakerorderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 fillSellQuantity = 3;\n * @return {number}\n */\nTronWebProto.MarketOrderDetail.prototype.getFillsellquantity = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setFillsellquantity = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 fillBuyQuantity = 4;\n * @return {number}\n */\nTronWebProto.MarketOrderDetail.prototype.getFillbuyquantity = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setFillbuyquantity = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Transaction.repeatedFields_ = [2,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.toObject = function(includeInstance, msg) {\n var f, obj = {\n rawData: (f = msg.getRawData()) && TronWebProto.Transaction.raw.toObject(includeInstance, f),\n signatureList: msg.getSignatureList_asB64(),\n retList: jspb.Message.toObjectList(msg.getRetList(),\n TronWebProto.Transaction.Result.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction}\n */\nTronWebProto.Transaction.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction;\n return TronWebProto.Transaction.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction}\n */\nTronWebProto.Transaction.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.Transaction.raw;\n reader.readMessage(value,TronWebProto.Transaction.raw.deserializeBinaryFromReader);\n msg.setRawData(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.addSignature(value);\n break;\n case 5:\n var value = new TronWebProto.Transaction.Result;\n reader.readMessage(value,TronWebProto.Transaction.Result.deserializeBinaryFromReader);\n msg.addRet(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRawData();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n TronWebProto.Transaction.raw.serializeBinaryToWriter\n );\n }\n f = message.getSignatureList_asU8();\n if (f.length > 0) {\n writer.writeRepeatedBytes(\n 2,\n f\n );\n }\n f = message.getRetList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.Transaction.Result.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.Contract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.Contract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Contract.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n parameter: (f = msg.getParameter()) && google_protobuf_any_pb.Any.toObject(includeInstance, f),\n provider: msg.getProvider_asB64(),\n contractname: msg.getContractname_asB64(),\n permissionId: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.Contract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.Contract;\n return TronWebProto.Transaction.Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.Contract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!TronWebProto.Transaction.Contract.ContractType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = new google_protobuf_any_pb.Any;\n reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);\n msg.setParameter(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setProvider(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractname(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setPermissionId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Contract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getParameter();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_any_pb.Any.serializeBinaryToWriter\n );\n }\n f = message.getProvider_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getContractname_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getPermissionId();\n if (f !== 0) {\n writer.writeInt32(\n 5,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Contract.ContractType = {\n ACCOUNTCREATECONTRACT: 0,\n TRANSFERCONTRACT: 1,\n TRANSFERASSETCONTRACT: 2,\n VOTEASSETCONTRACT: 3,\n VOTEWITNESSCONTRACT: 4,\n WITNESSCREATECONTRACT: 5,\n ASSETISSUECONTRACT: 6,\n WITNESSUPDATECONTRACT: 8,\n PARTICIPATEASSETISSUECONTRACT: 9,\n ACCOUNTUPDATECONTRACT: 10,\n FREEZEBALANCECONTRACT: 11,\n UNFREEZEBALANCECONTRACT: 12,\n WITHDRAWBALANCECONTRACT: 13,\n UNFREEZEASSETCONTRACT: 14,\n UPDATEASSETCONTRACT: 15,\n PROPOSALCREATECONTRACT: 16,\n PROPOSALAPPROVECONTRACT: 17,\n PROPOSALDELETECONTRACT: 18,\n SETACCOUNTIDCONTRACT: 19,\n CUSTOMCONTRACT: 20,\n CREATESMARTCONTRACT: 30,\n TRIGGERSMARTCONTRACT: 31,\n GETCONTRACT: 32,\n UPDATESETTINGCONTRACT: 33,\n EXCHANGECREATECONTRACT: 41,\n EXCHANGEINJECTCONTRACT: 42,\n EXCHANGEWITHDRAWCONTRACT: 43,\n EXCHANGETRANSACTIONCONTRACT: 44,\n UPDATEENERGYLIMITCONTRACT: 45,\n ACCOUNTPERMISSIONUPDATECONTRACT: 46,\n CLEARABICONTRACT: 48,\n UPDATEBROKERAGECONTRACT: 49,\n SHIELDEDTRANSFERCONTRACT: 51,\n MARKETSELLASSETCONTRACT: 52,\n MARKETCANCELORDERCONTRACT: 53,\n FREEZEBALANCEV2CONTRACT: 54,\n UNFREEZEBALANCEV2CONTRACT: 55,\n WITHDRAWEXPIREUNFREEZECONTRACT: 56,\n DELEGATERESOURCECONTRACT: 57,\n UNDELEGATERESOURCECONTRACT: 58,\n CANCELALLUNFREEZEV2CONTRACT: 59\n};\n\n/**\n * optional ContractType type = 1;\n * @return {!TronWebProto.Transaction.Contract.ContractType}\n */\nTronWebProto.Transaction.Contract.prototype.getType = function() {\n return /** @type {!TronWebProto.Transaction.Contract.ContractType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Contract.ContractType} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Any parameter = 2;\n * @return {?TronWebProto.Any}\n */\nTronWebProto.Transaction.Contract.prototype.getParameter = function() {\n return /** @type{?TronWebProto.Any} */ (\n jspb.Message.getWrapperField(this, google_protobuf_any_pb.Any, 2));\n};\n\n\n/**\n * @param {?TronWebProto.Any|undefined} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n*/\nTronWebProto.Transaction.Contract.prototype.setParameter = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.clearParameter = function() {\n return this.setParameter(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Transaction.Contract.prototype.hasParameter = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional bytes provider = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes provider = 3;\n * This is a type-conversion wrapper around `getProvider()`\n * @return {string}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getProvider()));\n};\n\n\n/**\n * optional bytes provider = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getProvider()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getProvider()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setProvider = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * This is a type-conversion wrapper around `getContractname()`\n * @return {string}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getContractname()));\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractname()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getContractname()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setContractname = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int32 Permission_id = 5;\n * @return {number}\n */\nTronWebProto.Transaction.Contract.prototype.getPermissionId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setPermissionId = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Transaction.Result.repeatedFields_ = [26];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.Result.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.Result.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.Result} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Result.toObject = function(includeInstance, msg) {\n var f, obj = {\n fee: jspb.Message.getFieldWithDefault(msg, 1, 0),\n ret: jspb.Message.getFieldWithDefault(msg, 2, 0),\n contractret: jspb.Message.getFieldWithDefault(msg, 3, 0),\n assetissueid: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n withdrawAmount: jspb.Message.getFieldWithDefault(msg, 15, 0),\n unfreezeAmount: jspb.Message.getFieldWithDefault(msg, 16, 0),\n exchangeReceivedAmount: jspb.Message.getFieldWithDefault(msg, 18, 0),\n exchangeInjectAnotherAmount: jspb.Message.getFieldWithDefault(msg, 19, 0),\n exchangeWithdrawAnotherAmount: jspb.Message.getFieldWithDefault(msg, 20, 0),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 21, 0),\n shieldedTransactionFee: jspb.Message.getFieldWithDefault(msg, 22, 0),\n orderid: msg.getOrderid_asB64(),\n orderdetailsList: jspb.Message.toObjectList(msg.getOrderdetailsList(),\n TronWebProto.MarketOrderDetail.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.Result.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.Result;\n return TronWebProto.Transaction.Result.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.Result} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.Result.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFee(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.Transaction.Result.code} */ (reader.readEnum());\n msg.setRet(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.Transaction.Result.contractResult} */ (reader.readEnum());\n msg.setContractret(value);\n break;\n case 14:\n var value = /** @type {string} */ (reader.readString());\n msg.setAssetissueid(value);\n break;\n case 15:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setWithdrawAmount(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUnfreezeAmount(value);\n break;\n case 18:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeReceivedAmount(value);\n break;\n case 19:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeInjectAnotherAmount(value);\n break;\n case 20:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeWithdrawAnotherAmount(value);\n break;\n case 21:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setShieldedTransactionFee(value);\n break;\n case 25:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrderid(value);\n break;\n case 26:\n var value = new TronWebProto.MarketOrderDetail;\n reader.readMessage(value,TronWebProto.MarketOrderDetail.deserializeBinaryFromReader);\n msg.addOrderdetails(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Result.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.Result.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.Result} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Result.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFee();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getRet();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getContractret();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getAssetissueid();\n if (f.length > 0) {\n writer.writeString(\n 14,\n f\n );\n }\n f = message.getWithdrawAmount();\n if (f !== 0) {\n writer.writeInt64(\n 15,\n f\n );\n }\n f = message.getUnfreezeAmount();\n if (f !== 0) {\n writer.writeInt64(\n 16,\n f\n );\n }\n f = message.getExchangeReceivedAmount();\n if (f !== 0) {\n writer.writeInt64(\n 18,\n f\n );\n }\n f = message.getExchangeInjectAnotherAmount();\n if (f !== 0) {\n writer.writeInt64(\n 19,\n f\n );\n }\n f = message.getExchangeWithdrawAnotherAmount();\n if (f !== 0) {\n writer.writeInt64(\n 20,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 21,\n f\n );\n }\n f = message.getShieldedTransactionFee();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getOrderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 25,\n f\n );\n }\n f = message.getOrderdetailsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 26,\n f,\n TronWebProto.MarketOrderDetail.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Result.code = {\n SUCESS: 0,\n FAILED: 1\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Result.contractResult = {\n DEFAULT: 0,\n SUCCESS: 1,\n REVERT: 2,\n BAD_JUMP_DESTINATION: 3,\n OUT_OF_MEMORY: 4,\n PRECOMPILED_CONTRACT: 5,\n STACK_TOO_SMALL: 6,\n STACK_TOO_LARGE: 7,\n ILLEGAL_OPERATION: 8,\n STACK_OVERFLOW: 9,\n OUT_OF_ENERGY: 10,\n OUT_OF_TIME: 11,\n JVM_STACK_OVER_FLOW: 12,\n UNKNOWN: 13,\n TRANSFER_FAILED: 14,\n INVALID_CODE: 15\n};\n\n/**\n * optional int64 fee = 1;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getFee = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setFee = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional code ret = 2;\n * @return {!TronWebProto.Transaction.Result.code}\n */\nTronWebProto.Transaction.Result.prototype.getRet = function() {\n return /** @type {!TronWebProto.Transaction.Result.code} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result.code} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setRet = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional contractResult contractRet = 3;\n * @return {!TronWebProto.Transaction.Result.contractResult}\n */\nTronWebProto.Transaction.Result.prototype.getContractret = function() {\n return /** @type {!TronWebProto.Transaction.Result.contractResult} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result.contractResult} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setContractret = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional string assetIssueID = 14;\n * @return {string}\n */\nTronWebProto.Transaction.Result.prototype.getAssetissueid = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setAssetissueid = function(value) {\n return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional int64 withdraw_amount = 15;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getWithdrawAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setWithdrawAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 15, value);\n};\n\n\n/**\n * optional int64 unfreeze_amount = 16;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getUnfreezeAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setUnfreezeAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional int64 exchange_received_amount = 18;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeReceivedAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeReceivedAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 18, value);\n};\n\n\n/**\n * optional int64 exchange_inject_another_amount = 19;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeInjectAnotherAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeInjectAnotherAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 19, value);\n};\n\n\n/**\n * optional int64 exchange_withdraw_another_amount = 20;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeWithdrawAnotherAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeWithdrawAnotherAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 20, value);\n};\n\n\n/**\n * optional int64 exchange_id = 21;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 21, value);\n};\n\n\n/**\n * optional int64 shielded_transaction_fee = 22;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getShieldedTransactionFee = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setShieldedTransactionFee = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional bytes orderId = 25;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 25, \"\"));\n};\n\n\n/**\n * optional bytes orderId = 25;\n * This is a type-conversion wrapper around `getOrderid()`\n * @return {string}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrderid()));\n};\n\n\n/**\n * optional bytes orderId = 25;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setOrderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 25, value);\n};\n\n\n/**\n * repeated MarketOrderDetail orderDetails = 26;\n * @return {!Array}\n */\nTronWebProto.Transaction.Result.prototype.getOrderdetailsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.MarketOrderDetail, 26));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Transaction.Result} returns this\n*/\nTronWebProto.Transaction.Result.prototype.setOrderdetailsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 26, value);\n};\n\n\n/**\n * @param {!TronWebProto.MarketOrderDetail=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.Transaction.Result.prototype.addOrderdetails = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 26, opt_value, TronWebProto.MarketOrderDetail, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.clearOrderdetailsList = function() {\n return this.setOrderdetailsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.Transaction.raw.repeatedFields_ = [9,11];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.raw.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.raw.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.raw} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.raw.toObject = function(includeInstance, msg) {\n var f, obj = {\n refBlockBytes: msg.getRefBlockBytes_asB64(),\n refBlockNum: jspb.Message.getFieldWithDefault(msg, 3, 0),\n refBlockHash: msg.getRefBlockHash_asB64(),\n expiration: jspb.Message.getFieldWithDefault(msg, 8, 0),\n authsList: jspb.Message.toObjectList(msg.getAuthsList(),\n TronWebProto.authority.toObject, includeInstance),\n data: msg.getData_asB64(),\n contractList: jspb.Message.toObjectList(msg.getContractList(),\n TronWebProto.Transaction.Contract.toObject, includeInstance),\n scripts: msg.getScripts_asB64(),\n timestamp: jspb.Message.getFieldWithDefault(msg, 14, 0),\n feeLimit: jspb.Message.getFieldWithDefault(msg, 18, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.raw.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.raw;\n return TronWebProto.Transaction.raw.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.raw} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.raw.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefBlockBytes(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setRefBlockNum(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefBlockHash(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpiration(value);\n break;\n case 9:\n var value = new TronWebProto.authority;\n reader.readMessage(value,TronWebProto.authority.deserializeBinaryFromReader);\n msg.addAuths(value);\n break;\n case 10:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 11:\n var value = new TronWebProto.Transaction.Contract;\n reader.readMessage(value,TronWebProto.Transaction.Contract.deserializeBinaryFromReader);\n msg.addContract(value);\n break;\n case 12:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setScripts(value);\n break;\n case 14:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestamp(value);\n break;\n case 18:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFeeLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.raw.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.raw} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.raw.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRefBlockBytes_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getRefBlockNum();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getRefBlockHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getExpiration();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getAuthsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 9,\n f,\n TronWebProto.authority.serializeBinaryToWriter\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 10,\n f\n );\n }\n f = message.getContractList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 11,\n f,\n TronWebProto.Transaction.Contract.serializeBinaryToWriter\n );\n }\n f = message.getScripts_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 12,\n f\n );\n }\n f = message.getTimestamp();\n if (f !== 0) {\n writer.writeInt64(\n 14,\n f\n );\n }\n f = message.getFeeLimit();\n if (f !== 0) {\n writer.writeInt64(\n 18,\n f\n );\n }\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * This is a type-conversion wrapper around `getRefBlockBytes()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefBlockBytes()));\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefBlockBytes()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefBlockBytes()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockBytes = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 ref_block_num = 3;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockNum = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * This is a type-conversion wrapper around `getRefBlockHash()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefBlockHash()));\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefBlockHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefBlockHash()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockHash = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int64 expiration = 8;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getExpiration = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setExpiration = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * repeated authority auths = 9;\n * @return {!Array}\n */\nTronWebProto.Transaction.raw.prototype.getAuthsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.authority, 9));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Transaction.raw} returns this\n*/\nTronWebProto.Transaction.raw.prototype.setAuthsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 9, value);\n};\n\n\n/**\n * @param {!TronWebProto.authority=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.authority}\n */\nTronWebProto.Transaction.raw.prototype.addAuths = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, TronWebProto.authority, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.clearAuthsList = function() {\n return this.setAuthsList([]);\n};\n\n\n/**\n * optional bytes data = 10;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * optional bytes data = 10;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setData = function(value) {\n return jspb.Message.setProto3BytesField(this, 10, value);\n};\n\n\n/**\n * repeated Contract contract = 11;\n * @return {!Array}\n */\nTronWebProto.Transaction.raw.prototype.getContractList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Transaction.Contract, 11));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Transaction.raw} returns this\n*/\nTronWebProto.Transaction.raw.prototype.setContractList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 11, value);\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Contract=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.raw.prototype.addContract = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, TronWebProto.Transaction.Contract, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.clearContractList = function() {\n return this.setContractList([]);\n};\n\n\n/**\n * optional bytes scripts = 12;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getScripts = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * optional bytes scripts = 12;\n * This is a type-conversion wrapper around `getScripts()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getScripts_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getScripts()));\n};\n\n\n/**\n * optional bytes scripts = 12;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getScripts()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getScripts_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getScripts()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setScripts = function(value) {\n return jspb.Message.setProto3BytesField(this, 12, value);\n};\n\n\n/**\n * optional int64 timestamp = 14;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getTimestamp = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setTimestamp = function(value) {\n return jspb.Message.setProto3IntField(this, 14, value);\n};\n\n\n/**\n * optional int64 fee_limit = 18;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getFeeLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setFeeLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 18, value);\n};\n\n\n/**\n * optional raw raw_data = 1;\n * @return {?TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.prototype.getRawData = function() {\n return /** @type{?TronWebProto.Transaction.raw} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Transaction.raw, 1));\n};\n\n\n/**\n * @param {?TronWebProto.Transaction.raw|undefined} value\n * @return {!TronWebProto.Transaction} returns this\n*/\nTronWebProto.Transaction.prototype.setRawData = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearRawData = function() {\n return this.setRawData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Transaction.prototype.hasRawData = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated bytes signature = 2;\n * @return {!(Array|Array)}\n */\nTronWebProto.Transaction.prototype.getSignatureList = function() {\n return /** @type {!(Array|Array)} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * repeated bytes signature = 2;\n * This is a type-conversion wrapper around `getSignatureList()`\n * @return {!Array}\n */\nTronWebProto.Transaction.prototype.getSignatureList_asB64 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsB64(\n this.getSignatureList()));\n};\n\n\n/**\n * repeated bytes signature = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSignatureList()`\n * @return {!Array}\n */\nTronWebProto.Transaction.prototype.getSignatureList_asU8 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsU8(\n this.getSignatureList()));\n};\n\n\n/**\n * @param {!(Array|Array)} value\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.setSignatureList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.addSignature = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearSignatureList = function() {\n return this.setSignatureList([]);\n};\n\n\n/**\n * repeated Result ret = 5;\n * @return {!Array}\n */\nTronWebProto.Transaction.prototype.getRetList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Transaction.Result, 5));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.Transaction} returns this\n*/\nTronWebProto.Transaction.prototype.setRetList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.prototype.addRet = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.Transaction.Result, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearRetList = function() {\n return this.setRetList([]);\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.AccountType = {\n NORMAL: 0,\n ASSETISSUE: 1,\n CONTRACT: 2\n};\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/account_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.cjs');\ngoog.object.extend(proto, core_Tron_pb);\ngoog.exportSymbol('TronWebProto.AccountCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.AccountPermissionUpdateContract', null, global);\ngoog.exportSymbol('TronWebProto.AccountUpdateContract', null, global);\ngoog.exportSymbol('TronWebProto.SetAccountIdContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountCreateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountCreateContract.displayName = 'TronWebProto.AccountCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountUpdateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountUpdateContract.displayName = 'TronWebProto.AccountUpdateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SetAccountIdContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SetAccountIdContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SetAccountIdContract.displayName = 'TronWebProto.SetAccountIdContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountPermissionUpdateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.AccountPermissionUpdateContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.AccountPermissionUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountPermissionUpdateContract.displayName = 'TronWebProto.AccountPermissionUpdateContract';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountCreateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountCreateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountCreateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n accountAddress: msg.getAccountAddress_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountCreateContract}\n */\nTronWebProto.AccountCreateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountCreateContract();\n return TronWebProto.AccountCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountCreateContract}\n */\nTronWebProto.AccountCreateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountAddress(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.AccountType} */ (reader.readEnum());\n msg.setType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountCreateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getAccountAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes account_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes account_address = 2;\n * This is a type-conversion wrapper around `getAccountAddress()`\n * @return {string}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountAddress()));\n};\n\n/**\n * optional bytes account_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setAccountAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional AccountType type = 3;\n * @return {!TronWebProto.AccountType}\n */\nTronWebProto.AccountCreateContract.prototype.getType = function () {\n return /** @type {!TronWebProto.AccountType} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.AccountType} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setType = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountUpdateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountUpdateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountUpdateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountName: msg.getAccountName_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountUpdateContract}\n */\nTronWebProto.AccountUpdateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountUpdateContract();\n return TronWebProto.AccountUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountUpdateContract}\n */\nTronWebProto.AccountUpdateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountUpdateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountName_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes account_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes account_name = 1;\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {string}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountName()));\n};\n\n/**\n * optional bytes account_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountName()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setAccountName = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SetAccountIdContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SetAccountIdContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SetAccountIdContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SetAccountIdContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountId: msg.getAccountId_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SetAccountIdContract}\n */\nTronWebProto.SetAccountIdContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SetAccountIdContract();\n return TronWebProto.SetAccountIdContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SetAccountIdContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SetAccountIdContract}\n */\nTronWebProto.SetAccountIdContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SetAccountIdContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SetAccountIdContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SetAccountIdContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountId_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes account_id = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes account_id = 1;\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {string}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountId()));\n};\n\n/**\n * optional bytes account_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountId()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SetAccountIdContract} returns this\n */\nTronWebProto.SetAccountIdContract.prototype.setAccountId = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SetAccountIdContract} returns this\n */\nTronWebProto.SetAccountIdContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.AccountPermissionUpdateContract.repeatedFields_ = [4];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountPermissionUpdateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountPermissionUpdateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountPermissionUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountPermissionUpdateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n owner: (f = msg.getOwner()) && core_Tron_pb.Permission.toObject(includeInstance, f),\n witness: (f = msg.getWitness()) && core_Tron_pb.Permission.toObject(includeInstance, f),\n activesList: jspb.Message.toObjectList(msg.getActivesList(), core_Tron_pb.Permission.toObject, includeInstance),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountPermissionUpdateContract}\n */\nTronWebProto.AccountPermissionUpdateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountPermissionUpdateContract();\n return TronWebProto.AccountPermissionUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountPermissionUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountPermissionUpdateContract}\n */\nTronWebProto.AccountPermissionUpdateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.setOwner(value);\n break;\n case 3:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.setWitness(value);\n break;\n case 4:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.addActives(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountPermissionUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountPermissionUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountPermissionUpdateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwner();\n if (f != null) {\n writer.writeMessage(2, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n f = message.getWitness();\n if (f != null) {\n writer.writeMessage(3, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n f = message.getActivesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(4, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional Permission owner = 2;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwner = function () {\n return /** @type{?TronWebProto.Permission} */ (jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 2));\n};\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setOwner = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearOwner = function () {\n return this.setOwner(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.hasOwner = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * optional Permission witness = 3;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getWitness = function () {\n return /** @type{?TronWebProto.Permission} */ (jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 3));\n};\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setWitness = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearWitness = function () {\n return this.setWitness(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.hasWitness = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * repeated Permission actives = 4;\n * @return {!Array}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getActivesList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, core_Tron_pb.Permission, 4)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setActivesList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n/**\n * @param {!TronWebProto.Permission=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.addActives = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, TronWebProto.Permission, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearActivesList = function () {\n return this.setActivesList([]);\n};\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/asset_issue_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.AssetIssueContract', null, global);\ngoog.exportSymbol('TronWebProto.AssetIssueContract.FrozenSupply', null, global);\ngoog.exportSymbol('TronWebProto.ParticipateAssetIssueContract', null, global);\ngoog.exportSymbol('TronWebProto.TransferAssetContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeAssetContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateAssetContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AssetIssueContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.AssetIssueContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.AssetIssueContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AssetIssueContract.displayName = 'TronWebProto.AssetIssueContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AssetIssueContract.FrozenSupply = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AssetIssueContract.FrozenSupply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AssetIssueContract.FrozenSupply.displayName = 'TronWebProto.AssetIssueContract.FrozenSupply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransferAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransferAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransferAssetContract.displayName = 'TronWebProto.TransferAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeAssetContract.displayName = 'TronWebProto.UnfreezeAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateAssetContract.displayName = 'TronWebProto.UpdateAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ParticipateAssetIssueContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ParticipateAssetIssueContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ParticipateAssetIssueContract.displayName = 'TronWebProto.ParticipateAssetIssueContract';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.AssetIssueContract.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AssetIssueContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AssetIssueContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AssetIssueContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 41, \"\"),\n ownerAddress: msg.getOwnerAddress_asB64(),\n name: msg.getName_asB64(),\n abbr: msg.getAbbr_asB64(),\n totalSupply: jspb.Message.getFieldWithDefault(msg, 4, 0),\n frozenSupplyList: jspb.Message.toObjectList(msg.getFrozenSupplyList(),\n TronWebProto.AssetIssueContract.FrozenSupply.toObject, includeInstance),\n trxNum: jspb.Message.getFieldWithDefault(msg, 6, 0),\n precision: jspb.Message.getFieldWithDefault(msg, 7, 0),\n num: jspb.Message.getFieldWithDefault(msg, 8, 0),\n startTime: jspb.Message.getFieldWithDefault(msg, 9, 0),\n endTime: jspb.Message.getFieldWithDefault(msg, 10, 0),\n order: jspb.Message.getFieldWithDefault(msg, 11, 0),\n voteScore: jspb.Message.getFieldWithDefault(msg, 16, 0),\n description: msg.getDescription_asB64(),\n url: msg.getUrl_asB64(),\n freeAssetNetLimit: jspb.Message.getFieldWithDefault(msg, 22, 0),\n publicFreeAssetNetLimit: jspb.Message.getFieldWithDefault(msg, 23, 0),\n publicFreeAssetNetUsage: jspb.Message.getFieldWithDefault(msg, 24, 0),\n publicLatestFreeNetTime: jspb.Message.getFieldWithDefault(msg, 25, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AssetIssueContract}\n */\nTronWebProto.AssetIssueContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AssetIssueContract;\n return TronWebProto.AssetIssueContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AssetIssueContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AssetIssueContract}\n */\nTronWebProto.AssetIssueContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 41:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAbbr(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalSupply(value);\n break;\n case 5:\n var value = new TronWebProto.AssetIssueContract.FrozenSupply;\n reader.readMessage(value,TronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader);\n msg.addFrozenSupply(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setTrxNum(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setPrecision(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setNum(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStartTime(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEndTime(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOrder(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setVoteScore(value);\n break;\n case 20:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDescription(value);\n break;\n case 21:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFreeAssetNetLimit(value);\n break;\n case 23:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicFreeAssetNetLimit(value);\n break;\n case 24:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicFreeAssetNetUsage(value);\n break;\n case 25:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicLatestFreeNetTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AssetIssueContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AssetIssueContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 41,\n f\n );\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getAbbr_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getTotalSupply();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getFrozenSupplyList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter\n );\n }\n f = message.getTrxNum();\n if (f !== 0) {\n writer.writeInt32(\n 6,\n f\n );\n }\n f = message.getPrecision();\n if (f !== 0) {\n writer.writeInt32(\n 7,\n f\n );\n }\n f = message.getNum();\n if (f !== 0) {\n writer.writeInt32(\n 8,\n f\n );\n }\n f = message.getStartTime();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getEndTime();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getOrder();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getVoteScore();\n if (f !== 0) {\n writer.writeInt32(\n 16,\n f\n );\n }\n f = message.getDescription_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 20,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 21,\n f\n );\n }\n f = message.getFreeAssetNetLimit();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getPublicFreeAssetNetLimit();\n if (f !== 0) {\n writer.writeInt64(\n 23,\n f\n );\n }\n f = message.getPublicFreeAssetNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 24,\n f\n );\n }\n f = message.getPublicLatestFreeNetTime();\n if (f !== 0) {\n writer.writeInt64(\n 25,\n f\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AssetIssueContract.FrozenSupply.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.FrozenSupply.toObject = function(includeInstance, msg) {\n var f, obj = {\n frozenAmount: jspb.Message.getFieldWithDefault(msg, 1, 0),\n frozenDays: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AssetIssueContract.FrozenSupply;\n return TronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenAmount(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenDays(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrozenAmount();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getFrozenDays();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 frozen_amount = 1;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.getFrozenAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply} returns this\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.setFrozenAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 frozen_days = 2;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.getFrozenDays = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply} returns this\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.setFrozenDays = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string id = 41;\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 41, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 41, value);\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes name = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes name = 2;\n * This is a type-conversion wrapper around `getName()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getName()));\n};\n\n\n/**\n * optional bytes name = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setName = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes abbr = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes abbr = 3;\n * This is a type-conversion wrapper around `getAbbr()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAbbr()));\n};\n\n\n/**\n * optional bytes abbr = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAbbr()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAbbr()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setAbbr = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 total_supply = 4;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getTotalSupply = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setTotalSupply = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * repeated FrozenSupply frozen_supply = 5;\n * @return {!Array}\n */\nTronWebProto.AssetIssueContract.prototype.getFrozenSupplyList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.AssetIssueContract.FrozenSupply, 5));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n*/\nTronWebProto.AssetIssueContract.prototype.setFrozenSupplyList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.prototype.addFrozenSupply = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.AssetIssueContract.FrozenSupply, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.clearFrozenSupplyList = function() {\n return this.setFrozenSupplyList([]);\n};\n\n\n/**\n * optional int32 trx_num = 6;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getTrxNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setTrxNum = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int32 precision = 7;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPrecision = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPrecision = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int32 num = 8;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setNum = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 start_time = 9;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getStartTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setStartTime = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int64 end_time = 10;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getEndTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setEndTime = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 order = 11;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getOrder = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setOrder = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional int32 vote_score = 16;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getVoteScore = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setVoteScore = function(value) {\n return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional bytes description = 20;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 20, \"\"));\n};\n\n\n/**\n * optional bytes description = 20;\n * This is a type-conversion wrapper around `getDescription()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDescription()));\n};\n\n\n/**\n * optional bytes description = 20;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDescription()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDescription()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setDescription = function(value) {\n return jspb.Message.setProto3BytesField(this, 20, value);\n};\n\n\n/**\n * optional bytes url = 21;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 21, \"\"));\n};\n\n\n/**\n * optional bytes url = 21;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 21;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 21, value);\n};\n\n\n/**\n * optional int64 free_asset_net_limit = 22;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getFreeAssetNetLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setFreeAssetNetLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional int64 public_free_asset_net_limit = 23;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicFreeAssetNetLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 23, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicFreeAssetNetLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 23, value);\n};\n\n\n/**\n * optional int64 public_free_asset_net_usage = 24;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicFreeAssetNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicFreeAssetNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 24, value);\n};\n\n\n/**\n * optional int64 public_latest_free_net_time = 25;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicLatestFreeNetTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicLatestFreeNetTime = function(value) {\n return jspb.Message.setProto3IntField(this, 25, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.TransferAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TransferAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransferAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n assetName: msg.getAssetName_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransferAssetContract}\n */\nTronWebProto.TransferAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransferAssetContract;\n return TronWebProto.TransferAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransferAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransferAssetContract}\n */\nTronWebProto.TransferAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransferAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransferAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAssetName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetName()));\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setAssetName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes to_address = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes to_address = 3;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getToAddress()));\n};\n\n\n/**\n * optional bytes to_address = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getToAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setToAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 amount = 4;\n * @return {number}\n */\nTronWebProto.TransferAssetContract.prototype.getAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UnfreezeAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UnfreezeAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeAssetContract}\n */\nTronWebProto.UnfreezeAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeAssetContract;\n return TronWebProto.UnfreezeAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeAssetContract}\n */\nTronWebProto.UnfreezeAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeAssetContract} returns this\n */\nTronWebProto.UnfreezeAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UpdateAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n description: msg.getDescription_asB64(),\n url: msg.getUrl_asB64(),\n newLimit: jspb.Message.getFieldWithDefault(msg, 4, 0),\n newPublicLimit: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateAssetContract}\n */\nTronWebProto.UpdateAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateAssetContract;\n return TronWebProto.UpdateAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateAssetContract}\n */\nTronWebProto.UpdateAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDescription(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNewLimit(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNewPublicLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getDescription_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getNewLimit();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getNewPublicLimit();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes description = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes description = 2;\n * This is a type-conversion wrapper around `getDescription()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDescription()));\n};\n\n\n/**\n * optional bytes description = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDescription()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDescription()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setDescription = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes url = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes url = 3;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 new_limit = 4;\n * @return {number}\n */\nTronWebProto.UpdateAssetContract.prototype.getNewLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setNewLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 new_public_limit = 5;\n * @return {number}\n */\nTronWebProto.UpdateAssetContract.prototype.getNewPublicLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setNewPublicLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ParticipateAssetIssueContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ParticipateAssetIssueContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ParticipateAssetIssueContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n assetName: msg.getAssetName_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ParticipateAssetIssueContract}\n */\nTronWebProto.ParticipateAssetIssueContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ParticipateAssetIssueContract;\n return TronWebProto.ParticipateAssetIssueContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ParticipateAssetIssueContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ParticipateAssetIssueContract}\n */\nTronWebProto.ParticipateAssetIssueContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetName(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ParticipateAssetIssueContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ParticipateAssetIssueContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ParticipateAssetIssueContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getAssetName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes to_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes to_address = 2;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getToAddress()));\n};\n\n\n/**\n * optional bytes to_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getToAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setToAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetName()));\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setAssetName = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 amount = 4;\n * @return {number}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/balance_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_contract_common_pb = require('../../core/contract/common_pb.cjs');\ngoog.object.extend(proto, core_contract_common_pb);\ngoog.exportSymbol('TronWebProto.AccountBalanceRequest', null, global);\ngoog.exportSymbol('TronWebProto.AccountBalanceResponse', null, global);\ngoog.exportSymbol('TronWebProto.AccountIdentifier', null, global);\ngoog.exportSymbol('TronWebProto.AccountTrace', null, global);\ngoog.exportSymbol('TronWebProto.BlockBalanceTrace', null, global);\ngoog.exportSymbol('TronWebProto.BlockBalanceTrace.BlockIdentifier', null, global);\ngoog.exportSymbol('TronWebProto.CancelAllUnfreezeV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.DelegateResourceContract', null, global);\ngoog.exportSymbol('TronWebProto.FreezeBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.FreezeBalanceV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.TransactionBalanceTrace', null, global);\ngoog.exportSymbol('TronWebProto.TransactionBalanceTrace.Operation', null, global);\ngoog.exportSymbol('TronWebProto.TransferContract', null, global);\ngoog.exportSymbol('TronWebProto.UnDelegateResourceContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeBalanceV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.WithdrawBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.WithdrawExpireUnfreezeContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.FreezeBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.FreezeBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.FreezeBalanceContract.displayName = 'TronWebProto.FreezeBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeBalanceContract.displayName = 'TronWebProto.UnfreezeBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WithdrawBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WithdrawBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WithdrawBalanceContract.displayName = 'TronWebProto.WithdrawBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransferContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransferContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransferContract.displayName = 'TronWebProto.TransferContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransactionBalanceTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.TransactionBalanceTrace.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.TransactionBalanceTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransactionBalanceTrace.displayName = 'TronWebProto.TransactionBalanceTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransactionBalanceTrace.Operation = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransactionBalanceTrace.Operation, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransactionBalanceTrace.Operation.displayName = 'TronWebProto.TransactionBalanceTrace.Operation';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BlockBalanceTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.BlockBalanceTrace.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.BlockBalanceTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BlockBalanceTrace.displayName = 'TronWebProto.BlockBalanceTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BlockBalanceTrace.BlockIdentifier, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.displayName = 'TronWebProto.BlockBalanceTrace.BlockIdentifier';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountTrace.displayName = 'TronWebProto.AccountTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountIdentifier = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountIdentifier, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountIdentifier.displayName = 'TronWebProto.AccountIdentifier';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountBalanceRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountBalanceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountBalanceRequest.displayName = 'TronWebProto.AccountBalanceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountBalanceResponse = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountBalanceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountBalanceResponse.displayName = 'TronWebProto.AccountBalanceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.FreezeBalanceV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.FreezeBalanceV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.FreezeBalanceV2Contract.displayName = 'TronWebProto.FreezeBalanceV2Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeBalanceV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeBalanceV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeBalanceV2Contract.displayName = 'TronWebProto.UnfreezeBalanceV2Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WithdrawExpireUnfreezeContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WithdrawExpireUnfreezeContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WithdrawExpireUnfreezeContract.displayName = 'TronWebProto.WithdrawExpireUnfreezeContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.DelegateResourceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.DelegateResourceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.DelegateResourceContract.displayName = 'TronWebProto.DelegateResourceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnDelegateResourceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnDelegateResourceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnDelegateResourceContract.displayName = 'TronWebProto.UnDelegateResourceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.CancelAllUnfreezeV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.CancelAllUnfreezeV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.CancelAllUnfreezeV2Contract.displayName = 'TronWebProto.CancelAllUnfreezeV2Contract';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.FreezeBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.FreezeBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.FreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.FreezeBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n frozenDuration: jspb.Message.getFieldWithDefault(msg, 3, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 10, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.FreezeBalanceContract}\n */\nTronWebProto.FreezeBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.FreezeBalanceContract();\n return TronWebProto.FreezeBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.FreezeBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.FreezeBalanceContract}\n */\nTronWebProto.FreezeBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenDuration(value);\n break;\n case 10:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 15:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.FreezeBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.FreezeBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getFrozenDuration();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(10, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(15, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 frozen_balance = 2;\n * @return {number}\n */\nTronWebProto.FreezeBalanceContract.prototype.getFrozenBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setFrozenBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional int64 frozen_duration = 3;\n * @return {number}\n */\nTronWebProto.FreezeBalanceContract.prototype.getFrozenDuration = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setFrozenDuration = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional ResourceCode resource = 10;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.FreezeBalanceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 10, value);\n};\n\n/**\n * optional bytes receiver_address = 15;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 15, ''));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 15, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnfreezeBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnfreezeBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 10, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeBalanceContract}\n */\nTronWebProto.UnfreezeBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeBalanceContract();\n return TronWebProto.UnfreezeBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeBalanceContract}\n */\nTronWebProto.UnfreezeBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 10:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 15:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(10, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(15, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 10;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 10, value);\n};\n\n/**\n * optional bytes receiver_address = 15;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 15, ''));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 15, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.WithdrawBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.WithdrawBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WithdrawBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.WithdrawBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WithdrawBalanceContract}\n */\nTronWebProto.WithdrawBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WithdrawBalanceContract();\n return TronWebProto.WithdrawBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WithdrawBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WithdrawBalanceContract}\n */\nTronWebProto.WithdrawBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WithdrawBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WithdrawBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WithdrawBalanceContract} returns this\n */\nTronWebProto.WithdrawBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransferContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransferContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransferContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransferContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransferContract}\n */\nTronWebProto.TransferContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransferContract();\n return TronWebProto.TransferContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransferContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransferContract}\n */\nTronWebProto.TransferContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransferContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransferContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes to_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferContract.prototype.getToAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes to_address = 2;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.TransferContract.prototype.getToAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getToAddress()));\n};\n\n/**\n * optional bytes to_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.getToAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getToAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setToAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 amount = 3;\n * @return {number}\n */\nTronWebProto.TransferContract.prototype.getAmount = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setAmount = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.TransactionBalanceTrace.repeatedFields_ = [2];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransactionBalanceTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransactionBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransactionBalanceTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n transactionIdentifier: msg.getTransactionIdentifier_asB64(),\n operationList: jspb.Message.toObjectList(\n msg.getOperationList(),\n TronWebProto.TransactionBalanceTrace.Operation.toObject,\n includeInstance\n ),\n type: jspb.Message.getFieldWithDefault(msg, 3, ''),\n status: jspb.Message.getFieldWithDefault(msg, 4, ''),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.TransactionBalanceTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransactionBalanceTrace();\n return TronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransactionBalanceTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTransactionIdentifier(value);\n break;\n case 2:\n var value = new TronWebProto.TransactionBalanceTrace.Operation();\n reader.readMessage(value, TronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader);\n msg.addOperation(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setStatus(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransactionBalanceTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransactionBalanceTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getTransactionIdentifier_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOperationList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(2, f, TronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter);\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n f = message.getStatus();\n if (f.length > 0) {\n writer.writeString(4, f);\n }\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransactionBalanceTrace.Operation.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.Operation.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransactionBalanceTrace.Operation.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n operationIdentifier: jspb.Message.getFieldWithDefault(msg, 1, 0),\n address: msg.getAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.Operation.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransactionBalanceTrace.Operation();\n return TronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOperationIdentifier(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOperationIdentifier();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional int64 operation_identifier = 1;\n * @return {number}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getOperationIdentifier = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setOperationIdentifier = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional bytes address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes address = 2;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAddress()));\n};\n\n/**\n * optional bytes address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 amount = 3;\n * @return {number}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAmount = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setAmount = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * This is a type-conversion wrapper around `getTransactionIdentifier()`\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getTransactionIdentifier()));\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTransactionIdentifier()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getTransactionIdentifier()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setTransactionIdentifier = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * repeated Operation operation = 2;\n * @return {!Array}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getOperationList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.TransactionBalanceTrace.Operation, 2)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setOperationList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n/**\n * @param {!TronWebProto.TransactionBalanceTrace.Operation=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.prototype.addOperation = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.TransactionBalanceTrace.Operation, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.clearOperationList = function () {\n return this.setOperationList([]);\n};\n\n/**\n * optional string type = 3;\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getType = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setType = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * optional string status = 4;\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getStatus = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setStatus = function (value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.BlockBalanceTrace.repeatedFields_ = [3];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.BlockBalanceTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BlockBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.BlockBalanceTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n timestamp: jspb.Message.getFieldWithDefault(msg, 2, 0),\n transactionBalanceTraceList: jspb.Message.toObjectList(\n msg.getTransactionBalanceTraceList(),\n TronWebProto.TransactionBalanceTrace.toObject,\n includeInstance\n ),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BlockBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BlockBalanceTrace();\n return TronWebProto.BlockBalanceTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BlockBalanceTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BlockBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestamp(value);\n break;\n case 3:\n var value = new TronWebProto.TransactionBalanceTrace();\n reader.readMessage(value, TronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader);\n msg.addTransactionBalanceTrace(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BlockBalanceTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BlockBalanceTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n f = message.getTimestamp();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getTransactionBalanceTraceList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(3, f, TronWebProto.TransactionBalanceTrace.serializeBinaryToWriter);\n }\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n hash: msg.getHash_asB64(),\n number: jspb.Message.getFieldWithDefault(msg, 2, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n return TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHash(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNumber(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getNumber();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n};\n\n/**\n * optional bytes hash = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes hash = 1;\n * This is a type-conversion wrapper around `getHash()`\n * @return {string}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getHash()));\n};\n\n/**\n * optional bytes hash = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier} returns this\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.setHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 number = 2;\n * @return {number}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getNumber = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier} returns this\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.setNumber = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional BlockIdentifier block_identifier = 1;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 1)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.BlockBalanceTrace.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional int64 timestamp = 2;\n * @return {number}\n */\nTronWebProto.BlockBalanceTrace.prototype.getTimestamp = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setTimestamp = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * repeated TransactionBalanceTrace transaction_balance_trace = 3;\n * @return {!Array}\n */\nTronWebProto.BlockBalanceTrace.prototype.getTransactionBalanceTraceList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.TransactionBalanceTrace, 3)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setTransactionBalanceTraceList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n/**\n * @param {!TronWebProto.TransactionBalanceTrace=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.prototype.addTransactionBalanceTrace = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, TronWebProto.TransactionBalanceTrace, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.clearTransactionBalanceTraceList = function () {\n return this.setTransactionBalanceTraceList([]);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n balance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n placeholder: jspb.Message.getFieldWithDefault(msg, 99, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountTrace}\n */\nTronWebProto.AccountTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountTrace();\n return TronWebProto.AccountTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountTrace}\n */\nTronWebProto.AccountTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 99:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPlaceholder(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getPlaceholder();\n if (f !== 0) {\n writer.writeInt64(99, f);\n }\n};\n\n/**\n * optional int64 balance = 1;\n * @return {number}\n */\nTronWebProto.AccountTrace.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountTrace} returns this\n */\nTronWebProto.AccountTrace.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int64 placeholder = 99;\n * @return {number}\n */\nTronWebProto.AccountTrace.prototype.getPlaceholder = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 99, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountTrace} returns this\n */\nTronWebProto.AccountTrace.prototype.setPlaceholder = function (value) {\n return jspb.Message.setProto3IntField(this, 99, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountIdentifier.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountIdentifier.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountIdentifier.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n address: msg.getAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountIdentifier.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountIdentifier();\n return TronWebProto.AccountIdentifier.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountIdentifier} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountIdentifier.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountIdentifier.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountIdentifier.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountIdentifier} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountIdentifier.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAddress()));\n};\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountIdentifier} returns this\n */\nTronWebProto.AccountIdentifier.prototype.setAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountBalanceRequest.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountBalanceRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountBalanceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountBalanceRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountIdentifier:\n (f = msg.getAccountIdentifier()) && TronWebProto.AccountIdentifier.toObject(includeInstance, f),\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountBalanceRequest}\n */\nTronWebProto.AccountBalanceRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountBalanceRequest();\n return TronWebProto.AccountBalanceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountBalanceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountBalanceRequest}\n */\nTronWebProto.AccountBalanceRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.AccountIdentifier();\n reader.readMessage(value, TronWebProto.AccountIdentifier.deserializeBinaryFromReader);\n msg.setAccountIdentifier(value);\n break;\n case 2:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountBalanceRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountBalanceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountBalanceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountIdentifier();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.AccountIdentifier.serializeBinaryToWriter);\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional AccountIdentifier account_identifier = 1;\n * @return {?TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountBalanceRequest.prototype.getAccountIdentifier = function () {\n return /** @type{?TronWebProto.AccountIdentifier} */ (jspb.Message.getWrapperField(this, TronWebProto.AccountIdentifier, 1));\n};\n\n/**\n * @param {?TronWebProto.AccountIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.setAccountIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.clearAccountIdentifier = function () {\n return this.setAccountIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceRequest.prototype.hasAccountIdentifier = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional BlockBalanceTrace.BlockIdentifier block_identifier = 2;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.AccountBalanceRequest.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 2)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceRequest.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountBalanceResponse.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountBalanceResponse.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountBalanceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountBalanceResponse.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n balance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountBalanceResponse}\n */\nTronWebProto.AccountBalanceResponse.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountBalanceResponse();\n return TronWebProto.AccountBalanceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountBalanceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountBalanceResponse}\n */\nTronWebProto.AccountBalanceResponse.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 2:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountBalanceResponse.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountBalanceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountBalanceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceResponse.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 balance = 1;\n * @return {number}\n */\nTronWebProto.AccountBalanceResponse.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional BlockBalanceTrace.BlockIdentifier block_identifier = 2;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.AccountBalanceResponse.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 2)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceResponse.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.FreezeBalanceV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.FreezeBalanceV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.FreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.FreezeBalanceV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.FreezeBalanceV2Contract}\n */\nTronWebProto.FreezeBalanceV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.FreezeBalanceV2Contract();\n return TronWebProto.FreezeBalanceV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.FreezeBalanceV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.FreezeBalanceV2Contract}\n */\nTronWebProto.FreezeBalanceV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.FreezeBalanceV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.FreezeBalanceV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 frozen_balance = 2;\n * @return {number}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getFrozenBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setFrozenBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional ResourceCode resource = 3;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnfreezeBalanceV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnfreezeBalanceV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n unfreezeBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeBalanceV2Contract}\n */\nTronWebProto.UnfreezeBalanceV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeBalanceV2Contract();\n return TronWebProto.UnfreezeBalanceV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeBalanceV2Contract}\n */\nTronWebProto.UnfreezeBalanceV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUnfreezeBalance(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeBalanceV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getUnfreezeBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 unfreeze_balance = 2;\n * @return {number}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getUnfreezeBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setUnfreezeBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional ResourceCode resource = 3;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.WithdrawExpireUnfreezeContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.WithdrawExpireUnfreezeContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.WithdrawExpireUnfreezeContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WithdrawExpireUnfreezeContract();\n return TronWebProto.WithdrawExpireUnfreezeContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WithdrawExpireUnfreezeContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawExpireUnfreezeContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract} returns this\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.DelegateResourceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.DelegateResourceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.DelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.DelegateResourceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 2, 0),\n balance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n lock: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n lockPeriod: jspb.Message.getFieldWithDefault(msg, 6, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.DelegateResourceContract}\n */\nTronWebProto.DelegateResourceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.DelegateResourceContract();\n return TronWebProto.DelegateResourceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.DelegateResourceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.DelegateResourceContract}\n */\nTronWebProto.DelegateResourceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setLock(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLockPeriod(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.DelegateResourceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.DelegateResourceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegateResourceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getLock();\n if (f) {\n writer.writeBool(5, f);\n }\n f = message.getLockPeriod();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 2;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.DelegateResourceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * optional int64 balance = 3;\n * @return {number}\n */\nTronWebProto.DelegateResourceContract.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes receiver_address = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional bool lock = 5;\n * @return {boolean}\n */\nTronWebProto.DelegateResourceContract.prototype.getLock = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setLock = function (value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n/**\n * optional int64 lock_period = 6;\n * @return {number}\n */\nTronWebProto.DelegateResourceContract.prototype.getLockPeriod = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setLockPeriod = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnDelegateResourceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnDelegateResourceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnDelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnDelegateResourceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 2, 0),\n balance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnDelegateResourceContract}\n */\nTronWebProto.UnDelegateResourceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnDelegateResourceContract();\n return TronWebProto.UnDelegateResourceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnDelegateResourceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnDelegateResourceContract}\n */\nTronWebProto.UnDelegateResourceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnDelegateResourceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnDelegateResourceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnDelegateResourceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 2;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * optional int64 balance = 3;\n * @return {number}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes receiver_address = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.CancelAllUnfreezeV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.CancelAllUnfreezeV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.CancelAllUnfreezeV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.CancelAllUnfreezeV2Contract();\n return TronWebProto.CancelAllUnfreezeV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.CancelAllUnfreezeV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CancelAllUnfreezeV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract} returns this\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/common.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ResourceCode', null, global);\n/**\n * @enum {number}\n */\nTronWebProto.ResourceCode = {\n BANDWIDTH: 0,\n ENERGY: 1,\n TRON_POWER: 2\n};\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/exchange_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ExchangeCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeInjectContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeTransactionContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeWithdrawContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeCreateContract.displayName = 'TronWebProto.ExchangeCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeInjectContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeInjectContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeInjectContract.displayName = 'TronWebProto.ExchangeInjectContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeWithdrawContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeWithdrawContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeWithdrawContract.displayName = 'TronWebProto.ExchangeWithdrawContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeTransactionContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeTransactionContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeTransactionContract.displayName = 'TronWebProto.ExchangeTransactionContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n firstTokenId: msg.getFirstTokenId_asB64(),\n firstTokenBalance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n secondTokenId: msg.getSecondTokenId_asB64(),\n secondTokenBalance: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeCreateContract}\n */\nTronWebProto.ExchangeCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeCreateContract;\n return TronWebProto.ExchangeCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeCreateContract}\n */\nTronWebProto.ExchangeCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFirstTokenId(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFirstTokenBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setSecondTokenId(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSecondTokenBalance(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getFirstTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFirstTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getSecondTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getSecondTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFirstTokenId()));\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFirstTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setFirstTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 first_token_balance = 3;\n * @return {number}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setFirstTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getSecondTokenId()));\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getSecondTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setSecondTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int64 second_token_balance = 5;\n * @return {number}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setSecondTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeInjectContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeInjectContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeInjectContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeInjectContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeInjectContract}\n */\nTronWebProto.ExchangeInjectContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeInjectContract;\n return TronWebProto.ExchangeInjectContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeInjectContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeInjectContract}\n */\nTronWebProto.ExchangeInjectContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeInjectContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeInjectContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeInjectContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeInjectContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeInjectContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeWithdrawContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeWithdrawContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeWithdrawContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeWithdrawContract}\n */\nTronWebProto.ExchangeWithdrawContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeWithdrawContract;\n return TronWebProto.ExchangeWithdrawContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeWithdrawContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeWithdrawContract}\n */\nTronWebProto.ExchangeWithdrawContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeWithdrawContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeWithdrawContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeWithdrawContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeTransactionContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeTransactionContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeTransactionContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeTransactionContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0),\n expected: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeTransactionContract}\n */\nTronWebProto.ExchangeTransactionContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeTransactionContract;\n return TronWebProto.ExchangeTransactionContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeTransactionContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeTransactionContract}\n */\nTronWebProto.ExchangeTransactionContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpected(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeTransactionContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeTransactionContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeTransactionContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getExpected();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 expected = 5;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getExpected = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setExpected = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/proposal_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ProposalApproveContract', null, global);\ngoog.exportSymbol('TronWebProto.ProposalCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.ProposalDeleteContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalApproveContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalApproveContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalApproveContract.displayName = 'TronWebProto.ProposalApproveContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalCreateContract.displayName = 'TronWebProto.ProposalCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalDeleteContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalDeleteContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalDeleteContract.displayName = 'TronWebProto.ProposalDeleteContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalApproveContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalApproveContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalApproveContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalApproveContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n proposalId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n isAddApproval: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalApproveContract}\n */\nTronWebProto.ProposalApproveContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalApproveContract;\n return TronWebProto.ProposalApproveContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalApproveContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalApproveContract}\n */\nTronWebProto.ProposalApproveContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsAddApproval(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalApproveContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalApproveContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalApproveContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalApproveContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getIsAddApproval();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 proposal_id = 2;\n * @return {number}\n */\nTronWebProto.ProposalApproveContract.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bool is_add_approval = 3;\n * @return {boolean}\n */\nTronWebProto.ProposalApproveContract.prototype.getIsAddApproval = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setIsAddApproval = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : []\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalCreateContract}\n */\nTronWebProto.ProposalCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalCreateContract;\n return TronWebProto.ProposalCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalCreateContract}\n */\nTronWebProto.ProposalCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = msg.getParametersMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt64, jspb.BinaryReader.prototype.readInt64, null, 0, 0);\n });\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getParametersMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeInt64, jspb.BinaryWriter.prototype.writeInt64);\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalCreateContract} returns this\n */\nTronWebProto.ProposalCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * map parameters = 2;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nTronWebProto.ProposalCreateContract.prototype.getParametersMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 2, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.ProposalCreateContract} returns this\n */\nTronWebProto.ProposalCreateContract.prototype.clearParametersMap = function() {\n this.getParametersMap().clear();\n return this;};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalDeleteContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalDeleteContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalDeleteContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalDeleteContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n proposalId: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalDeleteContract}\n */\nTronWebProto.ProposalDeleteContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalDeleteContract;\n return TronWebProto.ProposalDeleteContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalDeleteContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalDeleteContract}\n */\nTronWebProto.ProposalDeleteContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalDeleteContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalDeleteContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalDeleteContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalDeleteContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalDeleteContract} returns this\n */\nTronWebProto.ProposalDeleteContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 proposal_id = 2;\n * @return {number}\n */\nTronWebProto.ProposalDeleteContract.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ProposalDeleteContract} returns this\n */\nTronWebProto.ProposalDeleteContract.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/smart_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.cjs');\ngoog.object.extend(proto, core_Tron_pb);\ngoog.exportSymbol('TronWebProto.ClearABIContract', null, global);\ngoog.exportSymbol('TronWebProto.ContractState', null, global);\ngoog.exportSymbol('TronWebProto.CreateSmartContract', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.EntryType', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.Param', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.StateMutabilityType', null, global);\ngoog.exportSymbol('TronWebProto.SmartContractDataWrapper', null, global);\ngoog.exportSymbol('TronWebProto.TriggerSmartContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateEnergyLimitContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateSettingContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.displayName = 'TronWebProto.SmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.SmartContract.ABI.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.displayName = 'TronWebProto.SmartContract.ABI';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI.Entry = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.SmartContract.ABI.Entry.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI.Entry, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.Entry.displayName = 'TronWebProto.SmartContract.ABI.Entry';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI.Entry.Param = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI.Entry.Param, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.Entry.Param.displayName = 'TronWebProto.SmartContract.ABI.Entry.Param';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ContractState = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ContractState, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ContractState.displayName = 'TronWebProto.ContractState';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.CreateSmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.CreateSmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.CreateSmartContract.displayName = 'TronWebProto.CreateSmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TriggerSmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TriggerSmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TriggerSmartContract.displayName = 'TronWebProto.TriggerSmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ClearABIContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ClearABIContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ClearABIContract.displayName = 'TronWebProto.ClearABIContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateSettingContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateSettingContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateSettingContract.displayName = 'TronWebProto.UpdateSettingContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateEnergyLimitContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateEnergyLimitContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateEnergyLimitContract.displayName = 'TronWebProto.UpdateEnergyLimitContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContractDataWrapper = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContractDataWrapper, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContractDataWrapper.displayName = 'TronWebProto.SmartContractDataWrapper';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n originAddress: msg.getOriginAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n abi: (f = msg.getAbi()) && TronWebProto.SmartContract.ABI.toObject(includeInstance, f),\n bytecode: msg.getBytecode_asB64(),\n callValue: jspb.Message.getFieldWithDefault(msg, 5, 0),\n consumeUserResourcePercent: jspb.Message.getFieldWithDefault(msg, 6, 0),\n name: jspb.Message.getFieldWithDefault(msg, 7, ''),\n originEnergyLimit: jspb.Message.getFieldWithDefault(msg, 8, 0),\n codeHash: msg.getCodeHash_asB64(),\n trxHash: msg.getTrxHash_asB64(),\n version: jspb.Message.getFieldWithDefault(msg, 11, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract}\n */\nTronWebProto.SmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract();\n return TronWebProto.SmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract}\n */\nTronWebProto.SmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOriginAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = new TronWebProto.SmartContract.ABI();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.deserializeBinaryFromReader);\n msg.setAbi(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setBytecode(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallValue(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConsumeUserResourcePercent(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOriginEnergyLimit(value);\n break;\n case 9:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCodeHash(value);\n break;\n case 10:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTrxHash(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setVersion(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOriginAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAbi();\n if (f != null) {\n writer.writeMessage(3, f, TronWebProto.SmartContract.ABI.serializeBinaryToWriter);\n }\n f = message.getBytecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(7, f);\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(8, f);\n }\n f = message.getCodeHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(9, f);\n }\n f = message.getTrxHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(10, f);\n }\n f = message.getVersion();\n if (f !== 0) {\n writer.writeInt32(11, f);\n }\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.SmartContract.ABI.repeatedFields_ = [1];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n entrysList: jspb.Message.toObjectList(\n msg.getEntrysList(),\n TronWebProto.SmartContract.ABI.Entry.toObject,\n includeInstance\n ),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.ABI.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI();\n return TronWebProto.SmartContract.ABI.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.ABI.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.SmartContract.ABI.Entry();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader);\n msg.addEntrys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getEntrysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, TronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter);\n }\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.SmartContract.ABI.Entry.repeatedFields_ = [4, 5];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.Entry.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI.Entry} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.Entry.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n anonymous: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n constant: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n name: jspb.Message.getFieldWithDefault(msg, 3, ''),\n inputsList: jspb.Message.toObjectList(\n msg.getInputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject,\n includeInstance\n ),\n outputsList: jspb.Message.toObjectList(\n msg.getOutputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject,\n includeInstance\n ),\n type: jspb.Message.getFieldWithDefault(msg, 6, 0),\n payable: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),\n statemutability: jspb.Message.getFieldWithDefault(msg, 8, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.Entry.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI.Entry();\n return TronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI.Entry} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAnonymous(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setConstant(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 4:\n var value = new TronWebProto.SmartContract.ABI.Entry.Param();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader);\n msg.addInputs(value);\n break;\n case 5:\n var value = new TronWebProto.SmartContract.ABI.Entry.Param();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader);\n msg.addOutputs(value);\n break;\n case 6:\n var value = /** @type {!TronWebProto.SmartContract.ABI.Entry.EntryType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 7:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPayable(value);\n break;\n case 8:\n var value = /** @type {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} */ (reader.readEnum());\n msg.setStatemutability(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI.Entry} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAnonymous();\n if (f) {\n writer.writeBool(1, f);\n }\n f = message.getConstant();\n if (f) {\n writer.writeBool(2, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n f = message.getInputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(4, f, TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter);\n }\n f = message.getOutputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(5, f, TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter);\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(6, f);\n }\n f = message.getPayable();\n if (f) {\n writer.writeBool(7, f);\n }\n f = message.getStatemutability();\n if (f !== 0.0) {\n writer.writeEnum(8, f);\n }\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.SmartContract.ABI.Entry.EntryType = {\n UNKNOWNENTRYTYPE: 0,\n CONSTRUCTOR: 1,\n FUNCTION: 2,\n EVENT: 3,\n FALLBACK: 4,\n RECEIVE: 5,\n ERROR: 6,\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.SmartContract.ABI.Entry.StateMutabilityType = {\n UNKNOWNMUTABILITYTYPE: 0,\n PURE: 1,\n VIEW: 2,\n NONPAYABLE: 3,\n PAYABLE: 4,\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.Entry.Param.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.Param.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.Entry.Param.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n indexed: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n name: jspb.Message.getFieldWithDefault(msg, 2, ''),\n type: jspb.Message.getFieldWithDefault(msg, 3, ''),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI.Entry.Param();\n return TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIndexed(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getIndexed();\n if (f) {\n writer.writeBool(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n};\n\n/**\n * optional bool indexed = 1;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getIndexed = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setIndexed = function (value) {\n return jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional string type = 3;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getType = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setType = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * optional bool anonymous = 1;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getAnonymous = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setAnonymous = function (value) {\n return jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n/**\n * optional bool constant = 2;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getConstant = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setConstant = function (value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * repeated Param inputs = 4;\n * @return {!Array}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getInputsList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry.Param, 4)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setInputsList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.addInputs = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, TronWebProto.SmartContract.ABI.Entry.Param, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.clearInputsList = function () {\n return this.setInputsList([]);\n};\n\n/**\n * repeated Param outputs = 5;\n * @return {!Array}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getOutputsList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry.Param, 5)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setOutputsList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.addOutputs = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.SmartContract.ABI.Entry.Param, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.clearOutputsList = function () {\n return this.setOutputsList([]);\n};\n\n/**\n * optional EntryType type = 6;\n * @return {!TronWebProto.SmartContract.ABI.Entry.EntryType}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getType = function () {\n return /** @type {!TronWebProto.SmartContract.ABI.Entry.EntryType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.EntryType} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setType = function (value) {\n return jspb.Message.setProto3EnumField(this, 6, value);\n};\n\n/**\n * optional bool payable = 7;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getPayable = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setPayable = function (value) {\n return jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n/**\n * optional StateMutabilityType stateMutability = 8;\n * @return {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getStatemutability = function () {\n return /** @type {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} */ (\n jspb.Message.getFieldWithDefault(this, 8, 0)\n );\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setStatemutability = function (value) {\n return jspb.Message.setProto3EnumField(this, 8, value);\n};\n\n/**\n * repeated Entry entrys = 1;\n * @return {!Array}\n */\nTronWebProto.SmartContract.ABI.prototype.getEntrysList = function () {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry, 1)\n );\n};\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.SmartContract.ABI} returns this\n */\nTronWebProto.SmartContract.ABI.prototype.setEntrysList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.prototype.addEntrys = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, TronWebProto.SmartContract.ABI.Entry, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI} returns this\n */\nTronWebProto.SmartContract.ABI.prototype.clearEntrysList = function () {\n return this.setEntrysList([]);\n};\n\n/**\n * optional bytes origin_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes origin_address = 1;\n * This is a type-conversion wrapper around `getOriginAddress()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOriginAddress()));\n};\n\n/**\n * optional bytes origin_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOriginAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOriginAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setOriginAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional ABI abi = 3;\n * @return {?TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.prototype.getAbi = function () {\n return /** @type{?TronWebProto.SmartContract.ABI} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract.ABI, 3));\n};\n\n/**\n * @param {?TronWebProto.SmartContract.ABI|undefined} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setAbi = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.clearAbi = function () {\n return this.setAbi(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContract.prototype.hasAbi = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * optional bytes bytecode = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getBytecode = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes bytecode = 4;\n * This is a type-conversion wrapper around `getBytecode()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getBytecode_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getBytecode()));\n};\n\n/**\n * optional bytes bytecode = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getBytecode()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getBytecode_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getBytecode()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setBytecode = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional int64 call_value = 5;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getCallValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setCallValue = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional int64 consume_user_resource_percent = 6;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getConsumeUserResourcePercent = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setConsumeUserResourcePercent = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n/**\n * optional string name = 7;\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n/**\n * optional int64 origin_energy_limit = 8;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getOriginEnergyLimit = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setOriginEnergyLimit = function (value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n/**\n * optional bytes code_hash = 9;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getCodeHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 9, ''));\n};\n\n/**\n * optional bytes code_hash = 9;\n * This is a type-conversion wrapper around `getCodeHash()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getCodeHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getCodeHash()));\n};\n\n/**\n * optional bytes code_hash = 9;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCodeHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getCodeHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getCodeHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setCodeHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 9, value);\n};\n\n/**\n * optional bytes trx_hash = 10;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getTrxHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, ''));\n};\n\n/**\n * optional bytes trx_hash = 10;\n * This is a type-conversion wrapper around `getTrxHash()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getTrxHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getTrxHash()));\n};\n\n/**\n * optional bytes trx_hash = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTrxHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getTrxHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getTrxHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setTrxHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 10, value);\n};\n\n/**\n * optional int32 version = 11;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getVersion = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setVersion = function (value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.ContractState.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.ContractState.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ContractState} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.ContractState.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n energyUsage: jspb.Message.getFieldWithDefault(msg, 1, 0),\n energyFactor: jspb.Message.getFieldWithDefault(msg, 2, 0),\n updateCycle: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ContractState}\n */\nTronWebProto.ContractState.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ContractState();\n return TronWebProto.ContractState.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ContractState} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ContractState}\n */\nTronWebProto.ContractState.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyUsage(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyFactor(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdateCycle(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ContractState.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ContractState.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ContractState} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ContractState.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getEnergyUsage();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getEnergyFactor();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getUpdateCycle();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional int64 energy_usage = 1;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getEnergyUsage = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setEnergyUsage = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int64 energy_factor = 2;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getEnergyFactor = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setEnergyFactor = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional int64 update_cycle = 3;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getUpdateCycle = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setUpdateCycle = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.CreateSmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.CreateSmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.CreateSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.CreateSmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n newContract: (f = msg.getNewContract()) && TronWebProto.SmartContract.toObject(includeInstance, f),\n callTokenValue: jspb.Message.getFieldWithDefault(msg, 3, 0),\n tokenId: jspb.Message.getFieldWithDefault(msg, 4, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.CreateSmartContract}\n */\nTronWebProto.CreateSmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.CreateSmartContract();\n return TronWebProto.CreateSmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.CreateSmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.CreateSmartContract}\n */\nTronWebProto.CreateSmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new TronWebProto.SmartContract();\n reader.readMessage(value, TronWebProto.SmartContract.deserializeBinaryFromReader);\n msg.setNewContract(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallTokenValue(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTokenId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.CreateSmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.CreateSmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.CreateSmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CreateSmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getNewContract();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.SmartContract.serializeBinaryToWriter);\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getTokenId();\n if (f !== 0) {\n writer.writeInt64(4, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional SmartContract new_contract = 2;\n * @return {?TronWebProto.SmartContract}\n */\nTronWebProto.CreateSmartContract.prototype.getNewContract = function () {\n return /** @type{?TronWebProto.SmartContract} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 2));\n};\n\n/**\n * @param {?TronWebProto.SmartContract|undefined} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setNewContract = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.clearNewContract = function () {\n return this.setNewContract(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.CreateSmartContract.prototype.hasNewContract = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * optional int64 call_token_value = 3;\n * @return {number}\n */\nTronWebProto.CreateSmartContract.prototype.getCallTokenValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setCallTokenValue = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional int64 token_id = 4;\n * @return {number}\n */\nTronWebProto.CreateSmartContract.prototype.getTokenId = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setTokenId = function (value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TriggerSmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TriggerSmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TriggerSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TriggerSmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n callValue: jspb.Message.getFieldWithDefault(msg, 3, 0),\n data: msg.getData_asB64(),\n callTokenValue: jspb.Message.getFieldWithDefault(msg, 5, 0),\n tokenId: jspb.Message.getFieldWithDefault(msg, 6, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TriggerSmartContract}\n */\nTronWebProto.TriggerSmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TriggerSmartContract();\n return TronWebProto.TriggerSmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TriggerSmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TriggerSmartContract}\n */\nTronWebProto.TriggerSmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallValue(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallTokenValue(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTokenId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TriggerSmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TriggerSmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TriggerSmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getTokenId();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 call_value = 3;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getCallValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setCallValue = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes data = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getData = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes data = 4;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getData_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getData()));\n};\n\n/**\n * optional bytes data = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getData_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getData()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setData = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional int64 call_token_value = 5;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getCallTokenValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setCallTokenValue = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional int64 token_id = 6;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getTokenId = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setTokenId = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.ClearABIContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.ClearABIContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ClearABIContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.ClearABIContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ClearABIContract}\n */\nTronWebProto.ClearABIContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ClearABIContract();\n return TronWebProto.ClearABIContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ClearABIContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ClearABIContract}\n */\nTronWebProto.ClearABIContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ClearABIContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ClearABIContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ClearABIContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ClearABIContract} returns this\n */\nTronWebProto.ClearABIContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ClearABIContract} returns this\n */\nTronWebProto.ClearABIContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UpdateSettingContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UpdateSettingContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateSettingContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UpdateSettingContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n consumeUserResourcePercent: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateSettingContract}\n */\nTronWebProto.UpdateSettingContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateSettingContract();\n return TronWebProto.UpdateSettingContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateSettingContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateSettingContract}\n */\nTronWebProto.UpdateSettingContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConsumeUserResourcePercent(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateSettingContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateSettingContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateSettingContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 consume_user_resource_percent = 3;\n * @return {number}\n */\nTronWebProto.UpdateSettingContract.prototype.getConsumeUserResourcePercent = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setConsumeUserResourcePercent = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UpdateEnergyLimitContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UpdateEnergyLimitContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateEnergyLimitContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UpdateEnergyLimitContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n originEnergyLimit: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateEnergyLimitContract}\n */\nTronWebProto.UpdateEnergyLimitContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateEnergyLimitContract();\n return TronWebProto.UpdateEnergyLimitContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateEnergyLimitContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateEnergyLimitContract}\n */\nTronWebProto.UpdateEnergyLimitContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOriginEnergyLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateEnergyLimitContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateEnergyLimitContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateEnergyLimitContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 origin_energy_limit = 3;\n * @return {number}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOriginEnergyLimit = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setOriginEnergyLimit = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContractDataWrapper.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContractDataWrapper.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContractDataWrapper} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContractDataWrapper.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n smartContract: (f = msg.getSmartContract()) && TronWebProto.SmartContract.toObject(includeInstance, f),\n runtimecode: msg.getRuntimecode_asB64(),\n contractState: (f = msg.getContractState()) && TronWebProto.ContractState.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContractDataWrapper}\n */\nTronWebProto.SmartContractDataWrapper.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContractDataWrapper();\n return TronWebProto.SmartContractDataWrapper.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContractDataWrapper} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContractDataWrapper}\n */\nTronWebProto.SmartContractDataWrapper.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.SmartContract();\n reader.readMessage(value, TronWebProto.SmartContract.deserializeBinaryFromReader);\n msg.setSmartContract(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRuntimecode(value);\n break;\n case 3:\n var value = new TronWebProto.ContractState();\n reader.readMessage(value, TronWebProto.ContractState.deserializeBinaryFromReader);\n msg.setContractState(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContractDataWrapper.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContractDataWrapper.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContractDataWrapper} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContractDataWrapper.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getSmartContract();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.SmartContract.serializeBinaryToWriter);\n }\n f = message.getRuntimecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getContractState();\n if (f != null) {\n writer.writeMessage(3, f, TronWebProto.ContractState.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional SmartContract smart_contract = 1;\n * @return {?TronWebProto.SmartContract}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getSmartContract = function () {\n return /** @type{?TronWebProto.SmartContract} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 1));\n};\n\n/**\n * @param {?TronWebProto.SmartContract|undefined} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setSmartContract = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.clearSmartContract = function () {\n return this.setSmartContract(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContractDataWrapper.prototype.hasSmartContract = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional bytes runtimecode = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes runtimecode = 2;\n * This is a type-conversion wrapper around `getRuntimecode()`\n * @return {string}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getRuntimecode()));\n};\n\n/**\n * optional bytes runtimecode = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRuntimecode()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getRuntimecode()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setRuntimecode = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional ContractState contract_state = 3;\n * @return {?TronWebProto.ContractState}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getContractState = function () {\n return /** @type{?TronWebProto.ContractState} */ (jspb.Message.getWrapperField(this, TronWebProto.ContractState, 3));\n};\n\n/**\n * @param {?TronWebProto.ContractState|undefined} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setContractState = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.clearContractState = function () {\n return this.setContractState(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContractDataWrapper.prototype.hasContractState = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/storage_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.BuyStorageBytesContract', null, global);\ngoog.exportSymbol('TronWebProto.BuyStorageContract', null, global);\ngoog.exportSymbol('TronWebProto.SellStorageContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateBrokerageContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BuyStorageBytesContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BuyStorageBytesContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BuyStorageBytesContract.displayName = 'TronWebProto.BuyStorageBytesContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BuyStorageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BuyStorageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BuyStorageContract.displayName = 'TronWebProto.BuyStorageContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SellStorageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SellStorageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SellStorageContract.displayName = 'TronWebProto.SellStorageContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateBrokerageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateBrokerageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateBrokerageContract.displayName = 'TronWebProto.UpdateBrokerageContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.BuyStorageBytesContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BuyStorageBytesContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BuyStorageBytesContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageBytesContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n bytes: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BuyStorageBytesContract}\n */\nTronWebProto.BuyStorageBytesContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BuyStorageBytesContract;\n return TronWebProto.BuyStorageBytesContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BuyStorageBytesContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BuyStorageBytesContract}\n */\nTronWebProto.BuyStorageBytesContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBytes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageBytesContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BuyStorageBytesContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BuyStorageBytesContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageBytesContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getBytes();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BuyStorageBytesContract} returns this\n */\nTronWebProto.BuyStorageBytesContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 bytes = 2;\n * @return {number}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getBytes = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BuyStorageBytesContract} returns this\n */\nTronWebProto.BuyStorageBytesContract.prototype.setBytes = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.BuyStorageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BuyStorageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BuyStorageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BuyStorageContract}\n */\nTronWebProto.BuyStorageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BuyStorageContract;\n return TronWebProto.BuyStorageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BuyStorageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BuyStorageContract}\n */\nTronWebProto.BuyStorageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BuyStorageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BuyStorageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BuyStorageContract} returns this\n */\nTronWebProto.BuyStorageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 quant = 2;\n * @return {number}\n */\nTronWebProto.BuyStorageContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BuyStorageContract} returns this\n */\nTronWebProto.BuyStorageContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.SellStorageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SellStorageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SellStorageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SellStorageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n storageBytes: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SellStorageContract}\n */\nTronWebProto.SellStorageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SellStorageContract;\n return TronWebProto.SellStorageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SellStorageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SellStorageContract}\n */\nTronWebProto.SellStorageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageBytes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SellStorageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SellStorageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SellStorageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SellStorageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getStorageBytes();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SellStorageContract} returns this\n */\nTronWebProto.SellStorageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 storage_bytes = 2;\n * @return {number}\n */\nTronWebProto.SellStorageContract.prototype.getStorageBytes = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SellStorageContract} returns this\n */\nTronWebProto.SellStorageContract.prototype.setStorageBytes = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UpdateBrokerageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateBrokerageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateBrokerageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateBrokerageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n brokerage: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateBrokerageContract}\n */\nTronWebProto.UpdateBrokerageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateBrokerageContract;\n return TronWebProto.UpdateBrokerageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateBrokerageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateBrokerageContract}\n */\nTronWebProto.UpdateBrokerageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setBrokerage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateBrokerageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateBrokerageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateBrokerageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateBrokerageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getBrokerage();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateBrokerageContract} returns this\n */\nTronWebProto.UpdateBrokerageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int32 brokerage = 2;\n * @return {number}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getBrokerage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateBrokerageContract} returns this\n */\nTronWebProto.UpdateBrokerageContract.prototype.setBrokerage = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n", "// source: core/contract/witness_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.VoteWitnessContract', null, global);\ngoog.exportSymbol('TronWebProto.VoteWitnessContract.Vote', null, global);\ngoog.exportSymbol('TronWebProto.WitnessCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.WitnessUpdateContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WitnessCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WitnessCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WitnessCreateContract.displayName = 'TronWebProto.WitnessCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WitnessUpdateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WitnessUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WitnessUpdateContract.displayName = 'TronWebProto.WitnessUpdateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.VoteWitnessContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.VoteWitnessContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.VoteWitnessContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.VoteWitnessContract.displayName = 'TronWebProto.VoteWitnessContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.VoteWitnessContract.Vote = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.VoteWitnessContract.Vote, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.VoteWitnessContract.Vote.displayName = 'TronWebProto.VoteWitnessContract.Vote';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.WitnessCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WitnessCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WitnessCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n url: msg.getUrl_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WitnessCreateContract}\n */\nTronWebProto.WitnessCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WitnessCreateContract;\n return TronWebProto.WitnessCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WitnessCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WitnessCreateContract}\n */\nTronWebProto.WitnessCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WitnessCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WitnessCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessCreateContract} returns this\n */\nTronWebProto.WitnessCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes url = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes url = 2;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessCreateContract} returns this\n */\nTronWebProto.WitnessCreateContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.WitnessUpdateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WitnessUpdateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WitnessUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessUpdateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n updateUrl: msg.getUpdateUrl_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WitnessUpdateContract}\n */\nTronWebProto.WitnessUpdateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WitnessUpdateContract;\n return TronWebProto.WitnessUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WitnessUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WitnessUpdateContract}\n */\nTronWebProto.WitnessUpdateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 12:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUpdateUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WitnessUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WitnessUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessUpdateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getUpdateUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 12,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessUpdateContract} returns this\n */\nTronWebProto.WitnessUpdateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes update_url = 12;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * optional bytes update_url = 12;\n * This is a type-conversion wrapper around `getUpdateUrl()`\n * @return {string}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUpdateUrl()));\n};\n\n\n/**\n * optional bytes update_url = 12;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUpdateUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUpdateUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessUpdateContract} returns this\n */\nTronWebProto.WitnessUpdateContract.prototype.setUpdateUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 12, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.VoteWitnessContract.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.VoteWitnessContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.VoteWitnessContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.VoteWitnessContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n votesList: jspb.Message.toObjectList(msg.getVotesList(),\n TronWebProto.VoteWitnessContract.Vote.toObject, includeInstance),\n support: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.VoteWitnessContract}\n */\nTronWebProto.VoteWitnessContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.VoteWitnessContract;\n return TronWebProto.VoteWitnessContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.VoteWitnessContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.VoteWitnessContract}\n */\nTronWebProto.VoteWitnessContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new TronWebProto.VoteWitnessContract.Vote;\n reader.readMessage(value,TronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader);\n msg.addVotes(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSupport(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.VoteWitnessContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.VoteWitnessContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n TronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter\n );\n }\n f = message.getSupport();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.VoteWitnessContract.Vote.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.VoteWitnessContract.Vote} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.Vote.toObject = function(includeInstance, msg) {\n var f, obj = {\n voteAddress: msg.getVoteAddress_asB64(),\n voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.Vote.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.VoteWitnessContract.Vote;\n return TronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.VoteWitnessContract.Vote} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setVoteAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVoteCount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.VoteWitnessContract.Vote} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVoteAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVoteCount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {string}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getVoteAddress()));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getVoteAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.VoteWitnessContract.Vote} returns this\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.setVoteAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 vote_count = 2;\n * @return {number}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.VoteWitnessContract.Vote} returns this\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.setVoteCount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * repeated Vote votes = 2;\n * @return {!Array}\n */\nTronWebProto.VoteWitnessContract.prototype.getVotesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.VoteWitnessContract.Vote, 2));\n};\n\n\n/**\n * @param {!Array} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n*/\nTronWebProto.VoteWitnessContract.prototype.setVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!TronWebProto.VoteWitnessContract.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.prototype.addVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.VoteWitnessContract.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.clearVotesList = function() {\n return this.setVotesList([]);\n};\n\n\n/**\n * optional bool support = 3;\n * @return {boolean}\n */\nTronWebProto.VoteWitnessContract.prototype.getSupport = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.setSupport = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n", "// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n", "// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};", "// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};", "__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();", "__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))", "// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};", "function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };", "import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };", "import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };", "import type { BytesLike } from '../types/UtilsTypes.js';\n\nconst _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nexport class Base64 {\n encode(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) enc3 = enc4 = 64;\n else if (isNaN(chr3)) enc4 = 64;\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n encodeIgnoreUtf8(inputBytes: BytesLike) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n while (i < inputBytes.length) {\n chr1 = inputBytes[i++];\n chr2 = inputBytes[i++];\n chr3 = inputBytes[i++];\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) enc3 = enc4 = 64;\n else if (isNaN(chr3)) enc4 = 64;\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n decode(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n // eslint-disable-next-line no-useless-escape\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n while (i < input.length) {\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64) output = output + String.fromCharCode(chr3);\n }\n\n return this._utf8_decode(output);\n }\n\n decodeToByteArray(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n // eslint-disable-next-line no-useless-escape\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n while (i < input.length) {\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64) output = output + String.fromCharCode(chr3);\n }\n\n return this._out2ByteArray(output);\n }\n\n _out2ByteArray(utftext: string) {\n const byteArray: BytesLike = new Array(utftext.length);\n\n let i = 0;\n let c = 0;\n\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n byteArray[i] = c;\n i++;\n }\n\n return byteArray;\n }\n\n _utf8_encode(string: string) {\n string = string.replace(/\\r\\n/g, '\\n');\n let utftext = '';\n\n for (let n = 0; n < string.length; n++) {\n const c = string.charCodeAt(n);\n\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if (c > 127 && c < 2048) {\n utftext += String.fromCharCode((c >> 6) | 192);\n utftext += String.fromCharCode((c & 63) | 128);\n } else {\n utftext += String.fromCharCode((c >> 12) | 224);\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\n utftext += String.fromCharCode((c & 63) | 128);\n }\n }\n\n return utftext;\n }\n\n _utf8_decode(utftext: string) {\n let string = '';\n let i = 0;\n let c = 0;\n let c2 = 0;\n let c3 = 0;\n\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n\n if (c < 128) {\n string += String.fromCharCode(c);\n i++;\n } else if (c > 191 && c < 224) {\n c2 = utftext.charCodeAt(i + 1);\n string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n i += 2;\n } else {\n c2 = utftext.charCodeAt(i + 1);\n c3 = utftext.charCodeAt(i + 2);\n\n string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\n i += 3;\n }\n }\n\n return string;\n }\n}\n", "import { Base64 } from './base64.js';\nimport { BytesLike } from '../types/UtilsTypes.js';\n\nexport function byte2hexStr(byte: number) {\n if (byte < 0 || byte > 255) throw new Error('Input must be a byte');\n\n const hexByteMap = '0123456789ABCDEF';\n\n let str = '';\n str += hexByteMap.charAt(byte >> 4);\n str += hexByteMap.charAt(byte & 0x0f);\n\n return str;\n}\n\nexport function bytesToString(arr: BytesLike) {\n let str = '';\n\n for (let i = 0; i < arr.length; i++) {\n const one = arr[i].toString(2);\n const v = one.match(/^1+?(?=0)/);\n\n if (v && one.length === 8) {\n const bytesLength = v[0].length;\n let store = arr[i].toString(2).slice(7 - bytesLength);\n\n for (let st = 1; st < bytesLength; st++) store += arr[st + i].toString(2).slice(2);\n\n str += String.fromCharCode(parseInt(store, 2));\n i += bytesLength - 1;\n } else {\n str += String.fromCharCode(arr[i]);\n }\n }\n\n return str;\n}\n\nexport function hextoString(hex: string) {\n const arr = hex.replace(/^0x/, '').split('');\n let out = '';\n\n for (let i = 0; i < arr.length / 2; i++) {\n const tmp = `0x${arr[i * 2]}${arr[i * 2 + 1]}`;\n out += String.fromCharCode(parseInt(tmp));\n }\n\n return out;\n}\n\nexport function byteArray2hexStr(byteArray: BytesLike) {\n let str = '';\n\n for (let i = 0; i < byteArray.length; i++) str += byte2hexStr(byteArray[i]);\n\n return str;\n}\n\nexport function base64DecodeFromString(string64: string) {\n return new Base64().decodeToByteArray(string64);\n}\n\nexport function base64EncodeToString(bytes: BytesLike) {\n const b = new Base64();\n const string64 = b.encodeIgnoreUtf8(bytes);\n\n return string64;\n}\n", "import {\n byte2hexStr,\n bytesToString,\n hextoString,\n byteArray2hexStr,\n base64DecodeFromString,\n base64EncodeToString,\n} from './bytes.js';\n\nimport type { BytesLike } from '../types/UtilsTypes.js';\n\nexport function bin2String(array: BytesLike) {\n return bytesToString(array);\n}\n\nexport function arrayEquals(array1: any[], array2: any[], strict = false) {\n if (array1.length != array2.length) return false;\n\n for (let i = 0; i < array1.length; i++) {\n if (strict) {\n if (array1[i] != array2[i]) return false;\n } else if (JSON.stringify(array1[i]) != JSON.stringify(array2[i])) return false;\n }\n\n return true;\n}\n\nexport function stringToBytes(str: string) {\n const bytes = [];\n const len: number = str.length;\n let c: number;\n\n for (let i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n\n if (c >= 0x010000 && c <= 0x10ffff) {\n bytes.push(((c >> 18) & 0x07) | 0xf0);\n bytes.push(((c >> 12) & 0x3f) | 0x80);\n bytes.push(((c >> 6) & 0x3f) | 0x80);\n bytes.push((c & 0x3f) | 0x80);\n } else if (c >= 0x000800 && c <= 0x00ffff) {\n bytes.push(((c >> 12) & 0x0f) | 0xe0);\n bytes.push(((c >> 6) & 0x3f) | 0x80);\n bytes.push((c & 0x3f) | 0x80);\n } else if (c >= 0x000080 && c <= 0x0007ff) {\n bytes.push(((c >> 6) & 0x1f) | 0xc0);\n bytes.push((c & 0x3f) | 0x80);\n } else bytes.push(c & 0xff);\n }\n\n return bytes;\n}\n\nexport { byte2hexStr, bytesToString, hextoString, byteArray2hexStr, base64DecodeFromString, base64EncodeToString };\n\nexport function hexChar2byte(c: string) {\n let d: number | undefined;\n\n if (c >= 'A' && c <= 'F') d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n else if (c >= 'a' && c <= 'f') d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;\n else if (c >= '0' && c <= '9') d = c.charCodeAt(0) - '0'.charCodeAt(0);\n\n if (typeof d === 'number') return d;\n else throw new Error('The passed hex char is not a valid hex char');\n}\n\nexport function isHexChar(c: string) {\n if ((c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f') || (c >= '0' && c <= '9')) {\n return 1;\n }\n\n return 0;\n}\n\n// set strict as true: if the length of str is odd, add 0 before the str to make its length as even\nexport function hexStr2byteArray(str: string, strict = false) {\n let len = str.length;\n\n if (strict) {\n if (len % 2) {\n str = `0${str}`;\n len++;\n }\n }\n const byteArray: number[] = [];\n let d = 0;\n let j = 0;\n let k = 0;\n\n for (let i = 0; i < len; i++) {\n const c = str.charAt(i);\n\n if (isHexChar(c)) {\n d <<= 4;\n d += hexChar2byte(c);\n j++;\n\n if (0 === j % 2) {\n byteArray[k++] = d;\n d = 0;\n }\n } else throw new Error('The passed hex char is not a valid hex string');\n }\n\n return byteArray;\n}\n\n//yyyy-MM-DD HH-mm-ss\nexport function strToDate(str: string) {\n if (!/^\\d{4}-\\d{2}-\\d{2}( \\d{2}-\\d{2}-\\d{2}|)/.test(str)) throw new Error('The passed date string is not valid');\n\n const tempStrs = str.split(' ');\n const dateStrs = tempStrs[0].split('-');\n const year = parseInt(dateStrs[0], 10);\n const month = parseInt(dateStrs[1], 10) - 1;\n const day = parseInt(dateStrs[2], 10);\n\n if (tempStrs.length > 1) {\n const timeStrs = tempStrs[1].split('-');\n const hour = parseInt(timeStrs[0], 10);\n const minute = parseInt(timeStrs[1], 10);\n const second = parseInt(timeStrs[2], 10);\n\n return new Date(year, month, day, hour, minute, second);\n }\n\n return new Date(year, month, day);\n}\n\nexport function isNumber(c: string) {\n if (c >= '0' && c <= '9') return 1;\n\n return 0;\n}\n\n//return 1: address --- 20Bytes HexString\n//return 2: blockNumber ------ Decimal number\n//return 3: assetName ------ String\n//return other: error\nexport function getStringType(str: string) {\n if (null == str) return -1;\n\n if (str.length == 0 || str == '') return -1;\n\n let i = 0;\n\n if (str.length == 40) {\n for (; i < 40; i++) {\n const c = str.charAt(i);\n\n if (!isHexChar(c)) break;\n }\n }\n\n if (i == 40) return 1; //40 Hex, Address\n\n for (i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n\n if (!isNumber(c)) break;\n }\n\n if (i == str.length) return 2; // All Decimal number, BlockNumber\n\n for (i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n\n if (c > ' ') return 3; // At least one visible character\n }\n\n return -1;\n}\n", "/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n", "import { BigNumber } from 'bignumber.js';\nimport validator from 'validator';\nimport { ADDRESS_PREFIX } from './address.js';\nimport { AbiParamsCommon } from '../types/ABI.js';\nimport { IBigNumber } from '../types/TronWeb.js';\n\nimport type { EventQueryDataType, MapEventQueryDataType } from '../types/UtilsTypes.js';\n\nexport function isValidURL(url: string): boolean {\n if (typeof url !== 'string') return false;\n return validator.isURL(url.toString(), {\n protocols: ['http', 'https'],\n require_tld: false,\n });\n}\n\nexport function isObject(obj: unknown): obj is Record {\n return obj === Object(obj) && Object.prototype.toString.call(obj) !== '[object Array]';\n}\n\nexport function isArray(array: unknown): array is unknown[] {\n return Array.isArray(array);\n}\n\nexport function isJson(string: string): boolean {\n try {\n return !!JSON.parse(string);\n } catch (ex) {\n return false;\n }\n}\n\nexport function isBoolean(bool: unknown): bool is boolean {\n return typeof bool === 'boolean';\n}\n\nexport function isBigNumber(number: unknown): number is IBigNumber {\n return !!number && (number instanceof BigNumber || (number.constructor && number.constructor.name === 'BigNumber'));\n}\n\nexport function isString(string: unknown): string is string {\n return typeof string === 'string' || (!!string && string.constructor && string.constructor.name === 'String');\n}\n\nexport function isFunction(obj: unknown): obj is (...args: unknown[]) => unknown {\n return typeof obj === 'function';\n}\n\nexport function isHex(string: string): string is string {\n return typeof string === 'string' && !isNaN(parseInt(string, 16)) && /^(0x|)[a-fA-F0-9]+$/.test(string);\n}\n\nexport function isInteger(number: unknown): number is number {\n if (number === null) return false;\n return Number.isInteger(Number(number));\n}\n\nexport function hasProperty(obj: object, property: string | number | symbol) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n}\n\nexport function hasProperties(obj: object, ...properties: (string | number | symbol)[]) {\n return (\n properties.length &&\n !properties\n .map((property) => {\n return hasProperty(obj, property);\n })\n .includes(false)\n );\n}\n\nexport function mapEvent(event: EventQueryDataType) {\n const data: MapEventQueryDataType = {\n block: event.block_number,\n timestamp: event.block_timestamp,\n contract: event.contract_address,\n name: event.event_name,\n transaction: event.transaction_id,\n result: event.result,\n resourceNode: event.resource_Node || (event._unconfirmed ? 'fullNode' : 'solidityNode'),\n };\n if (event._unconfirmed) {\n data.unconfirmed = event._unconfirmed;\n }\n if (event._fingerprint) {\n data.fingerprint = event._fingerprint;\n }\n return data;\n}\n\nexport function parseEvent(event: EventQueryDataType, { inputs: abi }: { inputs: ReadonlyArray }) {\n if (!event.result) return event;\n\n if (isObject(event.result)) {\n for (let i = 0; i < abi.length; i++) {\n const obj = abi[i];\n if (obj.type == 'address' && obj.name in event.result)\n event.result[obj.name] = ADDRESS_PREFIX + (event.result[obj.name] as string).substr(2).toLowerCase();\n }\n } else if (isArray(event.result)) {\n event.result = (event.result as string[]).reduce>((obj, result, index) => {\n const { name, type } = abi[index];\n\n if (type == 'address') result = ADDRESS_PREFIX + result.substr(2).toLowerCase();\n\n obj[name] = result;\n\n return obj;\n }, {});\n }\n\n return event;\n}\n\nexport function padLeft(input: string | number, padding: string, amount: number): string {\n let res = input.toString();\n\n while (res.length < amount) res = padding + res;\n\n return res;\n}\n\nexport function isNotNullOrUndefined(val: unknown): boolean {\n return val !== null && typeof val !== 'undefined';\n}\n\nexport async function sleep(millis = 1000): Promise {\n return new Promise((resolve) => setTimeout(resolve, millis));\n}\n", "function _classPrivateFieldBase(e, t) {\n if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\");\n return e;\n}\nexport { _classPrivateFieldBase as default };", "var id = 0;\nfunction _classPrivateFieldKey(e) {\n return \"__private_\" + id++ + \"_\" + e;\n}\nexport { _classPrivateFieldKey as default };", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/**\n * A fragment is a single item from an ABI, which may represent any of:\n *\n * - [Functions](FunctionFragment)\n * - [Events](EventFragment)\n * - [Constructors](ConstructorFragment)\n * - Custom [Errors](ErrorFragment)\n * - [Fallback or Receive](FallbackFragment) functions\n *\n * @_subsection api/abi/abi-coder:Fragments [about-fragments]\n */\n\nimport { defineProperties, getBigInt, getNumber, assert, assertPrivate, assertArgument } from 'ethers';\nimport { id } from 'ethers';\n\n/**\n * A Type description in a [JSON ABI format](link-solc-jsonabi).\n */\nexport interface JsonFragmentType {\n /**\n * The parameter name.\n */\n readonly name?: string;\n\n /**\n * If the parameter is indexed.\n */\n readonly indexed?: boolean;\n\n /**\n * The type of the parameter.\n */\n readonly type?: string;\n\n /**\n * The internal Solidity type.\n */\n readonly internalType?: string;\n\n /**\n * The components for a tuple.\n */\n readonly components?: ReadonlyArray;\n}\n\n/**\n * A fragment for a method, event or error in a [JSON ABI format](link-solc-jsonabi).\n */\nexport interface JsonFragment {\n /**\n * The name of the error, event, function, etc.\n */\n readonly name?: string;\n\n /**\n * The type of the fragment (e.g. ``event``, ``\"function\"``, etc.)\n */\n readonly type?: string;\n\n /**\n * If the event is anonymous.\n */\n readonly anonymous?: boolean;\n\n /**\n * If the function is payable.\n */\n readonly payable?: boolean;\n\n /**\n * If the function is constant.\n */\n readonly constant?: boolean;\n\n /**\n * The mutability state of the function.\n */\n readonly stateMutability?: string;\n\n /**\n * The input parameters.\n */\n readonly inputs?: ReadonlyArray;\n\n /**\n * The output parameters.\n */\n readonly outputs?: ReadonlyArray;\n\n /**\n * The gas limit to use when sending a transaction for this function.\n */\n readonly gas?: string;\n}\n\n/**\n * The format to serialize the output as.\n *\n * **``\"sighash\"``** - the bare formatting, used to compute the selector\n * or topic hash; this format cannot be reversed (as it discards ``indexed``)\n * so cannot by used to export an [[Interface]].\n *\n * **``\"minimal\"``** - Human-Readable ABI with minimal spacing and without\n * names, so it is compact, but will result in Result objects that cannot\n * be accessed by name.\n *\n * **``\"full\"``** - Full Human-Readable ABI, with readable spacing and names\n * intact; this is generally the recommended format.\n *\n * **``\"json\"``** - The [JSON ABI format](link-solc-jsonabi).\n */\nexport type FormatType = 'sighash' | 'minimal' | 'full' | 'json';\n\n// [ \"a\", \"b\" ] => { \"a\": 1, \"b\": 1 }\nfunction setify(items: Array): ReadonlySet {\n const result: Set = new Set();\n items.forEach((k) => result.add(k));\n return Object.freeze(result);\n}\n\n// Visibility Keywords\nconst _kwVisib = 'constant external internal payable private public pure view';\nconst KwVisib = setify(_kwVisib.split(' '));\n\nconst _kwTypes = 'constructor error event fallback function receive struct';\nconst KwTypes = setify(_kwTypes.split(' '));\n\nconst _kwModifiers = 'calldata memory storage payable indexed';\nconst KwModifiers = setify(_kwModifiers.split(' '));\n\nconst _kwOther = 'tuple returns';\n\n// All Keywords\nconst _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(' ');\nconst Keywords = setify(_keywords.split(' '));\n\n// Single character tokens\nconst SimpleTokens: Record = {\n '(': 'OPEN_PAREN',\n ')': 'CLOSE_PAREN',\n '[': 'OPEN_BRACKET',\n ']': 'CLOSE_BRACKET',\n ',': 'COMMA',\n '@': 'AT',\n};\n\n// Parser regexes to consume the next token\nconst regexWhitespacePrefix = new RegExp('^(\\\\s*)');\nconst regexNumberPrefix = new RegExp('^([0-9]+)');\nconst regexIdPrefix = new RegExp('^([a-zA-Z$_][a-zA-Z0-9$_]*)');\n\n// Parser regexs to check validity\nconst regexId = new RegExp('^([a-zA-Z$_][a-zA-Z0-9$_]*)$');\nconst regexType = new RegExp('^(trcToken|address|bool|bytes([0-9]*)|string|u?int([0-9]*))$');\n\n/**\n * @ignore:\n */\ntype Token = Readonly<{\n // Type of token (e.g. TYPE, KEYWORD, NUMBER, etc)\n type: string;\n\n // Offset into the original source code\n offset: number;\n\n // Actual text content of the token\n text: string;\n\n // The parenthesis depth\n depth: number;\n\n // If a parenthesis, the offset (in tokens) that balances it\n match: number;\n\n // For parenthesis and commas, the offset (in tokens) to the\n // previous/next parenthesis or comma in the list\n linkBack: number;\n linkNext: number;\n\n // If a BRACKET, the value inside\n value: number;\n}>;\n\nclass TokenString {\n #offset: number;\n #tokens: ReadonlyArray;\n\n get offset(): number {\n return this.#offset;\n }\n get length(): number {\n return this.#tokens.length - this.#offset;\n }\n\n constructor(tokens: ReadonlyArray) {\n this.#offset = 0;\n this.#tokens = tokens.slice();\n }\n\n clone(): TokenString {\n return new TokenString(this.#tokens);\n }\n reset(): void {\n this.#offset = 0;\n }\n\n #subTokenString(from = 0, to = 0): TokenString {\n return new TokenString(\n this.#tokens.slice(from, to).map((t) => {\n return Object.freeze(\n Object.assign({}, t, {\n match: t.match - from,\n linkBack: t.linkBack - from,\n linkNext: t.linkNext - from,\n })\n );\n })\n );\n }\n\n // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens\n popKeyword(allowed: ReadonlySet): string {\n const top = this.peek();\n if (top.type !== 'KEYWORD' || !allowed.has(top.text)) {\n throw new Error(`expected keyword ${top.text}`);\n }\n return this.pop().text;\n }\n\n // Pops and returns the value of the next token if it is `type`; throws if out of tokens\n popType(type: string): string {\n if (this.peek().type !== type) {\n throw new Error(`expected ${type}; got ${JSON.stringify(this.peek())}`);\n }\n return this.pop().text;\n }\n\n // Pops and returns a \"(\" TOKENS \")\"\n popParen(): TokenString {\n const top = this.peek();\n if (top.type !== 'OPEN_PAREN') {\n throw new Error('bad start');\n }\n const result = this.#subTokenString(this.#offset + 1, top.match + 1);\n this.#offset = top.match + 1;\n return result;\n }\n\n // Pops and returns the items within \"(\" ITEM1 \",\" ITEM2 \",\" ... \")\"\n popParams(): Array {\n const top = this.peek();\n\n if (top.type !== 'OPEN_PAREN') {\n throw new Error('bad start');\n }\n\n const result: Array = [];\n\n while (this.#offset < top.match - 1) {\n const link = this.peek().linkNext;\n result.push(this.#subTokenString(this.#offset + 1, link));\n this.#offset = link;\n }\n\n this.#offset = top.match + 1;\n\n return result;\n }\n\n // Returns the top Token, throwing if out of tokens\n peek(): Token {\n if (this.#offset >= this.#tokens.length) {\n throw new Error('out-of-bounds');\n }\n return this.#tokens[this.#offset];\n }\n\n // Returns the next value, if it is a keyword in `allowed`\n peekKeyword(allowed: ReadonlySet): null | string {\n const top = this.peekType('KEYWORD');\n return top != null && allowed.has(top) ? top : null;\n }\n\n // Returns the value of the next token if it is `type`\n peekType(type: string): null | string {\n if (this.length === 0) {\n return null;\n }\n const top = this.peek();\n return top.type === type ? top.text : null;\n }\n\n // Returns the next token; throws if out of tokens\n pop(): Token {\n const result = this.peek();\n this.#offset++;\n return result;\n }\n\n toString(): string {\n const tokens: Array = [];\n for (let i = this.#offset; i < this.#tokens.length; i++) {\n const token = this.#tokens[i];\n tokens.push(`${token.type}:${token.text}`);\n }\n return ``;\n }\n}\n\ntype Writeable = { -readonly [P in keyof T]: T[P] };\n\nfunction lex(text: string): TokenString {\n const tokens: Array = [];\n\n const throwError = (message: string) => {\n const token = offset < text.length ? JSON.stringify(text[offset]) : '$EOI';\n throw new Error(`invalid token ${token} at ${offset}: ${message}`);\n };\n\n const brackets: Array = [];\n const commas: Array = [];\n\n let offset = 0;\n while (offset < text.length) {\n // Strip off any leading whitespace\n let cur = text.substring(offset);\n let match = cur.match(regexWhitespacePrefix);\n if (match) {\n offset += match[1].length;\n cur = text.substring(offset);\n }\n\n const token = {\n depth: brackets.length,\n linkBack: -1,\n linkNext: -1,\n match: -1,\n type: '',\n text: '',\n offset,\n value: -1,\n };\n tokens.push(token);\n\n const type = SimpleTokens[cur[0]] || '';\n if (type) {\n token.type = type;\n token.text = cur[0];\n offset++;\n\n if (type === 'OPEN_PAREN') {\n brackets.push(tokens.length - 1);\n commas.push(tokens.length - 1);\n } else if (type == 'CLOSE_PAREN') {\n if (brackets.length === 0) {\n throwError('no matching open bracket');\n }\n\n token.match = brackets.pop() as number;\n (>tokens[token.match]).match = tokens.length - 1;\n token.depth--;\n\n token.linkBack = commas.pop() as number;\n (>tokens[token.linkBack]).linkNext = tokens.length - 1;\n } else if (type === 'COMMA') {\n token.linkBack = commas.pop() as number;\n (>tokens[token.linkBack]).linkNext = tokens.length - 1;\n commas.push(tokens.length - 1);\n } else if (type === 'OPEN_BRACKET') {\n token.type = 'BRACKET';\n } else if (type === 'CLOSE_BRACKET') {\n // Remove the CLOSE_BRACKET\n let suffix = (tokens.pop() as Token).text;\n if (tokens.length > 0 && tokens[tokens.length - 1].type === 'NUMBER') {\n const value = (tokens.pop() as Token).text;\n suffix = value + suffix;\n (>tokens[tokens.length - 1]).value = getNumber(value);\n }\n if (tokens.length === 0 || tokens[tokens.length - 1].type !== 'BRACKET') {\n throw new Error('missing opening bracket');\n }\n (>tokens[tokens.length - 1]).text += suffix;\n }\n\n continue;\n }\n\n match = cur.match(regexIdPrefix);\n if (match) {\n token.text = match[1];\n offset += token.text.length;\n\n if (Keywords.has(token.text)) {\n token.type = 'KEYWORD';\n continue;\n }\n\n if (token.text.match(regexType)) {\n token.type = 'TYPE';\n continue;\n }\n\n token.type = 'ID';\n continue;\n }\n\n match = cur.match(regexNumberPrefix);\n if (match) {\n token.text = match[1];\n token.type = 'NUMBER';\n offset += token.text.length;\n continue;\n }\n\n throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`);\n }\n\n return new TokenString(tokens.map((t) => Object.freeze(t)));\n}\n\n// Check only one of `allowed` is in `set`\nfunction allowSingle(set: ReadonlySet, allowed: ReadonlySet): void {\n const included: Array = [];\n for (const key in allowed.keys()) {\n if (set.has(key)) {\n included.push(key);\n }\n }\n if (included.length > 1) {\n throw new Error(`conflicting types: ${included.join(', ')}`);\n }\n}\n\n// Functions to process a Solidity Signature TokenString from left-to-right for...\n\n// ...the name with an optional type, returning the name\nfunction consumeName(type: string, tokens: TokenString): string {\n if (tokens.peekKeyword(KwTypes)) {\n const keyword = tokens.pop().text;\n if (keyword !== type) {\n throw new Error(`expected ${type}, got ${keyword}`);\n }\n }\n\n return tokens.popType('ID');\n}\n\n// ...all keywords matching allowed, returning the keywords\nfunction consumeKeywords(tokens: TokenString, allowed?: ReadonlySet): ReadonlySet {\n const keywords: Set = new Set();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const keyword = tokens.peekType('KEYWORD');\n\n if (keyword == null || (allowed && !allowed.has(keyword))) {\n break;\n }\n tokens.pop();\n\n if (keywords.has(keyword)) {\n throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`);\n }\n keywords.add(keyword);\n }\n\n return Object.freeze(keywords);\n}\n\n// ...all visibility keywords, returning the coalesced mutability\nfunction consumeMutability(tokens: TokenString): 'payable' | 'nonpayable' | 'view' | 'pure' {\n const modifiers = consumeKeywords(tokens, KwVisib);\n\n // Detect conflicting modifiers\n allowSingle(modifiers, setify('constant payable nonpayable'.split(' ')));\n allowSingle(modifiers, setify('pure view payable nonpayable'.split(' ')));\n\n // Process mutability states\n if (modifiers.has('view')) {\n return 'view';\n }\n if (modifiers.has('pure')) {\n return 'pure';\n }\n if (modifiers.has('payable')) {\n return 'payable';\n }\n if (modifiers.has('nonpayable')) {\n return 'nonpayable';\n }\n\n // Process legacy `constant` last\n if (modifiers.has('constant')) {\n return 'view';\n }\n\n return 'nonpayable';\n}\n\n// ...a parameter list, returning the ParamType list\nfunction consumeParams(tokens: TokenString, allowIndexed?: boolean): Array {\n return tokens.popParams().map((t) => ParamType.from(t, allowIndexed));\n}\n\n// ...a gas limit, returning a BigNumber or null if none\nfunction consumeGas(tokens: TokenString): null | bigint {\n if (tokens.peekType('AT')) {\n tokens.pop();\n if (tokens.peekType('NUMBER')) {\n return getBigInt(tokens.pop().text);\n }\n throw new Error('invalid gas');\n }\n return null;\n}\n\nfunction consumeEoi(tokens: TokenString): void {\n if (tokens.length) {\n throw new Error(`unexpected tokens: ${tokens.toString()}`);\n }\n}\n\nconst regexArrayType = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nfunction verifyBasicType(type: string): string {\n const match = type.match(regexType);\n assertArgument(match, 'invalid type', 'type', type);\n if (type === 'uint') {\n return 'uint256';\n }\n if (type === 'int') {\n return 'int256';\n }\n\n if (match[2]) {\n // bytesXX\n const length = parseInt(match[2]);\n assertArgument(length !== 0 && length <= 32, 'invalid bytes length', 'type', type);\n } else if (match[3]) {\n // intXX or uintXX\n const size = parseInt(match[3] as string);\n assertArgument(size !== 0 && size <= 256 && size % 8 === 0, 'invalid numeric width', 'type', type);\n }\n\n return type;\n}\n\n// Make the Fragment constructors effectively private\nconst _guard = {};\n\n/**\n * When [walking](ParamType-walk) a [[ParamType]], this is called\n * on each component.\n */\nexport type ParamTypeWalkFunc = (type: string, value: any) => any;\n\n/**\n * When [walking asynchronously](ParamType-walkAsync) a [[ParamType]],\n * this is called on each component.\n */\nexport type ParamTypeWalkAsyncFunc = (type: string, value: any) => any | Promise;\n\nconst internal = Symbol.for('_ethers_internal');\n\nconst ParamTypeInternal = '_ParamTypeInternal';\nconst ErrorFragmentInternal = '_ErrorInternal';\nconst EventFragmentInternal = '_EventInternal';\nconst ConstructorFragmentInternal = '_ConstructorInternal';\nconst FallbackFragmentInternal = '_FallbackInternal';\nconst FunctionFragmentInternal = '_FunctionInternal';\nconst StructFragmentInternal = '_StructInternal';\n\n/**\n * Each input and output of a [[Fragment]] is an Array of **ParamType**.\n */\nexport class ParamType {\n /**\n * The local name of the parameter (or ``\"\"`` if unbound)\n */\n readonly name!: string;\n\n /**\n * The fully qualified type (e.g. ``\"address\"``, ``\"tuple(address)\"``,\n * ``\"uint256[3][]\"``)\n */\n readonly type!: string;\n\n /**\n * The base type (e.g. ``\"address\"``, ``\"tuple\"``, ``\"array\"``)\n */\n readonly baseType!: string;\n\n /**\n * True if the parameters is indexed.\n *\n * For non-indexable types this is ``null``.\n */\n readonly indexed!: null | boolean;\n\n /**\n * The components for the tuple.\n *\n * For non-tuple types this is ``null``.\n */\n readonly components!: null | ReadonlyArray;\n\n /**\n * The array length, or ``-1`` for dynamic-lengthed arrays.\n *\n * For non-array types this is ``null``.\n */\n readonly arrayLength!: null | number;\n\n /**\n * The type of each child in the array.\n *\n * For non-array types this is ``null``.\n */\n readonly arrayChildren!: null | ParamType;\n\n /**\n * @private\n */\n constructor(\n guard: any,\n name: string,\n type: string,\n baseType: string,\n indexed: null | boolean,\n components: null | ReadonlyArray,\n arrayLength: null | number,\n arrayChildren: null | ParamType\n ) {\n assertPrivate(guard, _guard, 'ParamType');\n Object.defineProperty(this, internal, { value: ParamTypeInternal });\n\n if (components) {\n components = Object.freeze(components.slice());\n }\n\n if (baseType === 'array') {\n if (arrayLength == null || arrayChildren == null) {\n throw new Error('');\n }\n } else if (arrayLength != null || arrayChildren != null) {\n throw new Error('');\n }\n\n if (baseType === 'tuple') {\n if (components == null) {\n throw new Error('');\n }\n } else if (components != null) {\n throw new Error('');\n }\n\n defineProperties(this, {\n name,\n type,\n baseType,\n indexed,\n components,\n arrayLength,\n arrayChildren,\n });\n }\n\n /**\n * Return a string representation of this type.\n *\n * For example,\n *\n * ``sighash\" => \"(uint256,address)\"``\n *\n * ``\"minimal\" => \"tuple(uint256,address) indexed\"``\n *\n * ``\"full\" => \"tuple(uint256 foo, address bar) indexed baz\"``\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n const result: any = {\n type: this.baseType === 'tuple' ? 'tuple' : this.type,\n name: this.name || undefined,\n };\n if (typeof this.indexed === 'boolean') {\n result.indexed = this.indexed;\n }\n if (this.isTuple()) {\n result.components = this.components.map((c) => JSON.parse(c.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = '';\n\n // Array\n if (this.isArray()) {\n result += this.arrayChildren.format(format);\n result += `[${this.arrayLength < 0 ? '' : String(this.arrayLength)}]`;\n } else {\n if (this.isTuple()) {\n if (format !== 'sighash') {\n result += this.type;\n }\n result += '(' + this.components.map((comp) => comp.format(format)).join(format === 'full' ? ', ' : ',') + ')';\n } else {\n result += this.type;\n }\n }\n\n if (format !== 'sighash') {\n if (this.indexed === true) {\n result += ' indexed';\n }\n if (format === 'full' && this.name) {\n result += ' ' + this.name;\n }\n }\n\n return result;\n }\n\n /**\n * Returns true if %%this%% is an Array type.\n *\n * This provides a type gaurd ensuring that [[arrayChildren]]\n * and [[arrayLength]] are non-null.\n */\n isArray(): this is ParamType & {\n arrayChildren: ParamType;\n arrayLength: number;\n } {\n return this.baseType === 'array';\n }\n\n /**\n * Returns true if %%this%% is a Tuple type.\n *\n * This provides a type gaurd ensuring that [[components]]\n * is non-null.\n */\n isTuple(): this is ParamType & { components: ReadonlyArray } {\n return this.baseType === 'tuple';\n }\n\n /**\n * Returns true if %%this%% is an Indexable type.\n *\n * This provides a type gaurd ensuring that [[indexed]]\n * is non-null.\n */\n isIndexable(): this is ParamType & { indexed: boolean } {\n return this.indexed != null;\n }\n\n /**\n * Walks the **ParamType** with %%value%%, calling %%process%%\n * on each type, destructing the %%value%% recursively.\n */\n walk(value: any, process: ParamTypeWalkFunc): any {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid array value');\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error('array is wrong length');\n }\n return value.map((v) => this.arrayChildren?.walk(v, process));\n }\n\n if (this.isTuple()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid tuple value');\n }\n if (value.length !== this.components.length) {\n throw new Error('array is wrong length');\n }\n return value.map((v, i) => this.components?.[i].walk(v, process));\n }\n\n return process(this.type, value);\n }\n\n #walkAsync(\n promises: Array>,\n value: any,\n process: ParamTypeWalkAsyncFunc,\n setValue: (value: any) => void\n ): void {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid array value');\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error('array is wrong length');\n }\n const childType = this.arrayChildren;\n\n const result = value.slice();\n result.forEach((value, index) => {\n childType.#walkAsync(promises, value, process, (value: any) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n\n if (this.isTuple()) {\n const components = this.components;\n\n // Convert the object into an array\n let result: Array;\n if (Array.isArray(value)) {\n result = value.slice();\n } else {\n if (value == null || typeof value !== 'object') {\n throw new Error('invalid tuple value');\n }\n\n result = components.map((param) => {\n if (!param.name) {\n throw new Error('cannot use object value with unnamed components');\n }\n if (!(param.name in value)) {\n throw new Error(`missing value for component ${param.name}`);\n }\n return value[param.name];\n });\n }\n\n if (result.length !== this.components.length) {\n throw new Error('array is wrong length');\n }\n\n result.forEach((value, index) => {\n components[index].#walkAsync(promises, value, process, (value: any) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n\n const result = process(this.type, value);\n if (result.then) {\n promises.push(\n (async function () {\n setValue(await result);\n })()\n );\n } else {\n setValue(result);\n }\n }\n\n /**\n * Walks the **ParamType** with %%value%%, asynchronously calling\n * %%process%% on each type, destructing the %%value%% recursively.\n *\n * This can be used to resolve ENS naes by walking and resolving each\n * ``\"address\"`` type.\n */\n async walkAsync(value: any, process: ParamTypeWalkAsyncFunc): Promise {\n const promises: Array> = [];\n const result: [any] = [value];\n this.#walkAsync(promises, value, process, (value: any) => {\n result[0] = value;\n });\n if (promises.length) {\n await Promise.all(promises);\n }\n return result[0];\n }\n\n /**\n * Creates a new **ParamType** for %%obj%%.\n *\n * If %%allowIndexed%% then the ``indexed`` keyword is permitted,\n * otherwise the ``indexed`` keyword will throw an error.\n */\n static from(obj: any, allowIndexed?: boolean): ParamType {\n if (ParamType.isParamType(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ParamType.from(lex(obj), allowIndexed);\n } else if (obj instanceof TokenString) {\n let type = '',\n baseType = '';\n let comps: null | Array = null;\n\n if (consumeKeywords(obj, setify(['tuple'])).has('tuple') || obj.peekType('OPEN_PAREN')) {\n // Tuple\n baseType = 'tuple';\n comps = obj.popParams().map((t) => ParamType.from(t));\n type = `tuple(${comps.map((c) => c.format()).join(',')})`;\n } else {\n // Normal\n type = verifyBasicType(obj.popType('TYPE'));\n baseType = type;\n }\n\n // Check for Array\n let arrayChildren: null | ParamType = null;\n let arrayLength: null | number = null;\n\n while (obj.length && obj.peekType('BRACKET')) {\n const bracket = obj.pop(); //arrays[i];\n arrayChildren = new ParamType(_guard, '', type, baseType, null, comps, arrayLength, arrayChildren);\n arrayLength = bracket.value;\n type += bracket.text;\n baseType = 'array';\n comps = null;\n }\n\n let indexed: boolean | null = null;\n const keywords = consumeKeywords(obj, KwModifiers);\n if (keywords.has('indexed')) {\n if (!allowIndexed) {\n throw new Error('');\n }\n indexed = true;\n }\n\n const name = obj.peekType('ID') ? obj.pop().text : '';\n\n if (obj.length) {\n throw new Error('leftover tokens');\n }\n\n return new ParamType(_guard, name, type, baseType, indexed, comps, arrayLength, arrayChildren);\n }\n\n const name = obj.name;\n assertArgument(!name || (typeof name === 'string' && name.match(regexId)), 'invalid name', 'obj.name', name);\n\n let indexed = obj.indexed;\n if (indexed != null) {\n assertArgument(allowIndexed, 'parameter cannot be indexed', 'obj.indexed', obj.indexed);\n indexed = !!indexed;\n }\n\n let type = obj.type;\n\n const arrayMatch = type.match(regexArrayType);\n if (arrayMatch) {\n const arrayLength = parseInt(arrayMatch[2] || '-1');\n const arrayChildren = ParamType.from({\n type: arrayMatch[1],\n components: obj.components,\n });\n\n return new ParamType(_guard, name || '', type, 'array', indexed, null, arrayLength, arrayChildren);\n }\n\n if (type === 'tuple' || type.startsWith('tuple(' /* fix: ) */) || type.startsWith('(' /* fix: ) */)) {\n const comps = obj.components != null ? obj.components.map((c: any) => ParamType.from(c)) : null;\n const tuple = new ParamType(_guard, name || '', type, 'tuple', indexed, comps, null, null);\n // @TODO: use lexer to validate and normalize type\n return tuple;\n }\n\n type = verifyBasicType(obj.type);\n\n return new ParamType(_guard, name || '', type, type, indexed, null, null, null);\n }\n\n /**\n * Returns true if %%value%% is a **ParamType**.\n */\n static isParamType(value: any): value is ParamType {\n return value && value[internal] === ParamTypeInternal;\n }\n}\n\n/**\n * The type of a [[Fragment]].\n */\nexport type FragmentType = 'constructor' | 'error' | 'event' | 'fallback' | 'function' | 'struct';\n\n/**\n * An abstract class to represent An individual fragment from a parse ABI.\n */\nexport abstract class Fragment {\n /**\n * The type of the fragment.\n */\n readonly type!: FragmentType;\n\n /**\n * The inputs for the fragment.\n */\n readonly inputs!: ReadonlyArray;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, inputs: ReadonlyArray) {\n assertPrivate(guard, _guard, 'Fragment');\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { type, inputs });\n }\n\n /**\n * Returns a string representation of this fragment as %%format%%.\n */\n abstract format(format?: FormatType): string;\n\n /**\n * Creates a new **Fragment** for %%obj%%, wich can be any supported\n * ABI frgament type.\n */\n static from(obj: any): Fragment {\n if (typeof obj === 'string') {\n // Try parsing JSON...\n try {\n Fragment.from(JSON.parse(obj));\n } catch (e) {\n //\n }\n\n // ...otherwise, use the human-readable lexer\n return Fragment.from(lex(obj));\n }\n\n if (obj instanceof TokenString) {\n // Human-readable ABI (already lexed)\n\n const type = obj.peekKeyword(KwTypes);\n\n switch (type) {\n case 'constructor':\n return ConstructorFragment.from(obj);\n case 'error':\n return ErrorFragment.from(obj);\n case 'event':\n return EventFragment.from(obj);\n case 'fallback':\n case 'receive':\n return FallbackFragment.from(obj);\n case 'function':\n return FunctionFragment.from(obj);\n case 'struct':\n return StructFragment.from(obj);\n }\n } else if (typeof obj === 'object') {\n // JSON ABI\n\n switch (obj.type) {\n case 'constructor':\n return ConstructorFragment.from(obj);\n case 'error':\n return ErrorFragment.from(obj);\n case 'event':\n return EventFragment.from(obj);\n case 'fallback':\n case 'receive':\n return FallbackFragment.from(obj);\n case 'function':\n return FunctionFragment.from(obj);\n case 'struct':\n return StructFragment.from(obj);\n }\n\n assert(false, `unsupported type: ${obj.type}`, 'UNSUPPORTED_OPERATION', {\n operation: 'Fragment.from',\n });\n }\n\n assertArgument(false, 'unsupported frgament object', 'obj', obj);\n }\n\n /**\n * Returns true if %%value%% is a [[ConstructorFragment]].\n */\n static isConstructor(value: any): value is ConstructorFragment {\n return ConstructorFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is an [[ErrorFragment]].\n */\n static isError(value: any): value is ErrorFragment {\n return ErrorFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is an [[EventFragment]].\n */\n static isEvent(value: any): value is EventFragment {\n return EventFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is a [[FunctionFragment]].\n */\n static isFunction(value: any): value is FunctionFragment {\n return FunctionFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is a [[StructFragment]].\n */\n static isStruct(value: any): value is StructFragment {\n return StructFragment.isFragment(value);\n }\n}\n\n/**\n * An abstract class to represent An individual fragment\n * which has a name from a parse ABI.\n */\nexport abstract class NamedFragment extends Fragment {\n /**\n * The name of the fragment.\n */\n readonly name!: string;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, name: string, inputs: ReadonlyArray) {\n super(guard, type, inputs);\n assertArgument(typeof name === 'string' && name.match(regexId), 'invalid identifier', 'name', name);\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { name });\n }\n}\n\nfunction joinParams(format: FormatType, params: ReadonlyArray): string {\n return '(' + params.map((p) => p.format(format)).join(format === 'full' ? ', ' : ',') + ')';\n}\n\n/**\n * A Fragment which represents a //Custom Error//.\n */\nexport class ErrorFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray) {\n super(guard, 'error', name, inputs);\n Object.defineProperty(this, internal, { value: ErrorFragmentInternal });\n }\n\n /**\n * The Custom Error selector.\n */\n get selector(): string {\n return id(this.format('sighash')).substring(0, 10);\n }\n\n /**\n * Returns a string representation of this fragment as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'error',\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n\n const result: string[] = [];\n if (format !== 'sighash') {\n result.push('error');\n }\n result.push(this.name + joinParams(format, this.inputs));\n return result.join(' ');\n }\n\n /**\n * Returns a new **ErrorFragment** for %%obj%%.\n */\n static from(obj: any): ErrorFragment {\n if (ErrorFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ErrorFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('error', obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n\n return new ErrorFragment(_guard, name, inputs);\n }\n\n return new ErrorFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **ErrorFragment**.\n */\n static isFragment(value: any): value is ErrorFragment {\n return value && value[internal] === ErrorFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents an Event.\n */\nexport class EventFragment extends NamedFragment {\n /**\n * Whether this event is anonymous.\n */\n readonly anonymous!: boolean;\n\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray, anonymous: boolean) {\n super(guard, 'event', name, inputs);\n Object.defineProperty(this, internal, { value: EventFragmentInternal });\n defineProperties(this, { anonymous });\n }\n\n /**\n * The Event topic hash.\n */\n get topicHash(): string {\n return id(this.format('sighash'));\n }\n\n /**\n * Returns a string representation of this event as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'event',\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n });\n }\n\n const result: string[] = [];\n if (format !== 'sighash') {\n result.push('event');\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== 'sighash' && this.anonymous) {\n result.push('anonymous');\n }\n return result.join(' ');\n }\n\n /**\n * Return the topic hash for an event with %%name%% and %%params%%.\n */\n static getTopicHash(name: string, params?: Array): string {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new EventFragment(_guard, name, params, false);\n return fragment.topicHash;\n }\n\n /**\n * Returns a new **EventFragment** for %%obj%%.\n */\n static from(obj: any): EventFragment {\n if (EventFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return EventFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('event', obj);\n const inputs = consumeParams(obj, true);\n const anonymous = !!consumeKeywords(obj, setify(['anonymous'])).has('anonymous');\n consumeEoi(obj);\n\n return new EventFragment(_guard, name, inputs, anonymous);\n }\n\n return new EventFragment(\n _guard,\n obj.name,\n obj.inputs ? obj.inputs.map((p: any) => ParamType.from(p, true)) : [],\n !!obj.anonymous\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **EventFragment**.\n */\n static isFragment(value: any): value is EventFragment {\n return value && value[internal] === EventFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a constructor.\n */\nexport class ConstructorFragment extends Fragment {\n /**\n * Whether the constructor can receive an endowment.\n */\n readonly payable!: boolean;\n\n /**\n * The recommended gas limit for deployment or ``null``.\n */\n readonly gas!: null | bigint;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, inputs: ReadonlyArray, payable: boolean, gas: null | bigint) {\n super(guard, type, inputs);\n Object.defineProperty(this, internal, {\n value: ConstructorFragmentInternal,\n });\n defineProperties(this, { payable, gas });\n }\n\n /**\n * Returns a string representation of this constructor as %%format%%.\n */\n format(format?: FormatType): string {\n assert(format != null && format !== 'sighash', 'cannot format a constructor for sighash', 'UNSUPPORTED_OPERATION', {\n operation: 'format(sighash)',\n });\n\n if (format === 'json') {\n return JSON.stringify({\n type: 'constructor',\n stateMutability: this.payable ? 'payable' : 'undefined',\n payable: this.payable,\n gas: this.gas != null ? this.gas : undefined,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n });\n }\n\n const result = [`constructor${joinParams(format, this.inputs)}`];\n result.push(this.payable ? 'payable' : 'nonpayable');\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n return result.join(' ');\n }\n\n /**\n * Returns a new **ConstructorFragment** for %%obj%%.\n */\n static from(obj: any): ConstructorFragment {\n if (ConstructorFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ConstructorFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n consumeKeywords(obj, setify(['constructor']));\n const inputs = consumeParams(obj);\n const payable = !!consumeKeywords(obj, setify(['payable'])).has('payable');\n const gas = consumeGas(obj);\n consumeEoi(obj);\n\n return new ConstructorFragment(_guard, 'constructor', inputs, payable, gas);\n }\n\n return new ConstructorFragment(\n _guard,\n 'constructor',\n obj.inputs ? obj.inputs.map(ParamType.from) : [],\n !!obj.payable,\n obj.gas != null ? obj.gas : null\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **ConstructorFragment**.\n */\n static isFragment(value: any): value is ConstructorFragment {\n return value && value[internal] === ConstructorFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a method.\n */\nexport class FallbackFragment extends Fragment {\n /**\n * If the function can be sent value during invocation.\n */\n readonly payable!: boolean;\n\n constructor(guard: any, inputs: ReadonlyArray, payable: boolean) {\n super(guard, 'fallback', inputs);\n Object.defineProperty(this, internal, { value: FallbackFragmentInternal });\n defineProperties(this, { payable });\n }\n\n /**\n * Returns a string representation of this fallback as %%format%%.\n */\n format(format?: FormatType): string {\n const type = this.inputs.length === 0 ? 'receive' : 'fallback';\n\n if (format === 'json') {\n const stateMutability = this.payable ? 'payable' : 'nonpayable';\n return JSON.stringify({ type, stateMutability });\n }\n\n return `${type}()${this.payable ? ' payable' : ''}`;\n }\n\n /**\n * Returns a new **FallbackFragment** for %%obj%%.\n */\n static from(obj: any): FallbackFragment {\n if (FallbackFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return FallbackFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const errorObj = obj.toString();\n\n const topIsValid = obj.peekKeyword(setify(['fallback', 'receive']));\n assertArgument(topIsValid, 'type must be fallback or receive', 'obj', errorObj);\n\n const type = obj.popKeyword(setify(['fallback', 'receive']));\n\n // receive()\n if (type === 'receive') {\n const inputs = consumeParams(obj);\n assertArgument(inputs.length === 0, `receive cannot have arguments`, 'obj.inputs', inputs);\n consumeKeywords(obj, setify(['payable']));\n consumeEoi(obj);\n return new FallbackFragment(_guard, [], true);\n }\n\n // fallback() [payable]\n // fallback(bytes) [payable] returns (bytes)\n let inputs = consumeParams(obj);\n if (inputs.length) {\n assertArgument(\n inputs.length === 1 && inputs[0].type === 'bytes',\n 'invalid fallback inputs',\n 'obj.inputs',\n inputs.map((i) => i.format('minimal')).join(', ')\n );\n } else {\n inputs = [ParamType.from('bytes')];\n }\n\n const mutability = consumeMutability(obj);\n assertArgument(\n mutability === 'nonpayable' || mutability === 'payable',\n 'fallback cannot be constants',\n 'obj.stateMutability',\n mutability\n );\n\n if (consumeKeywords(obj, setify(['returns'])).has('returns')) {\n const outputs = consumeParams(obj);\n assertArgument(\n outputs.length === 1 && outputs[0].type === 'bytes',\n 'invalid fallback outputs',\n 'obj.outputs',\n outputs.map((i) => i.format('minimal')).join(', ')\n );\n }\n\n consumeEoi(obj);\n\n return new FallbackFragment(_guard, inputs, mutability === 'payable');\n }\n\n if (obj.type === 'receive') {\n return new FallbackFragment(_guard, [], true);\n }\n\n if (obj.type === 'fallback') {\n const inputs = [ParamType.from('bytes')];\n const payable = obj.stateMutability === 'payable';\n return new FallbackFragment(_guard, inputs, payable);\n }\n\n assertArgument(false, 'invalid fallback description', 'obj', obj);\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FallbackFragment**.\n */\n static isFragment(value: any): value is FallbackFragment {\n return value && value[internal] === FallbackFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a method.\n */\nexport class FunctionFragment extends NamedFragment {\n /**\n * If the function is constant (e.g. ``pure`` or ``view`` functions).\n */\n readonly constant!: boolean;\n\n /**\n * The returned types for the result of calling this function.\n */\n readonly outputs!: ReadonlyArray;\n\n /**\n * The state mutability (e.g. ``payable``, ``nonpayable``, ``view``\n * or ``pure``)\n */\n readonly stateMutability!: 'payable' | 'nonpayable' | 'view' | 'pure';\n\n /**\n * If the function can be sent value during invocation.\n */\n readonly payable!: boolean;\n\n /**\n * The recommended gas limit to send when calling this function.\n */\n readonly gas!: null | bigint;\n\n /**\n * @private\n */\n constructor(\n guard: any,\n name: string,\n stateMutability: 'payable' | 'nonpayable' | 'view' | 'pure',\n inputs: ReadonlyArray,\n outputs: ReadonlyArray,\n gas: null | bigint\n ) {\n super(guard, 'function', name, inputs);\n Object.defineProperty(this, internal, { value: FunctionFragmentInternal });\n outputs = Object.freeze(outputs.slice());\n const constant = stateMutability === 'view' || stateMutability === 'pure';\n const payable = stateMutability === 'payable';\n defineProperties(this, {\n constant,\n gas,\n outputs,\n payable,\n stateMutability,\n });\n }\n\n /**\n * The Function selector.\n */\n get selector(): string {\n return id(this.format('sighash')).substring(0, 10);\n }\n\n /**\n * Returns a string representation of this function as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'function',\n name: this.name,\n constant: this.constant,\n stateMutability: this.stateMutability !== 'nonpayable' ? this.stateMutability : undefined,\n payable: this.payable,\n gas: this.gas != null ? this.gas : undefined,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n outputs: this.outputs.map((o) => JSON.parse(o.format(format))),\n });\n }\n\n const result: string[] = [];\n\n if (format !== 'sighash') {\n result.push('function');\n }\n\n result.push(this.name + joinParams(format, this.inputs));\n\n if (format !== 'sighash') {\n if (this.stateMutability !== 'nonpayable') {\n result.push(this.stateMutability);\n }\n\n if (this.outputs && this.outputs.length) {\n result.push('returns');\n result.push(joinParams(format, this.outputs));\n }\n\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n }\n return result.join(' ');\n }\n\n /**\n * Return the selector for a function with %%name%% and %%params%%.\n */\n static getSelector(name: string, params?: Array): string {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new FunctionFragment(_guard, name, 'view', params, [], null);\n return fragment.selector;\n }\n\n /**\n * Returns a new **FunctionFragment** for %%obj%%.\n */\n static from(obj: any): FunctionFragment {\n if (FunctionFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return FunctionFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('function', obj);\n const inputs = consumeParams(obj);\n const mutability = consumeMutability(obj);\n\n let outputs: Array = [];\n if (consumeKeywords(obj, setify(['returns'])).has('returns')) {\n outputs = consumeParams(obj);\n }\n\n const gas = consumeGas(obj);\n\n consumeEoi(obj);\n\n return new FunctionFragment(_guard, name, mutability, inputs, outputs, gas);\n }\n\n let stateMutability = obj.stateMutability;\n\n // Use legacy Solidity ABI logic if stateMutability is missing\n if (stateMutability == null) {\n stateMutability = 'payable';\n\n if (typeof obj.constant === 'boolean') {\n stateMutability = 'view';\n if (!obj.constant) {\n stateMutability = 'payable';\n if (typeof obj.payable === 'boolean' && !obj.payable) {\n stateMutability = 'nonpayable';\n }\n }\n } else if (typeof obj.payable === 'boolean' && !obj.payable) {\n stateMutability = 'nonpayable';\n }\n }\n\n // @TODO: verifyState for stateMutability (e.g. throw if\n // payable: false but stateMutability is \"nonpayable\")\n\n return new FunctionFragment(\n _guard,\n obj.name,\n stateMutability,\n obj.inputs ? obj.inputs.map(ParamType.from) : [],\n obj.outputs ? obj.outputs.map(ParamType.from) : [],\n obj.gas != null ? obj.gas : null\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FunctionFragment**.\n */\n static isFragment(value: any): value is FunctionFragment {\n return value && value[internal] === FunctionFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a structure.\n */\nexport class StructFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray) {\n super(guard, 'struct', name, inputs);\n Object.defineProperty(this, internal, { value: StructFragmentInternal });\n }\n\n /**\n * Returns a string representation of this struct as %%format%%.\n */\n format(): string {\n throw new Error('@TODO');\n }\n\n /**\n * Returns a new **StructFragment** for %%obj%%.\n */\n static from(obj: any): StructFragment {\n if (typeof obj === 'string') {\n return StructFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('struct', obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n return new StructFragment(_guard, name, inputs);\n }\n\n return new StructFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n\n // @TODO: fix this return type\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **StructFragment**.\n */\n static isFragment(value: any): value is FunctionFragment {\n return value && value[internal] === StructFragmentInternal;\n }\n}\n", "/**\n * The Interface class is a low-level class that accepts an\n * ABI and provides all the necessary functionality to encode\n * and decode paramaters to and results from methods, events\n * and errors.\n *\n * It also provides several convenience methods to automatically\n * search and find matching transactions and events to parse them.\n *\n * @_subsection api/abi:Interfaces [interfaces]\n */\n\nimport { keccak256 } from 'ethers';\nimport { id } from 'ethers';\nimport {\n concat,\n dataSlice,\n getBigInt,\n getBytes,\n getBytesCopy,\n hexlify,\n zeroPadValue,\n isHexString,\n defineProperties,\n assertArgument,\n toBeHex,\n assert,\n} from 'ethers';\n\nimport { AbiCoder } from 'ethers';\nimport { checkResultErrors, Result } from 'ethers';\nimport {\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FallbackFragment,\n Fragment,\n FunctionFragment,\n ParamType,\n} from './fragments.js';\nimport { Typed } from 'ethers';\n\nimport type { BigNumberish, BytesLike, CallExceptionError, CallExceptionTransaction } from 'ethers';\n\nimport type { JsonFragment } from 'ethers';\n\nexport { checkResultErrors, Result };\n\n/**\n * When using the [[Interface-parseLog]] to automatically match a Log to its event\n * for parsing, a **LogDescription** is returned.\n */\nexport class LogDescription {\n /**\n * The matching fragment for the ``topic0``.\n */\n readonly fragment!: EventFragment;\n\n /**\n * The name of the Event.\n */\n readonly name!: string;\n\n /**\n * The full Event signature.\n */\n readonly signature!: string;\n\n /**\n * The topic hash for the Event.\n */\n readonly topic!: string;\n\n /**\n * The arguments passed into the Event with ``emit``.\n */\n readonly args!: Result;\n\n /**\n * @_ignore:\n */\n constructor(fragment: EventFragment, topic: string, args: Result) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties(this, {\n fragment,\n name,\n signature,\n topic,\n args,\n });\n }\n}\n\n/**\n * When using the [[Interface-parseTransaction]] to automatically match\n * a transaction data to its function for parsing,\n * a **TransactionDescription** is returned.\n */\nexport class TransactionDescription {\n /**\n * The matching fragment from the transaction ``data``.\n */\n readonly fragment!: FunctionFragment;\n\n /**\n * The name of the Function from the transaction ``data``.\n */\n readonly name!: string;\n\n /**\n * The arguments passed to the Function from the transaction ``data``.\n */\n readonly args!: Result;\n\n /**\n * The full Function signature from the transaction ``data``.\n */\n readonly signature!: string;\n\n /**\n * The selector for the Function from the transaction ``data``.\n */\n readonly selector!: string;\n\n /**\n * The ``value`` (in wei) from the transaction.\n */\n readonly value!: bigint;\n\n /**\n * @_ignore:\n */\n constructor(fragment: FunctionFragment, selector: string, args: Result, value: bigint) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties(this, {\n fragment,\n name,\n args,\n signature,\n selector,\n value,\n });\n }\n}\n\n/**\n * When using the [[Interface-parseError]] to automatically match an\n * error for a call result for parsing, an **ErrorDescription** is returned.\n */\nexport class ErrorDescription {\n /**\n * The matching fragment.\n */\n readonly fragment!: ErrorFragment;\n\n /**\n * The name of the Error.\n */\n readonly name!: string;\n\n /**\n * The arguments passed to the Error with ``revert``.\n */\n readonly args!: Result;\n\n /**\n * The full Error signature.\n */\n readonly signature!: string;\n\n /**\n * The selector for the Error.\n */\n readonly selector!: string;\n\n /**\n * @_ignore:\n */\n constructor(fragment: ErrorFragment, selector: string, args: Result) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties(this, {\n fragment,\n name,\n args,\n signature,\n selector,\n });\n }\n}\n\n/**\n * An **Indexed** is used as a value when a value that does not\n * fit within a topic (i.e. not a fixed-length, 32-byte type). It\n * is the ``keccak256`` of the value, and used for types such as\n * arrays, tuples, bytes and strings.\n */\nexport class Indexed {\n /**\n * The ``keccak256`` of the value logged.\n */\n readonly hash!: null | string;\n\n /**\n * @_ignore:\n */\n readonly _isIndexed!: boolean;\n\n /**\n * Returns ``true`` if %%value%% is an **Indexed**.\n *\n * This provides a Type Guard for property access.\n */\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n\n /**\n * @_ignore:\n */\n constructor(hash: null | string) {\n defineProperties(this, { hash, _isIndexed: true });\n }\n}\n\ntype ErrorInfo = {\n signature: string;\n inputs: Array;\n name: string;\n reason: (...args: Array) => string;\n};\n\n// https://docs.soliditylang.org/en/v0.8.13/control-structures.html?highlight=panic#panic-via-assert-and-error-via-require\nconst PanicReasons: Record = {\n '0': 'generic panic',\n '1': 'assert(false)',\n '17': 'arithmetic overflow',\n '18': 'division or modulo by zero',\n '33': 'enum overflow',\n '34': 'invalid encoded storage byte array accessed',\n '49': 'out-of-bounds array access; popping on an empty array',\n '50': 'out-of-bounds access of an array or bytesN',\n '65': 'out of memory',\n '81': 'uninitialized function',\n};\n\nconst BuiltinErrors: Record = {\n '0x08c379a0': {\n signature: 'Error(string)',\n name: 'Error',\n inputs: ['string'],\n reason: (message: string) => {\n return `reverted with reason string ${JSON.stringify(message)}`;\n },\n },\n '0x4e487b71': {\n signature: 'Panic(uint256)',\n name: 'Panic',\n inputs: ['uint256'],\n reason: (code: bigint) => {\n let reason = 'unknown panic code';\n if (code >= 0 && code <= 0xff && PanicReasons[code.toString()]) {\n reason = PanicReasons[code.toString()];\n }\n return `reverted with panic code 0x${code.toString(16)} (${reason})`;\n },\n },\n};\n\n/*\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n*/\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\n\n/**\n * An **InterfaceAbi** may be any supported ABI format.\n *\n * A string is expected to be a JSON string, which will be parsed\n * using ``JSON.parse``. This means that the value **must** be a valid\n * JSON string, with no stray commas, etc.\n *\n * An array may contain any combination of:\n * - Human-Readable fragments\n * - Parsed JSON fragment\n * - [[Fragment]] instances\n *\n * A **Human-Readable Fragment** is a string which resembles a Solidity\n * signature and is introduced in [this blog entry](link-ricmoo-humanreadableabi).\n * For example, ``function balanceOf(address) view returns (uint)``.\n *\n * A **Parsed JSON Fragment** is a JavaScript Object desribed in the\n * [Solidity documentation](link-solc-jsonabi).\n */\nexport type InterfaceAbi = string | ReadonlyArray;\n\n/**\n * An Interface abstracts many of the low-level details for\n * encoding and decoding the data on the blockchain.\n *\n * An ABI provides information on how to encode data to send to\n * a Contract, how to decode the results and events and how to\n * interpret revert errors.\n *\n * The ABI can be specified by [any supported format](InterfaceAbi).\n */\nexport class Interface {\n /**\n * All the Contract ABI members (i.e. methods, events, errors, etc).\n */\n readonly fragments!: ReadonlyArray;\n\n /**\n * The Contract constructor.\n */\n readonly deploy!: ConstructorFragment;\n\n /**\n * The Fallback method, if any.\n */\n readonly fallback!: null | FallbackFragment;\n\n /**\n * If receiving ether is supported.\n */\n readonly receive!: boolean;\n\n #errors: Map;\n #events: Map;\n #functions: Map;\n // #structs: Map;\n\n #abiCoder: AbiCoder;\n\n /**\n * Create a new Interface for the %%fragments%%.\n */\n constructor(fragments: InterfaceAbi) {\n let abi: ReadonlyArray = [];\n if (typeof fragments === 'string') {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n this.#functions = new Map();\n this.#errors = new Map();\n this.#events = new Map();\n // this.#structs = new Map();\n\n const frags: Array = [];\n for (const a of abi) {\n try {\n frags.push(Fragment.from(a));\n } catch (error) {\n console.log('EE', error);\n }\n }\n\n defineProperties(this, {\n fragments: Object.freeze(frags),\n });\n\n let fallback: null | FallbackFragment = null;\n let receive = false;\n\n this.#abiCoder = this.getAbiCoder();\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment, index) => {\n let bucket: Map;\n switch (fragment.type) {\n case 'constructor':\n if (this.deploy) {\n console.log('duplicate definition - constructor');\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineProperties(this, {\n deploy: fragment,\n });\n return;\n\n case 'fallback':\n if (fragment.inputs.length === 0) {\n receive = true;\n } else {\n assertArgument(\n !fallback || (fragment).payable !== fallback.payable,\n 'conflicting fallback fragments',\n `fragments[${index}]`,\n fragment\n );\n fallback = fragment;\n receive = fallback.payable;\n }\n return;\n\n case 'function':\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.#functions;\n break;\n\n case 'event':\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.#events;\n break;\n\n case 'error':\n bucket = this.#errors;\n break;\n\n default:\n return;\n }\n\n // Two identical entries; ignore it\n const signature = fragment.format();\n if (bucket.has(signature)) {\n return;\n }\n\n bucket.set(signature, fragment);\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineProperties(this, {\n deploy: ConstructorFragment.from('constructor()'),\n });\n }\n\n defineProperties(this, { fallback, receive });\n }\n\n /**\n * Returns the entire Human-Readable ABI, as an array of\n * signatures, optionally as %%minimal%% strings, which\n * removes parameter names and unneceesary spaces.\n */\n format(minimal?: boolean): Array {\n const format = minimal ? 'minimal' : 'full';\n const abi = this.fragments.map((f) => f.format(format));\n return abi;\n }\n\n /**\n * Return the JSON-encoded ABI. This is the format Solidiy\n * returns.\n */\n formatJson(): string {\n const abi = this.fragments.map((f) => f.format('json'));\n\n // We need to re-bundle the JSON fragments a bit\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n /**\n * The ABI coder that will be used to encode and decode binary\n * data.\n */\n getAbiCoder(): AbiCoder {\n return AbiCoder.defaultAbiCoder();\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n #getFunction(key: string, values: null | Array, forceUnique: boolean): null | FunctionFragment {\n // Selector\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n for (const fragment of this.#functions.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: Array = [];\n for (const [name, fragment] of this.#functions) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (values) {\n const lastValue = values.length > 0 ? values[values.length - 1] : null;\n\n let valueLength = values.length;\n let allowOptions = true;\n if (Typed.isTyped(lastValue) && lastValue.type === 'overrides') {\n allowOptions = false;\n valueLength--;\n }\n\n // Remove all matches that don't have a compatible length. The args\n // may contain an overrides, so the match may have n or n - 1 parameters\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs.length;\n if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) {\n matching.splice(i, 1);\n }\n }\n\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n\n // We are past the inputs\n if (j >= inputs.length) {\n if (values[j].type === 'overrides') {\n continue;\n }\n matching.splice(i, 1);\n break;\n }\n\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n\n // We found a single matching signature with an overrides, but the\n // last value is something that cannot possibly be an options\n if (matching.length === 1 && values && values.length !== matching[0].inputs.length) {\n const lastArg = values[values.length - 1];\n if (lastArg == null || Array.isArray(lastArg) || typeof lastArg !== 'object') {\n matching.splice(0, 1);\n }\n }\n\n if (matching.length === 0) {\n return null;\n }\n\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, 'key', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n const result = this.#functions.get(FunctionFragment.from(key).format());\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Get the function name for %%key%%, which may be a function selector,\n * function name or function signature that belongs to the ABI.\n */\n getFunctionName(key: string): string {\n const fragment = this.#getFunction(key, null, false);\n assertArgument(fragment, 'no matching function', 'key', key);\n return fragment.name;\n }\n\n /**\n * Returns true if %%key%% (a function selector, function name or\n * function signature) is present in the ABI.\n *\n * In the case of a function name, the name may be ambiguous, so\n * accessing the [[FunctionFragment]] may require refinement.\n */\n hasFunction(key: string): boolean {\n return !!this.#getFunction(key, null, false);\n }\n\n /**\n * Get the [[FunctionFragment]] for %%key%%, which may be a function\n * selector, function name or function signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple functions match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single function in\n * the ABI, this will throw.\n */\n getFunction(key: string, values?: Array): null | FunctionFragment {\n return this.#getFunction(key, values || null, true);\n }\n\n /**\n * Iterate over all functions, calling %%callback%%, sorted by their name.\n */\n forEachFunction(callback: (func: FunctionFragment, index: number) => void): void {\n const names = Array.from(this.#functions.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(this.#functions.get(name), i);\n }\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n #getEvent(key: string, values: null | Array, forceUnique: boolean): null | EventFragment {\n // EventTopic\n if (isHexString(key)) {\n const eventTopic = key.toLowerCase();\n for (const fragment of this.#events.values()) {\n if (eventTopic === fragment.topicHash) {\n return fragment;\n }\n }\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: EventFragment[] = [];\n for (const [name, fragment] of this.#events) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (values) {\n // Remove all matches that don't have a compatible length.\n for (let i = matching.length - 1; i >= 0; i--) {\n if (matching[i].inputs.length < values.length) {\n matching.splice(i, 1);\n }\n }\n\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (matching.length === 0) {\n return null;\n }\n\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, 'key', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n const result = this.#events.get(EventFragment.from(key).format());\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Get the event name for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n */\n getEventName(key: string): string {\n const fragment = this.#getEvent(key, null, false);\n assertArgument(fragment, 'no matching event', 'key', key);\n\n return fragment.name;\n }\n\n /**\n * Returns true if %%key%% (an event topic hash, event name or\n * event signature) is present in the ABI.\n *\n * In the case of an event name, the name may be ambiguous, so\n * accessing the [[EventFragment]] may require refinement.\n */\n hasEvent(key: string): boolean {\n return !!this.#getEvent(key, null, false);\n }\n\n /**\n * Get the [[EventFragment]] for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple events match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single event in\n * the ABI, this will throw.\n */\n getEvent(key: string, values?: Array): null | EventFragment {\n return this.#getEvent(key, values || null, true);\n }\n\n /**\n * Iterate over all events, calling %%callback%%, sorted by their name.\n */\n forEachEvent(callback: (func: EventFragment, index: number) => void): void {\n const names = Array.from(this.#events.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(this.#events.get(name), i);\n }\n }\n\n /**\n * Get the [[ErrorFragment]] for %%key%%, which may be an error\n * selector, error name or error signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple errors match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single error in\n * the ABI, this will throw.\n */\n getError(key: string, values?: Array): null | ErrorFragment {\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n\n if (BuiltinErrors[selector]) {\n return ErrorFragment.from(BuiltinErrors[selector].signature);\n }\n\n for (const fragment of this.#errors.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: ErrorFragment[] = [];\n for (const [name, fragment] of this.#errors) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (matching.length === 0) {\n if (key === 'Error') {\n return ErrorFragment.from('error Error(string)');\n }\n if (key === 'Panic') {\n return ErrorFragment.from('error Panic(uint256)');\n }\n return null;\n } else if (matching.length > 1) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, 'name', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n key = ErrorFragment.from(key).format();\n if (key === 'Error(string)') {\n return ErrorFragment.from('error Error(string)');\n }\n if (key === 'Panic(uint256)') {\n return ErrorFragment.from('error Panic(uint256)');\n }\n\n const result = this.#errors.get(key);\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Iterate over all errors, calling %%callback%%, sorted by their name.\n */\n forEachError(callback: (func: ErrorFragment, index: number) => void): void {\n const names = Array.from(this.#errors.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(this.#errors.get(name), i);\n }\n }\n\n // Get the 4-byte selector used by Solidity to identify a function\n /*\n getSelector(fragment: ErrorFragment | FunctionFragment): string {\n if (typeof(fragment) === \"string\") {\n const matches: Array = [ ];\n\n try { matches.push(this.getFunction(fragment)); } catch (error) { }\n try { matches.push(this.getError(fragment)); } catch (_) { }\n\n if (matches.length === 0) {\n logger.throwArgumentError(\"unknown fragment\", \"key\", fragment);\n } else if (matches.length > 1) {\n logger.throwArgumentError(\"ambiguous fragment matches function and error\", \"key\", fragment);\n }\n\n fragment = matches[0];\n }\n\n return dataSlice(id(fragment.format()), 0, 4);\n }\n */\n\n // Get the 32-byte topic hash used by Solidity to identify an event\n /*\n getEventTopic(fragment: EventFragment): string {\n //if (typeof(fragment) === \"string\") { fragment = this.getEvent(eventFragment); }\n return id(fragment.format());\n }\n */\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this.#abiCoder.decode(params as any, data);\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this.#abiCoder.encode(params as any, values);\n }\n\n /**\n * Encodes a ``tx.data`` object for deploying the Contract with\n * the %%values%% as the constructor arguments.\n */\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified error (see [[getError]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getError(fragment);\n assertArgument(f, 'unknown error', 'fragment', fragment);\n fragment = f;\n }\n\n assertArgument(\n dataSlice(data, 0, 4) === fragment.selector,\n `data signature does not match error ${fragment.name}.`,\n 'data',\n data\n );\n\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n\n /**\n * Encodes the transaction revert data for a call result that\n * reverted from the the Contract with the sepcified %%error%%\n * (see [[getError]] for valid values for %%fragment%%) with the %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof fragment === 'string') {\n const f = this.getError(fragment);\n assertArgument(f, 'unknown error', 'fragment', fragment);\n fragment = f;\n }\n\n return concat([fragment.selector, this._encodeParams(fragment.inputs, values || [])]);\n }\n\n /**\n * Decodes the %%data%% from a transaction ``tx.data`` for\n * the function specified (see [[getFunction]] for valid values\n * for %%fragment%%).\n *\n * Most developers should prefer the [[parseTransaction]] method\n * instead, which will automatically detect the fragment.\n */\n decodeFunctionData(fragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n assertArgument(\n dataSlice(data, 0, 4) === fragment.selector,\n `data signature does not match function ${fragment.name}.`,\n 'data',\n data\n );\n\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n\n /**\n * Encodes the ``tx.data`` for a transaction that calls the function\n * specified (see [[getFunction]] for valid values for %%fragment%%) with\n * the %%values%%.\n */\n encodeFunctionData(fragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n return concat([fragment.selector, this._encodeParams(fragment.inputs, values || [])]);\n }\n\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeFunctionResult(fragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n let message = 'invalid length for result data';\n\n const bytes = getBytesCopy(data);\n if (bytes.length % 32 === 0) {\n try {\n return this.#abiCoder.decode(fragment.outputs as any, bytes);\n } catch (error) {\n message = 'could not decode result data';\n }\n }\n\n // Call returned data with no error, but the data is junk\n assert(false, message, 'BAD_DATA', {\n value: hexlify(bytes),\n info: { method: fragment.name, signature: fragment.format() },\n });\n }\n\n makeError(_data: BytesLike, tx: CallExceptionTransaction): CallExceptionError {\n const data = getBytes(_data, 'data');\n\n const error = AbiCoder.getBuiltinCallException('call', tx, data);\n\n // Not a built-in error; try finding a custom error\n const customPrefix = 'execution reverted (unknown custom error)';\n if (error.message.startsWith(customPrefix)) {\n const selector = hexlify(data.slice(0, 4));\n\n const ef = this.getError(selector);\n if (ef) {\n try {\n const args = this.#abiCoder.decode(ef.inputs as any, data.slice(4));\n error.revert = {\n name: ef.name,\n signature: ef.format(),\n args,\n };\n error.reason = error.revert.signature;\n error.message = `execution reverted: ${error.reason}`;\n } catch (e) {\n error.message = `execution reverted (coult not decode custom error)`;\n }\n }\n }\n\n // Add the invocation, if available\n const parsed = this.parseTransaction(tx);\n if (parsed) {\n error.invocation = {\n method: parsed.name,\n signature: parsed.signature,\n args: parsed.args,\n };\n }\n\n return error;\n }\n\n /**\n * Encodes the result data (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values\n * for %%fragment%%) with %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeFunctionResult(fragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n return hexlify(this.#abiCoder.encode(fragment.outputs as any, values || []));\n }\n /*\n spelunk(inputs: Array, values: ReadonlyArray, processfunc: (type: string, value: any) => Promise): Promise> {\n const promises: Array> = [ ];\n const process = function(type: ParamType, value: any): any {\n if (type.baseType === \"array\") {\n return descend(type.child\n }\n if (type. === \"address\") {\n }\n };\n\n const descend = function (inputs: Array, values: ReadonlyArray) {\n if (inputs.length !== values.length) { throw new Error(\"length mismatch\"); }\n \n };\n\n const result: Array = [ ];\n values.forEach((value, index) => {\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n }\n*/\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(fragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, 'UNEXPECTED_ARGUMENT', {\n count: values.length,\n expectedCount: fragment.inputs.length,\n });\n\n const topics: Array> = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n\n // @TODO: Use the coders for this; to properly support tuples, etc.\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === 'string') {\n return id(value);\n } else if (param.type === 'bytes') {\n return keccak256(hexlify(value));\n }\n\n if (param.type === 'bool' && typeof value === 'boolean') {\n value = value ? '0x01' : '0x00';\n }\n\n if (param.type.match(/^u?int/)) {\n value = toBeHex(value);\n }\n\n // Check addresses are valid\n if (param.type === 'address') {\n this.#abiCoder.encode(['address'], [value]);\n }\n return zeroPadValue(hexlify(value), 32);\n //@TOOD should probably be return toHex(value, 32)\n };\n\n values.forEach((value, index) => {\n const param = (fragment).inputs[index];\n\n if (!param.indexed) {\n assertArgument(\n value == null,\n 'cannot filter non-indexed parameters; must be null',\n 'contract.' + param.name,\n value\n );\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === 'array' || param.baseType === 'tuple') {\n assertArgument(false, 'filtering with tuples or arrays not supported', 'contract.' + param.name, value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(fragment: EventFragment | string, values: ReadonlyArray): { data: string; topics: Array } {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n const topics: Array = [];\n\n const dataTypes: Array = [];\n const dataValues: Array = [];\n\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n\n assertArgument(values.length === fragment.inputs.length, 'event arguments/values mismatch', 'values', values);\n\n fragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === 'string') {\n topics.push(id(value));\n } else if (param.type === 'bytes') {\n topics.push(keccak256(value));\n } else if (param.baseType === 'tuple' || param.baseType === 'array') {\n // @TODO\n throw new Error('not implemented');\n } else {\n topics.push(this.#abiCoder.encode([param.type], [value]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this.#abiCoder.encode(dataTypes as any, dataValues),\n topics: topics,\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(fragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n if (topics != null && !fragment.anonymous) {\n const eventTopic = fragment.topicHash;\n assertArgument(\n isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic,\n 'fragment/topic mismatch',\n 'topics[0]',\n topics[0]\n );\n topics = topics.slice(1);\n }\n\n const indexed: Array = [];\n const nonIndexed: Array = [];\n const dynamic: Array = [];\n\n fragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (\n param.type === 'string' ||\n param.type === 'bytes' ||\n param.baseType === 'tuple' ||\n param.baseType === 'array'\n ) {\n indexed.push(ParamType.from({ type: 'bytes32', name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n const resultIndexed = topics != null ? this.#abiCoder.decode(indexed as any, concat(topics)) : null;\n const resultNonIndexed = this.#abiCoder.decode(nonIndexed as any, data, true);\n\n //const result: (Array & { [ key: string ]: any }) = [ ];\n const values: Array = [];\n const keys: Array = [];\n let nonIndexedIndex = 0,\n indexedIndex = 0;\n fragment.inputs.forEach((param, index) => {\n let value: Indexed | null | unknown = null;\n if (param.indexed) {\n if (resultIndexed == null) {\n value = new Indexed(null);\n } else if (dynamic[index]) {\n value = new Indexed(resultIndexed[indexedIndex++]);\n } else {\n try {\n value = resultIndexed[indexedIndex++];\n } catch (error) {\n value = error;\n }\n }\n } else {\n try {\n value = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n value = error;\n }\n }\n\n values.push(value);\n keys.push(param.name || null);\n });\n\n return Result.fromItems(values, keys);\n }\n\n /**\n * Parses a transaction, finding the matching function and extracts\n * the parameter values along with other useful function details.\n *\n * If the matching function cannot be found, return null.\n */\n parseTransaction(tx: { data: string; value?: BigNumberish }): null | TransactionDescription {\n const data = getBytes(tx.data, 'tx.data');\n const value = getBigInt(tx.value != null ? tx.value : 0, 'tx.value');\n\n const fragment = this.getFunction(hexlify(data.slice(0, 4)));\n\n if (!fragment) {\n return null;\n }\n\n const args = this.#abiCoder.decode(fragment.inputs as any, data.slice(4));\n return new TransactionDescription(fragment, fragment.selector, args, value);\n }\n\n parseCallResult(data: BytesLike): Result {\n throw new Error('@TODO');\n }\n\n /**\n * Parses a receipt log, finding the matching event and extracts\n * the parameter values along with other useful event details.\n *\n * If the matching event cannot be found, returns null.\n */\n parseLog(log: { topics: Array; data: string }): null | LogDescription {\n const fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) {\n return null;\n }\n\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n\n return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));\n }\n\n /**\n * Parses a revert data, finding the matching error and extracts\n * the parameter values along with other useful error details.\n *\n * If the matching event cannot be found, returns null.\n */\n parseError(data: BytesLike): null | ErrorDescription {\n const hexData = hexlify(data);\n\n const fragment = this.getError(dataSlice(hexData, 0, 4));\n\n if (!fragment) {\n return null;\n }\n\n const args = this.#abiCoder.decode(fragment.inputs as any, dataSlice(hexData, 4));\n return new ErrorDescription(fragment, fragment.selector, args);\n }\n\n /**\n * Creates a new [[Interface]] from the ABI %%value%%.\n *\n * The %%value%% may be provided as an existing [[Interface]] object,\n * a JSON-encoded ABI or any Human-Readable ABI format.\n */\n static from(value: InterfaceAbi | Interface): Interface {\n // Already an Interface, which is immutable\n if (value instanceof Interface) {\n return value;\n }\n\n // JSON\n if (typeof value === 'string') {\n return new Interface(JSON.parse(value));\n }\n\n // Maybe an interface from an older version, or from a symlinked copy\n if (typeof (value).format === 'function') {\n return new Interface((value).format('json'));\n }\n\n // Array of fragments\n return new Interface(value);\n }\n}\n", "import {\n keccak256,\n sha256,\n toUtf8Bytes,\n toUtf8String,\n recoverAddress,\n SigningKey,\n AbiCoder,\n Signature,\n concat,\n id,\n Mnemonic,\n Wordlist,\n wordlists,\n HDNodeWallet as ethersHDNodeWallet,\n getBytes,\n computeHmac,\n} from 'ethers';\n\nimport type { BytesLike, SignatureLike } from 'ethers';\n\nimport { Interface } from './interface.js';\n\nconst splitSignature = (sigBytes: SignatureLike) => Signature.from(sigBytes);\nconst joinSignature = (splitSig: SignatureLike) => Signature.from(splitSig).serialized;\nconst arrayify = (value: BytesLike) => getBytes(value);\nconst FormatTypes = {\n sighash: 'sighash',\n minimal: 'minimal',\n full: 'full',\n json: 'json',\n};\nconst isValidMnemonic = Mnemonic.isValidMnemonic;\n\ncomputeHmac.register((algorithm, key, data) => {\n return computeHmac._(algorithm, Buffer.from(key), Buffer.from(data));\n});\n\nexport {\n keccak256,\n sha256,\n toUtf8Bytes,\n toUtf8String,\n recoverAddress,\n Signature,\n SigningKey,\n AbiCoder,\n Interface,\n FormatTypes,\n splitSignature,\n joinSignature,\n arrayify,\n ethersHDNodeWallet,\n concat,\n id,\n Mnemonic,\n Wordlist,\n wordlists,\n isValidMnemonic,\n};\n", "import { hexStr2byteArray, byteArray2hexStr } from './code.js';\nimport { decodeBase58Address, getBase58CheckAddress, isAddressValid, pkToAddress } from './crypto.js';\nimport { isHex, isString } from './validations.js';\nimport { keccak256 } from './ethersUtils.js';\n\nexport const ADDRESS_SIZE = 34;\nexport const ADDRESS_PREFIX = '41';\nexport const ADDRESS_PREFIX_BYTE = 0x41;\nexport const ADDRESS_PREFIX_REGEX = /^(41)/;\n\nexport const TRON_BIP39_PATH_PREFIX = \"m/44'/195'\";\nexport const TRON_BIP39_PATH_INDEX_0 = TRON_BIP39_PATH_PREFIX + \"/0'/0/0\";\n\nexport function fromHex(address: string) {\n if (!isHex(address)) return address;\n\n return getBase58CheckAddress(hexStr2byteArray(address.replace(/^0x/, ADDRESS_PREFIX)));\n}\n\nexport function toHex(address: string) {\n if (isHex(address)) return address.toLowerCase().replace(/^0x/, ADDRESS_PREFIX);\n\n return byteArray2hexStr(decodeBase58Address(address) as number[]).toLowerCase();\n}\n\nfunction getChecksumAddress(address: string): string {\n address = address.toLowerCase();\n\n const chars = address.substring(2).split('');\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = hexStr2byteArray(keccak256(expanded).slice(2));\n\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n\n return ADDRESS_PREFIX + chars.join('');\n}\n\nexport function toChecksumAddress(address: string) {\n if (!isAddress(address)) throw new Error(`'${address}' is not a valid address string`);\n return getChecksumAddress(toHex(address));\n}\n\nexport function isChecksumAddress(address: string) {\n if (!isHex(address) || address.length !== 42) return false;\n try {\n return toChecksumAddress(address) === address;\n } catch {\n return false;\n }\n}\n\nexport function fromPrivateKey(privateKey: string, strict = false) {\n try {\n return pkToAddress(privateKey, strict);\n } catch {\n return false;\n }\n}\n\nexport function isAddress(address: unknown): boolean {\n if (!address || !isString(address)) return false;\n\n // Convert HEX to Base58\n if (address.length === 42) {\n try {\n // it throws an error if the address starts with 0x\n return isAddress(getBase58CheckAddress(hexStr2byteArray(address)));\n } catch (err) {\n return false;\n }\n }\n try {\n return isAddressValid(address);\n } catch (err) {\n return false;\n }\n}\n", "import type { BytesLike } from '../types/UtilsTypes.js';\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nconst ALPHABET_MAP = {} as Record;\n\nfor (let i = 0; i < ALPHABET.length; i++) ALPHABET_MAP[ALPHABET.charAt(i)] = i;\n\nconst BASE = 58;\n\nexport function encode58(buffer: BytesLike | string) {\n if (buffer.length === 0) return '';\n\n let i: number;\n let j: number;\n\n const digits = [0];\n\n for (i = 0; i < buffer.length; i++) {\n for (j = 0; j < digits.length; j++) digits[j] <<= 8;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n digits[0] += buffer[i];\n let carry = 0;\n\n for (j = 0; j < digits.length; ++j) {\n digits[j] += carry;\n carry = (digits[j] / BASE) | 0;\n digits[j] %= BASE;\n }\n\n while (carry) {\n digits.push(carry % BASE);\n carry = (carry / BASE) | 0;\n }\n }\n\n for (i = 0; buffer[i] === 0 && i < buffer.length - 1; i++) digits.push(0);\n\n return digits\n .reverse()\n .map((digit) => ALPHABET[digit])\n .join('');\n}\n\nexport function decode58(string: string) {\n if (string.length === 0) return [];\n\n let i;\n let j;\n\n const bytes = [0];\n\n for (i = 0; i < string.length; i++) {\n const c: string = string[i];\n\n if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character');\n\n for (j = 0; j < bytes.length; j++) bytes[j] *= BASE;\n\n bytes[0] += ALPHABET_MAP[c];\n let carry = 0;\n\n for (j = 0; j < bytes.length; ++j) {\n bytes[j] += carry;\n carry = bytes[j] >> 8;\n bytes[j] &= 0xff;\n }\n\n while (carry) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n for (i = 0; string[i] === '1' && i < string.length - 1; i++) bytes.push(0);\n\n return bytes.reverse();\n}\n", "'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n", "'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n", "'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n", "'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n", "'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n", "'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n", "import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n", "'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n", "'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n", "'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n", "const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n", "import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n", "'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n", "'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n", "'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n", "'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n", "'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n", "'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n", "'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n", "import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n", "/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n", "'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n", "import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n", "'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n", "import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n", "import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n", "'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n", "import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n", "\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n", "import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n isStreamResponse && onFinish();\n }, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n", "import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n", "// eslint-disable-next-line strict\nexport default null;\n", "'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n", "export const VERSION = \"1.7.4\";", "'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n", "'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n", "'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n", "const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n", "'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n", "'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n", "import axios, { Method } from 'axios';\nimport { hasProperties, isObject, isValidURL } from '../../utils/validations.js';\nimport { HeadersType, HttpProviderInstance } from '../../types/Providers.js';\n\nexport default class HttpProvider {\n host: string;\n timeout: number;\n user: string;\n password: string;\n headers: HeadersType;\n statusPage: string;\n instance: HttpProviderInstance;\n constructor(host: string, timeout = 30000, user = '', password = '', headers: HeadersType = {}, statusPage = '/') {\n if (!isValidURL(host)) throw new Error('Invalid URL provided to HttpProvider');\n\n if (isNaN(timeout) || timeout < 0) throw new Error('Invalid timeout duration provided');\n\n if (!isObject(headers)) throw new Error('Invalid headers object provided');\n\n host = host.replace(/\\/+$/, '');\n\n this.host = host;\n this.timeout = timeout;\n this.user = user;\n this.password = password;\n this.headers = headers;\n this.statusPage = statusPage;\n\n this.instance = axios.create({\n baseURL: host,\n timeout: timeout,\n headers: headers,\n auth: user\n ? {\n username: user,\n password,\n }\n : undefined,\n });\n }\n\n setStatusPage(statusPage = '/') {\n this.statusPage = statusPage;\n }\n\n async isConnected(statusPage = this.statusPage) {\n return this.request(statusPage)\n .then((data) => {\n return hasProperties(data as Record, 'blockID', 'block_header');\n })\n .catch(() => false);\n }\n\n request(url: string, payload = {}, method: Method = 'get'): Promise {\n method = method.toLowerCase() as Method;\n\n return this.instance\n .request({\n data: method == 'post' && Object.keys(payload).length ? payload : null,\n params: method == 'get' && payload,\n url,\n method,\n })\n .then(({ data }) => data);\n }\n}\n", "import HttpProvider from './HttpProvider.js';\nexport interface Providers {\n HttpProvider: typeof HttpProvider;\n}\nexport const providers: Providers = { HttpProvider };\nexport { HttpProvider };\n", "import { AbiCoder } from './ethersUtils.js';\nimport { TronWeb } from '../tronweb.js';\nimport { ADDRESS_PREFIX, ADDRESS_PREFIX_REGEX } from './address.js';\nimport { FunctionFragment, AbiParamsCommon, AbiInputsType } from '../types/ABI.js';\n\nconst abiCoder = new AbiCoder();\n\nfunction _addressToHex(value: string) {\n return TronWeb.address.toHex(value).replace(ADDRESS_PREFIX_REGEX, '0x');\n}\n\nexport function decodeParams(names: string[], types: string[], output: string, ignoreMethodHash = false) {\n if (ignoreMethodHash && output.replace(/^0x/, '').length % 64 === 8) output = '0x' + output.replace(/^0x/, '').substring(8);\n\n if (output.replace(/^0x/, '').length % 64) {\n throw new Error('The encoded string is not valid. Its length must be a multiple of 64.');\n }\n\n // workaround for unsupported trcToken type\n types = types.map((type) => {\n if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n return type;\n });\n\n return abiCoder.decode(types, output).reduce(\n (obj, arg, index) => {\n if (types[index] == 'address') {\n arg = ADDRESS_PREFIX + arg.substr(2).toLowerCase();\n }\n\n if (names.length) {\n obj[names[index]] = arg;\n } else {\n obj.push(arg);\n }\n\n return obj;\n },\n names.length ? {} : []\n );\n}\n\nexport function encodeParams(types: string[], values: any[]) {\n for (let i = 0; i < types.length; i++) {\n if (types[i] === 'address') {\n values[i] = TronWeb.address.toHex(values[i]).replace(ADDRESS_PREFIX_REGEX, '0x');\n }\n }\n\n return abiCoder.encode(types, values);\n}\n\nfunction extractSize(type: string) {\n const size = type.match(/([a-zA-Z0-9])(\\[.*\\])/);\n return size ? size[2] : '';\n}\n\nfunction extractArrayDim(type: string) {\n const size = extractSize(type);\n return (size.match(/\\]\\[/g) || []).length + 1;\n}\n\nexport function encodeParamsV2ByABI(funABI: FunctionFragment, args: any[]) {\n const types: string[] = [];\n\n const buildFullTypeDefinition = (typeDef: AbiParamsCommon): string => {\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType: AbiParamsCommon) => {\n return buildFullTypeDefinition(innerType);\n });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}`;\n }\n\n if (/trcToken/.test(typeDef.type)) return typeDef.type.replace(/trcToken/, 'uint256');\n\n return typeDef.type;\n };\n\n const convertTypes = (types: string[]) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (/trcToken/.test(type)) types[i] = type.replace(/trcToken/, 'uint256');\n }\n };\n\n const convertAddresses = (addrArr: string | string[]) => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs) as string;\n });\n return addrArr;\n } else {\n return _addressToHex(addrArr);\n }\n };\n\n const mapTuple = (components: ReadonlyArray, args: any[], dimension: number) => {\n if (dimension > 1) {\n if (args.length) {\n args.forEach((arg) => {\n mapTuple(components, arg, dimension - 1);\n });\n }\n } else {\n if (args.length && dimension) {\n args.forEach((arg) => {\n encodeArgs(components, arg);\n });\n }\n }\n };\n\n const encodeArgs = (inputs: ReadonlyArray = [], args: any[]) => {\n if (inputs.length)\n inputs.forEach((input: AbiParamsCommon, i: number) => {\n const type = input.type;\n\n if (args[i])\n if (type === 'address') args[i] = _addressToHex(args[i]);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)![0] === 'address[') convertAddresses(args[i]);\n else if (type.indexOf('tuple') === 0)\n if (extractSize(type)) {\n const dimension = extractArrayDim(type);\n mapTuple(input.components!, args[i], dimension);\n } else encodeArgs(input.components!, args[i]);\n });\n };\n\n if (funABI.inputs && funABI.inputs.length) {\n for (let i = 0; i < funABI.inputs.length; i++) {\n const type = funABI.inputs[i].type;\n // \"false\" will be converting to `false` and \"true\" will be working\n // fine as abiCoder assume anything in quotes as `true`\n if (type === 'bool' && args[i] === 'false') {\n args[i] = false;\n }\n types.push(type.indexOf('tuple') === 0 ? buildFullTypeDefinition(funABI.inputs[i]) : type);\n if (args.length < types.length) {\n args.push('');\n }\n }\n }\n\n encodeArgs(funABI.inputs, args);\n convertTypes(types);\n\n return abiCoder.encode(types, args);\n}\n\nexport function decodeParamsV2ByABI(funABI: FunctionFragment | AbiInputsType, data: string | Uint8Array) {\n const convertTypeNames = (types: string[]) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (/^trcToken/.test(type)) types[i] = type.replace(/^trcToken/, 'uint256');\n }\n };\n\n const convertAddresses = (addrArr: string | string[]) => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs) as string;\n });\n return addrArr;\n } else {\n return TronWeb.address.toHex(addrArr);\n }\n };\n\n const mapTuple = (components: ReadonlyArray, args: string[] | string[][], dimension: number) => {\n if (dimension > 1) {\n if (args.length) {\n args.forEach((arg) => {\n mapTuple(components, arg as string[], dimension - 1);\n });\n }\n } else {\n if (args.length && dimension) {\n args.forEach((arg) => {\n decodeResult(components, arg as string[]);\n });\n }\n }\n };\n\n const buildFullTypeNameDefinition = (typeDef: AbiParamsCommon): string => {\n const name = typeDef.name ? ` ${typeDef.name}` : '';\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType) => {\n return buildFullTypeNameDefinition(innerType);\n });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}${name}`;\n }\n if (/trcToken/.test(typeDef.type)) return typeDef.type.replace(/trcToken/, 'uint256') + name;\n\n return typeDef.type + name;\n };\n\n const decodeResult = (outputs: ReadonlyArray, result: any[]) => {\n if (outputs.length)\n outputs.forEach((output, i) => {\n const { type, name } = output;\n\n if (result[i]) {\n if (type === 'address') {\n result[i] = TronWeb.address.toHex(result[i]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = TronWeb.address.toHex(result[i]);\n } else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)![0] === 'address[') {\n convertAddresses(result[i]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = convertAddresses(result[i]);\n } else if (type.indexOf('tuple') === 0) {\n if (extractSize(type)) {\n const dimension = extractArrayDim(type);\n mapTuple(output.components!, result[i], dimension);\n } else decodeResult(output.components!, result[i]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n }\n });\n };\n\n // Only decode if there supposed to be fields\n if ('outputs' in funABI && funABI.outputs && funABI.outputs.length > 0) {\n const outputTypes: any[] = [];\n for (let i = 0; i < funABI.outputs.length; i++) {\n const type = funABI.outputs[i].type;\n const name = funABI.outputs[i].name ? ` ${funABI.outputs[i].name}` : '';\n outputTypes.push(type.indexOf('tuple') === 0 ? buildFullTypeNameDefinition(funABI.outputs[i]) : type + name);\n }\n convertTypeNames(outputTypes);\n\n if (!data || !data.length) data = new Uint8Array(32 * funABI.outputs.length); // ensuring the data is at least filled by 0 cause `AbiCoder` throws if there's not engouh data\n // decode data\n const decodeRes = abiCoder.decode(outputTypes, data);\n const decodeResCopy = decodeRes.toArray(true);\n decodeResult(funABI.outputs, decodeResCopy);\n\n return decodeResCopy;\n }\n return [];\n}\n", "import { isAddress, toHex } from '../utils/address.js';\nimport { isNotNullOrUndefined, isInteger, isString, isObject, isValidURL, isHex, isBoolean } from '../utils/validations.js';\n\nexport type ValidatorParamType = {\n value?: string | number | boolean | Record | unknown[];\n type: unknown;\n name?: string;\n msg?: string;\n names?: string[];\n gt?: number;\n lt?: number;\n gte?: number;\n lte?: number;\n se?: number;\n optional?: boolean;\n};\n\nexport class Validator {\n invalid(param: ValidatorParamType) {\n return param.msg || `Invalid ${param.name}${param.type === 'address' ? ' address' : ''} provided`;\n }\n\n notPositive(param: ValidatorParamType) {\n return `${param.name} must be a positive integer`;\n }\n\n notEqual(param: ValidatorParamType) {\n return param.msg || `${param.names?.[0]} can not be equal to ${param.names?.[1]}`;\n }\n\n notValid(params: ValidatorParamType[]) {\n const normalized: Record = {};\n let no = false;\n for (const param of params) {\n const { name, names, value, type, gt, lt, gte, lte, optional } = param;\n if (optional && (!isNotNullOrUndefined(value) || (type !== 'boolean' && value === false))) continue;\n normalized[name as string] = param.value;\n switch (type) {\n case 'address':\n if (!isAddress(value as string)) {\n no = true;\n } else {\n normalized[name as string] = toHex(value as string);\n }\n break;\n\n case 'integer':\n if (\n !isInteger(value) ||\n (typeof gt === 'number' && value <= gt) ||\n (typeof lt === 'number' && value >= lt) ||\n (typeof gte === 'number' && value < gte) ||\n (typeof lte === 'number' && value > lte)\n ) {\n no = true;\n }\n break;\n\n case 'positive-integer':\n if (!isInteger(value) || value <= 0) {\n throw new Error(this.notPositive(param));\n }\n break;\n\n case 'tokenId':\n if (!isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'notEmptyObject':\n if (!isObject(value) || !Object.keys(value).length) {\n no = true;\n }\n break;\n\n case 'notEqual':\n if (names && normalized[names[0]] === normalized[names[1]]) {\n throw new Error(this.notEqual(param));\n }\n break;\n\n case 'resource':\n if (!['BANDWIDTH', 'ENERGY'].includes(value as string)) {\n no = true;\n }\n break;\n\n case 'url':\n if (!isValidURL(value as string)) {\n no = true;\n }\n break;\n\n case 'hex':\n if (!isHex(value as string)) {\n no = true;\n }\n break;\n\n case 'array':\n if (!Array.isArray(value)) {\n no = true;\n }\n break;\n\n case 'not-empty-string':\n if (!isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'boolean':\n if (!isBoolean(value)) {\n no = true;\n }\n break;\n case 'string':\n if (\n !isString(value) ||\n (typeof gt === 'number' && value.length <= gt) ||\n (typeof lt === 'number' && value.length >= lt) ||\n (typeof gte === 'number' && value.length < gte) ||\n (typeof lte === 'number' && value.length > lte)\n ) {\n no = true;\n }\n break;\n }\n if (no) {\n throw new Error(this.invalid(param));\n }\n }\n return false;\n }\n}\n", "import { Resource } from '../types/TransactionBuilder.js';\nimport { ContractAbiInterface } from './ABI.js';\nexport enum ContractType {\n AccountCreateContract = 'AccountCreateContract',\n TransferContract = 'TransferContract',\n TransferAssetContract = 'TransferAssetContract',\n VoteAssetContract = 'VoteAssetContract',\n VoteWitnessContract = 'VoteWitnessContract',\n WitnessCreateContract = 'WitnessCreateContract',\n AssetIssueContract = 'AssetIssueContract',\n WitnessUpdateContract = 'WitnessUpdateContract',\n ParticipateAssetIssueContract = 'ParticipateAssetIssueContract',\n AccountUpdateContract = 'AccountUpdateContract',\n FreezeBalanceContract = 'FreezeBalanceContract',\n UnfreezeBalanceContract = 'UnfreezeBalanceContract',\n CancelAllUnfreezeV2Contract = 'CancelAllUnfreezeV2Contract',\n WithdrawBalanceContract = 'WithdrawBalanceContract',\n UnfreezeAssetContract = 'UnfreezeAssetContract',\n UpdateAssetContract = 'UpdateAssetContract',\n ProposalCreateContract = 'ProposalCreateContract',\n ProposalApproveContract = 'ProposalApproveContract',\n ProposalDeleteContract = 'ProposalDeleteContract',\n SetAccountIdContract = 'SetAccountIdContract',\n CustomContract = 'CustomContract',\n CreateSmartContract = 'CreateSmartContract',\n TriggerSmartContract = 'TriggerSmartContract',\n GetContract = 'GetContract',\n UpdateSettingContract = 'UpdateSettingContract',\n ExchangeCreateContract = 'ExchangeCreateContract',\n ExchangeInjectContract = 'ExchangeInjectContract',\n ExchangeWithdrawContract = 'ExchangeWithdrawContract',\n ExchangeTransactionContract = 'ExchangeTransactionContract',\n UpdateEnergyLimitContract = 'UpdateEnergyLimitContract',\n AccountPermissionUpdateContract = 'AccountPermissionUpdateContract',\n ClearABIContract = 'ClearABIContract',\n UpdateBrokerageContract = 'UpdateBrokerageContract',\n ShieldedTransferContract = 'ShieldedTransferContract',\n MarketSellAssetContract = 'MarketSellAssetContract',\n MarketCancelOrderContract = 'MarketCancelOrderContract',\n FreezeBalanceV2Contract = 'FreezeBalanceV2Contract',\n UnfreezeBalanceV2Contract = 'UnfreezeBalanceV2Contract',\n WithdrawExpireUnfreezeContract = 'WithdrawExpireUnfreezeContract',\n DelegateResourceContract = 'DelegateResourceContract',\n UnDelegateResourceContract = 'UnDelegateResourceContract',\n UNRECOGNIZED = 'UNRECOGNIZED',\n}\nexport enum Permission_PermissionType {\n Owner = 0,\n Witness = 1,\n Active = 2,\n UNRECOGNIZED = -1,\n}\n\nexport interface Key {\n address: Uint8Array;\n weight: number;\n}\n\nexport enum AccountType {\n Normal = 0,\n AssetIssue = 1,\n Contract = 2,\n UNRECOGNIZED = -1,\n}\n\nexport interface PermissionKey {\n address: string;\n weight: number;\n}\nexport interface Permission {\n type: number;\n /** Owner id=0, Witness id=1, Active id start by 2 */\n id?: number;\n permission_name: string;\n threshold: number;\n operations?: string;\n keys: PermissionKey[];\n}\n\nexport interface TransferContract {\n to_address: string;\n owner_address: string;\n amount: number;\n}\n\nexport interface TransferAssetContract {\n to_address: string;\n owner_address: string;\n amount: number;\n asset_name: string;\n}\n\nexport interface ParticipateAssetIssueContract {\n to_address: string;\n owner_address: string;\n asset_name: string;\n amount: number;\n}\n\nexport interface TriggerSmartContract {\n owner_address: string;\n contract_address: string;\n call_value?: number;\n call_token_value?: number;\n token_id?: number;\n data?: string;\n}\n\nexport interface FreezeBalanceContract {\n owner_address: string;\n frozen_balance: number;\n frozen_duration: number;\n resource?: Resource;\n receiver_address?: string;\n}\n\nexport interface UnfreezeBalanceContract {\n owner_address: string;\n resource: string;\n receiver_address: string;\n}\n\nexport interface WithdrawBalanceContract {\n owner_address: string;\n}\n\nexport interface FreezeBalanceV2Contract {\n owner_address: string;\n frozen_balance: number;\n resource?: Resource;\n}\n\nexport interface CancelFreezeBalanceV2Contract {\n owner_address: string;\n}\n\nexport interface UnfreezeBalanceV2Contract {\n owner_address: string;\n unfreeze_balance: number;\n resource?: Resource;\n}\n\nexport interface DelegateResourceContract {\n owner_address: string;\n receiver_address: string;\n balance: number;\n resource?: Resource;\n lock?: boolean;\n lock_period?: number;\n}\n\nexport interface UnDelegateResourceContract {\n owner_address: string;\n receiver_address: string;\n balance: number;\n resource?: Resource;\n}\n\nexport interface WithdrawExpireUnfreezeContract {\n owner_address: string;\n}\n\nexport interface CreateSmartContract {\n owner_address: string;\n call_token_value: number;\n token_id: string;\n new_contract: {\n name: string;\n origin_address: string;\n contract_address: string;\n abi: { entrys?: ContractAbiInterface };\n bytecode: string;\n call_value: number;\n consume_user_resource_percent: number;\n origin_energy_limit: number;\n };\n}\n\nexport interface DeployConstantContract {\n data: string;\n owner_address: string;\n call_value?: number;\n token_id?: number | string;\n call_token_value?: number | string;\n}\n\nexport interface ClearABIContract {\n contract_address: string;\n owner_address: string;\n}\n\nexport interface UpdateBrokerageContract {\n brokerage: number;\n owner_address: string;\n}\n\ninterface FrozenSupply {\n frozen_amount: number;\n frozen_days: number;\n}\nexport interface AssetIssueContract {\n owner_address: string;\n name: string;\n abbr: string;\n description: string;\n url: string;\n total_supply: number;\n trx_num: number;\n num: number;\n start_time: number;\n end_time: number;\n precision: number;\n free_asset_net_limit: number;\n public_free_asset_net_limit: number;\n public_free_asset_net_usage: number;\n public_latest_free_net_time: number;\n vote_score: number;\n frozen_supply: FrozenSupply[];\n}\n\nexport interface AccountCreateContract {\n account_address: string;\n owner_address: string;\n}\n\nexport interface AccountUpdateContract {\n account_name: string;\n owner_address: string;\n}\n\nexport interface SetAccountIdContract {\n account_id: string;\n owner_address: string;\n}\n\nexport interface ProposalCreateContract {\n owner_address: string;\n parameters: Record[];\n}\n\nexport interface ProposalDeleteContract {\n owner_address: string;\n proposal_id: number;\n}\n\nexport interface VoteProposalContract {\n owner_address: string;\n proposal_id: number;\n is_add_approval: boolean;\n}\n\nexport interface ExchangeCreateContract {\n owner_address: string;\n first_token_id: string;\n first_token_balance: number;\n second_token_id: string;\n second_token_balance: number;\n}\n\nexport interface ExchangeInjectContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n}\n\nexport interface ExchangeWithdrawContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n}\n\nexport interface ExchangeTransactionContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n expected: number;\n}\n\nexport interface UpdateSettingContract {\n owner_address: string;\n contract_address: string;\n consume_user_resource_percent: number;\n}\n\nexport interface UpdateEnergyLimitContract {\n owner_address: string;\n contract_address: string;\n origin_energy_limit: number;\n}\n\nexport interface AccountPermissionUpdateContract {\n owner_address: string;\n owner?: Permission;\n witness?: Permission;\n actives?: Permission[];\n}\n\nexport interface UpdateAssetContract {\n owner_address: string;\n description: string;\n url: string;\n new_limit?: number;\n new_public_limit?: number;\n}\n\nexport interface WitnessCreateContract {\n owner_address: string;\n url: string;\n}\n\nexport interface VoteWitnessContract {\n owner_address: string;\n votes: { vote_address: string; vote_count: number }[];\n}\n\nexport type ContractParamter =\n | TransferContract\n | TransferAssetContract\n | ParticipateAssetIssueContract\n | TriggerSmartContract\n | FreezeBalanceContract\n | UnfreezeBalanceContract\n | WithdrawBalanceContract\n | FreezeBalanceV2Contract\n | CancelFreezeBalanceV2Contract\n | UnfreezeBalanceV2Contract\n | DelegateResourceContract\n | UnDelegateResourceContract\n | WithdrawExpireUnfreezeContract\n | CreateSmartContract\n | ClearABIContract\n | UpdateBrokerageContract\n | AssetIssueContract\n | AccountCreateContract\n | AccountUpdateContract\n | SetAccountIdContract\n | ProposalCreateContract\n | ProposalDeleteContract\n | VoteProposalContract\n | ExchangeCreateContract\n | ExchangeInjectContract\n | ExchangeWithdrawContract\n | ExchangeTransactionContract\n | UpdateSettingContract\n | UpdateEnergyLimitContract\n | AccountPermissionUpdateContract\n | UpdateAssetContract\n | WitnessCreateContract\n | VoteWitnessContract;\n", "// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport google_protobuf_any_pb from '@tronweb3/google-protobuf/google/protobuf/any_pb.js';\n\nimport '../protocol/core/Tron_pb.cjs';\nconst { Transaction, Permission, Key } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/balance_contract_pb.cjs';\nconst {\n TransferContract,\n FreezeBalanceContract,\n UnfreezeBalanceContract,\n WithdrawBalanceContract,\n FreezeBalanceV2Contract,\n UnfreezeBalanceV2Contract,\n WithdrawExpireUnfreezeContract,\n DelegateResourceContract,\n UnDelegateResourceContract,\n} = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/asset_issue_contract_pb.cjs';\nconst { TransferAssetContract, ParticipateAssetIssueContract, AssetIssueContract, UpdateAssetContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/smart_contract_pb.cjs';\nconst {\n TriggerSmartContract,\n ClearABIContract,\n UpdateEnergyLimitContract,\n UpdateSettingContract,\n CreateSmartContract,\n SmartContract,\n} = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/common_pb.cjs';\nconst { ResourceCode } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/witness_contract_pb.cjs';\nconst { WitnessCreateContract, VoteWitnessContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/storage_contract_pb.cjs';\nconst { UpdateBrokerageContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/account_contract_pb.cjs';\nconst { AccountCreateContract, AccountUpdateContract, SetAccountIdContract, AccountPermissionUpdateContract } =\n globalThis.TronWebProto;\n\nimport '../protocol/core/contract/proposal_contract_pb.cjs';\nconst { ProposalCreateContract, ProposalDeleteContract, ProposalApproveContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/exchange_contract_pb.cjs';\nconst { ExchangeCreateContract, ExchangeInjectContract, ExchangeWithdrawContract, ExchangeTransactionContract } =\n globalThis.TronWebProto;\n\nimport { byteArray2hexStr } from './bytes.js';\nimport { sha256, keccak256 } from './ethersUtils.js';\nimport TronWeb from '../tronweb.js';\nimport { isHex } from './validations.js';\n\nconst fromHexString = (hexString: string) => {\n if (!hexString || hexString.length === 0) return new Uint8Array([]);\n return new Uint8Array(\n TronWeb.address\n .toHex(hexString)\n .match(/.{1,2}/g)\n .map((byte: string) => parseInt(byte, 16))\n );\n};\n\nconst stringToUint8Array = (hexString: string) => {\n if (!hexString || hexString.length === 0) return new Uint8Array([]);\n return new Uint8Array(\n (isHex(hexString) ? hexString : TronWeb.toHex(hexString))\n .replace(/^0x/, '')\n .match(/.{1,2}/g)\n .map((byte: string) => parseInt(byte, 16))\n );\n};\n\nconst flexToUint8Array = (str: string, visible: boolean) => {\n if (!visible) return stringToUint8Array(str.replace(/^0x/, ''));\n return stringToUint8Array(TronWeb.fromUtf8(str).replace(/^0x/, ''));\n};\n\nconst sha3 = (string: string, prefix = true) => {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n};\n\nconst buildCommonTransaction = (message, contractType, typeName, permissionId) => {\n const anyValue = new google_protobuf_any_pb.Any();\n anyValue.pack(message.serializeBinary(), 'protocol.' + typeName);\n const contract = new Transaction.Contract();\n contract.setType(contractType);\n contract.setParameter(anyValue);\n if (permissionId) {\n contract.setPermissionId(permissionId);\n }\n const raw = new Transaction.raw();\n raw.addContract(contract);\n const transaction = new Transaction();\n transaction.setRawData(raw);\n return transaction;\n};\n\n// wallet/createtransaction for sendTrx\nconst buildTransferContract = (value, options) => {\n const { to_address, owner_address, amount } = value;\n const transferContract = new TransferContract();\n transferContract.setToAddress(fromHexString(to_address));\n transferContract.setOwnerAddress(fromHexString(owner_address));\n transferContract.setAmount(amount);\n return buildCommonTransaction(\n transferContract,\n Transaction.Contract.ContractType.TRANSFERCONTRACT,\n 'TransferContract',\n options.Permission_id\n );\n};\n\n// wallet/transferasset for sendToken\nconst buildTransferAssetContract = (value, options) => {\n const { to_address, owner_address, amount, asset_name } = value;\n const transferContract = new TransferAssetContract();\n transferContract.setToAddress(fromHexString(to_address));\n transferContract.setOwnerAddress(fromHexString(owner_address));\n transferContract.setAssetName(flexToUint8Array(asset_name, options.visible));\n transferContract.setAmount(amount);\n return buildCommonTransaction(\n transferContract,\n Transaction.Contract.ContractType.TRANSFERASSETCONTRACT,\n 'TransferAssetContract',\n options.Permission_id\n );\n};\n\n// wallet/participateassetissue for purchaseToken\nconst buildParticipateAssetIssueContract = (value, options) => {\n const pbObj = new ParticipateAssetIssueContract();\n pbObj.setToAddress(fromHexString(value.to_address));\n pbObj.setOwnerAddress(fromHexString(value.owner_address));\n pbObj.setAssetName(flexToUint8Array(value.asset_name, options.visible));\n pbObj.setAmount(value.amount);\n\n return buildCommonTransaction(\n pbObj,\n Transaction.Contract.ContractType.PARTICIPATEASSETISSUECONTRACT,\n 'ParticipateAssetIssueContract',\n options.Permission_id\n );\n};\n\nconst buildTriggerSmartContract = (value, options) => {\n const triggerSmartContract = new TriggerSmartContract();\n const {\n owner_address,\n contract_address,\n parameter = '',\n function_selector,\n call_value,\n call_token_value,\n token_id,\n data,\n } = value;\n triggerSmartContract.setOwnerAddress(fromHexString(owner_address));\n triggerSmartContract.setContractAddress(fromHexString(contract_address));\n triggerSmartContract.setCallValue(call_value);\n if (data) {\n triggerSmartContract.setData(stringToUint8Array(data));\n } else if (function_selector) {\n const contractData = sha3(function_selector).substring(2, 10) + parameter;\n triggerSmartContract.setData(stringToUint8Array(contractData));\n }\n\n if (token_id) {\n triggerSmartContract.setTokenId(token_id);\n }\n if (call_token_value) {\n triggerSmartContract.setCallTokenValue(call_token_value);\n }\n\n return buildCommonTransaction(\n triggerSmartContract,\n Transaction.Contract.ContractType.TRIGGERSMARTCONTRACT,\n 'TriggerSmartContract',\n options.Permission_id\n );\n};\n\nconst buildFreezeBalanceContract = (value, options) => {\n const freezeBalanceContract = new FreezeBalanceContract();\n const { owner_address, frozen_balance, frozen_duration, resource, receiver_address } = value;\n freezeBalanceContract.setOwnerAddress(fromHexString(owner_address));\n freezeBalanceContract.setFrozenBalance(frozen_balance);\n freezeBalanceContract.setFrozenDuration(frozen_duration);\n if (resource) {\n freezeBalanceContract.setResource(ResourceCode[resource]);\n }\n if (receiver_address) {\n freezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));\n }\n\n return buildCommonTransaction(\n freezeBalanceContract,\n Transaction.Contract.ContractType.FREEZEBALANCECONTRACT,\n 'FreezeBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildUnfreezeBalanceContract = (value, options) => {\n const unfreezeBalanceContract = new UnfreezeBalanceContract();\n const { owner_address, resource, receiver_address } = value;\n unfreezeBalanceContract.setOwnerAddress(fromHexString(owner_address));\n if (resource) {\n unfreezeBalanceContract.setResource(ResourceCode[resource]);\n }\n if (receiver_address) {\n unfreezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));\n }\n\n return buildCommonTransaction(\n unfreezeBalanceContract,\n Transaction.Contract.ContractType.UNFREEZEBALANCECONTRACT,\n 'UnfreezeBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildWithdrawBalanceContract = (value, options) => {\n const withdrawbalanceContract = new WithdrawBalanceContract();\n const { owner_address } = value;\n withdrawbalanceContract.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawbalanceContract,\n Transaction.Contract.ContractType.WITHDRAWBALANCECONTRACT,\n 'WithdrawBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildFreezeBalanceV2Contract = (value, options) => {\n const freezeBalanceV2Contract = new FreezeBalanceV2Contract();\n const { owner_address, frozen_balance, resource } = value;\n freezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));\n freezeBalanceV2Contract.setFrozenBalance(frozen_balance);\n freezeBalanceV2Contract.setResource(ResourceCode[resource]);\n\n return buildCommonTransaction(\n freezeBalanceV2Contract,\n Transaction.Contract.ContractType.FREEZEBALANCEV2CONTRACT,\n 'FreezeBalanceV2Contract',\n options.Permission_id\n );\n};\n\nconst buildCancelFreezeBalanceV2Contract = (value, options) => {\n const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();\n const { owner_address } = value;\n withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawExpireUnfreeze,\n Transaction.Contract.ContractType.CANCELALLUNFREEZEV2CONTRACT,\n 'CancelAllUnfreezeV2Contract',\n options.Permission_id\n );\n};\n\nconst buildUnfreezeBalanceV2Contract = (value, options) => {\n const unfreezeBalanceV2Contract = new UnfreezeBalanceV2Contract();\n const { owner_address, unfreeze_balance, resource } = value;\n unfreezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));\n unfreezeBalanceV2Contract.setUnfreezeBalance(unfreeze_balance);\n unfreezeBalanceV2Contract.setResource(ResourceCode[resource]);\n\n return buildCommonTransaction(\n unfreezeBalanceV2Contract,\n Transaction.Contract.ContractType.UNFREEZEBALANCEV2CONTRACT,\n 'UnfreezeBalanceV2Contract',\n options.Permission_id\n );\n};\n\nconst buildDelegateResourceContract = (value, options) => {\n const delegateResourceContract = new DelegateResourceContract();\n const { owner_address, receiver_address, balance, resource, lock = false, lock_period } = value;\n delegateResourceContract.setOwnerAddress(fromHexString(owner_address));\n delegateResourceContract.setBalance(balance);\n delegateResourceContract.setResource(ResourceCode[resource]);\n delegateResourceContract.setLock(lock);\n delegateResourceContract.setLockPeriod(lock_period);\n delegateResourceContract.setReceiverAddress(fromHexString(receiver_address));\n\n return buildCommonTransaction(\n delegateResourceContract,\n Transaction.Contract.ContractType.DELEGATERESOURCECONTRACT,\n 'DelegateResourceContract',\n options.Permission_id\n );\n};\n\nconst buildUnDelegateResourceContract = (value, options) => {\n const unDelegateResourceContract = new UnDelegateResourceContract();\n const { owner_address, receiver_address, balance, resource } = value;\n unDelegateResourceContract.setOwnerAddress(fromHexString(owner_address));\n unDelegateResourceContract.setBalance(balance);\n unDelegateResourceContract.setResource(ResourceCode[resource]);\n unDelegateResourceContract.setReceiverAddress(fromHexString(receiver_address));\n\n return buildCommonTransaction(\n unDelegateResourceContract,\n Transaction.Contract.ContractType.UNDELEGATERESOURCECONTRACT,\n 'UnDelegateResourceContract',\n options.Permission_id\n );\n};\n\nconst buildWithdrawExpireUnfreezeContract = (value, options) => {\n const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();\n const { owner_address } = value;\n withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawExpireUnfreeze,\n Transaction.Contract.ContractType.WITHDRAWEXPIREUNFREEZECONTRACT,\n 'WithdrawExpireUnfreezeContract',\n options.Permission_id\n );\n};\n\n// applyForSR\nconst buildCreateWitness = (value, options) => {\n const createWitnessContract = new WitnessCreateContract();\n const { owner_address, url } = value;\n createWitnessContract.setOwnerAddress(fromHexString(owner_address));\n createWitnessContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n return buildCommonTransaction(\n createWitnessContract,\n Transaction.Contract.ContractType.WITNESSCREATECONTRACT,\n 'WitnessCreateContract',\n options.Permission_id\n );\n};\n\n// vote\nconst buildVoteWitnessAccount = (value, options) => {\n const voteWitnessContract = new VoteWitnessContract();\n const { owner_address, votes } = value;\n voteWitnessContract.setOwnerAddress(fromHexString(owner_address));\n\n votes.forEach((voteItem) => {\n const vote = new VoteWitnessContract.Vote();\n const { vote_address, vote_count } = voteItem;\n vote.setVoteAddress(fromHexString(vote_address));\n const numberOfVotes = parseInt(vote_count);\n vote.setVoteCount(numberOfVotes);\n voteWitnessContract.addVotes(vote);\n });\n\n return buildCommonTransaction(\n voteWitnessContract,\n Transaction.Contract.ContractType.VOTEWITNESSCONTRACT,\n 'VoteWitnessContract',\n options.Permission_id\n );\n};\n\nconst buildCreateSmartContract = (value, options) => {\n const params = value?.new_contract\n ? {\n ...{\n owner_address: value.owner_address,\n call_token_value: value.call_token_value,\n token_id: value.token_id,\n },\n ...value.new_contract,\n }\n : value;\n const {\n owner_address,\n consume_user_resource_percent,\n origin_energy_limit,\n abi,\n bytecode = '',\n parameter = '',\n call_value,\n call_token_value,\n token_id,\n name: contracName,\n } = params;\n let { origin_address } = params;\n\n const createSmartContract = new CreateSmartContract();\n createSmartContract.setOwnerAddress(fromHexString(owner_address));\n if (token_id) {\n createSmartContract.setTokenId(token_id);\n }\n if (call_token_value) {\n createSmartContract.setCallTokenValue(call_token_value);\n }\n const smartContractBuilder = new SmartContract();\n\n if (abi) {\n let abiJson;\n if (typeof abi === 'string') {\n abiJson = JSON.parse(abi);\n } else {\n abiJson = abi?.entrys || []; // abi could be an empty object if origin abi is `[]`;\n }\n const abiBuilder = new SmartContract.ABI();\n\n const buildEntryParam = (data) => {\n const param = new SmartContract.ABI.Entry.Param();\n const { indexed, name, type } = data;\n if (indexed === true) {\n param.setIndexed(true);\n }\n param.setName(name);\n param.setType(type);\n return param;\n };\n const entryBuilders = abiJson.map((entry) => {\n const { anonymous, constant, name, inputs, outputs, type, payable, stateMutability } = entry;\n const entryBuilder = new SmartContract.ABI.Entry();\n entryBuilder.setAnonymous(anonymous);\n entryBuilder.setConstant(constant);\n entryBuilder.setName(name);\n if (inputs) {\n entryBuilder.setInputsList(inputs.map((input) => buildEntryParam(input)));\n }\n if (outputs) {\n entryBuilder.setOutputsList(outputs.map((output) => buildEntryParam(output)));\n }\n if (type) {\n entryBuilder.setType(SmartContract.ABI.Entry.EntryType[type.toUpperCase()]);\n }\n\n entryBuilder.setPayable(payable);\n if (stateMutability) {\n entryBuilder.setStatemutability(SmartContract.ABI.Entry.StateMutabilityType[stateMutability.toUpperCase()]);\n }\n\n return entryBuilder;\n });\n abiBuilder.setEntrysList(entryBuilders);\n smartContractBuilder.setAbi(abiBuilder);\n }\n\n if (call_value) {\n smartContractBuilder.setCallValue(call_value);\n }\n\n smartContractBuilder.setConsumeUserResourcePercent(consume_user_resource_percent);\n smartContractBuilder.setOriginEnergyLimit(origin_energy_limit);\n\n if (!origin_address) {\n origin_address = owner_address;\n }\n smartContractBuilder.setOriginAddress(fromHexString(origin_address));\n\n if (bytecode) {\n const bytecodeParameter = bytecode.replace(/^0x/, '') + parameter.replace(/^0x/, '');\n smartContractBuilder.setBytecode(stringToUint8Array(bytecodeParameter));\n }\n\n smartContractBuilder.setName(contracName);\n\n createSmartContract.setNewContract(smartContractBuilder);\n\n return buildCommonTransaction(\n createSmartContract,\n Transaction.Contract.ContractType.CREATESMARTCONTRACT,\n 'CreateSmartContract',\n options.Permission_id\n );\n};\n\nconst buildClearABIContract = (value, options) => {\n const { contract_address, owner_address } = value;\n const clearABIContract = new ClearABIContract();\n clearABIContract.setOwnerAddress(fromHexString(owner_address));\n clearABIContract.setContractAddress(fromHexString(contract_address));\n\n return buildCommonTransaction(\n clearABIContract,\n Transaction.Contract.ContractType.CLEARABICONTRACT,\n 'ClearABIContract',\n options.Permission_id\n );\n};\n\n// updateBrokerage\nconst buildUpdateBrokerageContract = (value, options) => {\n const { brokerage, owner_address } = value;\n const updateBrokerageContract = new UpdateBrokerageContract();\n updateBrokerageContract.setOwnerAddress(fromHexString(owner_address));\n updateBrokerageContract.setBrokerage(brokerage);\n\n return buildCommonTransaction(\n updateBrokerageContract,\n Transaction.Contract.ContractType.UPDATEBROKERAGECONTRACT,\n 'UpdateBrokerageContract',\n options.Permission_id\n );\n};\n\n// createToken\nconst buildAssetIssueContract = (value, options) => {\n const {\n owner_address,\n name,\n abbr,\n description,\n url,\n total_supply,\n trx_num,\n num,\n start_time,\n end_time,\n precision,\n free_asset_net_limit,\n public_free_asset_net_limit,\n public_free_asset_net_usage = 0,\n public_latest_free_net_time = 0,\n vote_score = 0,\n frozen_supply,\n } = value;\n const assetIssueContract = new AssetIssueContract();\n assetIssueContract.setOwnerAddress(fromHexString(owner_address));\n if (name) {\n assetIssueContract.setName(stringToUint8Array(name.replace(/^0x/, '')));\n }\n if (abbr) {\n assetIssueContract.setAbbr(stringToUint8Array(abbr.replace(/^0x/, '')));\n }\n assetIssueContract.setTotalSupply(total_supply);\n assetIssueContract.setNum(num);\n assetIssueContract.setEndTime(end_time);\n assetIssueContract.setStartTime(start_time);\n assetIssueContract.setTrxNum(trx_num);\n assetIssueContract.setVoteScore(vote_score);\n if (precision) {\n assetIssueContract.setPrecision(precision);\n }\n if (public_latest_free_net_time) {\n assetIssueContract.setPublicLatestFreeNetTime(public_latest_free_net_time);\n }\n if (description) {\n assetIssueContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));\n }\n if (url) {\n assetIssueContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n }\n\n assetIssueContract.setPublicFreeAssetNetUsage(public_free_asset_net_usage);\n assetIssueContract.setFreeAssetNetLimit(free_asset_net_limit);\n assetIssueContract.setPublicFreeAssetNetLimit(public_free_asset_net_limit);\n if (frozen_supply) {\n const frozenSupplyContract = new AssetIssueContract.FrozenSupply();\n frozenSupplyContract.setFrozenAmount(frozen_supply.length ? frozen_supply[0].frozen_amount : frozen_supply.frozen_amount);\n frozenSupplyContract.setFrozenDays(frozen_supply.length ? frozen_supply[0].frozen_days : frozen_supply.frozen_days);\n assetIssueContract.addFrozenSupply(frozenSupplyContract);\n }\n return buildCommonTransaction(\n assetIssueContract,\n Transaction.Contract.ContractType.ASSETISSUECONTRACT,\n 'AssetIssueContract',\n options.Permission_id\n );\n};\n\n//createAccount\nconst buildAccountCreateContract = (value, options) => {\n const accountCreateContract = new AccountCreateContract();\n const { account_address, owner_address } = value;\n accountCreateContract.setOwnerAddress(fromHexString(owner_address));\n accountCreateContract.setAccountAddress(fromHexString(account_address.replace(/^0x/, '')));\n return buildCommonTransaction(\n accountCreateContract,\n Transaction.Contract.ContractType.ACCOUNTCREATECONTRACT,\n 'AccountCreateContract',\n options.Permission_id\n );\n};\n\n// updateAccount\nconst buildAccountUpdateContract = (value, options) => {\n const accountUpdateContract = new AccountUpdateContract();\n const { account_name, owner_address } = value;\n accountUpdateContract.setOwnerAddress(fromHexString(owner_address));\n accountUpdateContract.setAccountName(stringToUint8Array(account_name.replace(/^0x/, '')));\n return buildCommonTransaction(\n accountUpdateContract,\n Transaction.Contract.ContractType.ACCOUNTUPDATECONTRACT,\n 'AccountUpdateContract',\n options.Permission_id\n );\n};\n\n// setAccountId\nconst buildSetAccountIdContract = (value, options) => {\n const setAccountIdContract = new SetAccountIdContract();\n const { account_id, owner_address } = value;\n setAccountIdContract.setOwnerAddress(fromHexString(owner_address));\n setAccountIdContract.setAccountId(stringToUint8Array(account_id.replace(/^0x/, '')));\n return buildCommonTransaction(\n setAccountIdContract,\n Transaction.Contract.ContractType.SETACCOUNTIDCONTRACT,\n 'SetAccountIdContract',\n options.Permission_id\n );\n};\n\nconst buildProposalCreateContract = (value, options) => {\n const proposalCreateContract = new ProposalCreateContract();\n const { owner_address, parameters } = value;\n proposalCreateContract.setOwnerAddress(fromHexString(owner_address));\n parameters.forEach((parameter) => {\n proposalCreateContract.getParametersMap().set(parameter.key, parameter.value);\n });\n return buildCommonTransaction(\n proposalCreateContract,\n Transaction.Contract.ContractType.PROPOSALCREATECONTRACT,\n 'ProposalCreateContract',\n options.Permission_id\n );\n};\n\nconst buildProposalDeleteContract = (value, options) => {\n const proposalDeleteContract = new ProposalDeleteContract();\n const { owner_address, proposal_id } = value;\n proposalDeleteContract.setOwnerAddress(fromHexString(owner_address));\n proposalDeleteContract.setProposalId(proposal_id);\n return buildCommonTransaction(\n proposalDeleteContract,\n Transaction.Contract.ContractType.PROPOSALDELETECONTRACT,\n 'ProposalDeleteContract',\n options.Permission_id\n );\n};\n\nconst buildVoteProposalContract = (value, options) => {\n const proposalVoteContract = new ProposalApproveContract();\n const { owner_address, proposal_id, is_add_approval } = value;\n proposalVoteContract.setOwnerAddress(fromHexString(owner_address));\n proposalVoteContract.setProposalId(proposal_id);\n proposalVoteContract.setIsAddApproval(is_add_approval);\n return buildCommonTransaction(\n proposalVoteContract,\n Transaction.Contract.ContractType.PROPOSALAPPROVECONTRACT,\n 'ProposalApproveContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeCreateContract = (value, options) => {\n const exchangeCreateContract = new ExchangeCreateContract();\n const { owner_address, first_token_id, first_token_balance, second_token_id, second_token_balance } = value;\n exchangeCreateContract.setOwnerAddress(fromHexString(owner_address));\n exchangeCreateContract.setFirstTokenId(flexToUint8Array(first_token_id, options.visible));\n exchangeCreateContract.setFirstTokenBalance(first_token_balance);\n exchangeCreateContract.setSecondTokenId(flexToUint8Array(second_token_id, options.visible));\n exchangeCreateContract.setSecondTokenBalance(second_token_balance);\n return buildCommonTransaction(\n exchangeCreateContract,\n Transaction.Contract.ContractType.EXCHANGECREATECONTRACT,\n 'ExchangeCreateContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeInjectContract = (value, options) => {\n const exchangeInjectContract = new ExchangeInjectContract();\n const { owner_address, exchange_id, token_id, quant } = value;\n exchangeInjectContract.setOwnerAddress(fromHexString(owner_address));\n exchangeInjectContract.setExchangeId(exchange_id);\n exchangeInjectContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeInjectContract.setQuant(quant);\n return buildCommonTransaction(\n exchangeInjectContract,\n Transaction.Contract.ContractType.EXCHANGEINJECTCONTRACT,\n 'ExchangeInjectContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeWithdrawContract = (value, options) => {\n const exchangeWithdrawContract = new ExchangeWithdrawContract();\n const { owner_address, exchange_id, token_id, quant } = value;\n exchangeWithdrawContract.setOwnerAddress(fromHexString(owner_address));\n exchangeWithdrawContract.setExchangeId(exchange_id);\n exchangeWithdrawContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeWithdrawContract.setQuant(quant);\n return buildCommonTransaction(\n exchangeWithdrawContract,\n Transaction.Contract.ContractType.EXCHANGEWITHDRAWCONTRACT,\n 'ExchangeWithdrawContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeTransactionContract = (value, options) => {\n const exchangeTransactionContract = new ExchangeTransactionContract();\n const { owner_address, exchange_id, token_id, quant, expected } = value;\n exchangeTransactionContract.setOwnerAddress(fromHexString(owner_address));\n exchangeTransactionContract.setExchangeId(exchange_id);\n exchangeTransactionContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeTransactionContract.setQuant(quant);\n exchangeTransactionContract.setExpected(expected);\n return buildCommonTransaction(\n exchangeTransactionContract,\n Transaction.Contract.ContractType.EXCHANGETRANSACTIONCONTRACT,\n 'ExchangeTransactionContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateSettingContract = (value, options) => {\n const updateSettingContract = new UpdateSettingContract();\n const { owner_address, contract_address, consume_user_resource_percent } = value;\n updateSettingContract.setOwnerAddress(fromHexString(owner_address));\n updateSettingContract.setContractAddress(fromHexString(contract_address));\n updateSettingContract.setConsumeUserResourcePercent(consume_user_resource_percent);\n return buildCommonTransaction(\n updateSettingContract,\n Transaction.Contract.ContractType.UPDATESETTINGCONTRACT,\n 'UpdateSettingContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateEnergyLimitContract = (value, options) => {\n const updateEnergyLimitContract = new UpdateEnergyLimitContract();\n const { owner_address, contract_address, origin_energy_limit } = value;\n updateEnergyLimitContract.setOwnerAddress(fromHexString(owner_address));\n updateEnergyLimitContract.setContractAddress(fromHexString(contract_address));\n updateEnergyLimitContract.setOriginEnergyLimit(origin_energy_limit);\n return buildCommonTransaction(\n updateEnergyLimitContract,\n Transaction.Contract.ContractType.UPDATEENERGYLIMITCONTRACT,\n 'UpdateEnergyLimitContract',\n options.Permission_id\n );\n};\n\nconst buildAccountPermissionUpdateContract = (value, options) => {\n const accountPermissionUpdateContract = new AccountPermissionUpdateContract();\n const { owner_address, owner, witness, actives } = value;\n accountPermissionUpdateContract.setOwnerAddress(fromHexString(owner_address));\n const getType = (type) => {\n // no type when permission_name is owner\n if (isNaN(type)) return type === 'Active' ? 2 : type === 'Witness' ? 1 : 0;\n return type;\n };\n const buildPermission = (data) => {\n // no type when permission_name is owner\n const permission = new Permission();\n const { type, id, permission_name, threshold, parentId, operations, keys } = data;\n permission.setType(getType(type));\n permission.setId(id);\n permission.setPermissionName(permission_name);\n permission.setThreshold(threshold);\n if (parentId) {\n permission.setParentId(parentId);\n }\n if (operations) {\n permission.setOperations(stringToUint8Array(operations));\n }\n if (keys) {\n permission.setKeysList(\n keys.map((key) => {\n const keyBuilder = new Key();\n keyBuilder.setAddress(fromHexString(key.address));\n keyBuilder.setWeight(key.weight);\n return keyBuilder;\n })\n );\n }\n return permission;\n };\n if (owner) {\n accountPermissionUpdateContract.setOwner(buildPermission(owner));\n }\n if (witness) {\n accountPermissionUpdateContract.setWitness(buildPermission(witness));\n }\n if (actives) {\n if (Array.isArray(actives)) {\n accountPermissionUpdateContract.setActivesList(actives.map((active) => buildPermission(active)));\n } else {\n accountPermissionUpdateContract.setActivesList([buildPermission(actives)]);\n }\n }\n return buildCommonTransaction(\n accountPermissionUpdateContract,\n Transaction.Contract.ContractType.ACCOUNTPERMISSIONUPDATECONTRACT,\n 'AccountPermissionUpdateContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateAssetContract = (value, options) => {\n const updateAssetContract = new UpdateAssetContract();\n const { owner_address, description, url, new_limit, new_public_limit } = value;\n updateAssetContract.setOwnerAddress(fromHexString(owner_address));\n if (description) {\n updateAssetContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));\n }\n if (url) {\n updateAssetContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n }\n if (new_limit) {\n updateAssetContract.setNewLimit(new_limit);\n }\n if (new_public_limit) {\n updateAssetContract.setNewPublicLimit(new_public_limit);\n }\n return buildCommonTransaction(\n updateAssetContract,\n Transaction.Contract.ContractType.UPDATEASSETCONTRACT,\n 'UpdateAssetContract',\n options.Permission_id\n );\n};\n\nconst contractJsonToProtobuf = (contract, value, options) => {\n switch (contract.type) {\n case 'TransferContract':\n return buildTransferContract(value, options);\n case 'TransferAssetContract':\n return buildTransferAssetContract(value, options);\n case 'ParticipateAssetIssueContract':\n return buildParticipateAssetIssueContract(value, options);\n case 'TriggerSmartContract':\n return buildTriggerSmartContract(value, options);\n case 'FreezeBalanceContract':\n return buildFreezeBalanceContract(value, options);\n case 'UnfreezeBalanceContract':\n return buildUnfreezeBalanceContract(value, options);\n case 'WithdrawBalanceContract':\n return buildWithdrawBalanceContract(value, options);\n case 'FreezeBalanceV2Contract':\n return buildFreezeBalanceV2Contract(value, options);\n case 'CancelAllUnfreezeV2Contract':\n return buildCancelFreezeBalanceV2Contract(value, options);\n case 'UnfreezeBalanceV2Contract':\n return buildUnfreezeBalanceV2Contract(value, options);\n case 'DelegateResourceContract':\n return buildDelegateResourceContract(value, options);\n case 'UnDelegateResourceContract':\n return buildUnDelegateResourceContract(value, options);\n case 'WithdrawExpireUnfreezeContract':\n return buildWithdrawExpireUnfreezeContract(value, options);\n case 'WitnessCreateContract':\n return buildCreateWitness(value, options);\n case 'VoteWitnessContract':\n return buildVoteWitnessAccount(value, options);\n case 'CreateSmartContract':\n return buildCreateSmartContract(value, options);\n case 'ClearABIContract':\n return buildClearABIContract(value, options);\n case 'UpdateBrokerageContract':\n return buildUpdateBrokerageContract(value, options);\n case 'AssetIssueContract':\n return buildAssetIssueContract(value, options);\n case 'AccountCreateContract':\n return buildAccountCreateContract(value, options);\n case 'AccountUpdateContract':\n return buildAccountUpdateContract(value, options);\n case 'SetAccountIdContract':\n return buildSetAccountIdContract(value, options);\n case 'ProposalCreateContract':\n return buildProposalCreateContract(value, options);\n case 'ProposalDeleteContract':\n return buildProposalDeleteContract(value, options);\n case 'ProposalApproveContract':\n return buildVoteProposalContract(value, options);\n case 'ExchangeCreateContract':\n return buildExchangeCreateContract(value, options);\n case 'ExchangeInjectContract':\n return buildExchangeInjectContract(value, options);\n case 'ExchangeWithdrawContract':\n return buildExchangeWithdrawContract(value, options);\n case 'ExchangeTransactionContract':\n return buildExchangeTransactionContract(value, options);\n case 'UpdateSettingContract':\n return buildUpdateSettingContract(value, options);\n case 'UpdateEnergyLimitContract':\n return buildUpdateEnergyLimitContract(value, options);\n case 'AccountPermissionUpdateContract':\n return buildAccountPermissionUpdateContract(value, options);\n case 'UpdateAssetContract':\n return buildUpdateAssetContract(value, options);\n }\n};\n\nconst txJsonToPb = (transaction) => {\n const rawData = transaction['raw_data'];\n const contractJson = rawData.contract[0];\n const data = contractJson.parameter.value;\n const options = { Permission_id: contractJson.Permission_id, visible: transaction.visible };\n const transactionObj = contractJsonToProtobuf(contractJson, data, options) as any;\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));\n if (rawData.data) {\n rawDataObj.setData(stringToUint8Array(rawData.data));\n }\n\n if (rawData.fee_limit) {\n rawDataObj.setFeeLimit(rawData.fee_limit);\n }\n\n if (rawData.expiration) {\n rawDataObj.setExpiration(rawData.expiration);\n }\n\n if (rawData.timestamp) {\n rawDataObj.setTimestamp(rawData.timestamp);\n }\n\n transactionObj.setRawData(rawDataObj);\n\n return transactionObj;\n};\n\nconst txJsonToPbWithArgs = (transaction, args: any = {}, options: any = {}) => {\n const rawData = transaction['raw_data'];\n const contractJson = rawData.contract[0];\n\n const transactionObj = contractJsonToProtobuf(contractJson, args, {\n Permission_id: args?.Permission_id,\n }) as any;\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));\n // for memo\n if (options.data) {\n rawDataObj.setData(stringToUint8Array(options.data.replace(/^0x/, '')));\n }\n\n if (options.fee_limit || args.fee_limit) {\n rawDataObj.setFeeLimit(options.fee_limit || args.fee_limit);\n }\n\n if (rawData.expiration) {\n rawDataObj.setExpiration(rawData.expiration);\n }\n\n if (rawData.timestamp) {\n rawDataObj.setTimestamp(rawData.timestamp);\n }\n\n transactionObj.setRawData(rawDataObj);\n\n return transactionObj;\n};\n\nconst compareTransaction = (transaction, transactionPb) => {\n const rawDataBytes = transactionPb.getRawData().serializeBinary();\n const rawDataHex = byteArray2hexStr(rawDataBytes);\n const txID = sha256(rawDataBytes);\n return (\n rawDataHex.toLowerCase() === transaction.raw_data_hex.toLowerCase() &&\n txID.replace(/^0x/, '').toLowerCase() === transaction.txID.replace(/^0x/, '').toLowerCase()\n );\n};\n\nconst txPbToRawDataHex = (pb) => {\n return byteArray2hexStr(pb.getRawData().serializeBinary());\n};\n\nconst txCheck = (transaction) => {\n const transactionPb = txJsonToPb(transaction);\n return compareTransaction(transaction, transactionPb);\n};\n\nconst txCheckWithArgs = (transaction, args, options) => {\n const transactionPb = txJsonToPbWithArgs(transaction, args, options);\n return compareTransaction(transaction, transactionPb);\n};\n\nconst txPbToTxID = (transactionPb) => {\n const rawDataBytes = transactionPb.getRawData().serializeBinary();\n const txID = sha256(rawDataBytes);\n return txID;\n};\n\nexport { txJsonToPb, txPbToTxID, txPbToRawDataHex, txJsonToPbWithArgs, txCheckWithArgs, txCheck };\n", "import { TronWeb } from '../../tronweb.js';\nimport { Transaction, TransactionWrapper } from '../../types/Transaction.js';\nimport { txCheckWithArgs, txJsonToPb, txPbToTxID, txPbToRawDataHex } from '../../utils/transaction.js';\nimport { keccak256 } from '../../utils/ethersUtils.js';\nimport { BlockWithoutDetail } from '../../types/APIResponse.js';\nimport HttpProvider from '../providers/HttpProvider.js';\nimport { ContractParamter, ContractType } from '../../types/Contract.js';\nimport { TriggerConstantContractOptions } from '../../types/TransactionBuilder.js';\n\nexport function fromUtf8(value: string) {\n return TronWeb.fromUtf8(value).replace(/^0x/, '');\n}\n\nexport function deepCopyJson(json: object): T {\n return JSON.parse(JSON.stringify(json));\n}\nexport function resultManager(transaction: TransactionWrapper, data: unknown, options: TriggerConstantContractOptions) {\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(TronWeb.toUtf8(transaction.result.message));\n }\n const authResult = txCheckWithArgs(transaction, data, options);\n if (authResult) {\n return transaction;\n }\n throw new Error('Invalid transaction');\n}\n\nexport function resultManagerTriggerSmartContract(\n transaction: TransactionWrapper,\n data: unknown,\n options: TriggerConstantContractOptions\n) {\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(TronWeb.toUtf8(transaction.result.message));\n }\n\n if (!(options._isConstant || options.estimateEnergy)) {\n const authResult = txCheckWithArgs(transaction.transaction, data, options);\n if (authResult) {\n return transaction;\n }\n throw new Error('Invalid transaction');\n }\n return transaction;\n}\n\nexport function genContractAddress(ownerAddress: string, txID: string) {\n return (\n '41' +\n keccak256(Buffer.from(txID + ownerAddress, 'hex'))\n .toString()\n .substring(2)\n .slice(24)\n );\n}\n\nexport function getHeaderInfo(node: HttpProvider) {\n return node.request('wallet/getblock', { detail: false }, 'post').then((data) => {\n return {\n ref_block_bytes: data.block_header.raw_data.number.toString(16).slice(-4).padStart(4, '0'),\n ref_block_hash: data.blockID.slice(16, 32),\n expiration: data.block_header.raw_data.timestamp + 60 * 1000,\n timestamp: data.block_header.raw_data.timestamp,\n };\n });\n}\n\nfunction checkBlockHeader(options = {} as Partial): boolean {\n if (\n typeof options['ref_block_bytes'] === 'undefined' &&\n typeof options['ref_block_hash'] === 'undefined' &&\n typeof options['expiration'] === 'undefined' &&\n typeof options['timestamp'] === 'undefined'\n ) {\n return false;\n }\n if (typeof options['ref_block_bytes'] !== 'string') {\n throw new Error('Invalid ref_block_bytes provided.');\n }\n if (typeof options['ref_block_hash'] !== 'string') {\n throw new Error('Invalid ref_block_hash provided.');\n }\n if (typeof options['expiration'] !== 'number') {\n throw new Error('Invalid expiration provided.');\n }\n if (typeof options['timestamp'] !== 'number') {\n throw new Error('Invalid timestamp provided.');\n }\n return true;\n}\n\nexport async function createTransaction(\n tronWeb: TronWeb,\n type: ContractType,\n value: T,\n Permission_id?: number,\n options = {} as Partial>\n): Promise> {\n const tx: Transaction = {\n visible: false,\n txID: '',\n raw_data_hex: '',\n raw_data: {\n contract: [\n {\n parameter: {\n value,\n type_url: `type.googleapis.com/protocol.${type}`,\n },\n type,\n },\n ],\n ...(checkBlockHeader(options) ? ({} as Transaction['raw_data']) : await getHeaderInfo(tronWeb.fullNode)),\n ...options,\n },\n };\n if (Permission_id) {\n tx.raw_data.contract[0].Permission_id = Permission_id;\n }\n const pb = txJsonToPb(tx);\n tx.txID = txPbToTxID(pb).replace(/^0x/, '');\n tx.raw_data_hex = txPbToRawDataHex(pb).toLowerCase();\n return tx;\n}\n\nexport function getTransactionOptions(options: { blockHeader?: Partial } = {}) {\n const ret = {} as Partial;\n if (checkBlockHeader(options.blockHeader)) {\n ret['ref_block_bytes'] = options.blockHeader!['ref_block_bytes'];\n ret['ref_block_hash'] = options.blockHeader!['ref_block_hash'];\n ret['expiration'] = options.blockHeader!['expiration'];\n ret['timestamp'] = options.blockHeader!['timestamp'];\n }\n return ret;\n}\n", "import { TronWeb } from '../../tronweb.js';\nimport { AbiCoder, keccak256 } from '../../utils/ethersUtils.js';\nimport { ADDRESS_PREFIX_REGEX, toHex } from '../../utils/address.js';\nimport { encodeParamsV2ByABI } from '../../utils/abi.js';\nimport { CreateSmartContractTransaction, SignedTransaction, Transaction, TransactionWrapper } from '../../types/Transaction.js';\nimport { Validator } from '../../paramValidator/index.js';\nimport { GetSignWeightResponse } from '../../types/APIResponse.js';\nimport { isArray, isInteger, isNotNullOrUndefined, isObject, isString } from '../../utils/validations.js';\nimport {\n AccountCreateContract,\n AccountPermissionUpdateContract,\n AccountUpdateContract,\n AssetIssueContract,\n CancelFreezeBalanceV2Contract,\n ClearABIContract,\n ContractParamter,\n ContractType,\n CreateSmartContract,\n DelegateResourceContract,\n DeployConstantContract,\n ExchangeCreateContract,\n ExchangeInjectContract,\n ExchangeTransactionContract,\n ExchangeWithdrawContract,\n FreezeBalanceContract,\n FreezeBalanceV2Contract,\n ParticipateAssetIssueContract,\n Permission,\n ProposalCreateContract,\n ProposalDeleteContract,\n SetAccountIdContract,\n TransferAssetContract,\n TransferContract,\n TriggerSmartContract,\n UnDelegateResourceContract,\n UnfreezeBalanceContract,\n UnfreezeBalanceV2Contract,\n UpdateAssetContract,\n UpdateBrokerageContract,\n UpdateEnergyLimitContract,\n UpdateSettingContract,\n VoteProposalContract,\n VoteWitnessContract,\n WithdrawBalanceContract,\n WithdrawExpireUnfreezeContract,\n WitnessCreateContract,\n} from '../../types/Contract.js';\nimport {\n createTransaction,\n deepCopyJson,\n fromUtf8,\n genContractAddress,\n resultManager,\n resultManagerTriggerSmartContract,\n getTransactionOptions,\n} from './helper.js';\nimport {\n AlterTransactionOptions,\n CreateSmartContractOptions,\n CreateTokenOptions,\n DeployConstantContractOptions,\n TriggerConstantContractOptions,\n TransactionCommonOptions,\n Resource,\n ContractFunctionParameter,\n TriggerSmartContractOptions,\n TxLocal,\n UpdateTokenOptions,\n VoteInfo,\n} from '../../types/TransactionBuilder.js';\nimport { Address } from '../../types/Trx.js';\nimport { ConstructorFragment, ContractAbiInterface, FunctionFragment } from '../../types/ABI.js';\n\ninterface IArgs extends TriggerSmartContract {\n function_selector?: string;\n parameter?: string;\n fee_limit?: number;\n Permission_id?: number;\n}\nexport class TransactionBuilder {\n private tronWeb: TronWeb;\n private validator: Validator;\n constructor(tronWeb?: TronWeb) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) {\n throw new Error('Expected instance of TronWeb');\n }\n this.tronWeb = tronWeb;\n this.validator = new Validator();\n }\n\n async sendTrx(\n to: string,\n amount = 0,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n // accept amounts passed as strings\n amount = parseInt(amount);\n\n this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to,\n },\n {\n name: 'origin',\n type: 'address',\n value: from as string,\n },\n {\n names: ['recipient', 'origin'],\n type: 'notEqual',\n msg: 'Cannot transfer TRX to the same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n ]);\n\n const data: TransferContract = {\n to_address: toHex(to),\n owner_address: toHex(from as string),\n amount: amount,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.TransferContract, data, options?.permissionId, transactionOptions);\n }\n\n async sendToken(\n to: string,\n amount = 0,\n tokenId: string,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n amount = parseInt(amount);\n this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to,\n },\n {\n name: 'origin',\n type: 'address',\n value: from as string,\n },\n {\n names: ['recipient', 'origin'],\n type: 'notEqual',\n msg: 'Cannot transfer tokens to the same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'token ID',\n type: 'tokenId',\n value: tokenId,\n },\n ]);\n\n const data: TransferAssetContract = {\n to_address: toHex(to),\n owner_address: toHex(from as string),\n asset_name: fromUtf8(tokenId as string),\n amount,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.TransferAssetContract, data, options?.permissionId, transactionOptions);\n }\n\n async purchaseToken(\n issuerAddress: string,\n tokenId: string,\n amount = 0,\n buyer: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'buyer',\n type: 'address',\n value: buyer as string,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n names: ['buyer', 'issuer'],\n type: 'notEqual',\n msg: 'Cannot purchase tokens from same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'token ID',\n type: 'tokenId',\n value: tokenId,\n },\n ]);\n\n const data: ParticipateAssetIssueContract = {\n to_address: toHex(issuerAddress),\n owner_address: toHex(buyer as string),\n asset_name: fromUtf8(tokenId as string),\n amount: parseInt(amount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ParticipateAssetIssueContract, data, options?.permissionId, transactionOptions);\n }\n\n async freezeBalance(\n amount = 0,\n duration = 3,\n resource: Resource = 'BANDWIDTH',\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n receiverAddress?: string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress as string,\n optional: true,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'duration',\n type: 'integer',\n gte: 3,\n value: duration,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: FreezeBalanceContract = {\n owner_address: toHex(ownerAddress as string),\n frozen_balance: parseInt(amount),\n frozen_duration: parseInt(String(duration)),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n if (isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress as string) !== toHex(ownerAddress as string)) {\n data.receiver_address = toHex(receiverAddress as string);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.FreezeBalanceContract, data, options?.permissionId, transactionOptions);\n }\n\n async unfreezeBalance(\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n receiverAddress?: string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress as string,\n optional: true,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: Partial = {\n owner_address: toHex(address as string),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n if (isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress as string) !== toHex(address as string)) {\n data.receiver_address = toHex(receiverAddress as string);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UnfreezeBalanceContract, data as UnfreezeBalanceContract, options?.permissionId, transactionOptions);\n }\n\n async freezeBalanceV2(\n amount = 0,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: FreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n frozen_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.FreezeBalanceV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async unfreezeBalanceV2(\n amount = 0,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: UnfreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n unfreeze_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UnfreezeBalanceV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async cancelUnfreezeBalanceV2(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n const data: CancelFreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.CancelAllUnfreezeV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async delegateResource(\n amount = 0,\n receiverAddress: string,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n lock = false,\n lockPeriod?: number,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'lock',\n type: 'boolean',\n value: lock as boolean,\n },\n {\n name: 'lock period',\n type: 'integer',\n gte: 0,\n value: lockPeriod as number,\n optional: true,\n },\n ]);\n if (toHex(receiverAddress) === toHex(address as string)) {\n throw new Error('Receiver address must not be the same as owner address');\n }\n\n const data: DelegateResourceContract = {\n owner_address: toHex(address as string),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n if (lock) {\n data.lock = lock as boolean;\n if (isNotNullOrUndefined(lockPeriod)) {\n data.lock_period = lockPeriod as number;\n }\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.DelegateResourceContract, data, options?.permissionId, transactionOptions);\n }\n\n async undelegateResource(\n amount = 0,\n receiverAddress: string,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n\n if (toHex(receiverAddress) === toHex(address as string)) {\n throw new Error('Receiver address must not be the same as owner address');\n }\n\n const data: UnDelegateResourceContract = {\n owner_address: toHex(address as string),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UnDelegateResourceContract, data, options?.permissionId, transactionOptions);\n }\n\n async withdrawExpireUnfreeze(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data: WithdrawExpireUnfreezeContract = {\n owner_address: toHex(address),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.WithdrawExpireUnfreezeContract, data, options?.permissionId, transactionOptions);\n }\n\n async withdrawBlockRewards(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: WithdrawBalanceContract = {\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.WithdrawBalanceContract, data, options?.permissionId, transactionOptions);\n }\n\n async applyForSR(\n address: string = this.tronWeb.defaultAddress.hex as string,\n url = '',\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n {\n name: 'url',\n type: 'url',\n value: url as string,\n msg: 'Invalid url provided',\n },\n {\n name: 'url',\n type: 'string',\n value: url as string,\n lte: 256,\n msg: 'Invalid url provided',\n },\n ]);\n\n const data: WitnessCreateContract = {\n owner_address: toHex(address as string),\n url: fromUtf8(url as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.WitnessCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n async vote(\n votes: VoteInfo = {},\n voterAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress as string,\n },\n {\n name: 'votes',\n type: 'notEmptyObject',\n value: votes as VoteInfo,\n },\n ]);\n\n const entries = Object.entries(votes);\n for (const [srAddress, voteCount] of entries) {\n this.validator.notValid([\n {\n name: 'SR',\n type: 'address',\n value: srAddress,\n },\n {\n name: 'vote count',\n type: 'integer',\n gt: 0,\n value: voteCount,\n msg: 'Invalid vote count provided for SR: ' + srAddress,\n },\n ]);\n }\n const voteList = entries.map(([srAddress, voteCount]) => {\n return {\n vote_address: toHex(srAddress),\n vote_count: parseInt(voteCount),\n };\n });\n\n const data: VoteWitnessContract = {\n owner_address: toHex(voterAddress as string),\n votes: voteList,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.VoteWitnessContract, data, options?.permissionId, transactionOptions);\n }\n\n async createSmartContract(\n options: CreateSmartContractOptions = {} as CreateSmartContractOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise {\n const feeLimit = options.feeLimit || this.tronWeb.feeLimit;\n let userFeePercentage = options.userFeePercentage;\n if (typeof userFeePercentage !== 'number' && !userFeePercentage) {\n userFeePercentage = 100;\n }\n const originEnergyLimit = options.originEnergyLimit || 10_000_000;\n const callValue = options.callValue || 0;\n const tokenValue = options.tokenValue;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const tokenId = options.tokenId || options.token_id;\n\n let { abi } = options;\n const { parameters = [] } = options;\n let parameter = '';\n const { bytecode = false, name = '' } = options;\n if (abi && isString(abi)) {\n try {\n abi = JSON.parse(abi);\n } catch {\n throw new Error('Invalid options.abi provided');\n }\n }\n\n const newAbi = abi as { entrys: ContractAbiInterface } | ContractAbiInterface;\n let entries: ContractAbiInterface | null = newAbi as ContractAbiInterface;\n if ((newAbi as { entrys: ContractAbiInterface }).entrys) {\n entries = (newAbi as { entrys: ContractAbiInterface }).entrys;\n }\n\n if (!isArray(entries)) throw new Error('Invalid options.abi provided');\n\n const payable = entries.some((func) => {\n return func.type === 'constructor' && 'payable' === (func as ConstructorFragment).stateMutability.toLowerCase();\n });\n\n this.validator.notValid([\n {\n name: 'bytecode',\n type: 'hex',\n value: bytecode,\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'userFeePercentage',\n type: 'integer',\n value: userFeePercentage,\n gte: 0,\n lte: 100,\n },\n {\n name: 'originEnergyLimit',\n type: 'integer',\n value: originEnergyLimit,\n gte: 0,\n lte: 10_000_000,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (!payable && (callValue > 0 || tokenValue > 0))\n throw new Error('When contract is not payable, options.callValue and options.tokenValue must be 0');\n\n const { rawParameter, funcABIV2, parametersV2 } = options as any;\n if (rawParameter && isString(rawParameter)) {\n parameter = rawParameter.replace(/^(0x)/, '');\n } else if (funcABIV2) {\n parameter = encodeParamsV2ByABI(funcABIV2, parametersV2).replace(/^(0x)/, '');\n } else {\n let constructorParams: any = entries.find((it: any) => {\n return it.type === 'constructor';\n });\n\n if (typeof constructorParams !== 'undefined' && constructorParams) {\n const abiCoder = new AbiCoder();\n const types = [];\n const values = [];\n constructorParams = constructorParams.inputs;\n\n if (parameters.length != constructorParams.length)\n throw new Error(`constructor needs ${constructorParams.length} but ${parameters.length} provided`);\n\n for (let i = 0; i < parameters.length; i++) {\n let type = constructorParams[i].type;\n let value: any = parameters[i];\n\n if (!type || !isString(type) || !type.length) throw new Error('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value: unknown): any => {\n if (isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value as string).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type === 'address') value = replaceAddressPrefix(value);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)?.[0] === 'address[') value = replaceAddressPrefix(value);\n else if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n\n types.push(type);\n values.push(value);\n }\n\n try {\n parameter = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } catch (ex) {\n throw new Error(ex as string);\n }\n } else {\n parameter = '';\n }\n }\n\n const args: any = {\n owner_address: toHex(issuerAddress),\n fee_limit: parseInt(feeLimit),\n call_value: parseInt(callValue),\n consume_user_resource_percent: userFeePercentage,\n origin_energy_limit: originEnergyLimit,\n abi: JSON.stringify(abi),\n bytecode,\n parameter,\n name,\n };\n\n // tokenValue and tokenId can cause errors if provided when the trx10 proposal has not been approved yet. So we set them only if they are passed to the method.\n if (isNotNullOrUndefined(tokenValue)) {\n args.call_token_value = parseInt(tokenValue as number);\n }\n if (isNotNullOrUndefined(tokenId)) {\n args.token_id = parseInt(tokenId);\n }\n\n const contract: CreateSmartContract = {} as CreateSmartContract;\n contract.owner_address = args.owner_address;\n if (isNotNullOrUndefined(args.call_token_value)) {\n contract.call_token_value = args.call_token_value;\n }\n if (isNotNullOrUndefined(args.token_id)) {\n contract.token_id = args.token_id;\n }\n const new_contract = (contract.new_contract = {} as CreateSmartContract['new_contract']);\n\n if (args.abi) {\n new_contract.abi = {\n entrys: JSON.parse(args.abi),\n };\n } else {\n new_contract.abi = {};\n }\n if (args.call_value) {\n new_contract.call_value = args.call_value;\n }\n new_contract.consume_user_resource_percent = args.consume_user_resource_percent;\n new_contract.origin_energy_limit = args.origin_energy_limit;\n new_contract.origin_address = args.origin_address ?? args.owner_address;\n if (args.bytecode + args.parameter) {\n new_contract.bytecode = (args.bytecode + args.parameter).replace(/^0x/, '');\n }\n if (isNotNullOrUndefined(args.name)) {\n new_contract.name = args.name;\n }\n const transactionOptions = getTransactionOptions(options);\n const tx = (await createTransaction(this.tronWeb, ContractType.CreateSmartContract, contract, options?.permissionId, {\n ...transactionOptions,\n fee_limit: args.fee_limit,\n })) as CreateSmartContractTransaction;\n tx.contract_address = genContractAddress(args.owner_address, tx.txID);\n return tx;\n }\n\n async triggerSmartContract(\n contractAddress: string,\n functionSelector: string,\n options?: TriggerSmartContractOptions,\n parameters?: ContractFunctionParameter[],\n issuerAddress?: string\n ): Promise {\n const params: Parameters = [\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n ];\n if (typeof params[2] !== 'object') {\n params[2] = {\n feeLimit: params[2],\n callValue: params[3] as unknown as number,\n };\n params.splice(3, 1);\n }\n if (params[2]?.txLocal) {\n return this._triggerSmartContractLocal(...params);\n }\n return this._triggerSmartContract(...params);\n }\n\n async triggerConstantContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise {\n options._isConstant = true;\n return this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n }\n\n async triggerConfirmedConstantContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise {\n options._isConstant = true;\n options.confirmed = true;\n return this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n }\n\n async estimateEnergy(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<{ result: { result: boolean }; energy_required: number }> {\n options.estimateEnergy = true;\n const result = await this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n return result as { result: { result: boolean }; energy_required: number };\n }\n\n async deployConstantContract(options: DeployConstantContractOptions = { input: '', ownerAddress: '' }) {\n const { input, ownerAddress, tokenId, tokenValue, callValue = 0 } = options;\n\n this.validator.notValid([\n {\n name: 'input',\n type: 'not-empty-string',\n value: input,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n const args: DeployConstantContract = {\n data: input,\n owner_address: toHex(ownerAddress),\n call_value: callValue,\n };\n\n if (tokenId) {\n args.token_id = tokenId;\n }\n if (tokenValue) {\n args.call_token_value = tokenValue;\n }\n\n const pathInfo = `wallet${options.confirmed ? 'solidity' : ''}/estimateenergy`;\n const transaction: TransactionWrapper = await this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n pathInfo,\n args,\n 'post'\n );\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(this.tronWeb.toUtf8(transaction.result.message));\n }\n return transaction as { result: { result: boolean }; energy_required: number };\n }\n\n _getTriggerSmartContractArgs(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions,\n parameters: ContractFunctionParameter[],\n issuerAddress: string,\n tokenValue?: number,\n tokenId?: string,\n callValue?: number,\n feeLimit?: number\n ) {\n const args: IArgs = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(issuerAddress),\n };\n\n if (functionSelector && isString(functionSelector)) {\n functionSelector = functionSelector.replace(/\\s*/g, '');\n let parameterStr;\n if (parameters.length) {\n const abiCoder = new AbiCoder();\n let types = [];\n const values = [];\n\n for (let i = 0; i < parameters.length; i++) {\n let { value } = parameters[i];\n const { type } = parameters[i];\n\n if (!type || !isString(type) || !type.length) throw new Error('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value: unknown): any => {\n if (isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value as string).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type === 'address') value = replaceAddressPrefix(value);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)?.[0] === 'address[') value = replaceAddressPrefix(value);\n\n types.push(type);\n values.push(value);\n }\n\n try {\n // workaround for unsupported trcToken type\n types = types.map((type) => {\n if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n return type;\n });\n\n parameterStr = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } catch (ex) {\n throw new Error(ex as string);\n }\n } else parameterStr = '';\n\n // work for abiv2 if passed the function abi in options\n if (options.funcABIV2) {\n parameterStr = encodeParamsV2ByABI(\n options.funcABIV2 as FunctionFragment,\n options.parametersV2 as unknown[]\n ).replace(/^(0x)/, '');\n }\n\n if (options.shieldedParameter && isString(options.shieldedParameter)) {\n parameterStr = options.shieldedParameter.replace(/^(0x)/, '');\n }\n\n if (options.rawParameter && isString(options.rawParameter)) {\n parameterStr = options.rawParameter.replace(/^(0x)/, '');\n }\n\n args.function_selector = functionSelector;\n args.parameter = parameterStr;\n } else if (options.input) {\n args.data = options.input;\n }\n\n args.call_value = parseInt(callValue as number);\n if (isNotNullOrUndefined(tokenValue)) args.call_token_value = parseInt(tokenValue as number);\n if (isNotNullOrUndefined(tokenId)) args.token_id = parseInt(tokenId as string);\n\n if (!(options._isConstant || options.estimateEnergy)) {\n args.fee_limit = parseInt(feeLimit as number);\n }\n\n if (options.permissionId) {\n args.Permission_id = options.permissionId;\n }\n\n return args;\n }\n\n async _triggerSmartContractLocal(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress = this.tronWeb.defaultAddress.hex as string\n ) {\n const { tokenValue, tokenId, callValue, feeLimit } = Object.assign(\n {\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit,\n },\n options\n );\n\n this.validator.notValid([\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n optional: true,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n const args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n\n if (args.function_selector) {\n args.data = keccak256(Buffer.from(args.function_selector, 'utf-8')).toString().substring(2, 10) + args.parameter;\n }\n const value: TriggerSmartContract = {\n data: args.data,\n owner_address: args.owner_address,\n contract_address: args.contract_address,\n };\n if (args.call_value) {\n value.call_value = args.call_value;\n }\n if (args.call_token_value) {\n value.call_token_value = args.call_token_value;\n }\n if (args.token_id) {\n value.token_id = args.token_id;\n }\n const transactionOptions = getTransactionOptions(options);\n const transaction = await createTransaction(\n this.tronWeb,\n ContractType.TriggerSmartContract,\n value,\n options.permissionId,\n {\n ...transactionOptions,\n fee_limit: args.fee_limit,\n }\n );\n return {\n result: {\n result: true,\n },\n transaction,\n };\n }\n\n async _triggerSmartContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ) {\n const { tokenValue, tokenId, callValue, feeLimit } = Object.assign(\n {\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit,\n },\n options\n );\n this.validator.notValid([\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n optional: true,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n const args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n\n let pathInfo = 'triggersmartcontract';\n if (options._isConstant) {\n pathInfo = 'triggerconstantcontract';\n } else if (options.estimateEnergy) {\n pathInfo = 'estimateenergy';\n }\n\n pathInfo = `wallet${options.confirmed ? 'solidity' : ''}/${pathInfo}`;\n const transaction: TransactionWrapper = await this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n pathInfo,\n args,\n 'post'\n );\n return resultManagerTriggerSmartContract(transaction, args, options);\n }\n\n async clearABI(\n contractAddress: string,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n if (!TronWeb.isAddress(contractAddress)) throw new Error('Invalid contract address provided');\n if (!TronWeb.isAddress(ownerAddress)) throw new Error('Invalid owner address provided');\n const data: ClearABIContract = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(ownerAddress as string),\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (this.tronWeb.trx.cache.contracts[contractAddress]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.tronWeb.trx.cache.contracts[contractAddress];\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ClearABIContract, data, options?.permissionId, transactionOptions);\n }\n async updateBrokerage(\n brokerage: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n if (!isNotNullOrUndefined(brokerage)) throw new Error('Invalid brokerage provided');\n\n if (!isInteger(brokerage) || brokerage < 0 || brokerage > 100)\n throw new Error('Brokerage must be an integer between 0 and 100');\n\n if (!TronWeb.isAddress(ownerAddress)) throw new Error('Invalid owner address provided');\n\n const data: UpdateBrokerageContract = {\n brokerage: parseInt(brokerage),\n owner_address: toHex(ownerAddress as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UpdateBrokerageContract, data, options?.permissionId, transactionOptions);\n }\n\n async createToken(\n options: CreateTokenOptions = {} as CreateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise> {\n const {\n name = false,\n abbreviation = false,\n description = '',\n url = false,\n totalSupply = 0,\n trxRatio = 1, // How much TRX will `tokenRatio` cost\n tokenRatio = 1, // How many tokens will `trxRatio` afford\n saleStart = Date.now(),\n saleEnd = false,\n freeBandwidth = 0, // The creator's \"donated\" bandwidth for use by token holders\n freeBandwidthLimit = 0, // Out of `totalFreeBandwidth`, the amount each token holder get\n frozenAmount = 0,\n frozenDuration = 0,\n // for now there is no default for the following values\n voteScore,\n precision,\n } = options;\n\n this.validator.notValid([\n {\n name: 'Supply amount',\n type: 'positive-integer',\n value: totalSupply,\n },\n {\n name: 'TRX ratio',\n type: 'positive-integer',\n value: trxRatio,\n },\n {\n name: 'Token ratio',\n type: 'positive-integer',\n value: tokenRatio,\n },\n {\n name: 'token abbreviation',\n type: 'string',\n value: abbreviation,\n lte: 32,\n gt: 0,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: name,\n },\n {\n name: 'token description',\n type: 'string',\n value: description,\n lte: 200,\n },\n {\n name: 'token url',\n type: 'url',\n value: url,\n },\n {\n name: 'token url',\n type: 'string',\n value: url,\n lte: 256,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n name: 'sale start timestamp',\n type: 'integer',\n value: saleStart,\n gte: Date.now(),\n },\n {\n name: 'sale end timestamp',\n type: 'integer',\n value: saleEnd,\n gt: saleStart,\n },\n {\n name: 'Frozen supply',\n type: 'integer',\n value: frozenAmount,\n gte: 0,\n },\n {\n name: 'Frozen duration',\n type: 'integer',\n value: frozenDuration,\n gte: 0,\n },\n ]);\n\n if (isNotNullOrUndefined(voteScore) && (!isInteger(voteScore) || voteScore <= 0))\n throw new Error('voteScore must be a positive integer greater than 0');\n\n if (isNotNullOrUndefined(precision) && (!isInteger(precision) || precision < 0 || precision > 6))\n throw new Error('precision must be a positive integer >= 0 and <= 6');\n\n const data: Partial = {\n owner_address: toHex(issuerAddress),\n name: fromUtf8(name as string),\n abbr: fromUtf8(abbreviation as string),\n description: fromUtf8(description),\n url: fromUtf8(url as string),\n total_supply: parseInt(totalSupply),\n trx_num: parseInt(trxRatio),\n num: parseInt(tokenRatio),\n start_time: parseInt(saleStart),\n end_time: parseInt(saleEnd as number),\n frozen_supply: [\n {\n frozen_amount: parseInt(frozenAmount),\n frozen_days: parseInt(frozenDuration),\n },\n ],\n };\n (['name', 'abbr', 'description', 'url'] as (keyof typeof data)[]).forEach((key) => {\n if (!data[key]) {\n delete data[key];\n }\n });\n if (!(parseInt(frozenAmount) > 0)) {\n delete data.frozen_supply;\n }\n if (freeBandwidth && !isNaN(parseInt(freeBandwidth)) && parseInt(freeBandwidth) >= 0) {\n data.free_asset_net_limit = parseInt(freeBandwidth);\n }\n if (freeBandwidthLimit && !isNaN(parseInt(freeBandwidthLimit)) && parseInt(freeBandwidthLimit) >= 0) {\n data.public_free_asset_net_limit = parseInt(freeBandwidthLimit);\n }\n if (precision && !isNaN(parseInt(precision))) {\n data.precision = parseInt(precision);\n }\n if (voteScore && !isNaN(parseInt(voteScore))) {\n data.vote_score = parseInt(voteScore);\n }\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(\n this.tronWeb,\n ContractType.AssetIssueContract,\n data as AssetIssueContract,\n options?.permissionId,\n transactionOptions,\n );\n }\n\n async createAccount(\n accountAddress: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'account',\n type: 'address',\n value: accountAddress,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n const data: AccountCreateContract = {\n owner_address: toHex(address as string),\n account_address: toHex(accountAddress),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.AccountCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n async updateAccount(\n accountName: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'Name',\n type: 'string',\n lte: 200,\n gt: 0,\n value: accountName,\n msg: 'Invalid accountName',\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: AccountUpdateContract = {\n account_name: fromUtf8(accountName as string),\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.AccountUpdateContract, data, options?.permissionId, transactionOptions);\n }\n\n async setAccountId(\n accountId: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n if (accountId && isString(accountId) && accountId.startsWith('0x')) {\n accountId = accountId.slice(2);\n }\n\n this.validator.notValid([\n {\n name: 'accountId',\n type: 'hex',\n value: accountId,\n },\n {\n name: 'accountId',\n type: 'string',\n lte: 32,\n gte: 8,\n value: accountId,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: SetAccountIdContract = {\n account_id: accountId,\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.SetAccountIdContract, data, options?.permissionId, transactionOptions);\n }\n\n async updateToken(\n options: UpdateTokenOptions = {} as UpdateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise> {\n const {\n description = '',\n url = false,\n freeBandwidth = 0, // The creator's \"donated\" bandwidth for use by token holders\n freeBandwidthLimit = 0, // Out of `totalFreeBandwidth`, the amount each token holder get\n } = options;\n\n this.validator.notValid([\n {\n name: 'token description',\n type: 'string',\n value: description,\n lte: 200,\n },\n {\n name: 'token url',\n type: 'url',\n value: url,\n },\n {\n name: 'token url',\n type: 'string',\n value: url,\n lte: 256,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n ]);\n\n const data: UpdateAssetContract = {\n owner_address: toHex(issuerAddress as string),\n description: fromUtf8(description),\n url: fromUtf8(url as string),\n };\n\n if (freeBandwidth && !isNaN(parseInt(freeBandwidth)) && parseInt(freeBandwidth) >= 0) {\n data.new_limit = parseInt(freeBandwidth);\n }\n if (freeBandwidthLimit && !isNaN(parseInt(freeBandwidthLimit)) && parseInt(freeBandwidthLimit) >= 0) {\n data.new_public_limit = parseInt(freeBandwidthLimit);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UpdateAssetContract, data, options?.permissionId, transactionOptions);\n }\n\n async sendAsset(\n to: string,\n amount = 0,\n tokenId: string,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ) {\n return this.sendToken(to, amount, tokenId, from as string, options);\n }\n\n async purchaseAsset(\n issuerAddress: string,\n tokenId: string,\n amount = 0,\n buyer: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ) {\n return this.purchaseToken(issuerAddress, tokenId, amount, buyer as string, options);\n }\n\n async createAsset(options: CreateTokenOptions, issuerAddress: string) {\n return this.createToken(options, issuerAddress);\n }\n\n async updateAsset(\n options: UpdateTokenOptions = {} as UpdateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ) {\n return this.updateToken(options, issuerAddress);\n }\n\n /**\n * Creates a proposal to modify the network.\n * Can only be created by a current Super Representative.\n */\n async createProposal(\n parameters: Record | Record[],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n ]);\n\n const invalid = 'Invalid proposal parameters provided';\n if (!parameters) throw new Error(invalid);\n\n const newParams = isArray(parameters) ? parameters : [parameters];\n for (const parameter of newParams) {\n if (!isObject(parameter)) throw new Error(invalid);\n }\n\n const data: ProposalCreateContract = {\n owner_address: toHex(issuerAddress as string),\n parameters: newParams,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ProposalCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Deletes a network modification proposal that the owner issued.\n * Only current Super Representative can vote on a proposal.\n */\n async deleteProposal(\n proposalID: number,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n {\n name: 'proposalID',\n type: 'integer',\n value: proposalID,\n gte: 0,\n },\n ]);\n\n const data: ProposalDeleteContract = {\n owner_address: toHex(issuerAddress as string),\n proposal_id: parseInt(proposalID as number),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ProposalDeleteContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Adds a vote to an issued network modification proposal.\n * Only current Super Representative can vote on a proposal.\n */\n async voteProposal(\n proposalID: number,\n isApproval = false,\n voterAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress as string,\n },\n {\n name: 'proposalID',\n type: 'integer',\n value: proposalID,\n gte: 0,\n },\n {\n name: 'has approval',\n type: 'boolean',\n value: isApproval,\n },\n ]);\n\n const data: VoteProposalContract = {\n owner_address: toHex(voterAddress as string),\n proposal_id: parseInt(proposalID),\n is_add_approval: isApproval,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ProposalApproveContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Create an exchange between a token and TRX.\n * Token Name should be a CASE SENSITIVE string.\n * PLEASE VERIFY THIS ON TRONSCAN.\n */\n async createTRXExchange(\n tokenName: string,\n tokenBalance: number,\n trxBalance: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token balance',\n type: 'positive-integer',\n value: tokenBalance,\n },\n {\n name: 'trx balance',\n type: 'positive-integer',\n value: trxBalance,\n },\n ]);\n\n const data: ExchangeCreateContract = {\n owner_address: toHex(ownerAddress as string),\n first_token_id: fromUtf8(tokenName),\n first_token_balance: tokenBalance,\n second_token_id: '5f', // Constant for TRX.\n second_token_balance: trxBalance,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Create an exchange between a token and another token.\n * DO NOT USE THIS FOR TRX.\n * Token Names should be a CASE SENSITIVE string.\n * PLEASE VERIFY THIS ON TRONSCAN.\n */\n async createTokenExchange(\n firstTokenName: string,\n firstTokenBalance: number,\n secondTokenName: string,\n secondTokenBalance: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'first token name',\n type: 'not-empty-string',\n value: firstTokenName,\n },\n {\n name: 'second token name',\n type: 'not-empty-string',\n value: secondTokenName,\n },\n {\n name: 'first token balance',\n type: 'positive-integer',\n value: firstTokenBalance,\n },\n {\n name: 'second token balance',\n type: 'positive-integer',\n value: secondTokenBalance,\n },\n ]);\n\n const data: ExchangeCreateContract = {\n owner_address: toHex(ownerAddress as string),\n first_token_id: fromUtf8(firstTokenName),\n first_token_balance: firstTokenBalance,\n second_token_id: fromUtf8(secondTokenName),\n second_token_balance: secondTokenBalance,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Adds tokens into a bancor style exchange.\n * Will add both tokens at market rate.\n * Use \"_\" for the constant value for TRX.\n */\n async injectExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmount: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token amount',\n type: 'integer',\n value: tokenAmount,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeInjectContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeInjectContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Withdraws tokens from a bancor style exchange.\n * Will withdraw at market rate both tokens.\n * Use \"_\" for the constant value for TRX.\n */\n async withdrawExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmount: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token amount',\n type: 'integer',\n value: tokenAmount,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeWithdrawContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeWithdrawContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Trade tokens on a bancor style exchange.\n * Expected value is a validation and used to cap the total amt of token 2 spent.\n * Use \"_\" for the constant value for TRX.\n */\n async tradeExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmountSold: number,\n tokenAmountExpected: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'tokenAmountSold',\n type: 'integer',\n value: tokenAmountSold,\n gte: 1,\n },\n {\n name: 'tokenAmountExpected',\n type: 'integer',\n value: tokenAmountExpected,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeTransactionContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: TronWeb.fromAscii(tokenName).replace(/^0x/, ''),\n quant: parseInt(tokenAmountSold),\n expected: parseInt(tokenAmountExpected),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeTransactionContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Update userFeePercentage.\n */\n async updateSetting(\n contractAddress: string,\n userFeePercentage: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'userFeePercentage',\n type: 'integer',\n value: userFeePercentage,\n gte: 0,\n lte: 100,\n },\n ]);\n\n const data: UpdateSettingContract = {\n owner_address: toHex(ownerAddress as string),\n contract_address: toHex(contractAddress),\n consume_user_resource_percent: userFeePercentage,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UpdateSettingContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Update energy limit.\n */\n async updateEnergyLimit(\n contractAddress: string,\n originEnergyLimit = 0,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'originEnergyLimit',\n type: 'integer',\n value: originEnergyLimit,\n gte: 0,\n lte: 10_000_000,\n },\n ]);\n\n const data: UpdateEnergyLimitContract = {\n owner_address: toHex(ownerAddress as string),\n contract_address: toHex(contractAddress),\n origin_energy_limit: originEnergyLimit,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.UpdateEnergyLimitContract, data, options?.permissionId, transactionOptions);\n }\n\n private checkPermissions(permissions: Permission, type: number) {\n if (permissions) {\n if (\n permissions.type !== type ||\n !permissions.permission_name ||\n !isString(permissions.permission_name) ||\n !isInteger(permissions.threshold) ||\n permissions.threshold < 1 ||\n !permissions.keys\n ) {\n return false;\n }\n for (const key of permissions.keys) {\n if (\n !TronWeb.isAddress(key.address) ||\n !isInteger(key.weight) ||\n key.weight > permissions.threshold ||\n key.weight < 1 ||\n (type === 2 && !permissions.operations)\n ) {\n return false;\n }\n }\n }\n return true;\n }\n\n async updateAccountPermissions(\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n ownerPermission: Permission,\n witnessPermission?: Permission,\n activesPermissions?: Permission | Permission[],\n options: TransactionCommonOptions = {}\n ): Promise> {\n if (!TronWeb.isAddress(ownerAddress as Address)) throw new Error('Invalid ownerAddress provided');\n\n if (!this.checkPermissions(ownerPermission, 0)) {\n throw new Error('Invalid ownerPermissions provided');\n }\n\n if (!this.checkPermissions(witnessPermission!, 1)) {\n throw new Error('Invalid witnessPermissions provided');\n }\n\n if (!Array.isArray(activesPermissions)) {\n activesPermissions = [activesPermissions!];\n }\n\n for (const activesPermission of activesPermissions) {\n if (!this.checkPermissions(activesPermission, 2)) {\n throw new Error('Invalid activesPermissions provided');\n }\n }\n\n const data: AccountPermissionUpdateContract = {\n owner_address: toHex(ownerAddress as string),\n };\n if (ownerPermission) {\n const _ownerPermissions = deepCopyJson>(ownerPermission);\n // for compatible with old way of building transaction from chain which type prop is omitted\n if ('type' in _ownerPermissions) {\n delete _ownerPermissions.type;\n }\n _ownerPermissions.keys = _ownerPermissions.keys?.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n data.owner = _ownerPermissions as Permission;\n }\n if (witnessPermission) {\n const _witnessPermissions = deepCopyJson(witnessPermission);\n // for compatible with old way of building transaction from chain which type prop is Witness\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _witnessPermissions.type = 'Witness';\n _witnessPermissions.keys = _witnessPermissions.keys.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n data.witness = _witnessPermissions;\n }\n if (activesPermissions) {\n const _activesPermissions = deepCopyJson(activesPermissions);\n // for compatible with old way of building transaction from chain which type prop is Active\n _activesPermissions.forEach((activePermissions: Permission) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n activePermissions.type = 'Active';\n });\n _activesPermissions.forEach((_activesPermission) => {\n _activesPermission.keys = _activesPermission.keys.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n });\n data.actives = _activesPermissions as Permission[];\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.AccountPermissionUpdateContract, data, options?.permissionId, transactionOptions);\n }\n\n async newTxID | Transaction)>(transaction: U, options: { txLocal?: boolean } = {}): Promise {\n if (options?.txLocal) {\n const contract = transaction.raw_data.contract[0];\n try {\n const tx = await createTransaction(\n this.tronWeb,\n contract.type,\n contract.parameter.value,\n contract.Permission_id,\n {\n fee_limit: transaction.raw_data.fee_limit,\n data: transaction.raw_data.data,\n ref_block_bytes: transaction.raw_data.ref_block_bytes,\n ref_block_hash: transaction.raw_data.ref_block_hash,\n expiration: transaction.raw_data.expiration,\n timestamp: transaction.raw_data.timestamp,\n }\n );\n (tx as SignedTransaction).signature = (transaction as SignedTransaction).signature;\n tx.visible = transaction.visible;\n return tx as U;\n } catch (e) {\n throw new Error('Error generating a new transaction id.');\n }\n }\n try {\n const res: GetSignWeightResponse = await this.tronWeb.fullNode.request('wallet/getsignweight', transaction, 'post');\n if (typeof transaction.visible === 'boolean') {\n res.transaction.transaction.visible = transaction.visible;\n }\n return resultManager(\n res.transaction.transaction as unknown as TransactionWrapper,\n {\n ...transaction.raw_data.contract[0].parameter.value,\n Permission_id: transaction.raw_data.contract[0].Permission_id,\n },\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /* @ts-ignore */\n { data: transaction.raw_data.data, fee_limit: transaction.raw_data.fee_limit }\n ) as unknown as U;\n } catch (e) {\n throw new Error('Error generating a new transaction id.');\n }\n }\n\n async alterTransaction(transaction: Transaction, options: AlterTransactionOptions = {}) {\n if (Reflect.has(transaction, 'signature')) throw new Error('You can not extend the expiration of a signed transaction.');\n\n if (options.data) {\n if (options.dataFormat !== 'hex') options.data = TronWeb.toHex(options.data);\n options.data = options.data!.replace(/^0x/, '');\n if (options.data.length === 0) throw new Error('Invalid data provided');\n transaction.raw_data.data = options.data;\n }\n\n if (options.extension) {\n options.extension = parseInt(options.extension * 1000);\n if (isNaN(options.extension) || transaction.raw_data.expiration + options.extension <= Date.now() + 3000)\n throw new Error('Invalid extension provided');\n transaction.raw_data.expiration += options.extension;\n }\n\n return await this.newTxID(transaction, { txLocal: options.txLocal });\n }\n\n async extendExpiration(transaction: Transaction, extension: number, options: TxLocal = {}) {\n return await this.alterTransaction(transaction, { extension, txLocal: options?.txLocal });\n }\n\n async addUpdateData(transaction: Transaction, data: string, dataFormat: 'utf8' | 'hex' = 'utf8', options: TxLocal = {}) {\n return this.alterTransaction(transaction, { data, dataFormat: dataFormat as string, txLocal: options?.txLocal });\n }\n}\n", "import { TronWeb } from '../tronweb.js';\nimport utils from '../utils/index.js';\nimport { keccak256, toUtf8Bytes, recoverAddress, SigningKey, Signature } from '../utils/ethersUtils.js';\nimport { ADDRESS_PREFIX } from '../utils/address.js';\nimport { Validator } from '../paramValidator/index.js';\nimport { txCheck } from '../utils/transaction.js';\nimport { ecRecover } from '../utils/crypto.js';\nimport { Block } from '../types/APIResponse.js';\nimport {\n Token,\n Account,\n AccountNetMessage,\n Witness,\n TransactionSignWeight,\n BroadcastReturn,\n AddressOptions,\n Proposal,\n ChainParameter,\n BroadcastHexReturn,\n AccountResourceMessage,\n Address,\n Exchange,\n TransactionInfo,\n} from '../types/Trx.js';\nimport { SignedTransaction, Transaction } from '../types/Transaction.js';\nimport { TypedDataDomain, TypedDataField } from '../utils/typedData.js';\nimport { Resource } from '../types/TransactionBuilder.js';\n\nconst TRX_MESSAGE_HEADER = '\\x19TRON Signed Message:\\n32';\n// it should be: '\\x15TRON Signed Message:\\n32';\nconst ETH_MESSAGE_HEADER = '\\x19Ethereum Signed Message:\\n32';\n\nfunction toHex(value: string) {\n return TronWeb.address.toHex(value);\n}\n\ntype SignedStringOrSignedTransaction = T extends string\n ? string\n : SignedTransaction & T;\n\nexport class Trx {\n private tronWeb: TronWeb;\n private cache: { contracts: Record };\n private validator: Validator;\n\n signMessage;\n sendAsset;\n send;\n sendTrx;\n broadcast;\n broadcastHex;\n signTransaction;\n\n constructor(tronWeb: TronWeb) {\n this.tronWeb = tronWeb;\n\n this.cache = {\n contracts: {},\n };\n this.validator = new Validator();\n this.signMessage = this.sign;\n this.sendAsset = this.sendToken;\n this.send = this.sendTransaction;\n this.sendTrx = this.sendTransaction;\n this.broadcast = this.sendRawTransaction;\n this.broadcastHex = this.sendHexTransaction;\n this.signTransaction = this.sign;\n }\n\n _parseToken(token: any): Token {\n return {\n ...token,\n name: this.tronWeb.toUtf8(token.name),\n abbr: token.abbr && this.tronWeb.toUtf8(token.abbr),\n description: token.description && this.tronWeb.toUtf8(token.description),\n url: token.url && this.tronWeb.toUtf8(token.url),\n };\n }\n\n getCurrentBlock(): Promise {\n return this.tronWeb.fullNode.request('wallet/getnowblock');\n }\n\n getConfirmedCurrentBlock(): Promise {\n return this.tronWeb.solidityNode.request('walletsolidity/getnowblock');\n }\n\n async getBlock(block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock): Promise {\n if (block === false) {\n throw new Error('No block identifier provided');\n }\n\n if (block == 'earliest') block = 0;\n\n if (block == 'latest') return this.getCurrentBlock();\n\n if (isNaN(+block) && utils.isHex(block.toString())) return this.getBlockByHash(block as string);\n\n return this.getBlockByNumber(block as number);\n }\n\n async getBlockByHash(blockHash: string): Promise {\n const block = await this.tronWeb.fullNode.request(\n 'wallet/getblockbyid',\n {\n value: blockHash,\n },\n 'post'\n );\n if (!Object.keys(block).length) {\n throw new Error('Block not found');\n }\n return block;\n }\n\n async getBlockByNumber(blockID: number): Promise {\n if (!utils.isInteger(blockID) || blockID < 0) {\n throw new Error('Invalid block number provided');\n }\n\n return this.tronWeb.fullNode\n .request(\n 'wallet/getblockbynum',\n {\n num: parseInt(blockID),\n },\n 'post'\n )\n .then((block) => {\n if (!Object.keys(block).length) {\n throw new Error('Block not found');\n }\n\n return block;\n });\n }\n\n async getBlockTransactionCount(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock\n ): Promise {\n const { transactions = [] } = await this.getBlock(block);\n return transactions.length;\n }\n\n async getTransactionFromBlock(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock,\n index: number\n ): Promise {\n const { transactions } = await this.getBlock(block);\n if (!transactions) {\n throw new Error('Transaction not found in block');\n }\n if (index >= 0 && index < transactions.length) return transactions[index];\n else throw new Error('Invalid transaction index provided');\n }\n\n async getTransactionsFromBlock(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock\n ): Promise {\n const { transactions } = await this.getBlock(block);\n if (!transactions) {\n throw new Error('Transaction not found in block');\n }\n return transactions;\n }\n\n async getTransaction(transactionID: string): Promise {\n const transaction = await this.tronWeb.fullNode.request(\n 'wallet/gettransactionbyid',\n {\n value: transactionID,\n },\n 'post'\n );\n if (!Object.keys(transaction).length) {\n throw new Error('Transaction not found');\n }\n return transaction;\n }\n\n async getConfirmedTransaction(transactionID: string): Promise {\n const transaction = await this.tronWeb.solidityNode.request(\n 'walletsolidity/gettransactionbyid',\n {\n value: transactionID,\n },\n 'post'\n );\n if (!Object.keys(transaction).length) {\n throw new Error('Transaction not found');\n }\n return transaction;\n }\n\n getUnconfirmedTransactionInfo(transactionID: string): Promise {\n return this.tronWeb.fullNode.request('wallet/gettransactioninfobyid', { value: transactionID }, 'post');\n }\n\n getTransactionInfo(transactionID: string): Promise {\n return this.tronWeb.solidityNode.request('walletsolidity/gettransactioninfobyid', { value: transactionID }, 'post');\n }\n\n getTransactionsToAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0): Promise {\n return this.getTransactionsRelated(this.tronWeb.address.toHex(address as string), 'to', limit, offset);\n }\n\n getTransactionsFromAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0): Promise {\n return this.getTransactionsRelated(this.tronWeb.address.toHex(address as string), 'from', limit, offset);\n }\n\n async getTransactionsRelated(\n address = this.tronWeb.defaultAddress.hex,\n direction = 'all',\n limit = 30,\n offset = 0\n ): Promise {\n if (!['to', 'from', 'all'].includes(direction)) {\n throw new Error('Invalid direction provided: Expected \"to\", \"from\" or \"all\"');\n }\n\n if (direction == 'all') {\n const [from, to] = await Promise.all([\n this.getTransactionsRelated(address, 'from', limit, offset),\n this.getTransactionsRelated(address, 'to', limit, offset),\n ]);\n\n return [\n ...from.map((tx) => (((tx as any).direction = 'from'), tx)),\n ...to.map((tx) => (((tx as any).direction = 'to'), tx)),\n ].sort((a, b) => {\n return b.raw_data.timestamp - a.raw_data.timestamp;\n });\n }\n\n if (!this.tronWeb.isAddress(address as string)) {\n throw new Error('Invalid address provided');\n }\n\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1)) {\n throw new Error('Invalid limit provided');\n }\n\n if (!utils.isInteger(offset) || offset < 0) {\n throw new Error('Invalid offset provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.solidityNode\n .request<{ transaction: Transaction[] }>(\n `walletextension/gettransactions${direction}this`,\n {\n account: {\n address,\n },\n offset,\n limit,\n },\n 'post'\n )\n .then(({ transaction }) => {\n return transaction;\n });\n }\n\n async getAccount(address = this.tronWeb.defaultAddress.hex): Promise {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.solidityNode.request(\n 'walletsolidity/getaccount',\n {\n address,\n },\n 'post'\n );\n }\n\n getAccountById(id: string): Promise {\n return this.getAccountInfoById(id, { confirmed: true });\n }\n\n async getAccountInfoById(id: string, options: { confirmed: boolean }): Promise {\n this.validator.notValid([\n {\n name: 'accountId',\n type: 'hex',\n value: id,\n },\n {\n name: 'accountId',\n type: 'string',\n lte: 32,\n gte: 8,\n value: id,\n },\n ]);\n\n if (id.startsWith('0x')) {\n id = id.slice(2);\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getaccountbyid`,\n {\n account_id: id,\n },\n 'post'\n );\n }\n\n async getBalance(address = this.tronWeb.defaultAddress.hex): Promise {\n const { balance = 0 } = await this.getAccount(address);\n return balance;\n }\n\n async getUnconfirmedAccount(address = this.tronWeb.defaultAddress.hex): Promise {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode.request(\n 'wallet/getaccount',\n {\n address,\n },\n 'post'\n );\n }\n\n getUnconfirmedAccountById(id: string): Promise {\n return this.getAccountInfoById(id, { confirmed: false });\n }\n\n async getUnconfirmedBalance(address = this.tronWeb.defaultAddress.hex): Promise {\n const { balance = 0 } = await this.getUnconfirmedAccount(address);\n return balance;\n }\n\n async getBandwidth(address = this.tronWeb.defaultAddress.hex): Promise {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode\n .request(\n 'wallet/getaccountnet',\n {\n address,\n },\n 'post'\n )\n .then(({ freeNetUsed = 0, freeNetLimit = 0, NetUsed = 0, NetLimit = 0 }) => {\n return freeNetLimit - freeNetUsed + (NetLimit - NetUsed);\n });\n }\n\n async getTokensIssuedByAddress(address = this.tronWeb.defaultAddress.hex): Promise> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>(\n 'wallet/getassetissuebyaccount',\n {\n address,\n },\n 'post'\n )\n .then(({ assetIssue }) => {\n if (!assetIssue) return {};\n\n const tokens = assetIssue\n .map((token) => {\n return this._parseToken(token);\n })\n .reduce((tokens, token) => {\n return (tokens[token.name] = token), tokens;\n }, {} as Record);\n\n return tokens;\n });\n }\n\n async getTokenFromID(tokenID: string | number): Promise {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request(\n 'wallet/getassetissuebyname',\n {\n value: this.tronWeb.fromUtf8(tokenID),\n },\n 'post'\n )\n .then((token) => {\n if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n async listNodes(): Promise {\n const { nodes = [] } = await this.tronWeb.fullNode.request<{ nodes: { address: { host: string; port: number } }[] }>(\n 'wallet/listnodes'\n );\n return nodes.map(({ address: { host, port } }) => `${this.tronWeb.toUtf8(host)}:${port}`);\n }\n\n async getBlockRange(start = 0, end = 30): Promise {\n if (!utils.isInteger(start) || start < 0) {\n throw new Error('Invalid start of range provided');\n }\n\n if (!utils.isInteger(end) || end < start) {\n throw new Error('Invalid end of range provided');\n }\n\n if (end + 1 - start > 100) {\n throw new Error('Invalid range size, which should be no more than 100.');\n }\n\n return this.tronWeb.fullNode\n .request<{ block: Block[] }>(\n 'wallet/getblockbylimitnext',\n {\n startNum: parseInt(start),\n endNum: parseInt(end) + 1,\n },\n 'post'\n )\n .then(({ block = [] }) => block);\n }\n\n async listSuperRepresentatives(): Promise {\n const { witnesses = [] } = await this.tronWeb.fullNode.request<{ witnesses: Witness[] }>('wallet/listwitnesses');\n return witnesses;\n }\n\n async listTokens(limit = 0, offset = 0): Promise {\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1)) {\n throw new Error('Invalid limit provided');\n }\n\n if (!utils.isInteger(offset) || offset < 0) {\n throw new Error('Invalid offset provided');\n }\n\n if (!limit) {\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>('wallet/getassetissuelist')\n .then(({ assetIssue = [] }) => assetIssue.map((token) => this._parseToken(token)));\n }\n\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>(\n 'wallet/getpaginatedassetissuelist',\n {\n offset: parseInt(offset),\n limit: parseInt(limit),\n },\n 'post'\n )\n .then(({ assetIssue = [] }) => assetIssue.map((token) => this._parseToken(token)));\n }\n\n async timeUntilNextVoteCycle(): Promise {\n const { num = -1 } = await this.tronWeb.fullNode.request<{ num: number }>('wallet/getnextmaintenancetime');\n if (num == -1) {\n throw new Error('Failed to get time until next vote cycle');\n }\n return Math.floor(num / 1000);\n }\n\n async getContract(contractAddress: string): Promise {\n if (!this.tronWeb.isAddress(contractAddress)) {\n throw new Error('Invalid contract address provided');\n }\n\n if (this.cache.contracts[contractAddress]) {\n return this.cache.contracts[contractAddress];\n }\n\n contractAddress = this.tronWeb.address.toHex(contractAddress);\n\n const contract = await this.tronWeb.fullNode.request('wallet/getcontract', {\n value: contractAddress,\n });\n if (contract.Error) {\n throw new Error('Contract does not exist');\n }\n this.cache.contracts[contractAddress] = contract;\n return contract;\n }\n\n ecRecover(transaction: SignedTransaction) {\n return Trx.ecRecover(transaction);\n }\n\n static ecRecover(transaction: SignedTransaction): Address | Address[] {\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n if (!transaction.signature?.length) {\n throw new Error('Transaction is not signed');\n }\n if (transaction.signature.length === 1) {\n const tronAddress = ecRecover(transaction.txID, transaction.signature[0]);\n return TronWeb.address.fromHex(tronAddress);\n }\n return transaction.signature.map((sig) => {\n const tronAddress = ecRecover(transaction.txID, sig);\n return TronWeb.address.fromHex(tronAddress);\n });\n }\n\n async verifyMessage(message: string, signature: string, address = this.tronWeb.defaultAddress.base58, useTronHeader = true) {\n if (!utils.isHex(message)) {\n throw new Error('Expected hex message input');\n }\n\n if (Trx.verifySignature(message, address as string, signature, useTronHeader)) {\n return true;\n }\n\n throw new Error('Signature does not match');\n }\n\n static verifySignature(message: string, address: string, signature: string, useTronHeader = true) {\n message = message.replace(/^0x/, '');\n const messageBytes = [\n ...toUtf8Bytes(useTronHeader ? TRX_MESSAGE_HEADER : ETH_MESSAGE_HEADER),\n ...utils.code.hexStr2byteArray(message),\n ];\n\n const messageDigest = keccak256(new Uint8Array(messageBytes));\n const recovered = recoverAddress(messageDigest, Signature.from(`0x${signature.replace(/^0x/, '')}`));\n\n const tronAddress = ADDRESS_PREFIX + recovered.substr(2);\n const base58Address = TronWeb.address.fromHex(tronAddress);\n\n return base58Address == TronWeb.address.fromHex(address);\n }\n\n async verifyMessageV2(message: string | Uint8Array | Array, signature: string) {\n return Trx.verifyMessageV2(message, signature);\n }\n\n static verifyMessageV2(message: string | Uint8Array | Array, signature: string) {\n return utils.message.verifyMessage(message, signature);\n }\n\n verifyTypedData(\n domain: TypedDataDomain,\n types: Record,\n value: Record,\n signature: string,\n address = this.tronWeb.defaultAddress.base58\n ) {\n if (Trx.verifyTypedData(domain, types, value, signature, address as string)) return true;\n\n throw new Error('Signature does not match');\n }\n\n static verifyTypedData(\n domain: TypedDataDomain,\n types: Record,\n value: Record,\n signature: string,\n address: string\n ) {\n const messageDigest = utils._TypedDataEncoder.hash(domain, types, value);\n const recovered = recoverAddress(messageDigest, Signature.from(`0x${signature.replace(/^0x/, '')}`));\n\n const tronAddress = ADDRESS_PREFIX + recovered.substr(2);\n const base58Address = TronWeb.address.fromHex(tronAddress);\n\n return base58Address == TronWeb.address.fromHex(address);\n }\n\n async sign(\n transaction: T,\n privateKey = this.tronWeb.defaultPrivateKey,\n useTronHeader = true,\n multisig = false\n ): Promise> {\n // Message signing\n if (utils.isString(transaction)) {\n if (!utils.isHex(transaction)) {\n throw new Error('Expected hex message input');\n }\n\n return Trx.signString(transaction, privateKey as string, useTronHeader) as SignedStringOrSignedTransaction;\n }\n\n if (!utils.isObject(transaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n if (!multisig && (transaction as SignedTransaction).signature) {\n throw new Error('Transaction is already signed');\n }\n\n if (!multisig) {\n const address = this.tronWeb.address\n .toHex(this.tronWeb.address.fromPrivateKey(privateKey as string) as string)\n .toLowerCase();\n\n if (address !== this.tronWeb.address.toHex(transaction.raw_data.contract[0].parameter.value.owner_address)) {\n throw new Error('Private key does not match address in transaction');\n }\n\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n }\n return utils.crypto.signTransaction(privateKey as string, transaction) as SignedStringOrSignedTransaction;\n }\n\n static signString(message: string, privateKey: string, useTronHeader = true) {\n message = message.replace(/^0x/, '');\n const value = `0x${privateKey.replace(/^0x/, '')}`;\n const signingKey = new SigningKey(value);\n const messageBytes = [\n ...toUtf8Bytes(useTronHeader ? TRX_MESSAGE_HEADER : ETH_MESSAGE_HEADER),\n ...utils.code.hexStr2byteArray(message),\n ];\n const messageDigest = keccak256(new Uint8Array(messageBytes));\n const signature = signingKey.sign(messageDigest);\n const signatureHex = ['0x', signature.r.substring(2), signature.s.substring(2), Number(signature.v).toString(16)].join(\n ''\n );\n return signatureHex;\n }\n\n /**\n * sign message v2 for verified header length\n *\n * @param {message to be signed, should be Bytes or string} message\n * @param {privateKey for signature} privateKey\n * @param {reserved} options\n */\n signMessageV2(message: string | Uint8Array | Array, privateKey = this.tronWeb.defaultPrivateKey) {\n return Trx.signMessageV2(message, privateKey as string);\n }\n\n static signMessageV2(message: string | Uint8Array | Array, privateKey: string) {\n return utils.message.signMessage(message, privateKey);\n }\n\n _signTypedData(\n domain: TypedDataDomain,\n types: Record,\n value: Record,\n privateKey = this.tronWeb.defaultPrivateKey\n ) {\n return Trx._signTypedData(domain, types, value, privateKey as string);\n }\n\n static _signTypedData(\n domain: TypedDataDomain,\n types: Record,\n value: Record,\n privateKey: string\n ) {\n return utils.crypto._signTypedData(domain, types, value, privateKey);\n }\n\n async multiSign(transaction: Transaction, privateKey = this.tronWeb.defaultPrivateKey, permissionId = 0) {\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract) {\n throw new Error('Invalid transaction provided');\n }\n\n // If owner permission or permission id exists in transaction, do sign directly\n // If no permission id inside transaction or user passes permission id, use old way to reset permission id\n if (!transaction.raw_data.contract[0].Permission_id && permissionId > 0) {\n // set permission id\n transaction.raw_data.contract[0].Permission_id = permissionId;\n\n // check if private key insides permission list\n const address = this.tronWeb.address\n .toHex(this.tronWeb.address.fromPrivateKey(privateKey as string) as string)\n .toLowerCase();\n const signWeight = await this.getSignWeight(transaction, permissionId);\n\n if (signWeight.result.code === 'PERMISSION_ERROR') {\n throw new Error(signWeight.result.message);\n }\n\n let foundKey = false;\n signWeight.permission.keys.map((key) => {\n if (key.address === address) foundKey = true;\n });\n\n if (!foundKey) {\n throw new Error(privateKey + ' has no permission to sign');\n }\n\n if (signWeight.approved_list && signWeight.approved_list.indexOf(address) != -1) {\n throw new Error(privateKey + ' already sign transaction');\n }\n\n // reset transaction\n if (signWeight.transaction && signWeight.transaction.transaction) {\n transaction = signWeight.transaction.transaction;\n if (permissionId > 0) {\n transaction.raw_data.contract[0].Permission_id = permissionId;\n }\n } else {\n throw new Error('Invalid transaction provided');\n }\n }\n\n // sign\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n return utils.crypto.signTransaction(privateKey as string, transaction);\n }\n\n async getApprovedList(transaction: Transaction): Promise<{ approved_list: string[] }> {\n if (!utils.isObject(transaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n return this.tronWeb.fullNode.request('wallet/getapprovedlist', transaction, 'post');\n }\n\n async getSignWeight(transaction: Transaction, permissionId?: number): Promise {\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract)\n throw new Error('Invalid transaction provided');\n\n if (utils.isInteger(permissionId)) {\n transaction.raw_data.contract[0].Permission_id = parseInt(permissionId);\n } else if (typeof transaction.raw_data.contract[0].Permission_id !== 'number') {\n transaction.raw_data.contract[0].Permission_id = 0;\n }\n\n return this.tronWeb.fullNode.request('wallet/getsignweight', transaction, 'post');\n }\n\n async sendRawTransaction(signedTransaction: T): Promise> {\n if (!utils.isObject(signedTransaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n if (!signedTransaction.signature || !utils.isArray(signedTransaction.signature)) {\n throw new Error('Transaction is not signed');\n }\n\n const result = await this.tronWeb.fullNode.request, 'transaction'>>(\n 'wallet/broadcasttransaction',\n signedTransaction,\n 'post'\n );\n return {\n ...result,\n transaction: signedTransaction,\n };\n }\n\n async sendHexTransaction(signedHexTransaction: string) {\n if (!utils.isHex(signedHexTransaction)) {\n throw new Error('Invalid hex transaction provided');\n }\n\n const params = {\n transaction: signedHexTransaction,\n };\n\n const result = await this.tronWeb.fullNode.request('wallet/broadcasthex', params, 'post');\n if (result.result) {\n return {\n ...result,\n transaction: JSON.parse(result.transaction) as Transaction,\n hexTransaction: signedHexTransaction,\n };\n }\n return result;\n }\n\n async sendTransaction(to: string, amount: number, options: AddressOptions = {}): Promise> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!this.tronWeb.isAddress(to)) {\n throw new Error('Invalid recipient provided');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const transaction = await this.tronWeb.transactionBuilder.sendTrx(to, amount, address as Address);\n const signedTransaction = await this.sign(transaction, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n async sendToken(\n to: string,\n amount: number,\n tokenID: string | number,\n options: AddressOptions = {}\n ): Promise> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!this.tronWeb.isAddress(to)) {\n throw new Error('Invalid recipient provided');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID)) {\n throw new Error('Invalid token ID provided');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const transaction = await this.tronWeb.transactionBuilder.sendToken(to, amount, tokenID, address as Address);\n const signedTransaction = await this.sign(transaction, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Freezes an amount of TRX.\n * Will give bandwidth OR Energy and TRON Power(voting rights)\n * to the owner of the frozen tokens.\n *\n * @param amount - is the number of frozen trx\n * @param duration - is the duration in days to be frozen\n * @param resource - is the type, must be either \"ENERGY\" or \"BANDWIDTH\"\n * @param options\n */\n async freezeBalance(\n amount = 0,\n duration = 3,\n resource: Resource = 'BANDWIDTH',\n options: AddressOptions = {},\n receiverAddress?: string\n ): Promise> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource)) {\n throw new Error('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n if (!utils.isInteger(duration) || duration < 3) {\n throw new Error('Invalid duration provided, minimum of 3 days');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const freezeBalance = await this.tronWeb.transactionBuilder.freezeBalance(\n amount,\n duration,\n resource,\n address as Address,\n receiverAddress\n );\n const signedTransaction = await this.sign(freezeBalance, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Unfreeze TRX that has passed the minimum freeze duration.\n * Unfreezing will remove bandwidth and TRON Power.\n *\n * @param resource - is the type, must be either \"ENERGY\" or \"BANDWIDTH\"\n * @param options\n */\n async unfreezeBalance(\n resource: Resource = 'BANDWIDTH',\n options: AddressOptions = {},\n receiverAddress: string\n ): Promise> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource)) {\n throw new Error('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const unfreezeBalance = await this.tronWeb.transactionBuilder.unfreezeBalance(\n resource,\n address as Address,\n receiverAddress\n );\n const signedTransaction = await this.sign(unfreezeBalance, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Modify account name\n * Note: Username is allowed to edit only once.\n *\n * @param privateKey - Account private Key\n * @param accountName - name of the account\n *\n * @return modified Transaction Object\n */\n async updateAccount(accountName: string, options: AddressOptions = {}): Promise> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!utils.isString(accountName) || !accountName.length) {\n throw new Error('Name must be a string');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) throw Error('Function requires either a private key or address to be set');\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const updateAccount = await this.tronWeb.transactionBuilder.updateAccount(accountName, address as Address);\n const signedTransaction = await this.sign(updateAccount, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Gets a network modification proposal by ID.\n */\n async getProposal(proposalID: number): Promise {\n if (!utils.isInteger(proposalID) || proposalID < 0) {\n throw new Error('Invalid proposalID provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getproposalbyid',\n {\n id: parseInt(proposalID),\n },\n 'post'\n );\n }\n\n /**\n * Lists all network modification proposals.\n */\n async listProposals(): Promise {\n const { proposals = [] } = await this.tronWeb.fullNode.request<{ proposals: Proposal[] }>(\n 'wallet/listproposals',\n {},\n 'post'\n );\n return proposals;\n }\n\n /**\n * Lists all parameters available for network modification proposals.\n */\n async getChainParameters(): Promise {\n const { chainParameter = [] } = await this.tronWeb.fullNode.request<{ chainParameter: ChainParameter[] }>(\n 'wallet/getchainparameters',\n {},\n 'post'\n );\n return chainParameter;\n }\n\n /**\n * Get the account resources\n */\n async getAccountResources(address = this.tronWeb.defaultAddress.hex): Promise {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getaccountresource',\n {\n address: this.tronWeb.address.toHex(address as string),\n },\n 'post'\n );\n }\n\n /**\n * Query the amount of resources of a specific resourceType delegated by fromAddress to toAddress\n */\n async getDelegatedResourceV2(\n fromAddress = this.tronWeb.defaultAddress.hex,\n toAddress = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n delegatedResource: {\n from: string;\n to: string;\n frozen_balance_for_bandwidth: number;\n frozen_balance_for_energy: number;\n expire_time_for_bandwidth: number;\n expire_time_for_energy: number;\n };\n }> {\n if (!this.tronWeb.isAddress(fromAddress as Address)) {\n throw new Error('Invalid address provided');\n }\n\n if (!this.tronWeb.isAddress(toAddress as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourcev2`,\n {\n fromAddress: toHex(fromAddress as string),\n toAddress: toHex(toAddress as string),\n },\n 'post'\n );\n }\n\n /**\n * Query the resource delegation index by an account\n */\n async getDelegatedResourceAccountIndexV2(\n address = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n account: Address;\n fromAccounts: Address[];\n toAccounts: Address[];\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourceaccountindexv2`,\n {\n value: toHex(address as Address),\n },\n 'post'\n );\n }\n\n /**\n * Query the amount of delegatable resources of the specified resource Type for target address, unit is sun.\n */\n async getCanDelegatedMaxSize(\n address = this.tronWeb.defaultAddress.hex,\n resource: Resource = 'BANDWIDTH',\n options = { confirmed: true }\n ): Promise<{\n max_size: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n this.validator.notValid([\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getcandelegatedmaxsize`,\n {\n owner_address: toHex(address as Address),\n type: resource === 'ENERGY' ? 1 : 0,\n },\n 'post'\n );\n }\n\n /**\n * Remaining times of available unstaking API\n */\n async getAvailableUnfreezeCount(\n address = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n count: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getavailableunfreezecount`,\n {\n owner_address: toHex(address as Address),\n },\n 'post'\n );\n }\n\n /**\n * Query the withdrawable balance at the specified timestamp\n */\n async getCanWithdrawUnfreezeAmount(\n address = this.tronWeb.defaultAddress.hex,\n timestamp = Date.now(),\n options = { confirmed: true }\n ): Promise<{\n amount: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n if (!utils.isInteger(timestamp) || timestamp < 0) {\n throw new Error('Invalid timestamp provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getcanwithdrawunfreezeamount`,\n {\n owner_address: toHex(address as Address),\n timestamp: timestamp,\n },\n 'post'\n );\n }\n\n /**\n * Get the exchange ID.\n */\n async getExchangeByID(exchangeID: number): Promise {\n if (!utils.isInteger(exchangeID) || exchangeID < 0) {\n throw new Error('Invalid exchangeID provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getexchangebyid',\n {\n id: exchangeID,\n },\n 'post'\n );\n }\n\n /**\n * Lists the exchanges\n */\n async listExchanges() {\n return this.tronWeb.fullNode\n .request<{ exchanges: Exchange[] }>('wallet/listexchanges', {}, 'post')\n .then(({ exchanges = [] }) => exchanges);\n }\n\n /**\n * Lists all network modification proposals.\n */\n async listExchangesPaginated(limit = 10, offset = 0) {\n return this.tronWeb.fullNode\n .request<{ exchanges: Exchange[] }>(\n 'wallet/getpaginatedexchangelist',\n {\n limit,\n offset,\n },\n 'post'\n )\n .then(({ exchanges = [] }) => exchanges);\n }\n\n /**\n * Get info about thre node\n */\n async getNodeInfo(): Promise<{\n beginSyncNum: number;\n block: string;\n solidityBlock: string;\n currentConnectCount: number;\n activeConnectCount: number;\n passiveConnectCount: number;\n totalFlow: number;\n peerInfoList: {\n lastSyncBlock: string;\n remainNum: number;\n lastBlockUpdateTime: number;\n syncFlag: boolean;\n headBlockTimeWeBothHave: number;\n needSyncFromPeer: boolean;\n needSyncFromUs: boolean;\n host: string;\n port: number;\n nodeId: string;\n connectTime: number;\n avgLatency: number;\n syncToFetchSize: number;\n syncToFetchSizePeekNum: number;\n syncBlockRequestedSize: number;\n unFetchSynNum: number;\n blockInPorcSize: number;\n headBlockWeBothHave: string;\n isActive: boolean;\n score: number;\n nodeCount: number;\n inFlow: number;\n disconnectTimes: number;\n localDisconnectReason: string;\n remoteDisconnectReason: string;\n };\n configNodeInfo: {\n codeVersion: string;\n p2pVersion: string;\n listenPort: number;\n discoverEnable: boolean;\n activeNodeSize: number;\n passiveNodeSize: number;\n sendNodeSize: number;\n maxConnectCount: number;\n sameIpMaxConnectCount: number;\n backupListenPort: number;\n backupMemberSize: number;\n backupPriority: number;\n dbVersion: number;\n minParticipationRate: number;\n supportConstant: boolean;\n minTimeRatio: number;\n maxTimeRatio: number;\n allowCreationOfContracts: number;\n allowAdaptiveEnergy: number;\n };\n machineInfo: {\n threadCount: number;\n deadLockThreadCount: number;\n cpuCount: number;\n totalMemory: number;\n freeMemory: number;\n cpuRate: number;\n javaVersion: string;\n osName: string;\n jvmTotalMemory: number;\n jvmFreeMemory: number;\n processCpuRate: number;\n memoryDescInfoList: {\n name: string;\n initSize: number;\n useSize: number;\n maxSize: number;\n useRate: number;\n };\n deadLockThreadInfoList: {\n name: string;\n lockName: string;\n lockOwner: string;\n state: string;\n blockTime: number;\n waitTime: number;\n stackTrace: string;\n };\n };\n cheatWitnessInfoMap: Map;\n }> {\n return this.tronWeb.fullNode.request('wallet/getnodeinfo', {}, 'post');\n }\n\n async getTokenListByName(tokenID: string | number): Promise {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request<({ assetIssue: Token[] } & { name: undefined }) | (Token & { assetIssue: undefined })>(\n 'wallet/getassetissuelistbyname',\n {\n value: this.tronWeb.fromUtf8(tokenID),\n },\n 'post'\n )\n .then((token) => {\n if (Array.isArray(token.assetIssue)) {\n return token.assetIssue.map((t) => this._parseToken(t));\n } else if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n getTokenByID(tokenID: number | string): Promise {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request(\n 'wallet/getassetissuebyid',\n {\n value: tokenID,\n },\n 'post'\n )\n .then((token) => {\n if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n async getReward(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = true;\n return this._getReward(address, options);\n }\n\n async getUnconfirmedReward(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = false;\n return this._getReward(address, options);\n }\n\n async getBrokerage(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = true;\n return this._getBrokerage(address, options);\n }\n\n async getUnconfirmedBrokerage(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = false;\n return this._getBrokerage(address, options);\n }\n\n async _getReward(address = this.tronWeb.defaultAddress.hex, options: { confirmed?: boolean }): Promise {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data = {\n address: toHex(address as Address),\n };\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode']\n .request<{ reward?: number }>(`wallet${options.confirmed ? 'solidity' : ''}/getReward`, data, 'post')\n .then((result = { reward: undefined }) => {\n if (typeof result.reward === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.reward;\n });\n }\n\n private async _getBrokerage(address = this.tronWeb.defaultAddress.hex, options: { confirmed?: boolean }): Promise {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data = {\n address: toHex(address as Address),\n };\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode']\n .request<{ brokerage?: number }>(`wallet${options.confirmed ? 'solidity' : ''}/getBrokerage`, data, 'post')\n .then((result = {}) => {\n if (typeof result.brokerage === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.brokerage;\n });\n }\n\n async getBandwidthPrices(): Promise {\n return this.tronWeb.fullNode.request<{ prices?: string }>('wallet/getbandwidthprices', {}, 'post')\n .then((result = {}) => {\n if (typeof result.prices === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.prices;\n });\n }\n\n async getEnergyPrices(): Promise {\n return this.tronWeb.fullNode.request<{ prices?: string }>('wallet/getenergyprices', {}, 'post')\n .then((result = {}) => {\n if (typeof result.prices === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.prices;\n });\n }\n}\n", "/* eslint-disable no-control-regex */\nimport utils from '../../utils/index.js';\nimport { encodeParamsV2ByABI, decodeParamsV2ByABI } from '../../utils/abi.js';\nimport { TronWeb } from '../../tronweb.js';\nimport { Contract } from './index.js';\nimport { sha3 } from '../../utils/crypto.js';\n\nexport interface CallOptions {\n feeLimit?: number;\n callValue?: number;\n callTokenValue?: number;\n callTokenId?: number;\n userFeePercentage?: number;\n shouldPollResponse?: boolean;\n from?: string | false;\n rawParameter?: string;\n _isConstant?: true;\n}\n\nexport interface SendOptions {\n from?: string | false;\n feeLimit?: number;\n callValue?: number;\n rawParameter?: string;\n userFeePercentage?: number;\n shouldPollResponse?: boolean;\n pollTimes?: number;\n rawResponse?: boolean;\n keepTxID?: boolean;\n}\n\nimport type {\n FragmentTypes,\n StateMutabilityTypes,\n FunctionFragment,\n FallbackFragment,\n ReceiveFragment,\n EventFragment,\n AbiInputsType,\n AbiOutputsType,\n} from '../../types/ABI.js';\n\nexport type AbiFragmentNoErrConstructor = FunctionFragment | EventFragment | FallbackFragment | ReceiveFragment;\n\nconst getFunctionSelector = (abi: AbiFragmentNoErrConstructor) => {\n if ('stateMutability' in abi) {\n (abi.stateMutability as StateMutabilityTypes) = abi.stateMutability ? abi.stateMutability.toLowerCase() : 'nonpayable';\n }\n (abi.type as FragmentTypes) = abi.type ? abi.type.toLowerCase() : '';\n if (abi.type === 'fallback' || abi.type === 'receive') return '0x';\n const iface = new utils.ethersUtils.Interface([abi]);\n let obj;\n if (abi.type === 'event') {\n obj = iface.getEvent(abi.name);\n } else {\n obj = iface.getFunction(abi.name);\n }\n if (obj) {\n return obj.format('sighash');\n }\n throw new Error('unknown function');\n};\n\nconst decodeOutput = (abi: AbiFragmentNoErrConstructor, output: string) => {\n return decodeParamsV2ByABI(abi, output);\n};\n\nexport class Method {\n tronWeb: TronWeb;\n contract: Contract;\n abi: AbiFragmentNoErrConstructor;\n name: string;\n inputs: AbiInputsType;\n outputs: AbiOutputsType;\n functionSelector: string | null;\n signature: string;\n defaultOptions: {\n feeLimit: number;\n callValue: number;\n userFeePercentage: number;\n shouldPollResponse: boolean;\n };\n\n constructor(contract: Contract, abi: AbiFragmentNoErrConstructor) {\n this.tronWeb = contract.tronWeb;\n this.contract = contract;\n\n this.abi = abi;\n this.name = abi.name || abi.type;\n\n this.inputs = abi.inputs || [];\n\n this.outputs = [];\n if ('outputs' in abi && abi.outputs) {\n this.outputs = abi.outputs;\n }\n\n this.functionSelector = getFunctionSelector(abi);\n this.signature = sha3(this.functionSelector, false).slice(0, 8);\n\n this.defaultOptions = {\n feeLimit: this.tronWeb.feeLimit,\n callValue: 0,\n userFeePercentage: 100,\n shouldPollResponse: false, // Only used for sign()\n };\n }\n\n decodeInput(data: string) {\n const abi = JSON.parse(JSON.stringify(this.abi));\n abi.outputs = abi.inputs;\n return decodeOutput(abi, '0x' + data);\n }\n\n onMethod(...args: any[]) {\n let rawParameter = '';\n if (this.abi && !/event/i.test(this.abi.type)) {\n rawParameter = encodeParamsV2ByABI(this.abi, args);\n }\n return {\n call: async (options: CallOptions = {}) => {\n options = {\n ...options,\n rawParameter,\n };\n\n return await this._call([], [], options);\n },\n send: async (options: SendOptions = {}, privateKey = this.tronWeb.defaultPrivateKey) => {\n options = {\n ...options,\n rawParameter,\n };\n\n return await this._send([], [], options, privateKey);\n },\n };\n }\n\n async _call(types: [], args: [], options: CallOptions = {}) {\n if (types.length !== args.length) {\n throw new Error('Invalid argument count provided');\n }\n\n if (!this.contract.address) {\n throw new Error('Smart contract is missing address');\n }\n\n if (!this.contract.deployed) {\n throw new Error('Calling smart contracts requires you to load the contract first');\n }\n if ('stateMutability' in this.abi) {\n const { stateMutability } = this.abi;\n\n if (stateMutability && !['pure', 'view'].includes(stateMutability.toLowerCase())) {\n throw new Error(`Methods with state mutability \"${stateMutability}\" must use send()`);\n }\n }\n\n options = {\n ...this.defaultOptions,\n from: this.tronWeb.defaultAddress.hex,\n ...options,\n _isConstant: true,\n };\n\n const parameters = args.map((value, index) => ({\n type: types[index],\n value,\n }));\n\n const transaction = await this.tronWeb.transactionBuilder.triggerSmartContract(\n this.contract.address,\n this.functionSelector!,\n options,\n parameters,\n options.from ? this.tronWeb.address.toHex(options.from) : undefined\n );\n\n if (!utils.hasProperty(transaction, 'constant_result')) {\n throw new Error('Failed to execute');\n }\n\n const len = transaction.constant_result![0].length;\n if (len === 0 || len % 64 === 8) {\n let msg = 'The call has been reverted or has thrown an error.';\n if (len !== 0) {\n msg += ' Error message: ';\n let msg2 = '';\n const chunk = transaction.constant_result![0].substring(8);\n for (let i = 0; i < len - 8; i += 64) {\n msg2 += this.tronWeb.toUtf8(chunk.substring(i, i + 64));\n }\n msg += msg2\n .replace(/(\\u0000|\\u000b|\\f)+/g, ' ')\n .replace(/ +/g, ' ')\n .replace(/\\s+$/g, '');\n }\n throw new Error(msg);\n }\n\n let output = decodeOutput(this.abi, '0x' + transaction.constant_result![0]);\n\n if (output.length === 1 && Object.keys(output).length === 1) {\n output = output[0];\n }\n return output;\n }\n\n async _send(types: [], args: [], options: SendOptions = {}, privateKey = this.tronWeb.defaultPrivateKey) {\n if (types.length !== args.length) {\n throw new Error('Invalid argument count provided');\n }\n\n if (!this.contract.address) {\n throw new Error('Smart contract is missing address');\n }\n\n if (!this.contract.deployed) {\n throw new Error('Calling smart contracts requires you to load the contract first');\n }\n\n const { stateMutability } = this.abi as { stateMutability: StateMutabilityTypes };\n\n if (['pure', 'view'].includes(stateMutability.toLowerCase())) {\n throw new Error(`Methods with state mutability \"${stateMutability}\" must use call()`);\n }\n\n // If a function isn't payable, dont provide a callValue.\n if (!['payable'].includes(stateMutability.toLowerCase())) {\n options.callValue = 0;\n }\n\n options = {\n ...this.defaultOptions,\n from: this.tronWeb.defaultAddress.hex,\n ...options,\n };\n\n const parameters = args.map((value, index) => ({\n type: types[index],\n value,\n }));\n\n const address = privateKey ? this.tronWeb.address.fromPrivateKey(privateKey) : this.tronWeb.defaultAddress.base58;\n const transaction = await this.tronWeb.transactionBuilder.triggerSmartContract(\n this.contract.address,\n this.functionSelector!,\n options,\n parameters,\n this.tronWeb.address.toHex(address as string)\n );\n\n if (!transaction.result || !transaction.result.result) {\n throw new Error('Unknown error: ' + JSON.stringify(transaction, null, 2));\n }\n\n // If privateKey is false, this won't be signed here. We assume sign functionality will be replaced.\n const signedTransaction = await this.tronWeb.trx.sign(transaction.transaction, privateKey);\n\n if (!signedTransaction.signature) {\n if (!privateKey) {\n throw new Error('Transaction was not signed properly');\n }\n\n throw new Error('Invalid private key provided');\n }\n\n const broadcast = await this.tronWeb.trx.sendRawTransaction(signedTransaction);\n\n if (broadcast.code) {\n const err = {\n error: broadcast.code,\n message: broadcast.code as unknown as string,\n };\n if (broadcast.message) err.message = this.tronWeb.toUtf8(broadcast.message);\n const error = new Error(err.message);\n (error as any).error = broadcast.code;\n throw error;\n }\n\n if (!options.shouldPollResponse) {\n return signedTransaction.txID;\n }\n\n const checkResult: (index: number) => any = async (index) => {\n if (index === (options.pollTimes || 20)) {\n const error: any = new Error('Cannot find result in solidity node');\n error.error = 'Cannot find result in solidity node';\n error.transaction = signedTransaction;\n throw error;\n }\n\n const output = await this.tronWeb.trx.getTransactionInfo(signedTransaction.txID);\n\n if (!Object.keys(output).length) {\n await new Promise((r) => setTimeout(r, 3000));\n return checkResult(index + 1);\n }\n\n if (output.result && output.result === 'FAILED') {\n const error: any = new Error(this.tronWeb.toUtf8(output.resMessage));\n error.error = this.tronWeb.toUtf8(output.resMessage);\n error.transaction = signedTransaction;\n error.output = output;\n throw error;\n }\n\n if (!utils.hasProperty(output, 'contractResult')) {\n const error: any = new Error('Failed to execute: ' + JSON.stringify(output, null, 2));\n error.error = 'Failed to execute: ' + JSON.stringify(output, null, 2);\n error.transaction = signedTransaction;\n error.output = output;\n throw error;\n }\n\n if (options.rawResponse) {\n return output;\n }\n\n let decoded = decodeOutput(this.abi, '0x' + output.contractResult[0]);\n\n if (decoded.length === 1 && Object.keys(decoded).length === 1) {\n decoded = decoded[0];\n }\n\n if (options.keepTxID) {\n return [signedTransaction.txID, decoded];\n }\n\n return decoded;\n };\n\n return checkResult(0);\n }\n}\n", "import { TronWeb } from '../../tronweb.js';\nimport utils from '../../utils/index.js';\nimport { Method, AbiFragmentNoErrConstructor } from './method.js';\nimport type { ContractAbiInterface } from '../../types/ABI.js';\nimport { Address } from '../../types/Trx.js';\nimport { CreateSmartContractOptions } from '../../types/TransactionBuilder.js';\n\n\nexport class Contract {\n tronWeb: TronWeb;\n abi: ContractAbiInterface;\n address: false | string;\n eventListener: any;\n bytecode?: false | string;\n deployed?: boolean;\n lastBlock?: false | number;\n methods: Record ReturnType>;\n methodInstances: Record;\n props: any[];\n [key: string | number | symbol]: any;\n\n constructor(tronWeb: TronWeb, abi: ContractAbiInterface = [], address: Address) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n\n this.tronWeb = tronWeb;\n\n this.address = address;\n this.abi = abi;\n\n this.eventListener = false;\n this.bytecode = false;\n this.deployed = false;\n this.lastBlock = false;\n\n this.methods = {};\n this.methodInstances = {};\n this.props = [];\n\n if (utils.address.isAddress(address)) {\n this.deployed = true;\n } else {\n this.address = false;\n }\n\n this.loadAbi(abi);\n }\n\n hasProperty(property: number | string | symbol) {\n // eslint-disable-next-line no-prototype-builtins\n return this.hasOwnProperty(property) || (this as any).__proto__.hasOwnProperty(property);\n }\n\n loadAbi(abi: ContractAbiInterface) {\n this.abi = abi;\n this.methods = {};\n\n this.props.forEach((prop: string) => delete (this as any)[prop]);\n\n abi.forEach((func) => {\n // Don't build a method for constructor function. That's handled through contract create.\n // Don't build a method for error function.\n if (!func.type || /constructor|error/i.test(func.type)) return;\n\n const method = new Method(this, func as AbiFragmentNoErrConstructor);\n const methodCall = method.onMethod.bind(method);\n\n const { name, functionSelector, signature } = method;\n\n this.methods[name] = methodCall;\n this.methods[functionSelector!] = methodCall;\n this.methods[signature] = methodCall;\n\n this.methodInstances[name] = method;\n this.methodInstances[functionSelector!] = method;\n this.methodInstances[signature] = method;\n\n if (!this.hasProperty(name)) {\n (this as any)[name] = methodCall;\n this.props.push(name);\n }\n\n if (!this.hasProperty(functionSelector!)) {\n (this as any)[functionSelector!] = methodCall;\n this.props.push(functionSelector);\n }\n\n if (!this.hasProperty(signature)) {\n (this as any)[signature] = methodCall;\n this.props.push(signature);\n }\n });\n }\n\n decodeInput(data: string) {\n const methodName = data.substring(0, 8);\n const inputData = data.substring(8);\n\n if (!this.methodInstances[methodName]) throw new Error('Contract method ' + methodName + ' not found');\n\n const methodInstance = this.methodInstances[methodName];\n\n return {\n name: methodInstance.name,\n params: this.methodInstances[methodName].decodeInput(inputData),\n };\n }\n\n async new(options: CreateSmartContractOptions, privateKey = this.tronWeb.defaultPrivateKey) {\n const address = this.tronWeb.address.fromPrivateKey(privateKey as string);\n const transaction = await this.tronWeb.transactionBuilder.createSmartContract(options, address as Address);\n const signedTransaction = await this.tronWeb.trx.sign(transaction, privateKey);\n const contract = await this.tronWeb.trx.sendRawTransaction(signedTransaction);\n\n if (contract.code) {\n throw {\n error: contract.code,\n message: this.tronWeb.toUtf8(contract.message),\n };\n }\n\n await utils.sleep(3000);\n return this.at(signedTransaction.contract_address);\n }\n\n async at(contractAddress: Address) {\n try {\n const contract = await this.tronWeb.trx.getContract(contractAddress);\n\n if (!contract.contract_address) {\n throw new Error('Unknown error: ' + JSON.stringify(contract, null, 2));\n }\n\n this.address = contract.contract_address;\n this.bytecode = contract.bytecode;\n this.deployed = true;\n\n this.loadAbi(contract.abi ? (contract.abi.entrys ? contract.abi.entrys : []) : []);\n\n return this;\n } catch (ex: any) {\n if (ex.toString().includes('does not exist')) {\n throw new Error('Contract has not been deployed on the network');\n }\n\n throw new Error(ex);\n }\n }\n}\n\nexport type { CallOptions, SendOptions, AbiFragmentNoErrConstructor } from './method.js';\nexport { Method } from './method.js';\n", "import { TronWeb } from '../tronweb.js';\nimport utils from '../utils/index.js';\nimport semver from 'semver';\n\ninterface PluginConstructorOptions {\n disablePlugins?: boolean;\n}\n\ninterface PluginClassInterface {\n new (tronWeb: TronWeb): {\n pluginInterface?: (options: PluginOptions) => PluginInterfaceReturn;\n };\n}\n\ninterface PluginInterfaceReturn {\n requires: string;\n components?: Record;\n fullClass?: boolean;\n}\n\ntype PluginOptions = any;\n\nexport class Plugin {\n tronWeb: TronWeb;\n pluginNoOverride: string[];\n disablePlugins: boolean;\n\n constructor(tronWeb: TronWeb, options: PluginConstructorOptions = {}) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n this.pluginNoOverride = ['register'];\n this.disablePlugins = !!options.disablePlugins;\n }\n\n register(Plugin: PluginClassInterface, options?: PluginOptions) {\n let pluginInterface: PluginInterfaceReturn = {\n requires: '0.0.0',\n components: {},\n };\n const result: {\n libs: any[];\n plugged: any[];\n skipped: any[];\n error?: string;\n } = {\n libs: [],\n plugged: [],\n skipped: [],\n error: undefined,\n };\n if (this.disablePlugins) {\n result.error = 'This instance of TronWeb has plugins disabled.';\n return result;\n }\n const plugin = new Plugin(this.tronWeb);\n if (utils.isFunction(plugin.pluginInterface)) {\n pluginInterface = plugin.pluginInterface(options);\n }\n if (semver.satisfies(TronWeb.version, pluginInterface.requires)) {\n if (pluginInterface.fullClass) {\n // plug the entire class at the same level of tronWeb.trx\n const className = plugin.constructor.name;\n const classInstanceName = className.substring(0, 1).toLowerCase() + className.substring(1);\n if (className !== classInstanceName) {\n Object.assign(TronWeb, {\n [className]: Plugin,\n });\n Object.assign(this.tronWeb, {\n [classInstanceName]: plugin,\n });\n result.libs.push(className);\n }\n } else {\n // plug methods into a class, like trx\n for (const component in pluginInterface.components) {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.tronWeb.hasOwnProperty(component)) {\n continue;\n }\n const methods = pluginInterface.components[component];\n const pluginNoOverride = (this.tronWeb as any)[component].pluginNoOverride || [];\n for (const method in methods) {\n if (\n method === 'constructor' ||\n ((this.tronWeb as any)[component][method] &&\n (pluginNoOverride.includes(method) || // blacklisted methods\n /^_/.test(method))) // private methods\n ) {\n result.skipped.push(method);\n continue;\n }\n (this.tronWeb as any)[component][method] = methods[method].bind((this.tronWeb as any)[component]);\n result.plugged.push(method);\n }\n }\n }\n } else {\n throw new Error('The plugin is not compatible with this version of TronWeb');\n }\n return result;\n }\n}\n", "import { TronWeb } from '../tronweb.js';\nimport { NodeProvider } from '../types/TronWeb.js';\nimport utils from '../utils/index.js';\nimport { HttpProvider } from './providers/index.js';\n\nexport interface GetEventResultOptions {\n /**\n * Name of the event to filter by.\n */\n eventName?: string;\n /**\n * Specific block number to query.\n */\n blockNumber?: number;\n /**\n * Maximum number returned.\n */\n limit?: number;\n /**\n * When the data volume of the query result is large, the returned result of one query will not contain all the data, and it takes multiple queries to obtain the complete data. Therefore, the fingerprint field will appear in the last piece of data in the returned result. After specifying this field as the content of the fingerprint in the result of the previous query in the next query, the query will return subsequent data. If there is no such field in the last data of the query result, it means that there is no more data.\n */\n fingerprint?: string;\n /**\n * If set to true, only returns confirmed transactions.\n */\n onlyConfirmed?: boolean;\n /**\n * If set to true, only returns unconfirmed transactions.\n */\n onlyUnconfirmed?: boolean;\n /**\n * Specify the query order, whether to query forward or backward from the sinceTimestamp.\n * The value can be 'block_timestamp,desc' for time sequence or 'block_timestamp,asc' for the reverse.\n * Default is 'block_timestamp,desc'.\n */\n orderBy?: 'block_timestamp,desc' | 'block_timestamp,asc';\n /**\n * Specifies the starting timestamp of the query, in milliseconds, default value is the current time.\n */\n minBlockTimestamp?: number;\n /**\n * Specifies the ending timestamp of the query, in milliseconds.\n */\n maxBlockTimestamp?: number;\n}\n\nexport interface EventResponse {\n success: boolean;\n error?: string;\n data?: {\n block_number: number;\n block_timestamp: number;\n caller_contract_address: string;\n contract_address: string;\n event_index: number;\n event_name: string;\n result: Record;\n result_type: Record;\n event: string;\n transaction_id: string;\n _unconfirmed: boolean;\n }[];\n meta?: {\n at: number;\n fingerprint?: string;\n links?: {\n next: string;\n };\n page_size: number;\n };\n}\n\nexport class Event {\n private tronWeb: TronWeb;\n\n constructor(tronWeb: TronWeb) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n }\n\n setServer(eventServer: NodeProvider, healthcheck = 'healthcheck') {\n if (!eventServer) return (this.tronWeb.eventServer = undefined);\n\n if (utils.isString(eventServer)) eventServer = new HttpProvider(eventServer);\n\n if (!this.tronWeb.isValidProvider(eventServer)) throw new Error('Invalid event server provided');\n\n this.tronWeb.eventServer = eventServer;\n this.tronWeb.eventServer.isConnected = () =>\n this.tronWeb\n .eventServer!.request(healthcheck)\n .then(() => true)\n .catch(() => false);\n }\n\n async getEventsByContractAddress(contractAddress: string, options: GetEventResultOptions = {}) {\n const newOptions = Object.assign(\n {\n limit: 20,\n },\n options\n );\n const {\n eventName,\n blockNumber,\n onlyUnconfirmed,\n onlyConfirmed,\n minBlockTimestamp,\n maxBlockTimestamp,\n orderBy,\n fingerprint,\n } = newOptions;\n let { limit } = newOptions;\n\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n if (!this.tronWeb.isAddress(contractAddress)) {\n throw new Error('Invalid contract address provided');\n }\n\n if (typeof minBlockTimestamp !== 'undefined' && !utils.isInteger(minBlockTimestamp)) {\n throw new Error('Invalid minBlockTimestamp provided');\n }\n\n if (typeof maxBlockTimestamp !== 'undefined' && !utils.isInteger(maxBlockTimestamp)) {\n throw new Error('Invalid maxBlockTimestamp provided');\n }\n\n if (utils.isInteger(limit) && limit > 200) {\n console.warn('Defaulting to maximum accepted limit: 200');\n limit = 200;\n }\n\n const qs = {} as any;\n\n if (eventName) qs.event_name = eventName;\n if (blockNumber) qs.block_number = blockNumber;\n if (typeof onlyUnconfirmed === 'boolean') qs.only_unconfirmed = onlyUnconfirmed;\n if (typeof onlyConfirmed === 'boolean') qs.only_confirmed = onlyConfirmed;\n if (minBlockTimestamp) qs.min_block_timestamp = minBlockTimestamp;\n if (maxBlockTimestamp) qs.max_block_timestamp = maxBlockTimestamp;\n if (orderBy) qs.order_by = orderBy;\n if (fingerprint) qs.fingerprint = fingerprint;\n if (utils.isInteger(limit)) qs.limit = limit;\n\n const res = await this.tronWeb.eventServer.request(\n `v1/contracts/${this.tronWeb.address.fromHex(contractAddress)}/events?${new URLSearchParams(qs).toString()}`\n );\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n }\n\n async getEventsByTransactionID(\n transactionID: string,\n options: {\n only_unconfirmed?: boolean;\n only_confirmed?: boolean;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_unconfirmed === 'boolean') {\n qs.only_unconfirmed = options.only_unconfirmed;\n }\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n return this.tronWeb.eventServer\n .request(`v1/transactions/${transactionID}/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(JSON.parse(res.error!).message);\n });\n }\n\n async getEventsByBlockNumber(\n blockNumber: number | string,\n options: {\n only_confirmed?: boolean;\n limit?: number;\n fingerprint?: string;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n if (options.limit) {\n qs.limit = options.limit;\n }\n\n if (options.fingerprint) {\n qs.fingerprint = options.fingerprint;\n }\n\n return this.tronWeb.eventServer\n .request(`v1/blocks/${blockNumber}/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n });\n }\n\n async getEventsOfLatestBlock(\n options: {\n only_confirmed?: boolean;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n return this.tronWeb.eventServer\n .request(`v1/blocks/latest/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n });\n }\n}\n", "import { HttpProvider, providers } from './lib/providers/index.js';\nimport type { Providers } from './lib/providers/index.js';\nimport utils from './utils/index.js';\nimport { BigNumber } from 'bignumber.js';\nimport EventEmitter from 'eventemitter3';\nimport semver from 'semver';\n\nimport { TransactionBuilder } from './lib/TransactionBuilder/TransactionBuilder.js';\nimport { Trx } from './lib/trx.js';\nimport { Contract } from './lib/contract/index.js';\nimport { Plugin } from './lib/plugin.js';\nimport { Event } from './lib/event.js';\nimport { keccak256 } from './utils/ethersUtils.js';\nimport { fromHex, fromPrivateKey, isAddress, toHex, toChecksumAddress, isChecksumAddress } from './utils/address.js';\nimport { HeadersType } from './types/Providers.js';\nimport { isString } from './utils/validations.js';\nimport { DefaultAddress, NodeProvider, TronWebOptions, IBigNumber } from './types/TronWeb.js';\nimport { ContractAbiInterface } from './types/ABI.js';\nimport { Address } from './types/Trx.js';\n\nconst DEFAULT_VERSION = '4.7.1';\n\nconst FEE_LIMIT = 150000000;\n\nconst version = '6.0.0';\n\nfunction isValidOptions(options: unknown): options is TronWebOptions {\n return (\n !!options &&\n typeof options === 'object' &&\n (!!(options as TronWebOptions).fullNode || !!(options as TronWebOptions).fullHost)\n );\n}\n\nexport class TronWeb extends EventEmitter {\n providers: Providers;\n BigNumber: typeof BigNumber;\n transactionBuilder: TransactionBuilder;\n trx: Trx;\n plugin: Plugin;\n event: Event;\n version: typeof TronWeb.version;\n static version = version;\n utils: typeof utils;\n\n defaultBlock: number | false | 'earliest' | 'latest';\n defaultPrivateKey: string | false;\n defaultAddress: DefaultAddress;\n fullnodeVersion: string;\n feeLimit: number;\n\n fullNode!: HttpProvider;\n solidityNode!: HttpProvider;\n eventServer?: HttpProvider;\n\n constructor(options: TronWebOptions);\n constructor(fullNode: NodeProvider, solidityNode: NodeProvider, eventServer?: NodeProvider, privateKey?: string);\n /* prettier-ignore */\n constructor(fullNode: NodeProvider, solidityNode: NodeProvider, eventServer: NodeProvider, privateKey?: string);\n constructor(\n options: TronWebOptions | NodeProvider,\n solidityNode: NodeProvider = '',\n eventServer?: NodeProvider,\n privateKey = ''\n ) {\n super();\n\n let fullNode;\n let headers: HeadersType | false = false;\n let eventHeaders: HeadersType | false = false;\n\n if (isValidOptions(options)) {\n fullNode = options.fullNode || options.fullHost;\n solidityNode = (options.solidityNode || options.fullHost)!;\n eventServer = (options.eventServer || options.fullHost)!;\n headers = options.headers || false;\n eventHeaders = options.eventHeaders || headers;\n privateKey = options.privateKey!;\n } else {\n fullNode = options;\n }\n if (utils.isString(fullNode)) fullNode = new providers.HttpProvider(fullNode);\n\n if (utils.isString(solidityNode)) solidityNode = new providers.HttpProvider(solidityNode);\n\n if (utils.isString(eventServer)) eventServer = new providers.HttpProvider(eventServer);\n\n this.event = new Event(this);\n this.transactionBuilder = new TransactionBuilder(this);\n this.trx = new Trx(this);\n this.plugin = new Plugin(this, {\n disablePlugins: isValidOptions(options) ? options.disablePlugins : false,\n });\n this.utils = utils;\n\n this.setFullNode(fullNode as HttpProvider);\n this.setSolidityNode(solidityNode as HttpProvider);\n this.setEventServer(eventServer!);\n\n this.providers = providers;\n this.BigNumber = BigNumber;\n\n this.defaultBlock = false;\n this.defaultPrivateKey = false;\n this.defaultAddress = {\n hex: false,\n base58: false,\n };\n\n this.version = TronWeb.version;\n this.sha3 = TronWeb.sha3;\n this.fromUtf8 = TronWeb.fromUtf8;\n this.address = TronWeb.address;\n this.toAscii = TronWeb.toAscii;\n this.toUtf8 = TronWeb.toUtf8;\n this.isAddress = TronWeb.isAddress;\n this.fromAscii = TronWeb.fromAscii;\n this.toHex = TronWeb.toHex;\n this.toBigNumber = TronWeb.toBigNumber;\n this.toDecimal = TronWeb.toDecimal;\n this.fromDecimal = TronWeb.fromDecimal;\n this.toSun = TronWeb.toSun;\n this.fromSun = TronWeb.fromSun;\n this.createAccount = TronWeb.createAccount;\n this.createRandom = TronWeb.createRandom;\n this.fromMnemonic = TronWeb.fromMnemonic;\n\n if (privateKey) this.setPrivateKey(privateKey);\n this.fullnodeVersion = DEFAULT_VERSION;\n this.feeLimit = FEE_LIMIT;\n\n if (headers) {\n this.setFullNodeHeader(headers);\n }\n\n if (eventHeaders) {\n this.setEventHeader(eventHeaders);\n }\n }\n\n async getFullnodeVersion() {\n try {\n const nodeInfo = await this.trx.getNodeInfo();\n this.fullnodeVersion = nodeInfo.configNodeInfo.codeVersion;\n if (this.fullnodeVersion.split('.').length === 2) {\n this.fullnodeVersion += '.0';\n }\n } catch (err) {\n this.fullnodeVersion = DEFAULT_VERSION;\n }\n }\n\n setDefaultBlock(blockID: false | 'latest' | 'earliest' | number = false) {\n if ([false, 'latest', 'earliest', 0].includes(blockID)) {\n return (this.defaultBlock = blockID);\n }\n\n if (!utils.isInteger(blockID) || !blockID) throw new Error('Invalid block ID provided');\n\n return (this.defaultBlock = Math.abs(blockID));\n }\n\n setPrivateKey(privateKey: string) {\n try {\n this.setAddress(TronWeb.address.fromPrivateKey(privateKey) as string);\n } catch {\n throw new Error('Invalid private key provided');\n }\n\n this.defaultPrivateKey = privateKey;\n this.emit('privateKeyChanged', privateKey);\n }\n\n setAddress(address: string) {\n if (!TronWeb.isAddress(address)) throw new Error('Invalid address provided');\n\n const hex = TronWeb.address.toHex(address);\n const base58 = TronWeb.address.fromHex(address);\n\n if (this.defaultPrivateKey && TronWeb.address.fromPrivateKey(this.defaultPrivateKey) !== base58)\n this.defaultPrivateKey = false;\n\n this.defaultAddress = {\n hex,\n base58,\n };\n\n this.emit('addressChanged', { hex, base58 });\n }\n\n fullnodeSatisfies(version: string) {\n return semver.satisfies(this.fullnodeVersion, version);\n }\n\n isValidProvider(provider: unknown) {\n return Object.values(providers).some((knownProvider) => provider instanceof knownProvider);\n }\n\n setFullNode(fullNode: HttpProvider | string) {\n if (isString(fullNode)) fullNode = new providers.HttpProvider(fullNode);\n\n if (!this.isValidProvider(fullNode)) throw new Error('Invalid full node provided');\n\n this.fullNode = fullNode;\n this.fullNode.setStatusPage('wallet/getnowblock');\n }\n\n setSolidityNode(solidityNode: HttpProvider | string) {\n if (utils.isString(solidityNode)) solidityNode = new providers.HttpProvider(solidityNode);\n\n if (!this.isValidProvider(solidityNode)) throw new Error('Invalid solidity node provided');\n\n this.solidityNode = solidityNode;\n this.solidityNode.setStatusPage('walletsolidity/getnowblock');\n }\n\n setEventServer(eventServer: NodeProvider, healthcheck?: string) {\n this.event.setServer(eventServer, healthcheck);\n }\n\n setHeader(headers = {}) {\n const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, '', '', headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, '', '', headers);\n const eventServer = new providers.HttpProvider(this.eventServer!.host, 30000, '', '', headers);\n\n this.setFullNode(fullNode);\n this.setSolidityNode(solidityNode);\n this.setEventServer(eventServer);\n }\n\n setFullNodeHeader(headers = {}) {\n const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, '', '', headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, '', '', headers);\n\n this.setFullNode(fullNode);\n this.setSolidityNode(solidityNode);\n }\n\n setEventHeader(headers = {}) {\n const eventServer = new providers.HttpProvider(this.eventServer!.host, 30000, '', '', headers);\n this.setEventServer(eventServer);\n }\n\n currentProviders() {\n return {\n fullNode: this.fullNode,\n solidityNode: this.solidityNode,\n eventServer: this.eventServer,\n };\n }\n\n currentProvider() {\n return this.currentProviders();\n }\n\n getEventResult(...params: Parameters): ReturnType {\n return this.event.getEventsByContractAddress(...params);\n }\n\n getEventByTransactionID(\n ...params: Parameters\n ): ReturnType {\n return this.event.getEventsByTransactionID(...params);\n }\n\n contract(abi: ContractAbiInterface = [], address?: Address) {\n return new Contract(this, abi, address!);\n }\n\n address: typeof TronWeb.address;\n static get address() {\n return {\n fromHex(address: string) {\n return fromHex(address);\n },\n toHex(address: string) {\n return toHex(address);\n },\n toChecksumAddress(address: string) {\n return toChecksumAddress(address);\n },\n isChecksumAddress(address: string) {\n return isChecksumAddress(address);\n },\n fromPrivateKey(privateKey: string, strict = false) {\n return fromPrivateKey(privateKey, strict);\n },\n };\n }\n\n sha3: typeof TronWeb.sha3;\n static sha3(string: string, prefix = true) {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n }\n\n toHex: typeof TronWeb.toHex;\n static toHex(val: string | number | boolean | Record | unknown[] | IBigNumber) {\n if (utils.isBoolean(val)) return TronWeb.fromDecimal(+val);\n\n if (utils.isBigNumber(val)) return TronWeb.fromDecimal(val);\n\n if (typeof val === 'object') return TronWeb.fromUtf8(JSON.stringify(val));\n\n if (utils.isString(val)) {\n if (/^(-|)0x/.test(val)) return val;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (!isFinite(val) || /^\\s*$/.test(val)) return TronWeb.fromUtf8(val);\n }\n\n const result = TronWeb.fromDecimal(val as number);\n if (result === '0xNaN') {\n throw new Error('The passed value is not convertible to a hex string');\n } else {\n return result;\n }\n }\n\n toUtf8: typeof TronWeb.toUtf8;\n static toUtf8(hex: string) {\n if (utils.isHex(hex)) {\n hex = hex.replace(/^0x/, '');\n return Buffer.from(hex, 'hex').toString('utf8');\n } else {\n throw new Error('The passed value is not a valid hex string');\n }\n }\n\n fromUtf8: typeof TronWeb.fromUtf8;\n static fromUtf8(string: string) {\n if (!utils.isString(string)) {\n throw new Error('The passed value is not a valid utf-8 string');\n }\n return '0x' + Buffer.from(string, 'utf8').toString('hex');\n }\n\n toAscii: typeof TronWeb.toAscii;\n static toAscii(hex: string) {\n if (utils.isHex(hex)) {\n let str = '';\n let i = 0;\n const l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i += 2) {\n const code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n } else {\n throw new Error('The passed value is not a valid hex string');\n }\n }\n\n fromAscii: typeof TronWeb.fromAscii;\n static fromAscii(string: string, padding?: number) {\n if (!utils.isString(string)) {\n throw new Error('The passed value is not a valid utf-8 string');\n }\n return '0x' + Buffer.from(string, 'ascii').toString('hex').padEnd(padding!, '0');\n }\n\n toDecimal: typeof TronWeb.toDecimal;\n static toDecimal(value: string | number | IBigNumber) {\n return TronWeb.toBigNumber(value).toNumber();\n }\n\n fromDecimal: typeof TronWeb.fromDecimal;\n static fromDecimal(value: number | IBigNumber) {\n const number = TronWeb.toBigNumber(value);\n const result = number.toString(16);\n\n return number.isLessThan(0) ? '-0x' + result.substr(1) : '0x' + result;\n }\n\n fromSun: typeof TronWeb.fromSun;\n static fromSun(sun: number): string | IBigNumber {\n const trx = TronWeb.toBigNumber(sun).div(1_000_000);\n return utils.isBigNumber(sun) ? trx : trx.toString(10);\n }\n\n toSun: typeof TronWeb.toSun;\n static toSun(trx: number): string | IBigNumber {\n const sun = TronWeb.toBigNumber(trx).times(1_000_000);\n return utils.isBigNumber(trx) ? sun : sun.toString(10);\n }\n\n toBigNumber: typeof TronWeb.toBigNumber;\n static toBigNumber(amount: string | number | IBigNumber = 0): IBigNumber {\n if (utils.isBigNumber(amount)) return amount;\n\n if (utils.isString(amount) && /^(-|)0x/.test(amount)) return new BigNumber(amount.replace('0x', ''), 16);\n\n return new BigNumber(amount.toString(10), 10);\n }\n\n isAddress: typeof TronWeb.isAddress;\n static isAddress(address: unknown = ''): boolean {\n return isAddress(address);\n }\n\n createAccount: typeof TronWeb.createAccount;\n static async createAccount() {\n const account = utils.accounts.generateAccount();\n\n return account;\n }\n\n createRandom: typeof TronWeb.createRandom;\n static createRandom(\n ...params: Parameters<(typeof utils)['accounts']['generateRandom']>\n ): ReturnType<(typeof utils)['accounts']['generateRandom']> {\n const account = utils.accounts.generateRandom(...params);\n\n return account;\n }\n\n fromMnemonic: typeof TronWeb.fromMnemonic;\n static fromMnemonic(\n ...params: Parameters<(typeof utils)['accounts']['generateAccountWithMnemonic']>\n ): ReturnType<(typeof utils)['accounts']['generateAccountWithMnemonic']> {\n const account = utils.accounts.generateAccountWithMnemonic(...params);\n\n return account;\n }\n\n async isConnected() {\n return {\n fullNode: await this.fullNode.isConnected(),\n solidityNode: await this.solidityNode.isConnected(),\n eventServer: this.eventServer && (await this.eventServer.isConnected()),\n };\n }\n}\nexport default TronWeb;\n", "import { TronWeb } from '../tronweb.js';\nimport {\n keccak256,\n recoverAddress,\n concat,\n defineProperties,\n getBigInt,\n getBytes,\n hexlify,\n isHexString,\n mask,\n toBeHex,\n toQuantity,\n toTwos,\n zeroPadValue,\n assertArgument,\n id,\n} from 'ethers';\nimport type { BigNumberish, BytesLike, SignatureLike } from 'ethers';\n\nimport { ADDRESS_PREFIX_REGEX } from './address.js';\n\nfunction getAddress(address: string) {\n return TronWeb.address.toHex(address).replace(ADDRESS_PREFIX_REGEX, '0x');\n}\nfunction getTronAddress(address: string) {\n return TronWeb.address.toHex(address);\n}\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst BN__1 = BigInt(-1);\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\n\n// @TODO: in v7, verifyingContract should be an AddressLike and use resolveAddress\n\n/**\n * The domain for an [[link-eip-712]] payload.\n */\nexport interface TypedDataDomain {\n /**\n * The human-readable name of the signing domain.\n */\n name?: null | string;\n\n /**\n * The major version of the signing domain.\n */\n version?: null | string;\n\n /**\n * The chain ID of the signing domain.\n */\n chainId?: null | BigNumberish;\n\n /**\n * The the address of the contract that will verify the signature.\n */\n verifyingContract?: null | string;\n\n /**\n * A salt used for purposes decided by the specific domain.\n */\n salt?: null | BytesLike;\n}\n\n/**\n * A specific field of a structured [[link-eip-712]] type.\n */\nexport interface TypedDataField {\n /**\n * The field name.\n */\n name: string;\n\n /**\n * The type of the field.\n */\n type: string;\n}\n\nfunction hexPadRight(value: BytesLike): string {\n const bytes = getBytes(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return concat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = toBeHex(BN_1, 32);\nconst hexFalse = toBeHex(BN_0, 32);\n\nconst domainFieldTypes: Record = {\n name: 'string',\n version: 'string',\n chainId: 'uint256',\n verifyingContract: 'address',\n salt: 'bytes32',\n};\n\nconst domainFieldNames: Array = ['name', 'version', 'chainId', 'verifyingContract', 'salt'];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any) {\n assertArgument(typeof value === 'string', `invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n return value;\n };\n}\n\nconst domainChecks: Record any> = {\n name: checkString('name'),\n version: checkString('version'),\n chainId: function (_value: any) {\n const value = getBigInt(_value, 'domain.chainId');\n assertArgument(value >= 0, 'invalid chain ID', 'domain.chainId', _value);\n if (Number.isSafeInteger(value)) {\n return Number(value);\n }\n return toQuantity(value);\n },\n verifyingContract: function (value: any) {\n try {\n return getTronAddress(value).toLowerCase();\n } catch (error) {\n //\n }\n assertArgument(false, `invalid domain value \"verifyingContract\"`, 'domain.verifyingContract', value);\n },\n salt: function (value: any) {\n const bytes = getBytes(value, 'domain.salt');\n assertArgument(bytes.length === 32, `invalid domain value \"salt\"`, 'domain.salt', value);\n return hexlify(bytes);\n },\n};\n\nfunction getBaseEncoder(type: string): null | ((value: any) => string) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = match[1] === '';\n\n const width = parseInt(match[2] || '256');\n assertArgument(\n width % 8 === 0 && width !== 0 && width <= 256 && (match[2] == null || match[2] === String(width)),\n 'invalid numeric width',\n 'type',\n type\n );\n\n const boundsUpper = mask(BN_MAX_UINT256, signed ? width - 1 : width);\n const boundsLower = signed ? (boundsUpper + BN_1) * BN__1 : BN_0;\n\n return function (_value: BigNumberish) {\n const value = getBigInt(_value, 'value');\n\n assertArgument(value >= boundsLower && value <= boundsUpper, `value out-of-bounds for ${type}`, 'value', value);\n\n return toBeHex(signed ? toTwos(value, 256) : value, 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n assertArgument(width !== 0 && width <= 32 && match[1] === String(width), 'invalid bytes width', 'type', type);\n\n return function (value: BytesLike) {\n const bytes = getBytes(value);\n assertArgument(bytes.length === width, `invalid length for ${type}`, 'value', value);\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case 'trcToken':\n return getBaseEncoder('uint256');\n case 'address':\n return function (value: string) {\n return zeroPadValue(getAddress(value), 32);\n };\n case 'bool':\n return function (value: boolean) {\n return !value ? hexFalse : hexTrue;\n };\n case 'bytes':\n return function (value: BytesLike) {\n return keccak256(value);\n };\n case 'string':\n return function (value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${name}(${fields.map(({ name, type }) => type + ' ' + name).join(',')})`;\n}\n\n/**\n * A **TypedDataEncode** prepares and encodes [[link-eip-712]] payloads\n * for signed typed data.\n *\n * This is useful for those that wish to compute various components of a\n * typed data hash, primary types, or sub-components, but generally the\n * higher level [[Signer-signTypedData]] is more useful.\n */\nexport class TypedDataEncoder {\n /**\n * The primary type for the structured [[types]].\n *\n * This is derived automatically from the [[types]], since no\n * recursion is possible, once the DAG for the types is consturcted\n * internally, the primary type must be the only remaining type with\n * no parent nodes.\n */\n readonly primaryType!: string;\n\n readonly #types: string;\n\n /**\n * The types.\n */\n get types(): Record> {\n return JSON.parse(this.#types);\n }\n\n readonly #fullTypes: Map;\n\n readonly #encoderCache: Map string>;\n\n /**\n * Create a new **TypedDataEncoder** for %%types%%.\n *\n * This performs all necessary checking that types are valid and\n * do not violate the [[link-eip-712]] structural constraints as\n * well as computes the [[primaryType]].\n */\n constructor(types: Record>) {\n this.#types = JSON.stringify(types);\n this.#fullTypes = new Map();\n this.#encoderCache = new Map();\n\n // Link struct types to their direct child structs\n const links: Map> = new Map();\n\n // Link structs to structs which contain them as a child\n const parents: Map> = new Map();\n\n // Link all subtypes within a given struct\n const subtypes: Map> = new Map();\n\n Object.keys(types).forEach((type) => {\n links.set(type, new Set());\n parents.set(type, []);\n subtypes.set(type, new Set());\n });\n\n for (const name in types) {\n const uniqueNames: Set = new Set();\n\n for (const field of types[name]) {\n // Check each field has a unique name\n assertArgument(\n !uniqueNames.has(field.name),\n `duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`,\n 'types',\n types\n );\n uniqueNames.add(field.name);\n\n // Get the base type (drop any array specifiers)\n const baseType = (field.type.match(/^([^\\x5b]*)(\\x5b|$)/))[1] || null;\n assertArgument(baseType !== name, `circular type reference to ${JSON.stringify(baseType)}`, 'types', types);\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n continue;\n }\n\n assertArgument(parents.has(baseType), `unknown type ${JSON.stringify(baseType)}`, 'types', types);\n\n // Add linkage\n (parents.get(baseType) as Array).push(name);\n (links.get(name) as Set).add(baseType);\n }\n }\n\n // Deduce the primary type\n const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n) as Array).length === 0);\n assertArgument(primaryTypes.length !== 0, 'missing primary type', 'types', types);\n assertArgument(\n primaryTypes.length === 1,\n `ambiguous primary types or unused types: ${primaryTypes.map((t) => JSON.stringify(t)).join(', ')}`,\n 'types',\n types\n );\n\n defineProperties(this, { primaryType: primaryTypes[0] });\n\n // Check for circular type references\n function checkCircular(type: string, found: Set) {\n assertArgument(!found.has(type), `circular type reference to ${JSON.stringify(type)}`, 'types', types);\n\n found.add(type);\n\n for (const child of links.get(type) as Set) {\n if (!parents.has(child)) {\n continue;\n }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n for (const subtype of found) {\n (subtypes.get(subtype) as Set).add(child);\n }\n }\n\n found.delete(type);\n }\n checkCircular(this.primaryType, new Set());\n\n // Compute each fully describe type\n for (const [name, set] of subtypes) {\n const st = Array.from(set);\n st.sort();\n this.#fullTypes.set(name, encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(''));\n }\n }\n\n /**\n * Returnthe encoder for the specific %%type%%.\n */\n getEncoder(type: string): (value: any) => string {\n let encoder = this.#encoderCache.get(type);\n if (!encoder) {\n encoder = this.#getEncoder(type);\n this.#encoderCache.set(type, encoder);\n }\n return encoder;\n }\n\n #getEncoder(type: string): (value: any) => string {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n return (value: Array) => {\n assertArgument(\n !match[3] || parseInt(match[3]) === value.length,\n `array length mismatch; expected length ${parseInt(match[3])}`,\n 'value',\n value\n );\n\n let result = value.map(subEncoder);\n if (this.#fullTypes.has(subtype)) {\n result = result.map(keccak256);\n }\n\n return keccak256(concat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this.#fullTypes.get(type) as string);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this.#fullTypes.has(type)) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return concat(values);\n };\n }\n\n assertArgument(false, `unknown type: ${type}`, 'type', type);\n }\n\n /**\n * Return the full type for %%name%%.\n */\n encodeType(name: string): string {\n const result = this.#fullTypes.get(name);\n assertArgument(result, `unknown type: ${JSON.stringify(name)}`, 'name', name);\n return result!;\n }\n\n /**\n * Return the encoded %%value%% for the %%type%%.\n */\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n /**\n * Returns the hash of %%value%% for the type of %%name%%.\n */\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n /**\n * Return the fulled encoded %%value%% for the [[types]].\n */\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n /**\n * Return the hash of the fully encoded %%value%% for the [[types]].\n */\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n /**\n * @_ignore:\n */\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n assertArgument(\n !match[3] || parseInt(match[3]) === value.length,\n `array length mismatch; expected length ${parseInt(match[3])}`,\n 'value',\n value\n );\n return value.map((v: any) => this._visit(match[1], v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n assertArgument(false, `unknown type: ${type}`, 'type', type);\n }\n\n /**\n * Call %%calback%% for each value in %%value%%, passing the type and\n * component within %%value%%.\n *\n * This is useful for replacing addresses or other transformation that\n * may be desired on each component, based on its type.\n */\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n /**\n * Create a new **TypedDataEncoder** for %%types%%.\n */\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n /**\n * Return the primary type for %%types%%.\n */\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n /**\n * Return the hashed struct for %%value%% using %%types%% and %%name%%.\n */\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n /**\n * Return the domain hash for %%domain%%.\n */\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [];\n for (const name in domain) {\n if ((>domain)[name] == null) {\n continue;\n }\n const type = domainFieldTypes[name];\n assertArgument(type, `invalid typed-data domain key: ${JSON.stringify(name)}`, 'domain', domain);\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct('EIP712Domain', { EIP712Domain: domainFields }, domain);\n }\n\n /**\n * Return the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%.\n */\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return concat(['0x1901', TypedDataEncoder.hashDomain(domain), TypedDataEncoder.from(types).hash(value)]);\n }\n\n /**\n * Return the hash of the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%.\n */\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n /**\n * Resolves to the value from resolving all addresses in %%value%% for\n * %%types%% and the %%domain%%.\n */\n static async resolveNames(\n domain: TypedDataDomain,\n types: Record>,\n value: Record,\n resolveName: (name: string) => Promise\n ): Promise<{ domain: TypedDataDomain; value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = Object.assign({}, domain);\n\n // Allow passing null to ignore value\n for (const key in domain) {\n if ((>domain)[key] == null) {\n delete (>domain)[key];\n }\n }\n\n // Look up all ENS names\n const ensCache: Record = {};\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = '0x';\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === 'address' && !isHexString(value, 20)) {\n ensCache[value] = '0x';\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === 'address' && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n\n return { domain, value };\n }\n\n /**\n * Returns the JSON-encoded payload expected by nodes which implement\n * the JSON-RPC [[link-eip-712]] method.\n */\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = {};\n const domainTypes: Array<{ name: string; type: string }> = [];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = Object.assign({}, types);\n assertArgument(\n typesWithDomain.EIP712Domain == null,\n 'types must not contain EIP712Domain type',\n 'types.EIP712Domain',\n types\n );\n\n typesWithDomain.EIP712Domain = domainTypes;\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(getBytes(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return getBigInt(value).toString();\n }\n\n switch (type) {\n case 'trcToken':\n return getBigInt(value).toString();\n case 'address':\n return value.toLowerCase();\n case 'bool':\n return !!value;\n case 'string':\n assertArgument(typeof value === 'string', 'invalid string', 'value', value);\n return value;\n }\n\n assertArgument(false, 'unsupported type', 'type', type);\n }),\n };\n }\n}\n\n/**\n * Compute the address used to sign the typed data for the %%signature%%.\n */\nexport function verifyTypedData(\n domain: TypedDataDomain,\n types: Record>,\n value: Record,\n signature: SignatureLike\n): string {\n return recoverAddress(TypedDataEncoder.hash(domain, types, value), signature);\n}\n", null, "import { ADDRESS_PREFIX, ADDRESS_PREFIX_BYTE, ADDRESS_SIZE } from './address.js';\nimport { base64EncodeToString, base64DecodeFromString, hexStr2byteArray } from './code.js';\nimport { encode58, decode58 } from './base58.js';\nimport { byte2hexStr, byteArray2hexStr } from './bytes.js';\nimport { keccak256, sha256, SigningKey, recoverAddress, arrayify, Signature } from './ethersUtils.js';\nimport { TypedDataEncoder } from './typedData.js';\nimport { secp256k1 as secp } from 'ethereum-cryptography/secp256k1';\nimport type { TypedDataDomain, TypedDataField } from 'ethers';\nimport { SignedTransaction } from '../types/Transaction.js';\n\nimport type { BytesLike } from '../types/UtilsTypes.js';\n\nfunction normalizePrivateKeyBytes(priKeyBytes: BytesLike) {\n return hexStr2byteArray(byteArray2hexStr(priKeyBytes).padStart(64, '0'));\n}\n\nexport function getBase58CheckAddress(addressBytes: number[]) {\n const hash0 = SHA256(addressBytes);\n const hash1 = SHA256(hash0);\n\n let checkSum = hash1.slice(0, 4);\n checkSum = addressBytes.concat(checkSum);\n\n return encode58(checkSum);\n}\n\nexport function decodeBase58Address(base58Sting: string) {\n if (typeof base58Sting != 'string') return false;\n\n if (base58Sting.length <= 4) return false;\n\n let address = decode58(base58Sting);\n\n if (base58Sting.length <= 4) return false;\n\n const len = address.length;\n const offset = len - 4;\n const checkSum = address.slice(offset);\n\n address = address.slice(0, offset);\n\n const hash0 = SHA256(address);\n const hash1 = SHA256(hash0);\n const checkSum1 = hash1.slice(0, 4);\n\n if (\n checkSum[0] == checkSum1[0] &&\n checkSum[1] == checkSum1[1] &&\n checkSum[2] == checkSum1[2] &&\n checkSum[3] == checkSum1[3]\n ) {\n return address;\n }\n\n throw new Error('Invalid address provided');\n}\n\n// @TODO transaction type should be determined.\nexport function signTransaction(priKeyBytes: string | BytesLike, transaction: any): SignedTransaction {\n if (typeof priKeyBytes === 'string') priKeyBytes = hexStr2byteArray(priKeyBytes);\n\n const txID = transaction.txID;\n const signature = ECKeySign(hexStr2byteArray(txID), priKeyBytes);\n\n if (Array.isArray(transaction.signature)) {\n if (!transaction.signature.includes(signature)) transaction.signature.push(signature);\n } else transaction.signature = [signature];\n return transaction;\n}\n\nexport function ecRecover(signedData: string, signature: string) {\n signedData = '0x' + signedData.replace(/^0x/, '');\n signature = '0x' + signature.replace(/^0x/, '');\n\n const recovered = recoverAddress(arrayify(signedData), Signature.from(signature));\n const tronAddress = ADDRESS_PREFIX + recovered.substring(2);\n return tronAddress;\n}\n\nexport function arrayToBase64String(a: number[]) {\n return btoa(String.fromCharCode(...a));\n}\n\nexport function signBytes(privateKey: string | BytesLike, contents: BytesLike) {\n if (typeof privateKey === 'string') privateKey = hexStr2byteArray(privateKey);\n\n const hashBytes = SHA256(contents);\n const signBytes = ECKeySign(hashBytes, privateKey);\n\n return signBytes;\n}\n\nexport function _signTypedData(\n domain: TypedDataDomain,\n types: Record>,\n value: Record,\n privateKey: string\n) {\n const key = `0x${privateKey.replace(/^0x/, '')}`;\n const signingKey = new SigningKey(key);\n\n const messageDigest = TypedDataEncoder.hash(domain, types, value);\n const signature = signingKey.sign(messageDigest);\n const signatureHex = ['0x', signature.r.substring(2), signature.s.substring(2), Number(signature.v).toString(16)].join('');\n return signatureHex;\n}\n\nexport function getRowBytesFromTransactionBase64(base64Data: string): Uint8Array {\n const bytesDecode = base64DecodeFromString(base64Data);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const transaction = globalThis.proto.protocol.Transaction.deserializeBinary(bytesDecode);\n const raw = transaction.getRawData();\n\n return raw.serializeBinary();\n}\n\nexport function genPriKey() {\n const priKey = secp.utils.randomPrivateKey();\n let priKeyHex = byteArray2hexStr(priKey);\n\n priKeyHex = priKeyHex.padStart(64, '0');\n\n return hexStr2byteArray(priKeyHex);\n}\n\nexport function computeAddress(pubBytes: BytesLike) {\n if (pubBytes.length === 65) pubBytes = pubBytes.slice(1);\n\n const hash = keccak256(new Uint8Array(pubBytes)).toString().substring(2);\n const addressHex = ADDRESS_PREFIX + hash.substring(24);\n\n return hexStr2byteArray(addressHex);\n}\n\nexport function getAddressFromPriKey(priKeyBytes: BytesLike) {\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n return computeAddress(pubBytes);\n}\n\nexport function decode58Check(addressStr: string) {\n const decodeCheck = decode58(addressStr);\n\n if (decodeCheck.length <= 4) return false;\n\n const decodeData = decodeCheck.slice(0, decodeCheck.length - 4);\n const hash0 = SHA256(decodeData);\n const hash1 = SHA256(hash0);\n\n if (\n hash1[0] === decodeCheck[decodeData.length] &&\n hash1[1] === decodeCheck[decodeData.length + 1] &&\n hash1[2] === decodeCheck[decodeData.length + 2] &&\n hash1[3] === decodeCheck[decodeData.length + 3]\n ) {\n return decodeData;\n }\n\n return false;\n}\n\nexport function isAddressValid(base58Str: string) {\n if (typeof base58Str !== 'string') return false;\n\n if (base58Str.length !== ADDRESS_SIZE) return false;\n\n let address = decode58(base58Str);\n\n if (address.length !== 25) return false;\n\n if (address[0] !== ADDRESS_PREFIX_BYTE) return false;\n\n const checkSum = address.slice(21);\n address = address.slice(0, 21);\n\n const hash0 = SHA256(address);\n const hash1 = SHA256(hash0);\n const checkSum1 = hash1.slice(0, 4);\n\n if (\n checkSum[0] == checkSum1[0] &&\n checkSum[1] == checkSum1[1] &&\n checkSum[2] == checkSum1[2] &&\n checkSum[3] == checkSum1[3]\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function getBase58CheckAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n\n return getBase58CheckAddress(addressBytes);\n}\n\nexport function getHexStrAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n const addressHex = byteArray2hexStr(addressBytes);\n\n return addressHex;\n}\n\nexport function getAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n const addressBase64 = base64EncodeToString(addressBytes);\n\n return addressBase64;\n}\n\nexport function getPubKeyFromPriKey(priKeyBytes: BytesLike) {\n const pubkey = secp.ProjectivePoint.fromPrivateKey(new Uint8Array(normalizePrivateKeyBytes(priKeyBytes)));\n const x = pubkey.x;\n const y = pubkey.y;\n\n const xHex = x.toString(16).padStart(64, '0');\n const yHex = y.toString(16).padStart(64, '0');\n\n const pubkeyHex = `04${xHex}${yHex}`;\n const pubkeyBytes = hexStr2byteArray(pubkeyHex);\n\n return pubkeyBytes;\n}\n\nexport function ECKeySign(hashBytes: BytesLike, priKeyBytes: BytesLike) {\n const signature = secp.sign(byteArray2hexStr(hashBytes), byteArray2hexStr(priKeyBytes));\n\n const r = signature.r.toString(16);\n const s = signature.s.toString(16);\n const v = signature.recovery! + 27;\n\n return r.padStart(64, '0') + s.padStart(64, '0') + byte2hexStr(v);\n}\n\nexport function SHA256(msgBytes: BytesLike) {\n const msgHex = byteArray2hexStr(msgBytes);\n const hashHex = sha256('0x' + msgHex).replace(/^0x/, '');\n return hexStr2byteArray(hashHex);\n}\n\nexport function passwordToAddress(password: string) {\n const com_priKeyBytes = base64DecodeFromString(password);\n const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);\n\n return getBase58CheckAddress(com_addressBytes);\n}\n\nexport function pkToAddress(privateKey: string, strict = false) {\n const com_priKeyBytes = hexStr2byteArray(privateKey, strict);\n const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);\n\n return getBase58CheckAddress(com_addressBytes);\n}\n\nexport function sha3(string: string, prefix = true) {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n}\n", "import { byteArray2hexStr } from './bytes.js';\nimport { getBase58CheckAddress, genPriKey, getAddressFromPriKey, getPubKeyFromPriKey, pkToAddress } from './crypto.js';\nimport { ethersHDNodeWallet, Mnemonic, Wordlist } from './ethersUtils.js';\nimport { TRON_BIP39_PATH_INDEX_0 } from './address.js';\n\nconst INVALID_TRON_PATH_ERROR_MSG = 'Invalid tron path provided';\n\nexport function generateAccount() {\n const priKeyBytes = genPriKey();\n const pubKeyBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = getAddressFromPriKey(priKeyBytes);\n\n const privateKey = byteArray2hexStr(priKeyBytes);\n const publicKey = byteArray2hexStr(pubKeyBytes);\n\n return {\n privateKey,\n publicKey,\n address: {\n base58: getBase58CheckAddress(addressBytes),\n hex: byteArray2hexStr(addressBytes),\n },\n };\n}\n\nexport function generateRandom(password = '', path = TRON_BIP39_PATH_INDEX_0, wordlist?: Wordlist) {\n const account = ethersHDNodeWallet.createRandom(password, path, wordlist);\n\n const result = {\n mnemonic: account.mnemonic,\n privateKey: account.privateKey,\n publicKey: account.signingKey.publicKey,\n address: pkToAddress(account.privateKey.replace(/^0x/, '')),\n path: account.path,\n };\n\n return result;\n}\n\nexport function generateAccountWithMnemonic(\n mnemonic: string,\n path: string = TRON_BIP39_PATH_INDEX_0,\n password: string | null | undefined = '',\n wordlist: Wordlist | null = null\n) {\n // eslint-disable-next-line no-useless-escape\n if (!String(path).match(/^m\\/44\\'\\/195\\'/)) {\n throw new Error(INVALID_TRON_PATH_ERROR_MSG);\n }\n const account = ethersHDNodeWallet.fromMnemonic(Mnemonic.fromPhrase(mnemonic, password, wordlist), path);\n\n const result = {\n mnemonic: account.mnemonic,\n privateKey: account.privateKey,\n publicKey: account.signingKey.publicKey,\n address: pkToAddress(account.privateKey.replace(/^0x/, '')),\n };\n\n return result;\n}\n", "import { keccak256, toUtf8Bytes, concat, recoverAddress, SigningKey, joinSignature } from './ethersUtils.js';\nimport { ADDRESS_PREFIX } from './address.js';\nimport { getBase58CheckAddress } from './crypto.js';\nimport { hexStr2byteArray } from './code.js';\n\nexport const TRON_MESSAGE_PREFIX = '\\x19TRON Signed Message:\\n';\n\nexport function hashMessage(message: string | Uint8Array | Array) {\n if (typeof message === 'string') {\n message = toUtf8Bytes(message);\n } else if (Array.isArray(message)) {\n message = new Uint8Array(message);\n }\n\n return keccak256(concat([toUtf8Bytes(TRON_MESSAGE_PREFIX), toUtf8Bytes(String(message.length)), message]));\n}\n\nexport function signMessage(message: string | Uint8Array | Array, privateKey: string) {\n if (!privateKey.match(/^0x/)) {\n privateKey = '0x' + privateKey;\n }\n\n const signingKey = new SigningKey(privateKey);\n const messageDigest = hashMessage(message);\n const signature = signingKey.sign(messageDigest);\n\n return joinSignature(signature);\n}\n\nexport function verifyMessage(message: string | Uint8Array | Array, signature: string) {\n if (!signature.match(/^0x/)) {\n signature = '0x' + signature;\n }\n const recovered = recoverAddress(hashMessage(message), signature);\n const base58Address = getBase58CheckAddress(hexStr2byteArray(recovered.replace(/^0x/, ADDRESS_PREFIX)));\n\n return base58Address;\n}\n", "import * as accounts from './accounts.js';\nimport * as address from './address.js';\nimport * as base58 from './base58.js';\nimport * as bytes from './bytes.js';\nimport * as crypto from './crypto.js';\nimport * as code from './code.js';\nimport * as abi from './abi.js';\nimport * as message from './message.js';\nimport * as ethersUtils from './ethersUtils.js';\nimport { TypedDataEncoder as _TypedDataEncoder } from './typedData.js';\nimport * as transaction from './transaction.js';\n\nimport * as validations from './validations.js';\n\nconst utils = {\n ...validations,\n address,\n code,\n accounts,\n base58,\n bytes,\n crypto,\n abi,\n message,\n _TypedDataEncoder,\n transaction,\n ethersUtils,\n};\nexport default utils;\nexport * from './accounts.js';\nexport * from './address.js';\nexport * from './base58.js';\nexport * from './bytes.js';\nexport * from './crypto.js';\nexport * from './code.js';\nexport * from './abi.js';\nexport * from './message.js';\nexport * from './ethersUtils.js';\nexport * from './typedData.js';\nexport * from './transaction.js';\n\nexport * from './validations.js';\n", "import { AccountType, Permission } from './Contract.js';\nimport { SignedTransaction, Transaction } from './Transaction.js';\nimport { Resource } from './TransactionBuilder.js';\n\ntype HTTPMap = Record[];\n\nexport interface FrozenSupply {\n frozen_amount: number;\n frozen_days: number;\n}\n\nexport interface Token {\n id: string;\n owner_address: string;\n name: string;\n abbr: string;\n total_supply: number;\n frozen_supply: FrozenSupply[];\n trx_num: number;\n precision: number;\n num: number;\n start_time: number;\n end_time: number;\n order: number; // useless\n vote_score: number;\n description: string;\n url: string;\n free_asset_net_limit: number;\n public_free_asset_net_limit: number;\n public_free_asset_net_usage: number;\n public_latest_free_net_time: number;\n}\n\nexport interface Frozen {\n frozen_balance: number;\n expire_time: number;\n}\n\nexport interface Vote {\n vote_address: string;\n vote_count: number;\n}\n\nexport interface AccountResource {\n energy_usage: number;\n frozen_balance_for_energy: Frozen;\n latest_consume_time_for_energy: number;\n acquired_delegated_frozen_balance_for_energy: number;\n delegated_frozen_balance_for_energy: number;\n storage_limit: number;\n storage_usage: number;\n latest_exchange_storage_time: number;\n energy_window_size: number;\n delegated_frozenV2_balance_for_energy: number;\n acquired_delegated_frozenV2_balance_for_energy: number;\n energy_window_optimized: boolean;\n}\n\nexport enum ResourceCode {\n BANDWIDTH = 0x00,\n ENERGY = 0x01,\n TRON_POWER = 0x02,\n}\n\nexport interface FreezeV2 {\n type: Resource;\n amount: number;\n}\nexport interface UnFreezeV2 {\n type: Resource;\n unfreeze_amount: number;\n unfreeze_expire_time: number;\n}\n\nexport interface Account {\n account_name: string;\n type: AccountType;\n address: string;\n balance: number;\n votes: Vote[];\n asset: HTTPMap;\n assetV2: HTTPMap;\n frozen: Frozen[];\n net_usage: number;\n acquired_delegated_frozen_balance_for_bandwidth: number;\n delegated_frozen_balance_for_bandwidth: number;\n old_tron_power: number;\n tron_power: Frozen;\n asset_optimized: boolean;\n create_time: number;\n latest_opration_time: number;\n allowance: number;\n latest_withdraw_time: number;\n code: string;\n is_witness: boolean;\n is_committee: boolean;\n frozen_supply: Frozen;\n asset_issued_name: string;\n asset_issued_ID: string;\n latest_asset_operation_time: HTTPMap;\n latest_asset_operation_timeV2: HTTPMap;\n free_net_usage: number;\n free_asset_net_usage: HTTPMap;\n free_asset_net_usageV2: HTTPMap;\n latest_consume_time: number;\n latest_consume_free_time: number;\n account_id: string;\n net_window_size: number;\n net_window_optimized: number;\n account_resource: AccountResource;\n codeHash: string;\n owner_permission: Permission;\n witness_permission: Permission;\n active_permission: Permission[];\n frozenV2: FreezeV2[];\n unfrozenV2: UnFreezeV2[];\n delegated_frozenV2_balance_for_bandwidth: number;\n acquired_delegated_frozenV2_balance_for_bandwidth: number;\n}\n\nexport interface AccountNetMessage {\n freeNetUsed: number;\n freeNetLimit: number;\n NetUsed: number;\n NetLimit: number;\n assetNetUsed: HTTPMap;\n assetNetLimit: HTTPMap;\n TotalNetLimit: number;\n TotalNetWeight: number;\n}\n\nexport interface Witness {\n address: string;\n voteCount: number;\n pubKey: string;\n url: string;\n totalProduced: number;\n totalMissed: number;\n latestBlockNum: number;\n latestSlotNum: number;\n isJobs: boolean;\n}\n\nenum TransactionSignWeight_response_code {\n ENOUGH_PERMISSION = 'ENOUGH_PERMISSION',\n NOT_ENOUGH_PERMISSION = 'NOT_ENOUGH_PERMISSION', // error in\n SIGNATURE_FORMAT_ERROR = 'SIGNATURE_FORMAT_ERROR',\n COMPUTE_ADDRESS_ERROR = 'COMPUTE_ADDRESS_ERROR',\n PERMISSION_ERROR = 'PERMISSION_ERROR', //The key is not in permission\n OTHER_ERROR = 'OTHER_ERROR',\n}\n\ninterface TransactionSignWeightResult {\n code: TransactionSignWeight_response_code;\n message: string;\n}\n\nexport interface TransactionSignWeight {\n permission: Permission;\n approved_list: string[];\n current_weight: number;\n result: TransactionSignWeightResult;\n transaction: { transaction: Transaction };\n}\n\nenum BroadcastReturn_response_code {\n SUCCESS = 0,\n SIGERROR = 1, // error in signature\n CONTRACT_VALIDATE_ERROR = 2,\n CONTRACT_EXE_ERROR = 3,\n BANDWITH_ERROR = 4,\n DUP_TRANSACTION_ERROR = 5,\n TAPOS_ERROR = 6,\n TOO_BIG_TRANSACTION_ERROR = 7,\n TRANSACTION_EXPIRATION_ERROR = 8,\n SERVER_BUSY = 9,\n NO_CONNECTION = 10,\n NOT_ENOUGH_EFFECTIVE_CONNECTION = 11,\n OTHER_ERROR = 20,\n}\n\nexport interface BroadcastReturn {\n result: boolean;\n code: BroadcastReturn_response_code;\n message: string;\n transaction: T;\n}\n\nexport interface BroadcastHexReturn {\n result: boolean;\n txid: string;\n code: string;\n message: string;\n transaction: string;\n}\n\nexport interface AddressOptions {\n privateKey?: string;\n address?: string;\n}\n\nenum ProposalState {\n PENDING = 0,\n DISAPPROVED = 1,\n APPROVED = 2,\n CANCELED = 3,\n}\n\nexport interface Proposal {\n proposal_id: number;\n proposer_address: string;\n parameters: HTTPMap;\n expiration_time: number;\n create_time: number;\n approvals: string[];\n state: ProposalState;\n}\n\nexport interface ChainParameter {\n key: string;\n value: number;\n}\n\nexport interface AccountResourceMessage {\n freeNetUsed: number;\n freeNetLimit: number;\n NetUsed: number;\n NetLimit: number;\n assetNetUsed: HTTPMap;\n assetNetLimit: HTTPMap;\n TotalNetLimit: number;\n TotalNetWeight: number;\n TotalTronPowerWeight: number;\n tronPowerUsed: number;\n tronPowerLimit: number;\n EnergyUsed: number;\n EnergyLimit: number;\n TotalEnergyLimit: number;\n TotalEnergyWeight: number;\n storageUsed: number;\n storageLimit: number;\n}\n\nexport type Address = string;\n\nexport interface Exchange {\n exchange_id: number;\n creator_address: Address;\n create_time: number;\n first_token_id: string;\n first_token_balance: number;\n second_token_id: string;\n second_token_balance: number;\n}\n\nexport interface TransactionInfo {\n id: string;\n fee: number;\n blockNumber: number;\n blockTimeStamp: number;\n contractResult: string[];\n contract_address: string;\n receipt: {\n energy_usage: number;\n energy_fee: number;\n origin_energy_usage: number;\n energy_usage_total: number;\n net_usage: number;\n net_fee: number;\n result: string;\n energy_penalty_total: number;\n };\n log: {\n address: Address;\n topics: string[];\n data: string;\n }[];\n result?: 'FAILED';\n resMessage: string;\n withdraw_amount: number;\n unfreeze_amount: number;\n withdraw_expire_amount: number;\n cancel_unfreezeV2_amount: HTTPMap;\n exchange_id: string;\n}\n", "import utils from './utils/index.js';\nexport { utils };\n\nimport { BigNumber } from 'bignumber.js';\nexport { BigNumber };\n\nimport { providers } from './lib/providers/index.js';\nexport { providers };\n\nimport { TransactionBuilder } from './lib/TransactionBuilder/TransactionBuilder.js';\nexport { TransactionBuilder };\n\nimport { Trx } from './lib/trx.js';\nexport { Trx };\n\nimport { Contract } from './lib/contract/index.js';\nexport { Contract };\n\nimport { Event } from './lib/event.js';\nexport { Event };\n\nimport { Plugin } from './lib/plugin.js';\nexport { Plugin };\n\nimport { TronWeb } from './tronweb.js';\nexport { TronWeb };\n\nimport * as Types from './types/index.js';\nexport { Types };\n\nexport default {\n utils,\n BigNumber,\n providers,\n TransactionBuilder,\n Trx,\n Contract,\n Event,\n Plugin,\n TronWeb,\n Types,\n};\n" ], "names": [ "root", "factory", "exports", "module", "define", "amd", "self", "aa", "Object", "defineProperties", "defineProperty", "a", "b", "c", "Array", "prototype", "value", "e", "window", "this", "global", "da", "Symbol", "ea", "fa", "configurable", "writable", "toString", "TypeError", "ha", "iterator", "next", "ia", "length", "done", "ca", "split", "d", "f", "ba", "String", "ja", "ka", "g", "execScript", "shift", "k", "call", "splice", "propertyIsEnumerable", "la", "oa", "qa", "forEach", "l", "map", "h", "ra", "arguments", "slice", "sa", "Error", "n", "p", "q", "va", "Function", "displayName", "name", "constructor", "r", "arrClean", "wa", "w", "v", "u", "hasOwnProperty", "push", "key", "xa", "fromCharCode", "apply", "sort", "toArray", "Mc", "m", "toObject", "fromObject", "set", "Jb", "getLength", "clear", "Cb", "del", "Eb", "getEntryList", "entries", "keys", "values", "get", "has", "Jc", "t", "Va", "Ya", "serializeBinary", "deserializeBinary", "bb", "ya", "za", "Aa", "x", "Ba", "Ca", "B", "M", "join", "Da", "Math", "floor", "indexOf", "Uint8Array", "charAt", "La", "test", "Ea", "subarray", "concat", "yb", "ee", "FLOAT", "ke", "te", "je", "xb", "wb", "BOOL", "re", "ie", "le", "ce", "se", "ge", "me", "ne", "oe", "pe", "he", "ve", "ue", "de", "qe", "fe", "y", "z", "Fa", "A", "abs", "Ga", "Ha", "isNaN", "round", "pow", "log", "LN2", "Ia", "C", "charCodeAt", "D", "E", "Ja", "Ka", "Ma", "Na", "NaN", "Infinity", "Oa", "Pa", "F", "G", "Qa", "H", "Ra", "Sa", "Ta", "Ua", "ArrayBuffer", "buffer", "byteOffset", "byteLength", "I", "toLowerCase", "toUpperCase", "Wa", "pop", "J", "O", "getInstanceCacheLength", "alloc", "free", "clone", "Y", "getBuffer", "setBlock", "Db", "getEnd", "setEnd", "reset", "getCursor", "setCursor", "advance", "atEnd", "Qb", "pastEnd", "getError", "readSplitVarint64", "readSplitZigzagVarint64", "ta", "readSplitFixed64", "kb", "skipVarint", "mb", "unskipVarint", "o", "readUnsignedVarint32", "readSignedVarint32", "readSignedVarint32String", "readZigzagVarint32", "readUnsignedVarint64", "readUnsignedVarint64String", "readSignedVarint64", "readSignedVarint64String", "readZigzagVarint64", "fb", "readZigzagVarintHash64", "readZigzagVarint64String", "Gc", "readUint8", "Ec", "readUint16", "readUint32", "ga", "readUint64", "readUint64String", "Xb", "readInt8", "Vb", "readInt16", "P", "readInt32", "readInt64", "readInt64String", "readFloat", "Z", "readDouble", "pa", "readBool", "readEnum", "readString", "Dc", "readStringWithLength", "readBytes", "readVarintHash64", "$", "readFixedHash64", "K", "Xa", "L", "ma", "na", "Za", "Ab", "Nb", "N", "clearInstanceCache", "zb", "Fb", "getFieldCursor", "Hb", "getFieldNumber", "Lb", "getWireType", "Mb", "isDelimited", "isEndGroup", "nextField", "unskipHeader", "Lc", "skipMatchingFields", "lb", "skipVarintField", "gb", "skipDelimitedField", "hb", "skipFixed32Field", "ib", "skipFixed64Field", "jb", "skipGroup", "skipField", "Hc", "registerReadCallback", "Ic", "runReadCallback", "Yb", "readMessage", "Ub", "readGroup", "Gb", "getFieldDecoder", "Wb", "readInt32String", "Fc", "readUint32String", "zc", "readSint32", "Ac", "readSint64", "Bc", "readSint64String", "Rb", "readFixed32", "Sb", "readFixed64", "Tb", "readFixed64String", "vc", "readSfixed32", "wc", "readSfixed32String", "xc", "readSfixed64", "yc", "readSfixed64String", "Cc", "readSintHash64", "gc", "readPackedInt32", "hc", "readPackedInt32String", "ic", "readPackedInt64", "jc", "readPackedInt64String", "qc", "readPackedUint32", "rc", "readPackedUint32String", "sc", "readPackedUint64", "tc", "readPackedUint64String", "nc", "readPackedSint32", "oc", "readPackedSint64", "pc", "readPackedSint64String", "bc", "readPackedFixed32", "cc", "readPackedFixed64", "dc", "readPackedFixed64String", "kc", "readPackedSfixed32", "lc", "readPackedSfixed64", "mc", "readPackedSfixed64String", "fc", "readPackedFloat", "$b", "readPackedDouble", "Zb", "readPackedBool", "ac", "readPackedEnum", "uc", "readPackedVarintHash64", "ec", "readPackedFixedHash64", "isMessageType", "GENERATE_TO_OBJECT", "GENERATE_FROM_OBJECT", "$a", "Ib", "getJsPbMessageId", "initialize", "isArray", "max", "i", "Number", "MAX_VALUE", "ab", "cb", "freeze", "db", "eb", "Q", "ob", "nb", "pb", "qb", "toObjectList", "toObjectExtension", "serializeBinaryExtensions", "readBinaryExtension", "getField", "getRepeatedField", "getOptionalFloatingPointField", "getBooleanField", "getRepeatedFloatingPointField", "getRepeatedBooleanField", "bytesAsB64", "bytesAsU8", "bytesListAsB64", "bytesListAsU8", "getFieldWithDefault", "getBooleanFieldWithDefault", "getFloatingPointFieldWithDefault", "getFieldProto3", "getMapField", "setField", "setProto3IntField", "setProto3FloatField", "setProto3BooleanField", "setProto3StringField", "setProto3BytesField", "setProto3EnumField", "setProto3StringIntField", "addToRepeatedField", "setOneofField", "computeOneofCase", "getWrapperField", "getRepeatedWrapperField", "setWrapperField", "setOneofWrapperField", "setRepeatedWrapperField", "addToRepeatedWrapperField", "toMap", "getExtension", "Kc", "setExtension", "difference", "equals", "compareExtensions", "compareFields", "Bb", "cloneMessage", "copyInto", "registerMessageType", "we", "R", "dump", "X", "S", "T", "lo", "hi", "rb", "U", "parseInt", "add", "V", "sb", "substring", "sub", "W", "tb", "end", "j", "ub", "vb", "ua", "$name", "exec", "extensionObject_", "$extensions", "extensions", "replace", "writeSplitVarint64", "s", "writeSplitFixed64", "writeUnsignedVarint32", "writeSignedVarint32", "writeUnsignedVarint64", "writeSignedVarint64", "writeZigzagVarint32", "writeZigzagVarint64", "writeZigzagVarint64String", "writeZigzagVarintHash64", "be", "writeUint8", "ae", "writeUint16", "writeUint32", "writeUint64", "Qc", "writeInt8", "Pc", "writeInt16", "writeInt32", "writeInt64", "writeInt64String", "writeFloat", "writeDouble", "writeBool", "writeEnum", "writeBytes", "writeVarintHash64", "writeFixedHash64", "writeString", "cmp", "rightShift", "leftShift", "msb", "Ob", "lsb", "zero", "mul32x32", "mul", "div", "fromString", "writeSerializedMessage", "Pb", "maybeWriteSerializedMessage", "getResultBuffer", "Kb", "getResultBase64String", "beginSubMessage", "endSubMessage", "Nc", "writeAny", "writeInt32String", "writeUint32String", "writeUint64String", "writeSint32", "writeSint64", "$d", "writeSintHash64", "Zd", "writeSint64String", "writeFixed32", "writeFixed64", "writeFixed64String", "writeSfixed32", "writeSfixed64", "writeSfixed64String", "Rc", "writeMessage", "Sc", "writeMessageSet", "Oc", "writeGroup", "writeSplitZigzagVarint64", "Ed", "writeRepeatedInt32", "Fd", "writeRepeatedInt32String", "Gd", "writeRepeatedInt64", "Qd", "writeRepeatedSplitFixed64", "Rd", "writeRepeatedSplitVarint64", "Sd", "writeRepeatedSplitZigzagVarint64", "Hd", "writeRepeatedInt64String", "Ud", "writeRepeatedUint32", "Vd", "writeRepeatedUint32String", "Wd", "writeRepeatedUint64", "Xd", "writeRepeatedUint64String", "Md", "writeRepeatedSint32", "Nd", "writeRepeatedSint64", "Od", "writeRepeatedSint64String", "Pd", "writeRepeatedSintHash64", "yd", "writeRepeatedFixed32", "zd", "writeRepeatedFixed64", "Ad", "writeRepeatedFixed64String", "Jd", "writeRepeatedSfixed32", "Kd", "writeRepeatedSfixed64", "Ld", "writeRepeatedSfixed64String", "Cd", "writeRepeatedFloat", "wd", "writeRepeatedDouble", "ud", "writeRepeatedBool", "xd", "writeRepeatedEnum", "Td", "writeRepeatedString", "vd", "writeRepeatedBytes", "Id", "writeRepeatedMessage", "Dd", "writeRepeatedGroup", "Bd", "writeRepeatedFixedHash64", "Yd", "writeRepeatedVarintHash64", "ad", "writePackedInt32", "bd", "writePackedInt32String", "cd", "writePackedInt64", "md", "writePackedSplitFixed64", "nd", "writePackedSplitVarint64", "od", "writePackedSplitZigzagVarint64", "dd", "writePackedInt64String", "pd", "writePackedUint32", "qd", "writePackedUint32String", "rd", "writePackedUint64", "sd", "writePackedUint64String", "hd", "writePackedSint32", "jd", "writePackedSint64", "kd", "writePackedSint64String", "ld", "writePackedSintHash64", "Wc", "writePackedFixed32", "Xc", "writePackedFixed64", "Yc", "writePackedFixed64String", "ed", "writePackedSfixed32", "fd", "writePackedSfixed64", "gd", "writePackedSfixed64String", "$c", "writePackedFloat", "Uc", "writePackedDouble", "Tc", "writePackedBool", "Vc", "writePackedEnum", "Zc", "writePackedFixedHash64", "td", "writePackedVarintHash64", "debug", "Map", "Message", "BinaryReader", "BinaryWriter", "ExtensionFieldInfo", "ExtensionFieldBinaryInfo", "exportSymbol", "inherits", "object", "extend", "typeOf", "jspb", "require", "goog", "globalThis", "proto", "google", "protobuf", "Any", "opt_data", "DEBUG", "COMPILED", "opt_includeInstance", "includeInstance", "msg", "obj", "typeUrl", "getValue_asB64", "$jspbMessageInstance", "bytes", "reader", "deserializeBinaryFromReader", "setTypeUrl", "setValue", "writer", "serializeBinaryToWriter", "message", "undefined", "getTypeUrl", "getValue_asU8", "getValue", "getTypeName", "pack", "serialized", "opt_typeUrlPrefix", "substr", "unpack", "deserialize", "b64", "lens", "getLens", "validLen", "placeHoldersLen", "toByteArray", "tmp", "arr", "Arr", "_byteLength", "curByte", "len", "revLookup", "fromByteArray", "uint8", "extraBytes", "parts", "maxChunkLength", "len2", "encodeChunk", "lookup", "code", "start", "num", "output", "base64", "ieee754", "customInspectSymbol", "Buffer", "K_MAX_LENGTH", "createBuffer", "RangeError", "buf", "setPrototypeOf", "arg", "encodingOrOffset", "allocUnsafe", "from", "string", "encoding", "isEncoding", "actual", "write", "isView", "arrayView", "isInstance", "copy", "fromArrayBuffer", "fromArrayLike", "fromArrayView", "SharedArrayBuffer", "valueOf", "isBuffer", "checked", "numberIsNaN", "type", "data", "toPrimitive", "assertSize", "size", "array", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "lastIndexOf", "indexSize", "arrLength", "valLength", "read", "readUInt16BE", "foundIndex", "found", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "str", "byteArray", "asciiToBytes", "base64Write", "ucs2Write", "units", "utf16leToBytes", "min", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "codePoints", "MAX_ARGUMENTS_LENGTH", "decodeCodePointsArray", "TYPED_ARRAY_SUPPORT", "foo", "typedArraySupport", "console", "error", "enumerable", "poolSize", "fill", "allocUnsafeSlow", "_isBuffer", "compare", "list", "pos", "swap16", "swap32", "swap64", "toLocaleString", "inspect", "trim", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "includes", "isFinite", "toJSON", "_arr", "ret", "out", "hexSliceLookupTable", "checkOffset", "ext", "checkInt", "wrtBigUInt64LE", "checkIntBI", "BigInt", "wrtBigUInt64BE", "checkIEEE754", "littleEndian", "noAssert", "newBuf", "readUintLE", "readUIntLE", "readUintBE", "readUIntBE", "readUInt8", "readUint16LE", "readUInt16LE", "readUint16BE", "readUint32LE", "readUInt32LE", "readUint32BE", "readUInt32BE", "readBigUInt64LE", "defineBigIntMethod", "validateNumber", "first", "last", "boundsError", "readBigUInt64BE", "readIntLE", "readIntBE", "readInt16LE", "readInt16BE", "readInt32LE", "readInt32BE", "readBigInt64LE", "readBigInt64BE", "readFloatLE", "readFloatBE", "readDoubleLE", "readDoubleBE", "writeUintLE", "writeUIntLE", "writeUintBE", "writeUIntBE", "writeUInt8", "writeUint16LE", "writeUInt16LE", "writeUint16BE", "writeUInt16BE", "writeUint32LE", "writeUInt32LE", "writeUint32BE", "writeUInt32BE", "writeBigUInt64LE", "writeBigUInt64BE", "writeIntLE", "limit", "writeIntBE", "writeInt16LE", "writeInt16BE", "writeInt32LE", "writeInt32BE", "writeBigInt64LE", "writeBigInt64BE", "writeFloatLE", "writeFloatBE", "writeDoubleLE", "writeDoubleBE", "targetStart", "copyWithin", "errors", "sym", "getMessage", "Base", "super", "stack", "addNumericalSeparator", "range", "ERR_OUT_OF_RANGE", "checkBounds", "ERR_INVALID_ARG_TYPE", "ERR_BUFFER_OUT_OF_BOUNDS", "input", "received", "isInteger", "INVALID_BASE64_RE", "leadSurrogate", "base64clean", "src", "dst", "alphabet", "table", "i16", "fn", "BufferBigIntNotDefined", "prefix", "Events", "EE", "context", "once", "addListener", "emitter", "event", "listener", "evt", "_events", "_eventsCount", "clearEvent", "EventEmitter", "create", "__proto__", "eventNames", "events", "names", "getOwnPropertySymbols", "listeners", "handlers", "listenerCount", "emit", "a1", "a2", "a3", "a4", "a5", "args", "removeListener", "on", "removeAllListeners", "off", "prefixed", "isLE", "mLen", "nBytes", "eLen", "eMax", "eBias", "nBits", "rt", "SemVer", "process", "env", "NODE_DEBUG", "unshift", "SEMVER_SPEC_VERSION", "MAX_LENGTH", "MAX_SAFE_INTEGER", "MAX_SAFE_BUILD_LENGTH", "safeRe", "LETTERDASHNUMBER", "safeRegexReplacements", "makeSafeRe", "token", "NUMERICIDENTIFIER", "NUMERICIDENTIFIERLOOSE", "NONNUMERICIDENTIFIER", "MAINVERSION", "MAINVERSIONLOOSE", "PRERELEASEIDENTIFIER", "PRERELEASEIDENTIFIERLOOSE", "PRERELEASE", "PRERELEASELOOSE", "BUILDIDENTIFIER", "BUILD", "FULL", "FULLPLAIN", "LOOSEPLAIN", "LOOSE", "GTLT", "XRANGEIDENTIFIERLOOSE", "XRANGEIDENTIFIER", "XRANGEPLAIN", "XRANGEPLAINLOOSE", "XRANGE", "XRANGELOOSE", "COERCE", "LONETILDE", "TILDETRIM", "RegExp", "TILDE", "TILDELOOSE", "LONECARET", "CARETTRIM", "CARET", "CARETLOOSE", "COMPARATORLOOSE", "COMPARATOR", "COMPARATORTRIM", "HYPHENRANGE", "HYPHENRANGELOOSE", "STAR", "parse", "version", "options", "loose", "includePrerelease", "er", "match", "raw", "major", "minor", "patch", "prerelease", "id", "build", "format", "valid", "clean", "other", "compareMain", "comparePre", "compareIdentifiers", "inc", "release", "identifier", "diff", "version1", "version2", "eq", "v1", "v2", "defaultResult", "numeric", "anum", "bnum", "gt", "lt", "neq", "gte", "lte", "op", "Comparator", "comp", "semver", "ANY", "operator", "rcompareIdentifiers", "compareLoose", "rcompare", "rsort", "Range", "parseRange", "filter", "isX", "hyphenReplace", "$0", "fM", "fm", "fp", "fpr", "to", "tM", "tm", "tp", "tpr", "testSet", "allowed", "satisfies", "outside", "hilo", "gtfn", "ltefn", "ltfn", "ecomp", "comparators", "high", "low", "comparator", "intersects", "rangeTmp", "sameDirectionIncreasing", "sameDirectionDecreasing", "sameSemVer", "differentDirectionsInclusive", "oppositeDirectionsLessThan", "oppositeDirectionsGreaterThan", "comps", "hr", "compRe", "_", "pr", "replaceCaret", "replaceCarets", "replaceTilde", "replaceTildes", "gtlt", "xM", "xm", "xp", "replaceXRange", "replaceXRanges", "replaceStars", "parseComparator", "some", "thisComparators", "every", "thisComparator", "rangeComparators", "rangeComparator", "toComparators", "maxSatisfying", "versions", "maxSV", "rangeObj", "minSatisfying", "minSV", "minVersion", "minver", "compver", "validRange", "ltr", "gtr", "r1", "r2", "coerce", "_typeof", "_toDate", "_interopRequireDefault", "_toFloat", "_toInt", "_toBoolean", "_equals", "_contains", "_matches", "_isEmail", "_isURL", "_isMACAddress", "_isIP", "_isIPRange", "_isFQDN", "_isDate", "_isTime", "_isBoolean", "_isLocale", "_isAbaRouting", "_isAlpha", "_interopRequireWildcard", "_isAlphanumeric", "_isNumeric", "_isPassportNumber", "_isPort", "_isLowercase", "_isUppercase", "_isIMEI", "_isAscii", "_isFullWidth", "_isHalfWidth", "_isVariableWidth", "_isMultibyte", "_isSemVer", "_isSurrogatePair", "_isInt", "_isFloat", "_isDecimal", "_isHexadecimal", "_isOctal", "_isDivisibleBy", "_isHexColor", "_isRgbColor", "_isHSL", "_isISRC", "_isIBAN", "_isBIC", "_isMD", "_isHash", "_isJWT", "_isJSON", "_isEmpty", "_isLength", "_isByteLength", "_isUUID", "_isMongoId", "_isAfter", "_isBefore", "_isIn", "_isLuhnNumber", "_isCreditCard", "_isIdentityCard", "_isEAN", "_isISIN", "_isISBN", "_isISSN", "_isTaxID", "_isMobilePhone", "_isEthereumAddress", "_isCurrency", "_isBtcAddress", "_isISO", "_isISO2", "_isISO3", "_isRFC", "_isISO31661Alpha", "_isISO31661Alpha2", "_isISO4", "_isBase", "_isBase2", "_isBase3", "_isDataURI", "_isMagnetURI", "_isMailtoURI", "_isMimeType", "_isLatLong", "_isPostalCode", "_ltrim", "_rtrim", "_trim", "_escape", "_unescape", "_stripLow", "_whitelist", "_blacklist", "_isWhitelisted", "_normalizeEmail", "_isSlug", "_isLicensePlate", "_isStrongPassword", "_isVAT", "_getRequireWildcardCache", "WeakMap", "__esModule", "default", "getOwnPropertyDescriptor", "validator", "toDate", "toFloat", "toInt", "toBoolean", "contains", "matches", "isEmail", "isURL", "isMACAddress", "isIP", "isIPRange", "isFQDN", "isBoolean", "isIBAN", "isBIC", "isAbaRouting", "isAlpha", "isAlphaLocales", "locales", "isAlphanumeric", "isAlphanumericLocales", "isNumeric", "isPassportNumber", "isPort", "isLowercase", "isUppercase", "isAscii", "isFullWidth", "isHalfWidth", "isVariableWidth", "isMultibyte", "isSemVer", "isSurrogatePair", "isInt", "isIMEI", "isFloat", "isFloatLocales", "isDecimal", "isHexadecimal", "isOctal", "isDivisibleBy", "isHexColor", "isRgbColor", "isHSL", "isISRC", "isMD5", "isHash", "isJWT", "isJSON", "isEmpty", "isLength", "isLocale", "isByteLength", "isUUID", "isMongoId", "isAfter", "isBefore", "isIn", "isLuhnNumber", "isCreditCard", "isIdentityCard", "isEAN", "isISIN", "isISBN", "isISSN", "isMobilePhone", "isMobilePhoneLocales", "isPostalCode", "isPostalCodeLocales", "isEthereumAddress", "isCurrency", "isBtcAddress", "isISO6346", "isFreightContainerID", "isISO6391", "isISO8601", "isRFC3339", "isISO31661Alpha2", "isISO31661Alpha3", "isISO4217", "isBase32", "isBase58", "isBase64", "isDataURI", "isMagnetURI", "isMailtoURI", "isMimeType", "isLatLong", "ltrim", "rtrim", "escape", "unescape", "stripLow", "whitelist", "blacklist", "isWhitelisted", "normalizeEmail", "isSlug", "isStrongPassword", "isTaxID", "isDate", "isTime", "isLicensePlate", "isVAT", "ibanLocales", "farsiLocales", "englishLocales", "dotDecimal", "decimal", "commaDecimal", "bengaliLocales", "arabicLocales", "alphanumeric", "alpha", "locale", "ar", "bn", "eo", "_locale", "_i", "_locale2", "_i2", "_locale3", "_i3", "_i4", "_i5", "chars", "_assertString", "elem", "_merge", "defaulContainsOptions", "ignoreCase", "_toString", "minOccurrences", "comparison", "isRoutingReg", "checkSumVal", "date", "comparisonDate", "Date", "original", "_str", "ignore", "_alpha", "ascii", "countryCode", "CountryCodes", "isBICReg", "defaultBase32Options", "crockford", "crockfordBase32", "base32", "base58Reg", "defaultBase64Options", "urlSafe", "urlSafeBase64", "notBase64", "firstPaddingChar", "defaultOptions", "looseBooleans", "strictBooleans", "bech32", "base58", "encodeURI", "card", "provider", "sanitized", "cards", "allCards", "cardProvider", "amex", "dinersclub", "discover", "jcb", "mastercard", "unionpay", "visa", "tmpCardsArray", "decimal_digits", "digits_after_decimal", "digit", "index", "symbol", "require_symbol", "negative", "whole_dollar_amount_with_sep", "thousands_separator", "whole_dollar_amount", "decimal_amount", "decimal_separator", "require_decimal", "pattern", "allow_decimal", "allow_negatives", "parens_for_negatives", "negative_sign_after_digits", "negative_sign_before_digits", "allow_negative_sign_placeholder", "allow_space_after_symbol", "allow_space_after_digits", "symbol_after_digits", "currencyRegex", "default_currency_options", "attributes", "schemeAndMediaType", "mediaType", "validMediaType", "validAttribute", "validData", "default_date_options", "_step", "formatDelimiter", "delimiters", "find", "delimiter", "dateDelimiter", "strictMode", "dateAndFormat", "zippedArr", "zip", "dateObj", "_iterator", "allowArrayLike", "it", "_unsupportedIterableToArray", "_e", "err", "normalCompletion", "didErr", "step", "_e2", "return", "_createForOfIteratorHelper", "_step$value", "_arrayWithHoles", "_iterableToArrayLimit", "_nonIterableRest", "dateWord", "formatWord", "fullYear", "startsWith", "parsedYear", "getFullYear", "month", "day", "getUTCDate", "minLen", "_arrayLikeToArray", "arr2", "default_decimal_options", "_includes", "force_decimal", "decimalRegExp", "ean", "remainder", "actualCheckDigit", "validEanRegex", "char", "LENGTH_EAN_8", "LENGTH_EAN_14", "getPositionWeightThroughLengthAndIndex", "reduce", "acc", "partialSum", "default_email_options", "require_display_name", "allow_display_name", "display_email", "splitNameAddress", "display_name", "endsWith", "display_name_without_quotes", "validateDisplayName", "ignore_max_length", "defaultMaxEmailLength", "domain", "lower_domain", "host_blacklist", "host_whitelist", "user", "domain_specific_validation", "username", "_user_parts", "gmailUserPart", "require_tld", "allow_underscores", "allow_ip_domain", "noBracketdomain", "allow_utf8_local_part", "quotedEmailUserUtf8", "quotedEmailUser", "emailUserUtf8Part", "emailUserPart", "user_parts", "blacklisted_chars", "search", "default_is_empty_options", "ignore_whitespace", "eth", "default_fqdn_options", "allow_trailing_dot", "allow_wildcard", "tld", "allow_numeric_tld", "part", "float", "parseFloat", "fullWidth", "strippedStr", "hslComma", "hslSpace", "halfWidth", "algorithm", "lengths", "md5", "md4", "sha1", "sha256", "sha384", "sha512", "ripemd128", "ripemd160", "tiger128", "tiger160", "tiger192", "crc32", "crc32b", "hexcolor", "hexadecimal", "isoCountryCode", "isoCountryCodeInIbanRegexCodeObject", "ibanRegexThroughCountryCode", "hasValidIbanFormat", "hasValidIbanChecksum", "AD", "AE", "AL", "AT", "AZ", "BA", "BE", "BG", "BH", "BR", "BY", "CH", "CR", "CY", "CZ", "DE", "DK", "DO", "DZ", "EG", "ES", "FI", "FO", "FR", "GB", "GE", "GI", "GL", "GR", "GT", "HR", "HU", "IE", "IL", "IQ", "IR", "IS", "IT", "JO", "KW", "KZ", "LB", "LC", "LI", "LT", "LU", "LV", "MA", "MC", "MD", "ME", "MK", "MR", "MT", "MU", "MZ", "NL", "NO", "PK", "PL", "PS", "PT", "QA", "RO", "RS", "SA", "SC", "SE", "SI", "SK", "SM", "SV", "TL", "TN", "TR", "UA", "VA", "VG", "XK", "imeiRegex", "imeiRegexWithoutHypens", "allow_hyphens", "imeiRegexWithHypens", "sum", "IPv4AddressRegExp", "IPv6AddressRegExp", "IPv4SegmentFormat", "IPv4AddressFormat", "IPv6SegmentFormat", "subnetMaybe", "expectedSubnet", "v4Subnet", "v6Subnet", "isbn", "sanitizedIsbn", "checksum", "possibleIsbn10", "possibleIsbn13", "factor", "isin", "double", "trunc", "_digit", "check", "validISO31661Alpha2CountriesCodes", "Set", "validISO31661Alpha3CountriesCodes", "CurrencyCodes", "validISO4217CurrencyCodes", "isISO6346Str", "isDigit", "letterCode", "checkSumDigit", "isISO6391Set", "strictSeparator", "iso8601StrictSeparator", "iso8601", "strict", "isValidDate", "ordinalMatch", "oYear", "oDay", "year", "monthString", "dayString", "getUTCFullYear", "getUTCMonth", "isrc", "testIssn", "issn", "require_hyphen", "case_sensitive", "digits", "validators", "weightOfDigits", "allow_leading_zeroes", "modulo", "lastDigit", "charsValue", "number", "IN", "reverse", "lastNumber", "k1", "k2", "TH", "LK", "incNum", "idCardNo", "provincesAndCities", "powers", "parityBit", "checkAddressCode", "addressCode", "checkBirthDayCode", "birDayCode", "yyyy", "mm", "xdata", "getMonth", "getDate", "check15IdCardNo", "id17", "power", "getParityBit", "checkParityBit", "check18IdCardNo", "regexIsDigit", "ALPHABET_CODES", "regex", "int", "intLeadingZeroes", "minCheckPassed", "maxCheckPassed", "ltCheckPassed", "gtCheckPassed", "default_json_options", "primitives", "allow_primitives", "JSON", "dotSplit", "currElem", "defaultLatLongOptions", "pair", "checkDMS", "latDMS", "longDMS", "lat", "long", "presentationSequences", "surrogatePairs", "languageTagRegex", "language", "extension", "privateuse", "grandfathered", "langtag", "tmpNum", "shouldDouble", "eui", "no_colons", "no_separators", "macAddress48NoSeparators", "macAddress64NoSeparators", "macAddress48", "macAddress48WithDots", "macAddress64", "macAddress64WithDots", "url", "magnetURIComponent", "_url$replace$split2", "_slicedToArray", "_url$replace$split2$", "queryString", "query", "allowedParams", "bcc", "isParseFailed", "queryParams", "_q$split2", "delete", "parseMailtoQueryString", "email", "mimeTypeSimple", "mimeTypeText", "mimeTypeMultipart", "phones", "multibyte", "no_symbols", "numericNoSymbols", "octal", "normalizedStr", "passportRegexByCountryCode", "AM", "AR", "AU", "CA", "CN", "ID", "JM", "JP", "KR", "LY", "MY", "MX", "NZ", "PH", "RU", "SL", "US", "ZA", "patterns", "threeDigit", "fourDigit", "fiveDigit", "sixDigit", "HT", "KE", "MG", "NP", "PR", "SG", "TW", "ZM", "rfc3339", "timeHour", "timeMinute", "timeNumOffset", "source", "timeOffset", "partialTime", "fullDate", "fullTime", "includePercentValues", "rgbColor", "rgbaColor", "rgbColorPercent", "rgbaColorPercent", "semanticVersioningRegex", "charsetRegex", "analysis", "password", "charMap", "result", "countChars", "uniqueChars", "uppercaseCount", "lowercaseCount", "numberCount", "symbolCount", "upperCaseRegex", "lowerCaseRegex", "numberRegex", "symbolRegex", "analyzePassword", "returnScore", "scoringOptions", "points", "pointsPerUnique", "pointsPerRepeat", "pointsForContainingLower", "pointsForContainingUpper", "pointsForContainingNumber", "pointsForContainingSymbol", "scorePassword", "minLength", "minLowercase", "minUppercase", "minNumbers", "minSymbols", "surrogatePair", "strcopy", "taxIdFormat", "sanitizeRegexes", "taxIdCheck", "algorithms", "enUsCampusPrefix", "andover", "atlanta", "austin", "brookhaven", "cincinnati", "fresno", "internet", "kansas", "memphis", "ogden", "philadelphia", "sba", "itItNameCheck", "vowelflag", "xflag", "tin", "century_year", "multip_lookup", "full_year", "checkdigit", "luhnCheck", "occurences", "trip_locations", "recurrent", "iso7064Check", "weight", "digitsArray", "even", "idx", "cur", "reverseMultiplyAndSum", "prefixes", "location", "_arrayWithoutHoles", "iter", "_iterableToArray", "_nonIterableSpread", "enUsGetPrefixes", "accum", "verif", "lead_replace", "checkdigits", "verhoeffCheck", "number_replace", "_number_locations", "char_to_int", "odd_convert", "_i6", "_char_to_int", "multiplier", "first_part", "_checksum", "_i7", "_sum", "_i8", "identifiers", "verificators", "_i9", "_i10", "multipliers", "tin_copy", "current_year", "current_century", "allsymbols", "default_time_options", "formats", "hourFormat", "mode", "hour24", "withSeconds", "hour12", "default_url_options", "validate_length", "allow_fragments", "allow_query_components", "protocol", "auth", "host", "hostname", "port", "port_str", "ipv6", "require_valid_protocol", "protocols", "require_protocol", "allow_protocol_relative_urls", "require_host", "disallow_auth", "_auth$split2", "ipv6_match", "wrapped_ipv6", "require_port", "checkHost", "uuid", "all", "vatMatchers", "EL", "weights", "ABN", "total", "NG", "el", "UZ", "BO", "CL", "CO", "EC", "HN", "NI", "PA", "PY", "PE", "UY", "VE", "modifiers", "default_normalize_email_options", "raw_parts", "gmail_remove_subaddress", "gmail_remove_dots", "dotsReplacer", "all_lowercase", "gmail_lowercase", "gmail_convert_googlemaildotcom", "icloud_domains", "icloud_remove_subaddress", "icloud_lowercase", "outlookdotcom_domains", "outlookdotcom_remove_subaddress", "outlookdotcom_lowercase", "yahoo_domains", "yahoo_remove_subaddress", "components", "yahoo_lowercase", "yandex_domains", "yandex_lowercase", "strIndex", "keep_new_lines", "radix", "checkvalue", "second", "product", "base", "d_table", "p_table", "str_copy", "invalidType", "arrVal", "defaults", "flags", "regexpAsStringLiteral", "google_protobuf_any_pb", "TronWebProto", "AccountId", "Vote", "Proposal", "repeatedFields_", "Exchange", "Account", "Frozen", "AccountResource", "Key", "DelegatedResource", "authority", "Permission", "Witness", "Votes", "MarketOrderDetail", "Transaction", "Contract", "Result", "getName_asB64", "address", "getAddress_asB64", "setName", "setAddress", "getName_asU8", "getAddress_asU8", "getName", "getAddress", "voteAddress", "getVoteAddress_asB64", "voteCount", "setVoteAddress", "setVoteCount", "getVoteAddress_asU8", "getVoteCount", "getVoteAddress", "proposalId", "proposerAddress", "getProposerAddress_asB64", "parametersMap", "getParametersMap", "expirationTime", "createTime", "approvalsList", "getApprovalsList_asB64", "state", "setProposalId", "setProposerAddress", "setExpirationTime", "setCreateTime", "addApprovals", "setState", "getProposalId", "getProposerAddress_asU8", "getExpirationTime", "getCreateTime", "getApprovalsList_asU8", "getState", "State", "PENDING", "DISAPPROVED", "APPROVED", "CANCELED", "getProposerAddress", "opt_noLazyCreate", "clearParametersMap", "getApprovalsList", "setApprovalsList", "opt_index", "clearApprovalsList", "exchangeId", "creatorAddress", "getCreatorAddress_asB64", "firstTokenId", "getFirstTokenId_asB64", "firstTokenBalance", "secondTokenId", "getSecondTokenId_asB64", "secondTokenBalance", "setExchangeId", "setCreatorAddress", "setFirstTokenId", "setFirstTokenBalance", "setSecondTokenId", "setSecondTokenBalance", "getExchangeId", "getCreatorAddress_asU8", "getFirstTokenId_asU8", "getFirstTokenBalance", "getSecondTokenId_asU8", "getSecondTokenBalance", "getCreatorAddress", "getFirstTokenId", "getSecondTokenId", "accountName", "getAccountName_asB64", "balance", "votesList", "getVotesList", "assetMap", "getAssetMap", "assetv2Map", "getAssetv2Map", "frozenList", "getFrozenList", "netUsage", "acquiredDelegatedFrozenBalanceForBandwidth", "delegatedFrozenBalanceForBandwidth", "oldTronPower", "tronPower", "getTronPower", "assetOptimized", "latestOprationTime", "allowance", "latestWithdrawTime", "getCode_asB64", "isWitness", "isCommittee", "frozenSupplyList", "getFrozenSupplyList", "assetIssuedName", "getAssetIssuedName_asB64", "assetIssuedId", "getAssetIssuedId_asB64", "latestAssetOperationTimeMap", "getLatestAssetOperationTimeMap", "latestAssetOperationTimev2Map", "getLatestAssetOperationTimev2Map", "freeNetUsage", "freeAssetNetUsageMap", "getFreeAssetNetUsageMap", "freeAssetNetUsagev2Map", "getFreeAssetNetUsagev2Map", "latestConsumeTime", "latestConsumeFreeTime", "accountId", "getAccountId_asB64", "accountResource", "getAccountResource", "codehash", "getCodehash_asB64", "ownerPermission", "getOwnerPermission", "witnessPermission", "getWitnessPermission", "activePermissionList", "getActivePermissionList", "setAccountName", "setType", "setBalance", "addVotes", "addFrozen", "setNetUsage", "setAcquiredDelegatedFrozenBalanceForBandwidth", "setDelegatedFrozenBalanceForBandwidth", "setOldTronPower", "setTronPower", "setAssetOptimized", "setLatestOprationTime", "setAllowance", "setLatestWithdrawTime", "setCode", "setIsWitness", "setIsCommittee", "addFrozenSupply", "setAssetIssuedName", "setAssetIssuedId", "setFreeNetUsage", "setLatestConsumeTime", "setLatestConsumeFreeTime", "setAccountId", "setAccountResource", "setCodehash", "setOwnerPermission", "setWitnessPermission", "addActivePermission", "getAccountName_asU8", "getType", "getBalance", "getNetUsage", "getAcquiredDelegatedFrozenBalanceForBandwidth", "getDelegatedFrozenBalanceForBandwidth", "getOldTronPower", "getAssetOptimized", "getLatestOprationTime", "getAllowance", "getLatestWithdrawTime", "getCode_asU8", "getIsWitness", "getIsCommittee", "getAssetIssuedName_asU8", "getAssetIssuedId_asU8", "getFreeNetUsage", "getLatestConsumeTime", "getLatestConsumeFreeTime", "getAccountId_asU8", "getCodehash_asU8", "frozenBalance", "expireTime", "setFrozenBalance", "setExpireTime", "getFrozenBalance", "getExpireTime", "energyUsage", "frozenBalanceForEnergy", "getFrozenBalanceForEnergy", "latestConsumeTimeForEnergy", "acquiredDelegatedFrozenBalanceForEnergy", "delegatedFrozenBalanceForEnergy", "storageLimit", "storageUsage", "latestExchangeStorageTime", "setEnergyUsage", "setFrozenBalanceForEnergy", "setLatestConsumeTimeForEnergy", "setAcquiredDelegatedFrozenBalanceForEnergy", "setDelegatedFrozenBalanceForEnergy", "setStorageLimit", "setStorageUsage", "setLatestExchangeStorageTime", "getEnergyUsage", "getLatestConsumeTimeForEnergy", "getAcquiredDelegatedFrozenBalanceForEnergy", "getDelegatedFrozenBalanceForEnergy", "getStorageLimit", "getStorageUsage", "getLatestExchangeStorageTime", "clearFrozenBalanceForEnergy", "hasFrozenBalanceForEnergy", "getAccountName", "setVotesList", "opt_value", "clearVotesList", "clearAssetMap", "clearAssetv2Map", "setFrozenList", "clearFrozenList", "clearTronPower", "hasTronPower", "getCode", "setFrozenSupplyList", "clearFrozenSupplyList", "getAssetIssuedName", "getAssetIssuedId", "clearLatestAssetOperationTimeMap", "clearLatestAssetOperationTimev2Map", "clearFreeAssetNetUsageMap", "clearFreeAssetNetUsagev2Map", "getAccountId", "clearAccountResource", "hasAccountResource", "getCodehash", "clearOwnerPermission", "hasOwnerPermission", "clearWitnessPermission", "hasWitnessPermission", "setActivePermissionList", "clearActivePermissionList", "setWeight", "getWeight", "getFrom_asB64", "getTo_asB64", "frozenBalanceForBandwidth", "expireTimeForBandwidth", "expireTimeForEnergy", "setFrom", "setTo", "setFrozenBalanceForBandwidth", "setExpireTimeForBandwidth", "setExpireTimeForEnergy", "getFrom_asU8", "getTo_asU8", "getFrozenBalanceForBandwidth", "getExpireTimeForBandwidth", "getExpireTimeForEnergy", "getFrom", "getTo", "account", "getAccount", "permissionName", "getPermissionName_asB64", "setAccount", "setPermissionName", "getPermissionName_asU8", "clearAccount", "hasAccount", "getPermissionName", "threshold", "parentId", "operations", "getOperations_asB64", "keysList", "getKeysList", "setId", "setThreshold", "setParentId", "setOperations", "addKeys", "getId", "getThreshold", "getParentId", "getOperations_asU8", "PermissionType", "OWNER", "WITNESS", "ACTIVE", "getOperations", "setKeysList", "clearKeysList", "votecount", "pubkey", "getPubkey_asB64", "totalproduced", "totalmissed", "latestblocknum", "latestslotnum", "isjobs", "setVotecount", "setPubkey", "setUrl", "setTotalproduced", "setTotalmissed", "setLatestblocknum", "setLatestslotnum", "setIsjobs", "getVotecount", "getPubkey_asU8", "getUrl", "getTotalproduced", "getTotalmissed", "getLatestblocknum", "getLatestslotnum", "getIsjobs", "getPubkey", "oldVotesList", "getOldVotesList", "newVotesList", "getNewVotesList", "addOldVotes", "addNewVotes", "setOldVotesList", "clearOldVotesList", "setNewVotesList", "clearNewVotesList", "makerorderid", "getMakerorderid_asB64", "takerorderid", "getTakerorderid_asB64", "fillsellquantity", "fillbuyquantity", "setMakerorderid", "setTakerorderid", "setFillsellquantity", "setFillbuyquantity", "getMakerorderid_asU8", "getTakerorderid_asU8", "getFillsellquantity", "getFillbuyquantity", "getMakerorderid", "getTakerorderid", "rawData", "getRawData", "signatureList", "getSignatureList_asB64", "retList", "getRetList", "setRawData", "addSignature", "addRet", "getSignatureList_asU8", "parameter", "getParameter", "getProvider_asB64", "contractname", "getContractname_asB64", "permissionId", "setParameter", "setProvider", "setContractname", "setPermissionId", "getProvider_asU8", "getContractname_asU8", "getPermissionId", "ContractType", "ACCOUNTCREATECONTRACT", "TRANSFERCONTRACT", "TRANSFERASSETCONTRACT", "VOTEASSETCONTRACT", "VOTEWITNESSCONTRACT", "WITNESSCREATECONTRACT", "ASSETISSUECONTRACT", "WITNESSUPDATECONTRACT", "PARTICIPATEASSETISSUECONTRACT", "ACCOUNTUPDATECONTRACT", "FREEZEBALANCECONTRACT", "UNFREEZEBALANCECONTRACT", "WITHDRAWBALANCECONTRACT", "UNFREEZEASSETCONTRACT", "UPDATEASSETCONTRACT", "PROPOSALCREATECONTRACT", "PROPOSALAPPROVECONTRACT", "PROPOSALDELETECONTRACT", "SETACCOUNTIDCONTRACT", "CUSTOMCONTRACT", "CREATESMARTCONTRACT", "TRIGGERSMARTCONTRACT", "GETCONTRACT", "UPDATESETTINGCONTRACT", "EXCHANGECREATECONTRACT", "EXCHANGEINJECTCONTRACT", "EXCHANGEWITHDRAWCONTRACT", "EXCHANGETRANSACTIONCONTRACT", "UPDATEENERGYLIMITCONTRACT", "ACCOUNTPERMISSIONUPDATECONTRACT", "CLEARABICONTRACT", "UPDATEBROKERAGECONTRACT", "SHIELDEDTRANSFERCONTRACT", "MARKETSELLASSETCONTRACT", "MARKETCANCELORDERCONTRACT", "FREEZEBALANCEV2CONTRACT", "UNFREEZEBALANCEV2CONTRACT", "WITHDRAWEXPIREUNFREEZECONTRACT", "DELEGATERESOURCECONTRACT", "UNDELEGATERESOURCECONTRACT", "CANCELALLUNFREEZEV2CONTRACT", "clearParameter", "hasParameter", "getProvider", "getContractname", "fee", "contractret", "assetissueid", "withdrawAmount", "unfreezeAmount", "exchangeReceivedAmount", "exchangeInjectAnotherAmount", "exchangeWithdrawAnotherAmount", "shieldedTransactionFee", "orderid", "getOrderid_asB64", "orderdetailsList", "getOrderdetailsList", "setFee", "setRet", "setContractret", "setAssetissueid", "setWithdrawAmount", "setUnfreezeAmount", "setExchangeReceivedAmount", "setExchangeInjectAnotherAmount", "setExchangeWithdrawAnotherAmount", "setShieldedTransactionFee", "setOrderid", "addOrderdetails", "getFee", "getRet", "getContractret", "getAssetissueid", "getWithdrawAmount", "getUnfreezeAmount", "getExchangeReceivedAmount", "getExchangeInjectAnotherAmount", "getExchangeWithdrawAnotherAmount", "getShieldedTransactionFee", "getOrderid_asU8", "SUCESS", "FAILED", "contractResult", "DEFAULT", "SUCCESS", "REVERT", "BAD_JUMP_DESTINATION", "OUT_OF_MEMORY", "PRECOMPILED_CONTRACT", "STACK_TOO_SMALL", "STACK_TOO_LARGE", "ILLEGAL_OPERATION", "STACK_OVERFLOW", "OUT_OF_ENERGY", "OUT_OF_TIME", "JVM_STACK_OVER_FLOW", "UNKNOWN", "TRANSFER_FAILED", "INVALID_CODE", "getOrderid", "setOrderdetailsList", "clearOrderdetailsList", "refBlockBytes", "getRefBlockBytes_asB64", "refBlockNum", "refBlockHash", "getRefBlockHash_asB64", "expiration", "authsList", "getAuthsList", "getData_asB64", "contractList", "getContractList", "scripts", "getScripts_asB64", "timestamp", "feeLimit", "setRefBlockBytes", "setRefBlockNum", "setRefBlockHash", "setExpiration", "addAuths", "setData", "addContract", "setScripts", "setTimestamp", "setFeeLimit", "getRefBlockBytes_asU8", "getRefBlockNum", "getRefBlockHash_asU8", "getExpiration", "getData_asU8", "getScripts_asU8", "getTimestamp", "getFeeLimit", "getRefBlockBytes", "getRefBlockHash", "setAuthsList", "clearAuthsList", "getData", "setContractList", "clearContractList", "getScripts", "clearRawData", "hasRawData", "getSignatureList", "setSignatureList", "clearSignatureList", "setRetList", "clearRetList", "AccountType", "NORMAL", "ASSETISSUE", "CONTRACT", "core_Tron_pb", "AccountCreateContract", "AccountUpdateContract", "SetAccountIdContract", "AccountPermissionUpdateContract", "ownerAddress", "getOwnerAddress_asB64", "accountAddress", "getAccountAddress_asB64", "setOwnerAddress", "setAccountAddress", "getOwnerAddress_asU8", "getAccountAddress_asU8", "getOwnerAddress", "getAccountAddress", "owner", "getOwner", "witness", "getWitness", "activesList", "getActivesList", "setOwner", "setWitness", "addActives", "clearOwner", "hasOwner", "clearWitness", "hasWitness", "setActivesList", "clearActivesList", "AssetIssueContract", "FrozenSupply", "TransferAssetContract", "UnfreezeAssetContract", "UpdateAssetContract", "ParticipateAssetIssueContract", "abbr", "getAbbr_asB64", "totalSupply", "trxNum", "precision", "startTime", "endTime", "order", "voteScore", "description", "getDescription_asB64", "getUrl_asB64", "freeAssetNetLimit", "publicFreeAssetNetLimit", "publicFreeAssetNetUsage", "publicLatestFreeNetTime", "setAbbr", "setTotalSupply", "setTrxNum", "setPrecision", "setNum", "setStartTime", "setEndTime", "setOrder", "setVoteScore", "setDescription", "setFreeAssetNetLimit", "setPublicFreeAssetNetLimit", "setPublicFreeAssetNetUsage", "setPublicLatestFreeNetTime", "getAbbr_asU8", "getTotalSupply", "getTrxNum", "getPrecision", "getNum", "getStartTime", "getEndTime", "getOrder", "getVoteScore", "getDescription_asU8", "getUrl_asU8", "getFreeAssetNetLimit", "getPublicFreeAssetNetLimit", "getPublicFreeAssetNetUsage", "getPublicLatestFreeNetTime", "frozenAmount", "frozenDays", "setFrozenAmount", "setFrozenDays", "getFrozenAmount", "getFrozenDays", "getAbbr", "getDescription", "assetName", "getAssetName_asB64", "toAddress", "getToAddress_asB64", "amount", "setAssetName", "setToAddress", "setAmount", "getAssetName_asU8", "getToAddress_asU8", "getAmount", "getAssetName", "getToAddress", "newLimit", "newPublicLimit", "setNewLimit", "setNewPublicLimit", "getNewLimit", "getNewPublicLimit", "core_contract_common_pb", "FreezeBalanceContract", "UnfreezeBalanceContract", "WithdrawBalanceContract", "TransferContract", "TransactionBalanceTrace", "Operation", "BlockBalanceTrace", "BlockIdentifier", "AccountTrace", "AccountIdentifier", "AccountBalanceRequest", "AccountBalanceResponse", "FreezeBalanceV2Contract", "UnfreezeBalanceV2Contract", "WithdrawExpireUnfreezeContract", "DelegateResourceContract", "UnDelegateResourceContract", "CancelAllUnfreezeV2Contract", "frozenDuration", "resource", "receiverAddress", "getReceiverAddress_asB64", "setFrozenDuration", "setResource", "setReceiverAddress", "getFrozenDuration", "getResource", "getReceiverAddress_asU8", "getReceiverAddress", "transactionIdentifier", "getTransactionIdentifier_asB64", "operationList", "getOperationList", "status", "setTransactionIdentifier", "addOperation", "setStatus", "getTransactionIdentifier_asU8", "getStatus", "operationIdentifier", "setOperationIdentifier", "getOperationIdentifier", "getTransactionIdentifier", "setOperationList", "clearOperationList", "blockIdentifier", "getBlockIdentifier", "transactionBalanceTraceList", "getTransactionBalanceTraceList", "setBlockIdentifier", "addTransactionBalanceTrace", "hash", "getHash_asB64", "setHash", "setNumber", "getHash_asU8", "getNumber", "getHash", "clearBlockIdentifier", "hasBlockIdentifier", "setTransactionBalanceTraceList", "clearTransactionBalanceTraceList", "placeholder", "setPlaceholder", "getPlaceholder", "accountIdentifier", "getAccountIdentifier", "setAccountIdentifier", "clearAccountIdentifier", "hasAccountIdentifier", "unfreezeBalance", "setUnfreezeBalance", "getUnfreezeBalance", "lock", "lockPeriod", "setLock", "setLockPeriod", "getLock", "getLockPeriod", "ResourceCode", "BANDWIDTH", "ENERGY", "TRON_POWER", "ExchangeCreateContract", "ExchangeInjectContract", "ExchangeWithdrawContract", "ExchangeTransactionContract", "tokenId", "getTokenId_asB64", "quant", "setTokenId", "setQuant", "getTokenId_asU8", "getQuant", "getTokenId", "expected", "setExpected", "getExpected", "ProposalApproveContract", "ProposalCreateContract", "ProposalDeleteContract", "isAddApproval", "setIsAddApproval", "getIsAddApproval", "SmartContract", "ABI", "Entry", "Param", "ContractState", "CreateSmartContract", "TriggerSmartContract", "ClearABIContract", "UpdateSettingContract", "UpdateEnergyLimitContract", "SmartContractDataWrapper", "originAddress", "getOriginAddress_asB64", "contractAddress", "getContractAddress_asB64", "abi", "getAbi", "bytecode", "getBytecode_asB64", "callValue", "consumeUserResourcePercent", "originEnergyLimit", "codeHash", "getCodeHash_asB64", "trxHash", "getTrxHash_asB64", "setOriginAddress", "setContractAddress", "setAbi", "setBytecode", "setCallValue", "setConsumeUserResourcePercent", "setOriginEnergyLimit", "setCodeHash", "setTrxHash", "setVersion", "getOriginAddress_asU8", "getContractAddress_asU8", "getBytecode_asU8", "getCallValue", "getConsumeUserResourcePercent", "getOriginEnergyLimit", "getCodeHash_asU8", "getTrxHash_asU8", "getVersion", "entrysList", "getEntrysList", "addEntrys", "anonymous", "constant", "inputsList", "getInputsList", "outputsList", "getOutputsList", "payable", "statemutability", "setAnonymous", "setConstant", "addInputs", "addOutputs", "setPayable", "setStatemutability", "getAnonymous", "getConstant", "getPayable", "getStatemutability", "EntryType", "UNKNOWNENTRYTYPE", "CONSTRUCTOR", "FUNCTION", "EVENT", "FALLBACK", "RECEIVE", "ERROR", "StateMutabilityType", "UNKNOWNMUTABILITYTYPE", "PURE", "VIEW", "NONPAYABLE", "PAYABLE", "indexed", "setIndexed", "getIndexed", "setInputsList", "clearInputsList", "setOutputsList", "clearOutputsList", "setEntrysList", "clearEntrysList", "getOriginAddress", "getContractAddress", "clearAbi", "hasAbi", "getBytecode", "getCodeHash", "getTrxHash", "energyFactor", "updateCycle", "setEnergyFactor", "setUpdateCycle", "getEnergyFactor", "getUpdateCycle", "newContract", "getNewContract", "callTokenValue", "setNewContract", "setCallTokenValue", "getCallTokenValue", "clearNewContract", "hasNewContract", "smartContract", "getSmartContract", "runtimecode", "getRuntimecode_asB64", "contractState", "getContractState", "setSmartContract", "setRuntimecode", "setContractState", "getRuntimecode_asU8", "clearSmartContract", "hasSmartContract", "getRuntimecode", "clearContractState", "hasContractState", "BuyStorageBytesContract", "BuyStorageContract", "SellStorageContract", "UpdateBrokerageContract", "setBytes", "getBytes", "storageBytes", "setStorageBytes", "getStorageBytes", "brokerage", "setBrokerage", "getBrokerage", "WitnessCreateContract", "WitnessUpdateContract", "VoteWitnessContract", "updateUrl", "getUpdateUrl_asB64", "setUpdateUrl", "getUpdateUrl_asU8", "getUpdateUrl", "support", "setSupport", "getSupport", "__webpack_module_cache__", "__webpack_require__", "moduleId", "cachedModule", "__webpack_modules__", "getter", "definition", "prop", "toStringTag", "_defineProperty", "toPropertyKey", "_keyStr", "Base64", "encode", "chr1", "chr2", "chr3", "enc1", "enc2", "enc3", "enc4", "encodeIgnoreUtf8", "inputBytes", "decode", "_utf8_decode", "decodeToByteArray", "_out2ByteArray", "utftext", "_utf8_encode", "c2", "c3", "byte2hexStr", "byte", "hexByteMap", "bytesToString", "one", "bytesLength", "store", "st", "hextoString", "hex", "byteArray2hexStr", "base64DecodeFromString", "string64", "base64EncodeToString", "bin2String", "arrayEquals", "array1", "array2", "stringify", "stringToBytes", "hexChar2byte", "isHexChar", "hexStr2byteArray", "strToDate", "tempStrs", "dateStrs", "timeStrs", "hour", "minute", "isNumber", "getStringType", "mathceil", "ceil", "mathfloor", "bignumberError", "tooManyDigits", "BASE", "LOG_BASE", "POWS_TEN", "SQRT_BASE", "MAX", "bitFloor", "coeffToString", "intCheck", "isOdd", "toExponential", "toFixedPoint", "zs", "BigNumber", "configObject", "convertBase", "parseNumeric", "pow2_53", "random53bitInt", "basePrefix", "dotAfter", "dotBefore", "isInfinityOrNaN", "whitespaceOrPlus", "ONE", "DECIMAL_PLACES", "ROUNDING_MODE", "TO_EXP_NEG", "TO_EXP_POS", "MIN_EXP", "MAX_EXP", "CRYPTO", "MODULO_MODE", "POW_PRECISION", "FORMAT", "groupSize", "secondaryGroupSize", "groupSeparator", "decimalSeparator", "fractionGroupSize", "fractionGroupSeparator", "suffix", "ALPHABET", "alphabetHasNormalDecimalDigits", "caseChanged", "isNum", "_isBigNumber", "rm", "c0", "maxOrMin", "normalise", "ni", "pows10", "ROUND_UP", "ROUND_DOWN", "ROUND_CEIL", "ROUND_FLOOR", "ROUND_HALF_UP", "ROUND_HALF_DOWN", "ROUND_HALF_EVEN", "ROUND_HALF_CEIL", "ROUND_HALF_FLOOR", "EUCLID", "config", "crypto", "getRandomValues", "randomBytes", "EXPONENTIAL_AT", "RANGE", "isBigNumber", "maximum", "minimum", "random", "dp", "rand", "Uint32Array", "plus", "toBaseOut", "baseIn", "baseOut", "arrL", "sign", "callerIsToString", "multiply", "temp", "xlo", "xhi", "carry", "klo", "khi", "aL", "bL", "subtract", "more", "prod", "prodL", "rem", "remL", "rem0", "xi", "xL", "yc0", "yL", "yz", "p1", "p2", "absoluteValue", "comparedTo", "decimalPlaces", "dividedBy", "dividedToIntegerBy", "idiv", "exponentiatedBy", "half", "isModExp", "nIsBig", "nIsNeg", "nIsOdd", "mod", "times", "integerValue", "isEqualTo", "isGreaterThan", "isGreaterThanOrEqualTo", "isLessThan", "isLessThanOrEqualTo", "isNegative", "isPositive", "isZero", "minus", "xLTy", "xe", "ye", "multipliedBy", "xcL", "ycL", "ylo", "yhi", "sqrtBase", "negated", "shiftedBy", "squareRoot", "sqrt", "rep", "toFixed", "toFormat", "g1", "g2", "intPart", "fractionPart", "isNeg", "intDigits", "toFraction", "d0", "d1", "d2", "exp", "n0", "n1", "toNumber", "toPrecision", "for", "isValidURL", "isObject", "isJson", "ex", "bool", "isString", "isFunction", "isHex", "hasProperty", "property", "hasProperties", "_len", "properties", "_key", "mapEvent", "block", "block_number", "block_timestamp", "contract", "contract_address", "event_name", "transaction", "transaction_id", "resourceNode", "resource_Node", "_unconfirmed", "unconfirmed", "_fingerprint", "fingerprint", "parseEvent", "_ref", "inputs", "ADDRESS_PREFIX", "padLeft", "padding", "isNotNullOrUndefined", "async", "sleep", "millis", "Promise", "resolve", "setTimeout", "_classPrivateFieldBase", "_classPrivateFieldKey", "ZeroHash", "checkType", "types", "argument", "resolveProperties", "HEX", "isError", "makeError", "info", "shortMessage", "details", "assign", "assert", "assertArgument", "assertArgumentCount", "count", "expectedCount", "_normalizeForms", "form", "normalize", "assertNormalize", "operation", "assertPrivate", "givenGuard", "guard", "className", "method", "_getBytes", "getBytesCopy", "isHexString", "isBytesLike", "HexCharacters", "hexlify", "datas", "dataLength", "dataSlice", "zeroPadValue", "left", "zeroPad", "BN_0", "BN_1", "maxValue", "toTwos", "_value", "_width", "getBigInt", "width", "fault", "mask", "_bits", "getUint", "bits", "Nibbles", "toBigInt", "toBeHex", "toBeArray", "toQuantity", "BN_2", "BN_27", "BN_28", "BN_35", "_guard", "toUint256", "_r2", "_classPrivateFieldLooseKey", "_s", "_v2", "_networkV", "Signature", "_classPrivateFieldLooseBase", "networkV", "legacyChainId", "getChainId", "yParity", "yParityAndS", "compactSerialized", "_type", "bv", "getChainIdV", "chainId", "getNormalizedV", "sig", "assertError", "_r", "_v", "isSafeInteger", "outputLen", "blockLen", "exists", "instance", "checkFinished", "destroyed", "finished", "u8a", "u32", "createView", "DataView", "rotr", "word", "nextTick", "asyncLoop", "iters", "tick", "ts", "now", "toBytes", "TextEncoder", "Hash", "_cloneInto", "toStr", "checkOpts", "opts", "wrapConstructor", "hashCons", "hashC", "update", "digest", "HMAC", "assertHash", "iHash", "pad", "oHash", "assertExists", "digestInto", "assertBytes", "destroy", "getPrototypeOf", "hmac", "pbkdf2", "salt", "dkLen", "PRF", "PRFSalt", "_password", "_salt", "_opts", "asyncTick", "assertNumber", "pbkdf2Init", "prfW", "view", "ti", "Ti", "setInt32", "ui", "pbkdf2Output", "SHA2", "padOffset", "take", "dataView", "roundClean", "setBigUint64", "_32n", "_u32_max", "wh", "wl", "setUint32", "oview", "outLen", "Chi", "Maj", "SHA256_K", "IV", "SHA256_W", "SHA256", "getUint32", "W15", "W2", "s0", "s1", "T1", "T2", "U32_MASK64", "fromBig", "lst", "Ah", "Al", "rotlSH", "rotlSL", "rotlBH", "rotlBL", "toBig", "shrSH", "_l", "shrSL", "rotrSH", "rotrSL", "rotrBH", "rotrBL", "rotr32H", "_h", "rotr32L", "Bh", "Bl", "add3L", "Cl", "add3H", "Ch", "add4L", "Dl", "add4H", "Dh", "add5H", "Eh", "add5L", "El", "SHA512_Kh", "SHA512_Kl", "u64", "SHA512_W_H", "SHA512_W_L", "SHA512", "Fh", "Fl", "Gh", "Gl", "Hh", "Hl", "W15h", "W15l", "s0h", "s0l", "W2h", "W2l", "s1h", "s1l", "SUMl", "SUMh", "sigma1h", "sigma1l", "CHIh", "CHIl", "T1ll", "T1h", "T1l", "sigma0h", "sigma0l", "MAJh", "MAJl", "All", "anyGlobal", "getGlobal", "msCrypto", "createHash", "algo", "_sha256", "_sha512", "__sha256", "__sha512", "locked256", "locked512", "_data", "register", "func", "locked", "_pbkdf2", "iterations", "keylen", "_algo", "pbkdf2Sync", "__pbkdf2", "ignoreFunc", "reason", "badCodepoint", "Utf8ErrorFuncs", "toUtf8Bytes", "toUtf8String", "onError", "_bytes", "extraLength", "overlongMask", "nextChar", "getUtf8CodePoints", "SHA3_PI", "SHA3_ROTL", "_SHA3_IOTA", "_0n", "_1n", "_2n", "_7n", "_256n", "_0x71n", "SHA3_IOTA_H", "SHA3_IOTA_L", "rotlH", "rotlL", "Keccak", "enableXOF", "rounds", "posOut", "state32", "keccak", "idx1", "idx0", "B0", "B1", "Th", "Tl", "curH", "curL", "PI", "keccakP", "finish", "writeInto", "bufferOut", "xofInto", "xof", "keccak_256", "gen", "_keccak256", "__keccak256", "keccak256", "subsChrs", "Word", "unfold", "words", "sep", "initial", "Wordlist", "phrase", "_words", "_loadWords", "WordlistOwl", "_loadWords2", "_decodeWords", "subs", "clumps", "leftover", "item", "semi", "getWord", "getWordIndex", "wordlist", "LangEn", "getUpperMask", "mnemonicToEntropy", "mnemonic", "entropy", "bit", "entropyBits", "checksumMask", "entropyToMnemonic", "indices", "remainingBits", "checksumBits", "Mnemonic", "computeSeed", "fromPhrase", "fromEntropy", "_entropy", "entropyToPhrase", "phraseToEntropy", "isValidMnemonic", "_computeHmac", "createHmac", "__computeHmac", "computeHmac", "BN_36", "getChecksumAddress", "expanded", "hashed", "ibanLookup", "safeDigits", "Base36", "ibanChecksum", "fromBase36", "hexes", "padStart", "bytesToHex", "hexToNumber", "hexToBytes", "hexByte", "bytesToNumberBE", "bytesToNumberLE", "numberToBytesBE", "numberToBytesLE", "ensureBytes", "title", "expectedLength", "concatBytes", "arrays", "bitMask", "u8n", "u8fr", "createHmacDrbg", "hashLen", "qByteLen", "hmacFn", "_len2", "_key2", "reseed", "seed", "sl", "genUntil", "pred", "validatorFns", "bigint", "function", "boolean", "stringOrUint8Array", "field", "Fp", "isValid", "validateObject", "optValidators", "checkField", "fieldName", "isOptional", "checkVal", "_3n", "_4n", "_5n", "_8n", "pow2", "invert", "FIELD_FIELDS", "nLength", "nBitLength", "_nBitLength", "nByteLength", "getFieldBytesLength", "fieldOrder", "bitLength", "getMinHashLength", "validateBasic", "curve", "ORDER", "MASK", "BYTES", "BITS", "Gx", "Gy", "_objectSpread", "b2n", "h2b", "ut", "DER", "Err", "_parseInt", "toSig", "sBytes", "rBytesLeft", "hexFromSig", "shl", "rhl", "rl", "weierstrass", "curveDef", "CURVE", "bits2int", "bits2int_modN", "lowS", "validateOpts", "compressedLen", "uncompressedLen", "modN", "CURVE_ORDER", "invN", "ProjectivePoint", "Point", "normPrivateKeyToScalar", "weierstrassEquation", "isWithinCurveOrder", "allowedPrivateKeyLengths", "wrapPrivateKey", "isTorsionFree", "clearCofactor", "allowInfinityPoint", "fromBytes", "endo", "eql", "ZERO", "beta", "splitScalar", "validatePointOpts", "_c", "point", "_isCompressed", "toAffine", "tail", "x2", "sqr", "x3", "assertGE", "pointPrecomputes", "assertPrjPoint", "px", "py", "pz", "fromAffine", "is0", "normalizeZ", "toInv", "invertBatch", "fromHex", "assertValidity", "fromPrivateKey", "privateKey", "_setWindowSize", "windowSize", "_WINDOW_SIZE", "right", "hasEvenY", "X1", "Y1", "Z1", "X2", "Y2", "Z2", "U1", "U2", "negate", "neg", "b3", "X3", "Y3", "Z3", "t0", "t1", "t2", "t3", "t4", "t5", "wNAF", "wnaf", "wNAFCached", "multiplyUnsafe", "unsafeLadder", "k1neg", "k2neg", "k1p", "k2p", "scalar", "fake", "f1p", "f2p", "constTimeNegate", "multiplyAndAddUnsafe", "iz", "inv", "ax", "ay", "zz", "cofactor", "toRawBytes", "isCompressed", "toHex", "condition", "windows", "elm", "precomputeWindow", "precomputes", "maxNumber", "shiftBy", "wbits", "offset1", "offset2", "cond1", "cond2", "precomputesMap", "transform", "weierstrassPoints", "cat", "head", "y2", "numToNByteStr", "isBiggerThanHalfOrder", "slcNum", "recovery", "fromCompact", "fromDER", "addRecoveryBit", "recoverPublicKey", "msgHash", "rec", "radj", "ir", "u1", "u2", "hasHighS", "normalizeS", "toDERRawBytes", "toDERHex", "toCompactRawBytes", "toCompactHex", "utils", "isValidPrivateKey", "randomPrivateKey", "fieldLen", "reduced", "precompute", "isProbPub", "delta", "ORDER_MASK", "int2octets", "defaultSigOpts", "prehash", "defaultVerOpts", "getPublicKey", "getSharedSecret", "privateA", "publicB", "privKey", "k2sig", "extraEntropy", "ent", "h1int", "seedArgs", "kBytes", "ik", "normS", "prepSig", "drbg", "verify", "signature", "publicKey", "sg", "_sig", "derError", "is", "secp256k1P", "secp256k1N", "divNearest", "bitLen", "redef", "sqrtP", "p1div4", "c1", "n2", "nv", "legendreC", "Q1div2", "tonelliShanks", "FpSqrt", "lhs", "rhs", "FpPow", "sqrN", "addN", "subN", "mulN", "nums", "lastMultiplied", "inverted", "reduceRight", "FpInvertBatch", "cmov", "Field", "_6n", "_11n", "_22n", "_23n", "_44n", "_88n", "b2", "b6", "b9", "b11", "b22", "b44", "b88", "b176", "b220", "b223", "secp256k1", "defHash", "msgs", "createCurve", "b1", "POW_2_128", "_privateKey", "SigningKey", "computePublicKey", "compressedPublicKey", "computeSharedSecret", "pubKey", "compressed", "pub", "secpSig", "addPoints", "p0", "pub0", "pub1", "computeAddress", "recoverAddress", "WordSize", "Padding", "passProperties", "resultNames", "getNames", "setNames", "throwError", "wrapped", "items", "deep", "_names2", "wrap", "nameCounts", "proxy", "Proxy", "receiver", "Reflect", "_names", "callback", "thisArg", "fromItems", "Coder", "localName", "dynamic", "_throwError", "_dataLength", "_writeData", "Writer", "_writeData2", "appendWriter", "paddingOffset", "writeValue", "writeUpdatableValue", "_data2", "_offset", "_bytesRead", "_parent", "_maxInflation", "_incrementBytesRead", "_peekBytes", "Reader", "allowLoose", "maxInflation", "_peekBytes2", "_incrementBytesRead2", "consumed", "subReader", "readValue", "readIndex", "bytesRead", "alignedLength", "_gaurd", "signed", "Typed", "_typedSymbol", "_options", "gaurd", "defaultValue", "minValue", "isBigInt", "isData", "tupleName", "arrayLength", "uint16", "uint24", "uint32", "uint40", "uint48", "uint56", "uint64", "uint72", "uint80", "uint88", "uint96", "uint104", "uint112", "uint120", "uint128", "uint136", "uint144", "uint152", "uint160", "uint168", "uint176", "uint184", "uint192", "uint200", "uint208", "uint216", "uint224", "uint232", "uint240", "uint248", "uint256", "uint", "int8", "int16", "int24", "int32", "int40", "int48", "int56", "int64", "int72", "int80", "int88", "int96", "int104", "int112", "int120", "int128", "int136", "int144", "int152", "int160", "int168", "int176", "int184", "int192", "int200", "int208", "int216", "int224", "int232", "int240", "int248", "int256", "bytes1", "bytes2", "bytes3", "bytes4", "bytes5", "bytes6", "bytes7", "bytes8", "bytes9", "bytes10", "bytes11", "bytes12", "bytes13", "bytes14", "bytes15", "bytes16", "bytes17", "bytes18", "bytes19", "bytes20", "bytes21", "bytes22", "bytes23", "bytes24", "bytes25", "bytes26", "bytes27", "bytes28", "bytes29", "bytes30", "bytes31", "bytes32", "tuple", "overrides", "isTyped", "dereference", "AddressCoder", "AnonymousCoder", "coder", "coders", "arrayValues", "unique", "staticWriter", "dynamicWriter", "updateFuncs", "dynamicOffset", "updateFunc", "baseOffset", "baseReader", "offsetReader", "baseType", "ArrayCoder", "defaultChild", "BooleanCoder", "DynamicBytesCoder", "BytesCoder", "FixedBytesCoder", "Empty", "NullCoder", "BN_MAX_UINT256", "NumberCoder", "maxUintValue", "bounds", "fromTwos", "StringCoder", "TupleCoder", "uniqueNames", "setify", "_kwVisib", "_kwTypes", "_kwModifiers", "KwModifiers", "Keywords", "SimpleTokens", "regexWhitespacePrefix", "regexNumberPrefix", "regexIdPrefix", "regexId", "regexType", "_tokens", "_subTokenString", "TokenString", "tokens", "_subTokenString2", "popKeyword", "top", "peek", "text", "popType", "popParen", "popParams", "link", "linkNext", "peekKeyword", "peekType", "linkBack", "consumeKeywords", "keywords", "keyword", "_TokenString", "regexArrayType", "verifyBasicType", "internal", "ParamTypeInternal", "_walkAsync", "ParamType", "arrayChildren", "_walkAsync2", "isTuple", "isIndexable", "walk", "_this", "walkAsync", "promises", "allowIndexed", "isParamType", "brackets", "commas", "depth", "lex", "bracket", "arrayMatch", "childType", "param", "then", "PanicReasons", "paramTypeBytes", "paramTypeNumber", "defaultCoder", "defaultMaxInflation", "_getCoder", "AbiCoder", "_getCoder2", "getDefaultValue", "_setDefaultMaxInflation", "defaultAbiCoder", "getBuiltinCallException", "action", "tx", "abiCoder", "revert", "invocation", "Rho", "idxL", "idxR", "shifts", "shiftsL", "shiftsR", "Kl", "Kr", "rotl", "group", "BUF", "RIPEMD160", "h0", "h1", "h2", "h3", "h4", "al", "bl", "br", "cl", "cr", "dl", "dr", "rGroup", "hbl", "hbr", "rr", "sr", "tl", "tr", "_ripemd160", "noble_ripemd160", "__ripemd160", "_randomBytes", "crypto_random", "__randomBytes", "checkAddress", "promise", "resolveAddress", "resolver", "resolveName", "ZeroAddress", "hexlifyByte", "unarrayifyInteger", "_decodeChildren", "childOffset", "decoded", "_decode", "lengthLength", "decodeRlp", "arrayifyInteger", "_encode", "payload", "child", "nibbles", "encodeRlp", "accessSetify", "addr", "storageKeys", "storageKey", "accessListify", "localeCompare", "BN_MAX_UINT", "BLOB_SIZE", "getVersionedHash", "versioned", "handleAddress", "handleAccessList", "handleNumber", "handleUint", "formatNumber", "formatAccessList", "formatHashes", "_parseEipSignature", "fields", "_to", "_nonce", "_gasLimit", "_gasPrice", "_maxPriorityFeePerGas", "_maxFeePerGas", "_value2", "_chainId", "_accessList", "_maxFeePerBlobGas", "_blobVersionedHashes", "_kzg", "_blobs2", "_getSerialized", "typeName", "nonce", "gasLimit", "gasPrice", "maxPriorityFeePerGas", "maxFeePerGas", "accessList", "maxFeePerBlobGas", "blobVersionedHashes", "blobs", "_blobs", "versionedHashes", "blob", "padded", "commit", "blobToKzgCommitment", "proof", "computeBlobKzgProof", "commitment", "kzg", "_getSerialized2", "unsignedHash", "unsignedSerialized", "fromPublicKey", "isSigned", "inferType", "inferTypes", "hasGasPrice", "hasFee", "hasAccessList", "hasBlob", "isLegacy", "isBerlin", "isLondon", "isCancun", "_parseLegacy", "_parseEip2930", "_parseEip1559", "fBlobs", "fCommits", "fProofs", "_parseEip4844", "sidecar", "legacy", "_serializeLegacy", "_serializeEip2930", "_serializeEip1559", "_serializeEip4844", "checkProvider", "signer", "populate", "req", "bigIntKeys", "numberKeys", "blockTag", "enableCcipRead", "customData", "copyRequest", "AbstractSigner", "getNonce", "getTransactionCount", "populateCall", "populateTransaction", "estimateGas", "network", "getNetwork", "hasEip1559", "feeData", "getFeeData", "sendTransaction", "txObj", "broadcastTransaction", "signTransaction", "_throwUnsupported", "VoidSigner", "_throwUnsupported2", "connect", "signMessage", "signTypedData", "Alphabet", "Lookup", "getAlpha", "letter", "BN_58", "BN__1", "hexTrue", "hexFalse", "domainFieldTypes", "verifyingContract", "domainFieldNames", "checkString", "domainChecks", "getBaseEncoder", "boundsUpper", "boundsLower", "hexPadRight", "encodeType", "splitArray", "_types2", "_fullTypes", "_encoderCache", "_getEncoder", "TypedDataEncoder", "_types", "_getEncoder2", "primaryType", "links", "parents", "subtypes", "_ref2", "primaryTypes", "checkCircular", "subtype", "getEncoder", "encoder", "encodeData", "hashStruct", "_visit", "_ref3", "visit", "getPrimaryType", "hashDomain", "domainFields", "EIP712Domain", "resolveNames", "ensCache", "getPayload", "domainValues", "domainTypes", "typesWithDomain", "subEncoder", "encodedType", "_ref4", "_signingKey", "BaseWallet", "signingKey", "btx", "signMessageSync", "hashMessage", "populated", "numberOfRounds", "rcon", "Si", "T3", "T4", "T5", "T6", "T7", "T8", "U3", "U4", "convertToInt32", "AES", "__classPrivateFieldGet", "_AES_key", "_AES_Kd", "_AES_Ke", "__classPrivateFieldSet", "roundKeyCount", "KC", "tk", "tt", "rconpointer", "encrypt", "plaintext", "decrypt", "ciphertext", "ModeOfOperation", "cls", "aes", "CTR", "initialValue", "_CTR_remaining", "_CTR_remainingIndex", "_CTR_counter", "setCounterValue", "setCounterBytes", "counter", "increment", "crypttext", "_b", "_a", "XorAndSalsa", "prev", "pi", "ii", "oi", "y00", "y01", "y02", "y03", "y04", "y05", "y06", "y07", "y08", "y09", "y10", "y11", "y12", "y13", "y14", "y15", "x00", "x01", "x02", "x03", "x04", "x05", "x06", "x07", "x08", "x09", "x10", "x11", "x12", "x13", "x14", "x15", "BlockMix", "scryptInit", "maxmem", "onProgress", "blockSize", "blockSize32", "memUsed", "B32", "blockMixCb", "totalBlockMix", "callbackPer", "blockMixCnt", "scryptOutput", "lockedSync", "lockedAsync", "_scryptAsync", "passwd", "Pi", "_nobleAsync", "_scryptSync", "_nobleSync", "__scryptAsync", "__scryptSync", "scrypt", "_passwd", "progress", "scryptSync", "uuidV4", "zpad", "getPassword", "getEncryptKdfParams", "_encryptKeystore", "kdf", "iv", "uuidRandom", "derivedKey", "macPrefix", "mac", "Crypto", "cipher", "cipherparams", "kdfparams", "dklen", "client", "path", "mnemonicKey", "mnemonicIv", "mnemonicCiphertext", "gethFilename", "getUTCHours", "getUTCMinutes", "getUTCSeconds", "mnemonicCounter", "defaultPath", "MasterSecret", "HardenedBit", "encodeBase58Check", "encodeBase58", "ser_I", "chainCode", "derivePath", "node", "component", "deriveChild", "_account", "_fromSeed", "HDNodeWallet", "parentFingerprint", "_account2", "progressCallback", "passwordBytes", "encryptKeystoreJson", "encryptSync", "encryptKeystoreJsonSync", "extendedKey", "hasPath", "neuter", "HDNodeVoidWallet", "_index", "ki", "fromExtendedKey", "decodeBase58", "createRandom", "fromMnemonic", "fromSeed", "_HDNodeWallet", "_seed", "Ki", "wordlists", "en", "KwVisib", "KwTypes", "allowSingle", "included", "consumeName", "consumeMutability", "consumeParams", "consumeGas", "consumeEoi", "ErrorFragmentInternal", "EventFragmentInternal", "ConstructorFragmentInternal", "FallbackFragmentInternal", "FunctionFragmentInternal", "StructFragmentInternal", "Fragment", "ConstructorFragment", "ErrorFragment", "EventFragment", "FallbackFragment", "FunctionFragment", "StructFragment", "isConstructor", "isFragment", "isEvent", "isStruct", "NamedFragment", "joinParams", "params", "selector", "topicHash", "getTopicHash", "gas", "stateMutability", "errorObj", "mutability", "outputs", "getSelector", "LogDescription", "fragment", "topic", "TransactionDescription", "ErrorDescription", "Indexed", "isIndexed", "_isIndexed", "BuiltinErrors", "_errors", "_functions", "_abiCoder", "_getFunction", "_getEvent", "Interface", "fragments", "_getEvent2", "_getFunction2", "deploy", "fallback", "receive", "frags", "getAbiCoder", "bucket", "minimal", "formatJson", "getFunctionName", "hasFunction", "getFunction", "forEachFunction", "getEventName", "hasEvent", "getEvent", "forEachEvent", "matching", "forEachError", "_decodeParams", "_encodeParams", "encodeDeploy", "decodeErrorResult", "encodeErrorResult", "decodeFunctionData", "encodeFunctionData", "decodeFunctionResult", "ef", "parseTransaction", "encodeFunctionResult", "encodeFilterTopics", "topics", "encodeTopic", "encodeEventLog", "dataTypes", "dataValues", "decodeEventLog", "eventTopic", "nonIndexed", "resultIndexed", "resultNonIndexed", "nonIndexedIndex", "indexedIndex", "parseCallResult", "parseLog", "parseError", "hexData", "forceUnique", "lastValue", "valueLength", "allowOptions", "lastArg", "splitSignature", "sigBytes", "joinSignature", "splitSig", "arrayify", "FormatTypes", "sighash", "full", "json", "ADDRESS_SIZE", "ADDRESS_PREFIX_BYTE", "ADDRESS_PREFIX_REGEX", "TRON_BIP39_PATH_PREFIX", "TRON_BIP39_PATH_INDEX_0", "getBase58CheckAddress", "decodeBase58Address", "toChecksumAddress", "isAddress", "isChecksumAddress", "pkToAddress", "isAddressValid", "ALPHABET_MAP", "encode58", "decode58", "bind", "kindOf", "cache", "thing", "kindOfTest", "typeOfTest", "isUndefined", "isArrayBuffer", "isPlainObject", "isFile", "isBlob", "isFileList", "isURLSearchParams", "isReadableStream", "isRequest", "isResponse", "isHeaders", "allOwnKeys", "getOwnPropertyNames", "findKey", "_global", "isContextDefined", "isTypedArray", "TypedArray", "isHTMLForm", "isRegExp", "reduceDescriptors", "reducer", "descriptors", "getOwnPropertyDescriptors", "reducedDescriptors", "descriptor", "ALPHA", "DIGIT", "ALPHA_DIGIT", "isAsyncFn", "_setImmediate", "setImmediateSupported", "setImmediate", "postMessageSupported", "postMessage", "callbacks", "addEventListener", "asap", "queueMicrotask", "isFormData", "kind", "FormData", "append", "isArrayBufferView", "isStream", "pipe", "merge", "caseless", "assignValue", "targetKey", "stripBOM", "content", "superConstructor", "props", "toFlatObject", "sourceObj", "destObj", "propFilter", "merged", "searchString", "position", "lastIndex", "forEachEntry", "matchAll", "regExp", "hasOwnProp", "freezeMethods", "toObjectSet", "arrayOrString", "toCamelCase", "noop", "toFiniteNumber", "generateString", "isSpecCompliantForm", "toJSONObject", "reducedValue", "isThenable", "catch", "AxiosError", "request", "response", "captureStackTrace", "fileName", "lineNumber", "columnNumber", "customProps", "axiosError", "cause", "isVisitable", "removeBrackets", "renderKey", "dots", "predicates", "formData", "metaTokens", "indexes", "option", "visitor", "defaultVisitor", "useBlob", "Blob", "convertValue", "toISOString", "isFlatArray", "exposedHelpers", "encodeURIComponent", "AxiosURLSearchParams", "_pairs", "toFormData", "buildURL", "serializeFn", "serialize", "serializedParams", "hashmarkIndex", "use", "fulfilled", "rejected", "synchronous", "runWhen", "eject", "silentJSONParsing", "forcedJSONParsing", "clarifyTimeoutError", "isBrowser", "classes", "URLSearchParams", "hasBrowserEnv", "document", "hasStandardBrowserEnv", "navigator", "hasStandardBrowserWebWorkerEnv", "WorkerGlobalScope", "importScripts", "origin", "href", "platform", "buildPath", "isNumericKey", "isLast", "arrayToObject", "parsePropPath", "transitional", "transitionalDefaults", "adapter", "transformRequest", "headers", "contentType", "getContentType", "hasJSONContentType", "isObjectPayload", "formDataToJSON", "setContentType", "helpers", "isNode", "toURLEncodedForm", "formSerializer", "_FormData", "rawValue", "parser", "stringifySafely", "transformResponse", "JSONRequested", "responseType", "strictJSONParsing", "ERR_BAD_RESPONSE", "timeout", "xsrfCookieName", "xsrfHeaderName", "maxContentLength", "maxBodyLength", "validateStatus", "common", "ignoreDuplicateOf", "$internals", "normalizeHeader", "header", "normalizeValue", "matchHeaderValue", "isHeaderNameFilter", "AxiosHeaders", "valueOrRewrite", "rewrite", "setHeader", "_header", "_rewrite", "lHeader", "setHeaders", "rawHeaders", "line", "parseHeaders", "tokensRE", "parseTokens", "matcher", "deleted", "deleteHeader", "normalized", "formatHeader", "targets", "asStrings", "computed", "accessor", "accessors", "defineAccessor", "accessorName", "methodName", "arg1", "arg2", "arg3", "buildAccessors", "mapped", "headerValue", "transformData", "fns", "isCancel", "__CANCEL__", "CanceledError", "ERR_CANCELED", "settle", "reject", "ERR_BAD_REQUEST", "progressEventReducer", "isDownloadStream", "freq", "bytesNotified", "_speedometer", "samplesCount", "timestamps", "firstSampleTS", "chunkLength", "startedAt", "bytesCount", "passed", "speedometer", "lastArgs", "timer", "invoke", "clearTimeout", "flush", "throttle", "loaded", "lengthComputable", "progressBytes", "rate", "estimated", "progressEventDecorator", "throttled", "asyncDecorator", "msie", "userAgent", "urlParsingNode", "createElement", "originURL", "resolveURL", "setAttribute", "pathname", "requestURL", "expires", "secure", "cookie", "toGMTString", "decodeURIComponent", "remove", "buildFullPath", "baseURL", "requestedURL", "relativeURL", "combineURLs", "ownKeys", "headersToObject", "mergeConfig", "config1", "config2", "getMergedValue", "mergeDeepProperties", "valueFromConfig2", "defaultToConfig2", "mergeDirectKeys", "mergeMap", "paramsSerializer", "timeoutMessage", "withCredentials", "withXSRFToken", "onUploadProgress", "onDownloadProgress", "decompress", "beforeRedirect", "transport", "httpAgent", "httpsAgent", "cancelToken", "socketPath", "responseEncoding", "configValue", "newConfig", "btoa", "Boolean", "isURLSameOrigin", "xsrfValue", "cookies", "XMLHttpRequest", "_config", "resolveConfig", "requestData", "requestHeaders", "onCanceled", "uploadThrottled", "downloadThrottled", "flushUpload", "flushDownload", "unsubscribe", "signal", "removeEventListener", "onloadend", "responseHeaders", "getAllResponseHeaders", "responseText", "statusText", "open", "onreadystatechange", "readyState", "responseURL", "onabort", "ECONNABORTED", "onerror", "ERR_NETWORK", "ontimeout", "timeoutErrorMessage", "ETIMEDOUT", "setRequestHeader", "upload", "cancel", "abort", "subscribe", "aborted", "parseProtocol", "send", "composeSignals", "signals", "controller", "AbortController", "streamChunk", "chunk", "chunkSize", "trackStream", "stream", "onFinish", "iterable", "_onFinish", "ReadableStream", "pull", "close", "loadedBytes", "enqueue", "highWaterMark", "isFetchSupported", "fetch", "Request", "Response", "isReadableStreamSupported", "encodeText", "arrayBuffer", "supportsRequestStream", "duplexAccessed", "hasContentType", "body", "duplex", "supportsResponseStream", "resolvers", "ERR_NOT_SUPPORT", "knownAdapters", "http", "xhr", "xhrAdapter", "fetchOptions", "composedSignal", "stopTimeout", "requestContentLength", "getContentLength", "getBodyLength", "resolveBodyLength", "contentTypeHeader", "_request", "credentials", "isStreamResponse", "responseContentLength", "responseData", "renderReason", "isResolvedHandle", "adapters", "nameOrAdapter", "rejectedReasons", "reasons", "throwIfCancellationRequested", "throwIfRequested", "dispatchRequest", "deprecatedWarnings", "formatMessage", "opt", "desc", "ERR_DEPRECATED", "warn", "assertOptions", "schema", "allowUnknown", "ERR_BAD_OPTION_VALUE", "ERR_BAD_OPTION", "Axios", "instanceConfig", "interceptors", "InterceptorManager", "configOrUrl", "dummy", "contextHeaders", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "responseInterceptorChain", "chain", "onFulfilled", "onRejected", "getUri", "generateHTTPMethod", "isForm", "CancelToken", "executor", "resolvePromise", "_listeners", "onfulfilled", "_resolve", "HttpStatusCode", "Continue", "SwitchingProtocols", "Processing", "EarlyHints", "Ok", "Created", "Accepted", "NonAuthoritativeInformation", "NoContent", "ResetContent", "PartialContent", "MultiStatus", "AlreadyReported", "ImUsed", "MultipleChoices", "MovedPermanently", "Found", "SeeOther", "NotModified", "UseProxy", "Unused", "TemporaryRedirect", "PermanentRedirect", "BadRequest", "Unauthorized", "PaymentRequired", "Forbidden", "NotFound", "MethodNotAllowed", "NotAcceptable", "ProxyAuthenticationRequired", "RequestTimeout", "Conflict", "Gone", "LengthRequired", "PreconditionFailed", "PayloadTooLarge", "UriTooLong", "UnsupportedMediaType", "RangeNotSatisfiable", "ExpectationFailed", "ImATeapot", "MisdirectedRequest", "UnprocessableEntity", "Locked", "FailedDependency", "TooEarly", "UpgradeRequired", "PreconditionRequired", "TooManyRequests", "RequestHeaderFieldsTooLarge", "UnavailableForLegalReasons", "InternalServerError", "NotImplemented", "BadGateway", "ServiceUnavailable", "GatewayTimeout", "HttpVersionNotSupported", "VariantAlsoNegotiates", "InsufficientStorage", "LoopDetected", "NotExtended", "NetworkAuthenticationRequired", "axios", "createInstance", "defaultConfig", "VERSION", "Cancel", "spread", "isAxiosError", "formToJSON", "getAdapter", "HttpProvider", "statusPage", "setStatusPage", "isConnected", "providers", "_addressToHex", "TronWeb", "decodeParams", "encodeParams", "extractSize", "extractArrayDim", "encodeParamsV2ByABI", "funABI", "buildFullTypeDefinition", "typeDef", "innerType", "convertAddresses", "addrArr", "addrs", "mapTuple", "dimension", "encodeArgs", "convertTypes", "decodeParamsV2ByABI", "decodeResult", "buildFullTypeNameDefinition", "outputTypes", "convertTypeNames", "decodeResCopy", "Validator", "invalid", "notPositive", "notEqual", "notValid", "no", "optional", "Permission_PermissionType", "fromHexString", "hexString", "stringToUint8Array", "flexToUint8Array", "visible", "fromUtf8", "buildCommonTransaction", "contractType", "anyValue", "contractJsonToProtobuf", "buildTransferContract", "to_address", "owner_address", "transferContract", "Permission_id", "buildTransferAssetContract", "asset_name", "buildParticipateAssetIssueContract", "pbObj", "buildTriggerSmartContract", "triggerSmartContract", "function_selector", "call_value", "call_token_value", "token_id", "contractData", "sha3", "buildFreezeBalanceContract", "freezeBalanceContract", "frozen_balance", "frozen_duration", "receiver_address", "buildUnfreezeBalanceContract", "unfreezeBalanceContract", "buildWithdrawBalanceContract", "withdrawbalanceContract", "buildFreezeBalanceV2Contract", "freezeBalanceV2Contract", "buildCancelFreezeBalanceV2Contract", "withdrawExpireUnfreeze", "buildUnfreezeBalanceV2Contract", "unfreezeBalanceV2Contract", "unfreeze_balance", "buildDelegateResourceContract", "delegateResourceContract", "lock_period", "buildUnDelegateResourceContract", "unDelegateResourceContract", "buildWithdrawExpireUnfreezeContract", "buildCreateWitness", "createWitnessContract", "buildVoteWitnessAccount", "voteWitnessContract", "votes", "voteItem", "vote", "vote_address", "vote_count", "numberOfVotes", "buildCreateSmartContract", "new_contract", "consume_user_resource_percent", "origin_energy_limit", "contracName", "origin_address", "createSmartContract", "smartContractBuilder", "abiJson", "entrys", "abiBuilder", "buildEntryParam", "entryBuilders", "entry", "entryBuilder", "bytecodeParameter", "buildClearABIContract", "clearABIContract", "buildUpdateBrokerageContract", "updateBrokerageContract", "buildAssetIssueContract", "total_supply", "trx_num", "start_time", "end_time", "free_asset_net_limit", "public_free_asset_net_limit", "public_free_asset_net_usage", "public_latest_free_net_time", "vote_score", "frozen_supply", "assetIssueContract", "frozenSupplyContract", "frozen_amount", "frozen_days", "buildAccountCreateContract", "accountCreateContract", "account_address", "buildAccountUpdateContract", "accountUpdateContract", "account_name", "buildSetAccountIdContract", "setAccountIdContract", "account_id", "buildProposalCreateContract", "proposalCreateContract", "parameters", "buildProposalDeleteContract", "proposalDeleteContract", "proposal_id", "buildVoteProposalContract", "proposalVoteContract", "is_add_approval", "buildExchangeCreateContract", "exchangeCreateContract", "first_token_id", "first_token_balance", "second_token_id", "second_token_balance", "buildExchangeInjectContract", "exchangeInjectContract", "exchange_id", "buildExchangeWithdrawContract", "exchangeWithdrawContract", "buildExchangeTransactionContract", "exchangeTransactionContract", "buildUpdateSettingContract", "updateSettingContract", "buildUpdateEnergyLimitContract", "updateEnergyLimitContract", "buildAccountPermissionUpdateContract", "accountPermissionUpdateContract", "actives", "buildPermission", "permission", "permission_name", "keyBuilder", "active", "buildUpdateAssetContract", "updateAssetContract", "new_limit", "new_public_limit", "txJsonToPb", "contractJson", "transactionObj", "rawDataObj", "ref_block_bytes", "ref_block_hash", "fee_limit", "txJsonToPbWithArgs", "compareTransaction", "transactionPb", "rawDataBytes", "rawDataHex", "txID", "raw_data_hex", "txPbToRawDataHex", "txCheck", "txCheckWithArgs", "txPbToTxID", "deepCopyJson", "checkBlockHeader", "createTransaction", "tronWeb", "raw_data", "type_url", "fullNode", "detail", "block_header", "blockID", "getTransactionOptions", "blockHeader", "TransactionBuilder", "sendTrx", "defaultAddress", "transactionOptions", "sendToken", "purchaseToken", "issuerAddress", "buyer", "freezeBalance", "duration", "freezeBalanceV2", "unfreezeBalanceV2", "cancelUnfreezeBalanceV2", "delegateResource", "undelegateResource", "withdrawBlockRewards", "applyForSR", "voterAddress", "srAddress", "voteList", "userFeePercentage", "tokenValue", "newAbi", "rawParameter", "funcABIV2", "parametersV2", "constructorParams", "replaceAddressPrefix", "functionSelector", "txLocal", "_triggerSmartContractLocal", "_triggerSmartContract", "triggerConstantContract", "_isConstant", "triggerConfirmedConstantContract", "confirmed", "estimateEnergy", "deployConstantContract", "pathInfo", "toUtf8", "_getTriggerSmartContractArgs", "parameterStr", "shieldedParameter", "resultManagerTriggerSmartContract", "clearABI", "trx", "contracts", "updateBrokerage", "createToken", "abbreviation", "trxRatio", "tokenRatio", "saleStart", "saleEnd", "freeBandwidth", "freeBandwidthLimit", "createAccount", "updateAccount", "updateToken", "sendAsset", "purchaseAsset", "createAsset", "updateAsset", "createProposal", "newParams", "deleteProposal", "proposalID", "voteProposal", "isApproval", "createTRXExchange", "tokenName", "tokenBalance", "trxBalance", "createTokenExchange", "firstTokenName", "secondTokenName", "injectExchangeTokens", "exchangeID", "tokenAmount", "withdrawExchangeTokens", "tradeExchangeTokens", "tokenAmountSold", "tokenAmountExpected", "fromAscii", "updateSetting", "updateEnergyLimit", "checkPermissions", "permissions", "updateAccountPermissions", "activesPermissions", "activesPermission", "_ownerPermissions", "_witnessPermissions", "_activesPermissions", "activePermissions", "_activesPermission", "newTxID", "resultManager", "alterTransaction", "dataFormat", "extendExpiration", "addUpdateData", "TRX_MESSAGE_HEADER", "ETH_MESSAGE_HEADER", "Trx", "broadcast", "broadcastHex", "sendRawTransaction", "sendHexTransaction", "_parseToken", "getCurrentBlock", "getConfirmedCurrentBlock", "solidityNode", "getBlock", "defaultBlock", "getBlockByHash", "getBlockByNumber", "blockHash", "getBlockTransactionCount", "transactions", "getTransactionFromBlock", "getTransactionsFromBlock", "getTransaction", "transactionID", "getConfirmedTransaction", "getUnconfirmedTransactionInfo", "getTransactionInfo", "getTransactionsToAddress", "getTransactionsRelated", "getTransactionsFromAddress", "direction", "getAccountById", "getAccountInfoById", "getUnconfirmedAccount", "getUnconfirmedAccountById", "getUnconfirmedBalance", "getBandwidth", "freeNetUsed", "freeNetLimit", "NetUsed", "NetLimit", "getTokensIssuedByAddress", "assetIssue", "getTokenFromID", "tokenID", "listNodes", "nodes", "getBlockRange", "startNum", "endNum", "_ref5", "listSuperRepresentatives", "witnesses", "listTokens", "_ref7", "_ref6", "timeUntilNextVoteCycle", "getContract", "ecRecover", "tronAddress", "verifyMessage", "useTronHeader", "verifySignature", "messageBytes", "recovered", "verifyMessageV2", "verifyTypedData", "_TypedDataEncoder", "defaultPrivateKey", "multisig", "signString", "messageDigest", "signMessageV2", "_signTypedData", "multiSign", "signWeight", "getSignWeight", "foundKey", "approved_list", "getApprovedList", "signedTransaction", "signedHexTransaction", "hexTransaction", "transactionBuilder", "getProposal", "listProposals", "proposals", "getChainParameters", "chainParameter", "getAccountResources", "getDelegatedResourceV2", "fromAddress", "getDelegatedResourceAccountIndexV2", "getCanDelegatedMaxSize", "getAvailableUnfreezeCount", "getCanWithdrawUnfreezeAmount", "getExchangeByID", "listExchanges", "_ref8", "exchanges", "listExchangesPaginated", "_ref9", "getNodeInfo", "getTokenListByName", "getTokenByID", "getReward", "_getReward", "getUnconfirmedReward", "_getBrokerage", "getUnconfirmedBrokerage", "reward", "getBandwidthPrices", "prices", "getEnergyPrices", "decodeOutput", "Method", "iface", "ethersUtils", "getFunctionSelector", "shouldPollResponse", "decodeInput", "onMethod", "_call", "_send", "deployed", "constant_result", "msg2", "checkResult", "pollTimes", "resMessage", "rawResponse", "keepTxID", "eventListener", "lastBlock", "methods", "methodInstances", "loadAbi", "methodCall", "inputData", "new", "at", "Plugin", "pluginNoOverride", "disablePlugins", "pluginInterface", "requires", "libs", "plugged", "skipped", "plugin", "fullClass", "classInstanceName", "Event", "setServer", "eventServer", "healthcheck", "isValidProvider", "getEventsByContractAddress", "newOptions", "eventName", "blockNumber", "onlyUnconfirmed", "onlyConfirmed", "minBlockTimestamp", "maxBlockTimestamp", "orderBy", "qs", "only_unconfirmed", "only_confirmed", "min_block_timestamp", "max_block_timestamp", "order_by", "success", "getEventsByTransactionID", "getEventsByBlockNumber", "getEventsOfLatestBlock", "DEFAULT_VERSION", "isValidOptions", "fullHost", "fullnodeVersion", "toAscii", "toDecimal", "fromDecimal", "fromSun", "toSun", "toBigNumber", "eventHeaders", "setFullNode", "setSolidityNode", "setEventServer", "setPrivateKey", "setFullNodeHeader", "setEventHeader", "getFullnodeVersion", "nodeInfo", "configNodeInfo", "codeVersion", "setDefaultBlock", "fullnodeSatisfies", "knownProvider", "currentProviders", "currentProvider", "getEventResult", "getEventByTransactionID", "padEnd", "sun", "accounts", "generateAccount", "generateRandom", "generateAccountWithMnemonic", "abytes", "HashMD", "SHA256_IV", "isBytes", "asciis", "_0", "_9", "_A", "_F", "_f", "asciiToBase16", "hl", "ai", "sqrtError", "addressBytes", "hash0", "checkSum", "base58Sting", "checkSum1", "priKeyBytes", "ECKeySign", "signedData", "arrayToBase64String", "signBytes", "contents", "getRowBytesFromTransactionBase64", "base64Data", "bytesDecode", "genPriKey", "priKeyHex", "secp", "pubBytes", "getAddressFromPriKey", "getPubKeyFromPriKey", "decode58Check", "addressStr", "decodeCheck", "decodeData", "hash1", "base58Str", "getBase58CheckAddressFromPriKeyBase64String", "priKeyBase64String", "getHexStrAddressFromPriKeyBase64String", "getAddressFromPriKeyBase64String", "normalizePrivateKeyBytes", "hashBytes", "msgBytes", "passwordToAddress", "INVALID_TRON_PATH_ERROR_MSG", "pubKeyBytes", "ethersHDNodeWallet", "TRON_MESSAGE_PREFIX", "validations", "Types" ], "sourceRoot": "" }