{"version":3,"file":"TronWeb.js","mappings":"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AAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,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//C0wJ,GAAK,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,KAEhgDn5I,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/Fm5I,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,WAE1/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,YAE1/F1lJ,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/F0lJ,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,WA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","sources":["webpack://TronWeb/webpack/universalModuleDefinition","webpack://TronWeb/webpack/runtime/create fake namespace object","webpack://TronWeb/./node_modules/@noble/curves/_shortw_utils.js","webpack://TronWeb/./node_modules/@noble/curves/abstract/curve.js","webpack://TronWeb/./node_modules/@noble/curves/abstract/hash-to-curve.js","webpack://TronWeb/./node_modules/@noble/curves/abstract/modular.js","webpack://TronWeb/./node_modules/@noble/curves/abstract/utils.js","webpack://TronWeb/./node_modules/@noble/curves/abstract/weierstrass.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/_assert.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/_sha2.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/crypto.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/hmac.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/sha256.js","webpack://TronWeb/./node_modules/@noble/curves/node_modules/@noble/hashes/utils.js","webpack://TronWeb/./node_modules/@noble/curves/secp256k1.js","webpack://TronWeb/./node_modules/@tronweb3/google-protobuf/google-protobuf.js","webpack://TronWeb/./node_modules/@tronweb3/google-protobuf/google/protobuf/any_pb.js","webpack://TronWeb/./src/protocol/core/Tron_pb.js","webpack://TronWeb/./src/protocol/core/contract/account_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/asset_issue_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/balance_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/common_pb.js","webpack://TronWeb/./src/protocol/core/contract/exchange_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/proposal_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/smart_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/storage_contract_pb.js","webpack://TronWeb/./src/protocol/core/contract/witness_contract_pb.js","webpack://TronWeb/./node_modules/bn.js/lib/bn.js","webpack://TronWeb/./node_modules/ethereum-cryptography/secp256k1.js","webpack://TronWeb/./node_modules/eventemitter3/index.js","webpack://TronWeb/./node_modules/injectpromise/index.js","webpack://TronWeb/./node_modules/js-sha3/src/sha3.js","webpack://TronWeb/./node_modules/querystring-es3/decode.js","webpack://TronWeb/./node_modules/querystring-es3/encode.js","webpack://TronWeb/./node_modules/querystring-es3/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/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/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/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/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/typeof.js","webpack://TronWeb/./node_modules/@babel/runtime/regenerator/index.js","webpack://TronWeb/webpack/bootstrap","webpack://TronWeb/webpack/runtime/amd options","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/webpack/runtime/node module decorator","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","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/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/helpers/isURLSameOrigin.js","webpack://TronWeb/./node_modules/axios/lib/helpers/speedometer.js","webpack://TronWeb/./node_modules/axios/lib/adapters/xhr.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/settle.js","webpack://TronWeb/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://TronWeb/./node_modules/axios/lib/core/dispatchRequest.js","webpack://TronWeb/./node_modules/axios/lib/core/mergeConfig.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/utils/base64.js","webpack://TronWeb/./src/utils/bytes.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://TronWeb/./src/utils/address.js","webpack://TronWeb/./src/utils/code.js","webpack://TronWeb/./src/utils/base58.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.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/./node_modules/@noble/hashes/esm/_assert.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/utils.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/cryptoBrowser.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/hmac.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/pbkdf2.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/_sha2.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/sha256.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/_u64.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/sha512.js","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/./node_modules/@noble/hashes/esm/sha3.js","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/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://TronWeb/./node_modules/@noble/secp256k1/lib/esm/index.js","webpack://TronWeb/../../src.ts/crypto/signing-key.ts","webpack://TronWeb/../../src.ts/transaction/address.ts","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","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/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://TronWeb/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","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.ts/address/checks.ts","webpack://TronWeb/../../src.ts/constants/strings.ts","webpack://TronWeb/../../src.ts/hash/typed-data.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/provider.ts","webpack://TronWeb/../../src.ts/providers/abstract-signer.ts","webpack://TronWeb/../../src.ts/wallet/base-wallet.ts","webpack://TronWeb/../../src.ts/hash/message.ts","webpack://TronWeb/./node_modules/@noble/hashes/esm/ripemd160.js","webpack://TronWeb/../../src.ts/crypto/ripemd160.ts","webpack://TronWeb/../../src.ts/crypto/random.ts","webpack://TronWeb/../../src.ts/utils/base58.ts","webpack://TronWeb/./node_modules/aes-js/lib.esm/aes.js","webpack://TronWeb/./node_modules/aes-js/lib.esm/mode.js","webpack://TronWeb/./node_modules/aes-js/lib.esm/mode-cbc.js","webpack://TronWeb/./node_modules/aes-js/lib.esm/mode-cfb.js","webpack://TronWeb/./node_modules/aes-js/lib.esm/mode-ctr.js","webpack://TronWeb/./node_modules/aes-js/lib.esm/mode-ofb.js","webpack://TronWeb/./node_modules/@noble/hashes/esm/scrypt.js","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/wallet/json-crowdsale.ts","webpack://TronWeb/./node_modules/aes-js/lib.esm/padding.js","webpack://TronWeb/../../src.ts/wallet/wallet.ts","webpack://TronWeb/../../src.ts/wordlists/wordlists-browser.ts","webpack://TronWeb/./src/utils/fragments.js","webpack://TronWeb/./src/utils/interface.js","webpack://TronWeb/./src/utils/ethersUtils.js","webpack://TronWeb/./src/utils/typedData.js","webpack://TronWeb/./src/utils/crypto.js","webpack://TronWeb/./src/utils/accounts.js","webpack://TronWeb/./node_modules/@ethersproject/logger/lib.esm/index.js","webpack://TronWeb/./node_modules/@ethersproject/logger/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/bytes/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/bytes/lib.esm/index.js","webpack://TronWeb/./node_modules/@ethersproject/properties/lib.esm/index.js","webpack://TronWeb/./node_modules/@ethersproject/properties/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","webpack://TronWeb/./node_modules/@ethersproject/bignumber/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","webpack://TronWeb/./node_modules/@ethersproject/address/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/address/lib.esm/index.js","webpack://TronWeb/./node_modules/@ethersproject/keccak256/lib.esm/index.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/address.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/array.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/null.js","webpack://TronWeb/./node_modules/@ethersproject/constants/lib.esm/bignumbers.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/number.js","webpack://TronWeb/./node_modules/@ethersproject/strings/lib.esm/_version.js","webpack://TronWeb/./node_modules/@ethersproject/strings/lib.esm/utf8.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/string.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/fragments.js","webpack://TronWeb/./node_modules/@ethersproject/abi/lib.esm/abi-coder.js","webpack://TronWeb/./src/utils/abi.js","webpack://TronWeb/./src/utils/message.js","webpack://TronWeb/./src/utils/transaction.js","webpack://TronWeb/./node_modules/bignumber.js/bignumber.mjs","webpack://TronWeb/./src/utils/index.js","webpack://TronWeb/./src/lib/providers/index.js","webpack://TronWeb/./src/lib/providers/HttpProvider.js","webpack://TronWeb/./src/paramValidator/index.js","webpack://TronWeb/./src/lib/transactionBuilder.js","webpack://TronWeb/./src/lib/trx.js","webpack://TronWeb/./src/lib/contract/method.js","webpack://TronWeb/./src/lib/contract/index.js","webpack://TronWeb/./src/lib/plugin.js","webpack://TronWeb/./src/lib/event.js","webpack://TronWeb/./src/lib/sidechain.js","webpack://TronWeb/./src/index.js"],"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 ","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCurve = exports.getHash = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)),\n randomBytes: utils_1.randomBytes,\n };\n}\nexports.getHash = getHash;\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_js_1.weierstrass)({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\nexports.createCurve = createCurve;\n//# sourceMappingURL=_shortw_utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateBasic = exports.wNAF = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n const W = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\nexports.wNAF = wNAF;\nfunction validateBasic(curve) {\n (0, modular_js_1.validateField)(curve.Fp);\n (0, utils_js_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_js_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\nexports.validateBasic = validateBasic;\n//# sourceMappingURL=curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createHasher = exports.isogenyMap = exports.hash_to_field = exports.expand_message_xof = exports.expand_message_xmd = void 0;\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nfunction validateDST(dst) {\n if (dst instanceof Uint8Array)\n return dst;\n if (typeof dst === 'string')\n return (0, utils_js_1.utf8ToBytes)(dst);\n throw new Error('DST must be Uint8Array or string');\n}\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_js_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction isBytes(item) {\n if (!(item instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n}\nfunction isNum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11#section-5.4.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_js_1.concatBytes)((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (ell > 255)\n throw new Error('Invalid xmd length');\n const DST_prime = (0, utils_js_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_js_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_js_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_js_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_js_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\nexports.expand_message_xmd = expand_message_xmd;\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\nexports.expand_message_xof = expand_message_xof;\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11#section-5.3\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_js_1.validateObject)(options, {\n DST: 'string',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n isBytes(msg);\n isNum(count);\n const DST = validateDST(_DST);\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_js_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nexports.hash_to_field = hash_to_field;\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nexports.isogenyMap = isogenyMap;\nfunction createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\nexports.createHasher = createHasher;\n//# sourceMappingURL=hash-to-curve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashToPrivateScalar = exports.FpSqrtEven = exports.FpSqrtOdd = exports.Field = exports.nLength = exports.FpIsSquare = exports.FpDiv = exports.FpInvertBatch = exports.FpPow = exports.validateField = exports.isNegativeLE = exports.FpSqrt = exports.tonelliShanks = exports.invert = exports.pow2 = exports.pow = exports.mod = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nconst utils_js_1 = require(\"./utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nexports.mod = mod;\n/**\n * Efficiently exponentiate num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * powMod(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\nexports.pow = pow;\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\nexports.pow2 = pow2;\n// Inverses number over modulo\nfunction invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Eucledian GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nexports.invert = invert;\n// Tonelli-Shanks algorithm\n// Paper 1: https://eprint.iacr.org/2012/685.pdf (page 12)\n// Paper 2: Square Roots from 1; 24, 51, 10 to Dan Shanks\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexports.tonelliShanks = tonelliShanks;\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\nexports.FpSqrt = FpSqrt;\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return (0, utils_js_1.validateObject)(field, opts);\n}\nexports.validateField = validateField;\n// Generic field functions\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\nexports.FpPow = FpPow;\n// 0 is non-invertible: non-batched version will throw on 0\nfunction FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexports.FpInvertBatch = FpInvertBatch;\nfunction FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nexports.FpDiv = FpDiv;\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x) => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\nexports.FpIsSquare = FpIsSquare;\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\nexports.nLength = nLength;\n/**\n * Initializes a galois field over prime. Non-primes are not supported for now.\n * Do not init in loop: slow. Very fragile: always run a benchmark on change.\n * Major performance gains:\n * a) non-normalized operations like mulN instead of mul\n * b) `Object.freeze`\n * c) Same object shape: never add or remove keys\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Fp ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: (0, utils_js_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? (0, utils_js_1.numberToBytesLE)(num, BYTES) : (0, utils_js_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? (0, utils_js_1.bytesToNumberLE)(bytes) : (0, utils_js_1.bytesToNumberBE)(bytes);\n },\n });\n return Object.freeze(f);\n}\nexports.Field = Field;\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexports.FpSqrtOdd = FpSqrtOdd;\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\nexports.FpSqrtEven = FpSqrtEven;\n/**\n * FIPS 186 B.4.1-compliant \"constant-time\" private key generation utility.\n * Can take (n+8) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being neglible.\n * Needs at least 40 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * @param hash hash output from SHA3 or a similar function\n * @returns valid private scalar\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_js_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberLE)(hash) : (0, utils_js_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\nexports.hashToPrivateScalar = hashToPrivateScalar;\n//# sourceMappingURL=modular.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateObject = exports.createHmacDrbg = exports.bitMask = exports.bitSet = exports.bitGet = exports.bitLen = exports.utf8ToBytes = exports.equalBytes = exports.concatBytes = exports.ensureBytes = exports.numberToVarBytesBE = exports.numberToBytesLE = exports.numberToBytesBE = exports.bytesToNumberLE = exports.bytesToNumberBE = exports.hexToBytes = exports.hexToNumber = exports.numberToHexUnpadded = exports.bytesToHex = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nexports.numberToHexUnpadded = numberToHexUnpadded;\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\nexports.hexToNumber = hexToNumber;\n// Caching slows it down 2-3x\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n if (hex.length % 2)\n throw new Error('hex string is invalid: unpadded ' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// Big Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexports.bytesToNumberBE = bytesToNumberBE;\nfunction bytesToNumberLE(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexports.bytesToNumberLE = bytesToNumberLE;\nconst numberToBytesBE = (n, len) => hexToBytes(n.toString(16).padStart(len * 2, '0'));\nexports.numberToBytesBE = numberToBytesBE;\nconst numberToBytesLE = (n, len) => (0, exports.numberToBytesBE)(n, len).reverse();\nexports.numberToBytesLE = numberToBytesLE;\n// Returns variable number bytes (minimal bigint encoding?)\nconst numberToVarBytesBE = (n) => hexToBytes(numberToHexUnpadded(n));\nexports.numberToVarBytesBE = numberToVarBytesBE;\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\nexports.ensureBytes = ensureBytes;\n// Copies several Uint8Arrays into one.\nfunction concatBytes(...arrs) {\n const r = new Uint8Array(arrs.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrs.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexports.concatBytes = concatBytes;\nfunction equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\n}\nexports.equalBytes = equalBytes;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\n// Bit operations\n// Amount of bits inside bigint (Same as n.toString(2).length)\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\nexports.bitLen = bitLen;\n// Gets single bit at position. NOTE: first bit position is 0 (same as arrays)\n// Same as !!+Array.from(n.toString(2)).reverse()[pos]\nconst bitGet = (n, pos) => (n >> BigInt(pos)) & _1n;\nexports.bitGet = bitGet;\n// Sets single bit at position\nconst bitSet = (n, pos, value) => n | ((value ? _1n : _0n) << BigInt(pos));\nexports.bitSet = bitSet;\n// Return mask for N bits (Same as BigInt(`0b${Array(i).fill('1').join('')}`))\n// Not using ** operator with bigints for old engines.\nconst bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\nexports.createHmacDrbg = createHmacDrbg;\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\nexports.validateObject = validateObject;\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapToCurveSimpleSWU = exports.SWUFpSqrtRatio = exports.weierstrass = exports.weierstrassPoints = exports.DER = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nconst mod = require(\"./modular.js\");\nconst ut = require(\"./utils.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst curve_js_1 = require(\"./curve.js\");\nfunction validatePointOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexports.DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n _parseInt(data) {\n const { Err: E } = exports.DER;\n if (data.length < 2 || data[0] !== 0x02)\n throw new E('Invalid signature integer tag');\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len)\n throw new E('Invalid signature integer: wrong length');\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n if (res[0] & 0b10000000)\n throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 0b10000000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E } = exports.DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!(data instanceof Uint8Array))\n throw new Error('ui8a expected');\n let l = data.length;\n if (l < 2 || data[0] != 0x30)\n throw new E('Invalid signature tag');\n if (data[1] !== l - 2)\n throw new E('Invalid signature: incorrect length');\n const { d: r, l: sBytes } = exports.DER._parseInt(data.subarray(2));\n const { d: s, l: rBytesLeft } = exports.DER._parseInt(sBytes);\n if (rBytesLeft.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num) => {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n };\n const s = slice(h(sig.s));\n const r = slice(h(sig.r));\n const shl = s.length / 2;\n const rhl = r.length / 2;\n const sl = h(shl);\n const rl = h(rhl);\n return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const toBytes = CURVE.toBytes ||\n ((c, point, isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num) {\n if (!isWithinCurveOrder(num))\n throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (key instanceof Uint8Array)\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE((0, utils_js_1.ensureBytes)('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, n); // disabled by default, enabled for BLS\n assertGE(num); // num in range [1..N-1]\n return num;\n }\n const pointPrecomputes = new Map();\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes((0, utils_js_1.ensureBytes)('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n // Zero is valid point too!\n if (this.is0()) {\n if (CURVE.allowInfinityPoint)\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = this.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, (comp) => {\n const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n });\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(n) {\n const I = Point.ZERO;\n if (n === _0n)\n return I;\n assertGE(n); // Will throw on 0\n if (n === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, n);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n assertGE(scalar);\n let n = scalar;\n let point, fake; // Fake point is used to const-time mult\n const { endo } = CURVE;\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n const { px: x, py: y, pz: z } = this;\n const is0 = this.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = (0, curve_js_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nexports.weierstrassPoints = weierstrassPoints;\nfunction validateOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\nfunction weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = (0, utils_js_1.ensureBytes)('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = exports.DER.toSig((0, utils_js_1.ensureBytes)('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r))\n throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s))\n throw new Error('s must be 0 < s < CURVE.n');\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN((0, utils_js_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return exports.DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size (nBitLength+64)\n * as per FIPS 186 B.4.1 with modulo bias being neglible.\n */\n randomPrivateKey: () => {\n const rand = CURVE.randomBytes(Fp.BYTES + 8);\n const num = mod.hashToPrivateScalar(rand, CURVE_ORDER);\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n if (typeof num !== 'bigint')\n throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK))\n throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n if (prehash)\n msgHash = (0, utils_js_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push((0, utils_js_1.ensureBytes)('extraEntropy', e, Fp.BYTES)); // check for being of size BYTES\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash (not message: you need to hash it by yourself).\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param opts `lowS, extraEntropy, prehash`\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const drbg = ut.createHmacDrbg(CURVE.hash.outputLen, CURVE.nByteLength, CURVE.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n publicKey = (0, utils_js_1.ensureBytes)('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || sg instanceof Uint8Array) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\nexports.weierstrass = weierstrass;\n// Implementation of the Shallue and van de Woestijne method for any Weierstrass curve\n// TODO: check if there is a way to merge this with uvRatio in Edwards && move to modular?\n// b = True and y = sqrt(u / v) if (u / v) is square in F, and\n// b = False and y = sqrt(Z * (u / v)) otherwise.\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n const c2 = (q - _1n) / _2n ** c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n ** c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n ** (c1 - _1n); // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = _2n ** (i - _2n); // 18. tv5 = i - 2; 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\n// From draft-irtf-cfrg-hash-to-curve-16\nfunction mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n//# sourceMappingURL=weierstrass.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexports.output = output;\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n _assert_js_1.default.exists(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n//# sourceMappingURL=_sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n _assert_js_1.default.hash(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n _assert_js_1.default.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// We use `globalThis.crypto`, but node.js versions earlier than v19 don't\n// declare it in global scope. For node.js, package.json#exports field mapping\n// rewrites import from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef])) // 'deadbeef'\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef') // Uint8Array.from([0xde, 0xad, 0xbe, 0xef])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG. Uses `globalThis.crypto` or node.js crypto module.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\nexports.randomBytes = randomBytes;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst modular_js_1 = require(\"./abstract/modular.js\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\nconst utils_js_1 = require(\"./abstract/utils.js\");\nconst htf = require(\"./abstract/hash-to-curve.js\");\nconst _shortw_utils_js_1 = require(\"./_shortw_utils.js\");\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_js_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_js_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_js_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_js_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_js_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_js_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_js_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_js_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_js_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_js_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_js_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_js_1.pow2)(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = (0, modular_js_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexports.secp256k1 = (0, _shortw_utils_js_1.createCurve)({\n a: BigInt(0),\n b: BigInt(7),\n Fp,\n n: secp256k1N,\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true,\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = (0, modular_js_1.mod)(k - c1 * a1 - c2 * a2, n);\n let k2 = (0, modular_js_1.mod)(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\nconst fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = (0, utils_js_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha256_1.sha256)((0, utils_js_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => (0, utils_js_1.numberToBytesBE)(n, 32);\nconst modP = (x) => (0, modular_js_1.mod)(x, secp256k1P);\nconst modN = (x) => (0, modular_js_1.mod)(x, secp256k1N);\nconst Point = exports.secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n if (!fe(x))\n throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN((0, utils_js_1.bytesToNumberBE)(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) {\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = (0, utils_js_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ (0, utils_js_1.bytesToNumberBE)(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN((0, utils_js_1.bytesToNumberBE)(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = (0, utils_js_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const pub = (0, utils_js_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x((0, utils_js_1.bytesToNumberBE)(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = (0, utils_js_1.bytesToNumberBE)(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!fe(r))\n return false;\n const s = (0, utils_js_1.bytesToNumberBE)(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\nexports.schnorr = {\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_js_1.numberToBytesBE,\n bytesToNumberBE: utils_js_1.bytesToNumberBE,\n taggedHash,\n mod: modular_js_1.mod,\n },\n};\nconst isoMap = htf.isogenyMap(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j))));\nconst mapSWU = (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n});\n_a = htf.createHasher(exports.secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256_1.sha256,\n}), exports.hashToCurve = _a.hashToCurve, exports.encodeToCurve = _a.encodeToCurve;\n//# sourceMappingURL=secp256k1.js.map","/*\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","// 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 () { return this; }).call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.js');\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\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.AccountCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountCreateContract.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.AccountCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountCreateContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getAccountAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\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/**\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(\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.AccountCreateContract.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.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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(\n this.getAccountAddress()));\n};\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(\n this.getAccountAddress()));\n};\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/**\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/**\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\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.AccountUpdateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountUpdateContract.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.AccountUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountUpdateContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\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};\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/**\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(\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.AccountUpdateContract.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.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setAccountName = 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.AccountUpdateContract.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.AccountUpdateContract.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.AccountUpdateContract.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.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setOwnerAddress = 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.SetAccountIdContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SetAccountIdContract.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.SetAccountIdContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SetAccountIdContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\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};\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/**\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(\n this.getAccountId()));\n};\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(\n this.getAccountId()));\n};\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/**\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/**\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(\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.SetAccountIdContract.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.SetAccountIdContract} returns this\n */\nTronWebProto.SetAccountIdContract.prototype.setOwnerAddress = 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.AccountPermissionUpdateContract.repeatedFields_ = [4];\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.AccountPermissionUpdateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountPermissionUpdateContract.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.AccountPermissionUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountPermissionUpdateContract.toObject = function(includeInstance, msg) {\n var f, 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(),\n core_Tron_pb.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.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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getOwner();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_Tron_pb.Permission.serializeBinaryToWriter\n );\n }\n f = message.getWitness();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n core_Tron_pb.Permission.serializeBinaryToWriter\n );\n }\n f = message.getActivesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n core_Tron_pb.Permission.serializeBinaryToWriter\n );\n }\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/**\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(\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.AccountPermissionUpdateContract.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.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional Permission owner = 2;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwner = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 2));\n};\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/**\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/**\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/**\n * optional Permission witness = 3;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getWitness = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 3));\n};\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/**\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/**\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/**\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/**\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/**\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\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 () { return this; }).call(null) ||\n Function('return this')();\n\nvar core_contract_common_pb = require('../../core/contract/common_pb.js');\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\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.FreezeBalanceContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.FreezeBalanceContract.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.FreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getFrozenDuration();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 10,\n f\n );\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 15,\n f\n );\n }\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/**\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(\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.FreezeBalanceContract.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.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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(\n this.getReceiverAddress()));\n};\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(\n this.getReceiverAddress()));\n};\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\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.UnfreezeBalanceContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceContract.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.UnfreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 10,\n f\n );\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 15,\n f\n );\n }\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/**\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(\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.UnfreezeBalanceContract.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.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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(\n this.getReceiverAddress()));\n};\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(\n this.getReceiverAddress()));\n};\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\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.WithdrawBalanceContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WithdrawBalanceContract.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.WithdrawBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawBalanceContract.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.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/**\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/**\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/**\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(\n 1,\n f\n );\n }\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/**\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(\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.WithdrawBalanceContract.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.WithdrawBalanceContract} returns this\n */\nTronWebProto.WithdrawBalanceContract.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.TransferContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TransferContract.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.TransferContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\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.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\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/**\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(\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.TransferContract.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.TransferContract} returns this\n */\nTronWebProto.TransferContract.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.TransferContract.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.TransferContract.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.TransferContract.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.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setToAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\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/**\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\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.TransactionBalanceTrace.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.TransactionBalanceTrace.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.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.TransactionBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.toObject = function(includeInstance, msg) {\n var f, obj = {\n transactionIdentifier: msg.getTransactionIdentifier_asB64(),\n operationList: jspb.Message.toObjectList(msg.getOperationList(),\n TronWebProto.TransactionBalanceTrace.Operation.toObject, includeInstance),\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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getOperationList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n TronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter\n );\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getStatus();\n if (f.length > 0) {\n writer.writeString(\n 4,\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.TransactionBalanceTrace.Operation.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.Operation.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.TransactionBalanceTrace.Operation} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.Operation.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\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 f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\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/**\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/**\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/**\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(\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.TransactionBalanceTrace.Operation.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.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\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/**\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/**\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/**\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(\n this.getTransactionIdentifier()));\n};\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(\n this.getTransactionIdentifier()));\n};\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nTronWebProto.BlockBalanceTrace.repeatedFields_ = [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.BlockBalanceTrace.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.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.BlockBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.toObject = function(includeInstance, msg) {\n var f, obj = {\n blockIdentifier: (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n timestamp: jspb.Message.getFieldWithDefault(msg, 2, 0),\n transactionBalanceTraceList: jspb.Message.toObjectList(msg.getTransactionBalanceTraceList(),\n TronWebProto.TransactionBalanceTrace.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.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/**\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/**\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/**\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(\n 1,\n f,\n TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter\n );\n }\n f = message.getTimestamp();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTransactionBalanceTraceList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n TronWebProto.TransactionBalanceTrace.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.BlockBalanceTrace.BlockIdentifier.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.BlockIdentifier.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.BlockBalanceTrace.BlockIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getNumber();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\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/**\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(\n this.getHash()));\n};\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(\n this.getHash()));\n};\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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\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.AccountTrace.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountTrace.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.AccountTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountTrace.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getPlaceholder();\n if (f !== 0) {\n writer.writeInt64(\n 99,\n f\n );\n }\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/**\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/**\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/**\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\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.AccountIdentifier.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountIdentifier.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.AccountIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountIdentifier.toObject = function(includeInstance, msg) {\n var f, obj = {\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.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/**\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/**\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/**\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(\n 1,\n f\n );\n }\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/**\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(\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.AccountIdentifier.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.AccountIdentifier} returns this\n */\nTronWebProto.AccountIdentifier.prototype.setAddress = 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.AccountBalanceRequest.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountBalanceRequest.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.AccountBalanceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n accountIdentifier: (f = msg.getAccountIdentifier()) && TronWebProto.AccountIdentifier.toObject(includeInstance, f),\n blockIdentifier: (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/**\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/**\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/**\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/**\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(\n 1,\n f,\n TronWebProto.AccountIdentifier.serializeBinaryToWriter\n );\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter\n );\n }\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} */ (\n jspb.Message.getWrapperField(this, TronWebProto.AccountIdentifier, 1));\n};\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/**\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/**\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/**\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/**\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/**\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\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.AccountBalanceResponse.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountBalanceResponse.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.AccountBalanceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n balance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n blockIdentifier: (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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter\n );\n }\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/**\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/**\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/**\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/**\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\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.FreezeBalanceV2Contract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.FreezeBalanceV2Contract.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.FreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceV2Contract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\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/**\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(\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.FreezeBalanceV2Contract.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.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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\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.UnfreezeBalanceV2Contract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceV2Contract.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.UnfreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceV2Contract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getUnfreezeBalance();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\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/**\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(\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.UnfreezeBalanceV2Contract.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.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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\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.WithdrawExpireUnfreezeContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WithdrawExpireUnfreezeContract.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.WithdrawExpireUnfreezeContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawExpireUnfreezeContract.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.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/**\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/**\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/**\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(\n 1,\n f\n );\n }\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/**\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(\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.WithdrawExpireUnfreezeContract.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.WithdrawExpireUnfreezeContract} returns this\n */\nTronWebProto.WithdrawExpireUnfreezeContract.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.DelegateResourceContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.DelegateResourceContract.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.DelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegateResourceContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getLock();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getLockPeriod();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\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/**\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(\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.DelegateResourceContract.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.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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/**\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/**\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(\n this.getReceiverAddress()));\n};\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(\n this.getReceiverAddress()));\n};\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/**\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/**\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/**\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/**\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\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.UnDelegateResourceContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UnDelegateResourceContract.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.UnDelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnDelegateResourceContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\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/**\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(\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.UnDelegateResourceContract.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.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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/**\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/**\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/**\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/**\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(\n this.getReceiverAddress()));\n};\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(\n this.getReceiverAddress()));\n};\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\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.CancelAllUnfreezeV2Contract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.CancelAllUnfreezeV2Contract.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.CancelAllUnfreezeV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CancelAllUnfreezeV2Contract.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.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/**\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/**\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/**\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(\n 1,\n f\n );\n }\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/**\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(\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.CancelAllUnfreezeV2Contract.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.CancelAllUnfreezeV2Contract} returns this\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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 () { return this; }).call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.js');\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\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.SmartContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SmartContract.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.SmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getAbi();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n TronWebProto.SmartContract.ABI.serializeBinaryToWriter\n );\n }\n f = message.getBytecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getCodeHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 9,\n f\n );\n }\n f = message.getTrxHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 10,\n f\n );\n }\n f = message.getVersion();\n if (f !== 0) {\n writer.writeInt32(\n 11,\n f\n );\n }\n};\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\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.SmartContract.ABI.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.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.SmartContract.ABI} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.toObject = function(includeInstance, msg) {\n var f, obj = {\n entrysList: jspb.Message.toObjectList(msg.getEntrysList(),\n TronWebProto.SmartContract.ABI.Entry.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.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/**\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/**\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/**\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(\n 1,\n f,\n TronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter\n );\n }\n};\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\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.SmartContract.ABI.Entry.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.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.SmartContract.ABI.Entry} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.toObject = function(includeInstance, msg) {\n var f, 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(msg.getInputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject, includeInstance),\n outputsList: jspb.Message.toObjectList(msg.getOutputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject, includeInstance),\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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getConstant();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getInputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter\n );\n }\n f = message.getOutputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 6,\n f\n );\n }\n f = message.getPayable();\n if (f) {\n writer.writeBool(\n 7,\n f\n );\n }\n f = message.getStatemutability();\n if (f !== 0.0) {\n writer.writeEnum(\n 8,\n f\n );\n }\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\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.SmartContract.ABI.Entry.Param.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.Param.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.SmartContract.ABI.Entry.Param} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.Param.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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} */ (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/**\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/**\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/**\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/**\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/**\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(\n this.getOriginAddress()));\n};\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(\n this.getOriginAddress()));\n};\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/**\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/**\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(\n this.getContractAddress()));\n};\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(\n this.getContractAddress()));\n};\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/**\n * optional ABI abi = 3;\n * @return {?TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.prototype.getAbi = function() {\n return /** @type{?TronWebProto.SmartContract.ABI} */ (\n jspb.Message.getWrapperField(this, TronWebProto.SmartContract.ABI, 3));\n};\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/**\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/**\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/**\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/**\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(\n this.getBytecode()));\n};\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(\n this.getBytecode()));\n};\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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/**\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(\n this.getCodeHash()));\n};\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(\n this.getCodeHash()));\n};\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/**\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/**\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(\n this.getTrxHash()));\n};\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(\n this.getTrxHash()));\n};\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/**\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/**\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\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.ContractState.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ContractState.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.ContractState} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ContractState.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getEnergyFactor();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getUpdateCycle();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\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/**\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/**\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/**\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/**\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/**\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\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.CreateSmartContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.CreateSmartContract.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.CreateSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CreateSmartContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getNewContract();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n TronWebProto.SmartContract.serializeBinaryToWriter\n );\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getTokenId();\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.CreateSmartContract.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.CreateSmartContract.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.CreateSmartContract.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.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional SmartContract new_contract = 2;\n * @return {?TronWebProto.SmartContract}\n */\nTronWebProto.CreateSmartContract.prototype.getNewContract = function() {\n return /** @type{?TronWebProto.SmartContract} */ (\n jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 2));\n};\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/**\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/**\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/**\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/**\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/**\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/**\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\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.TriggerSmartContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TriggerSmartContract.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.TriggerSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TriggerSmartContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getTokenId();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\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/**\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(\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.TriggerSmartContract.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.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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(\n this.getContractAddress()));\n};\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(\n this.getContractAddress()));\n};\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/**\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/**\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/**\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/**\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(\n this.getData()));\n};\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(\n this.getData()));\n};\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/**\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/**\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/**\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/**\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\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.ClearABIContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ClearABIContract.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.ClearABIContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ClearABIContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getContractAddress_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.ClearABIContract.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.ClearABIContract.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.ClearABIContract.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.ClearABIContract} returns this\n */\nTronWebProto.ClearABIContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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(\n this.getContractAddress()));\n};\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(\n this.getContractAddress()));\n};\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\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.UpdateSettingContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateSettingContract.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.UpdateSettingContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateSettingContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\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/**\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(\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.UpdateSettingContract.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.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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(\n this.getContractAddress()));\n};\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(\n this.getContractAddress()));\n};\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/**\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/**\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\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.UpdateEnergyLimitContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateEnergyLimitContract.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.UpdateEnergyLimitContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateEnergyLimitContract.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f\n );\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\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/**\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(\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.UpdateEnergyLimitContract.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.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\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/**\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(\n this.getContractAddress()));\n};\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(\n this.getContractAddress()));\n};\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/**\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/**\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\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.SmartContractDataWrapper.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SmartContractDataWrapper.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.SmartContractDataWrapper} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContractDataWrapper.toObject = function(includeInstance, msg) {\n var f, 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/**\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/**\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/**\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/**\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(\n 1,\n f,\n TronWebProto.SmartContract.serializeBinaryToWriter\n );\n }\n f = message.getRuntimecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getContractState();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n TronWebProto.ContractState.serializeBinaryToWriter\n );\n }\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} */ (\n jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 1));\n};\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/**\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/**\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/**\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/**\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(\n this.getRuntimecode()));\n};\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(\n this.getRuntimecode()));\n};\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/**\n * optional ContractState contract_state = 3;\n * @return {?TronWebProto.ContractState}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getContractState = function() {\n return /** @type{?TronWebProto.ContractState} */ (\n jspb.Message.getWrapperField(this, TronWebProto.ContractState, 3));\n};\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/**\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/**\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\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","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.secp256k1 = void 0;\nvar secp256k1_1 = require(\"@noble/curves/secp256k1\");\nObject.defineProperty(exports, \"secp256k1\", { enumerable: true, get: function () { return secp256k1_1.secp256k1; } });\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","module.exports = function (scope) {\n return (func, ...args) => {\n return (function (func, ...args) {\n return new Promise((resolve, reject) => {\n func(...args, (err, res) => {\n if (err) {\n reject(err)\n } else {\n resolve(res)\n }\n })\n })\n })(func.bind(scope), ...args)\n }\n}\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\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(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\n\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\n\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\n\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\n\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\n\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\n\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\n\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\n\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\n\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\n\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\n\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\n\nvar _isTime = _interopRequireDefault(require(\"./lib/isTime\"));\n\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\n\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\n\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\n\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\n\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\n\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\n\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\n\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\n\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\n\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\n\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\n\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\n\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\n\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\n\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\n\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\n\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\n\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\n\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\n\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\n\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\n\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\n\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\n\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\n\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\n\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\n\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\n\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\n\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\n\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\n\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\n\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\n\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\n\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\n\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\n\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\n\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\n\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\n\nvar _isLuhnNumber = _interopRequireDefault(require(\"./lib/isLuhnNumber\"));\n\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\n\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\n\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\n\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\n\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\n\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\n\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\n\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\n\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\n\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\n\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\n\nvar _isISO = _interopRequireDefault(require(\"./lib/isISO6391\"));\n\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO8601\"));\n\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\n\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\n\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\n\nvar _isISO3 = _interopRequireDefault(require(\"./lib/isISO4217\"));\n\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\n\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\n\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\n\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\n\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\n\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\n\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\n\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\n\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\n\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\n\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\n\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\n\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\n\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\n\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\n\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\n\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\n\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\n\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\n\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = '13.9.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 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 isISO6391: _isISO.default,\n isISO8601: _isISO2.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO3.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.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 = validator;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.bengaliLocales = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar 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 '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 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nexports.alpha = alpha;\nvar 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 '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 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\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} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\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}\n\nvar farsiLocales = ['IR', 'AF'];\nexports.farsiLocales = farsiLocales;\n\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}\n\nvar bengaliLocales = ['BD', 'IN'];\nexports.bengaliLocales = bengaliLocales;\n\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} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', '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', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\n\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\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']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL']; // see #1455\n\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\n\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\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\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\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\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str); // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n\n var countryCode = str.slice(4, 6).toUpperCase();\n\n if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== 'XK') {\n return false;\n }\n\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\nvar crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;\nvar defaultBase32Options = {\n crockford: false\n};\n\nfunction isBase32(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase32Options);\n\n if (options.crockford) {\n return crockfordBase32.test(str);\n }\n\n var len = str.length;\n\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\n\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n\n if (base58Reg.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\n\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\n\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n\n return strictBooleans.includes(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return bech32.test(str) || base58.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\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\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\n/* eslint-disable max-len */\n\nvar allCards = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/;\n/* eslint-enable max-len */\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\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.test(sanitized)) {\n // no specific provider\n return false;\n }\n\n return (0, _isLuhnNumber.default)(card);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\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 } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\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\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\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 } // 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\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\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};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+\\._]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.slice(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.slice(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\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\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\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 = isDate;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { 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(_e2) { throw _e2; }, 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 = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\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}\n\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n\n return zippedArr;\n}\n\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatbility 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\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\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n\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\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return new Date(\"\".concat(dateObj.m, \"/\").concat(dateObj.d, \"/\").concat(dateObj.y)).getDate() === +dateObj.d;\n }\n\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\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 */\n\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 * 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 */\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: 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/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n\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 } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // 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\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // 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\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\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(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\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\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.slice(1, -1);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\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\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\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 = isEmpty;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n /* Remove the optional wildcard before checking validity */\n\n\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\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 } // disallow spaces\n\n\n if (/\\s/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\n if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n return false;\n }\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}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str); // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n\n return hslSpace.test(strippedStr);\n}\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 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 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 * 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 * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\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 */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\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}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nvar locales = Object.keys(ibanRegexThroughCountryCode);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\n\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n\n if (!imeiRegex.test(str)) {\n return false;\n }\n\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n\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\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n\n var chk = (10 - sum % 10) % 10;\n\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\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 = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\n\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet\n\n if (parts.length !== 2) {\n return false;\n }\n\n if (!subnetMaybe.test(parts[1])) {\n return false;\n } // Disallow preceding 0 i.e. 01, 02, ...\n\n\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n\n var isValidIP = (0, _isIP.default)(parts[0], version);\n\n if (!isValidIP) {\n return false;\n } // Define valid subnet according to IP's version\n\n\n var expectedSubnet = null;\n\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n\n case '6':\n expectedSubnet = v6Subnet;\n break;\n\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar possibleIsbn13 = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(isbn, options) {\n (0, _assertString.default)(isbn); // For backwards compatibility:\n // isISBN(str [, version]), i.e. `options` could be used as argument for the legacy `version`\n\n var version = String((options === null || options === void 0 ? void 0 : options.version) || options);\n\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\n var sanitizedIsbn = isbn.replace(/[\\s-]+/g, '');\n var checksum = 0;\n\n if (version === '10') {\n if (!possibleIsbn10.test(sanitizedIsbn)) {\n return false;\n }\n\n for (var i = 0; i < version - 1; i++) {\n checksum += (i + 1) * sanitizedIsbn.charAt(i);\n }\n\n if (sanitizedIsbn.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitizedIsbn.charAt(9);\n }\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\n for (var _i = 0; _i < 12; _i++) {\n checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);\n }\n\n if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return true;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; // 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\n if (!isin.test(str)) {\n return false;\n }\n\n var double = true;\n var sum = 0; // convert values\n\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); // letters have two digits, so handle the low order\n // and high order digits separately.\n\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n\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\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n\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\n double = !double;\n }\n }\n\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\nexports.CountryCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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']);\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\n\nvar CountryCodes = validISO31661Alpha2CountriesCodes;\nexports.CountryCodes = CountryCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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']);\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO4217;\nexports.CurrencyCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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', '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']);\n\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\n\nvar CurrencyCodes = validISO4217CurrencyCodes;\nexports.CurrencyCodes = CurrencyCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO6391;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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']);\n\nfunction isISO6391(str) {\n (0, _assertString.default)(str);\n return isISO6391Set.has(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time\n\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 */\n\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\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\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; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\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\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\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\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\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']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\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\n if (str.length !== 11) {\n return false;\n }\n\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\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}$/; // multiplication table\n\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]]; // permutation table\n\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]]; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\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\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);\n }\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\n return str.search(/C[A-Z][0-9]{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; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n\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; // validate check digit\n\n var sum = 0;\n\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\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}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\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}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!NIN.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11', // 北京\n '12', // 天津\n '13', // 河北\n '14', // 山西\n '15', // 内蒙古\n '21', // 辽宁\n '22', // 吉林\n '23', // 黑龙江\n '31', // 上海\n '32', // 江苏\n '33', // 浙江\n '34', // 安徽\n '35', // 福建\n '36', // 江西\n '37', // 山东\n '41', // 河南\n '42', // 湖北\n '43', // 湖南\n '44', // 广东\n '45', // 广西\n '46', // 海南\n '50', // 重庆\n '51', // 四川\n '52', // 贵州\n '53', // 云南\n '54', // 西藏\n '61', // 陕西\n '62', // 甘肃\n '63', // 青海\n '64', // 宁夏\n '65', // 新疆\n '71', // 台湾\n '81', // 香港\n '82', // 澳门\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\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\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\n if (xdata > new Date()) {\n return false; // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n\n return false;\n };\n\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n\n var mod = power % 11;\n return parityBit[mod];\n };\n\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\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\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\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n\n return check18IdCardNo(idCardNo);\n };\n\n return checkIdCardNo(str);\n },\n 'zh-HK': function zhHK(str) {\n // sanitize user input\n str = str.trim(); // HKID number starts with 1 or 2 letters, followed by 6 digits,\n // then a checksum contained in square / round brackets or nothing\n\n var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\\([0-9A]\\))|(\\[[0-9A]\\])|([0-9A]))$/;\n var regexIsDigit = /^[0-9]$/; // convert the user input to all uppercase and apply regex\n\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\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\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\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\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\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n\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\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\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar default_json_options = {\n allow_primitives: false\n};\n\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n\n if (len > 3 || len < 2) {\n return false;\n }\n\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, 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 = isLatLong;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\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\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\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\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\n\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n\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\n if (validator(str)) {\n return true;\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-Za-z]{2,4}([_-]([A-Za-z]{4}|[\\d]{3}))?([_-]([A-Za-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n\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\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\n if (options.eui === '64') {\n return macAddress64NoSeparators.test(str);\n }\n\n return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);\n }\n\n if ((options === null || options === void 0 ? void 0 : options.eui) === '48') {\n return macAddress48.test(str) || macAddress48WithDots.test(str);\n }\n\n if ((options === null || options === void 0 ? void 0 : options.eui) === '64') {\n return macAddress64.test(str) || macAddress64WithDots.test(str);\n }\n\n return isMACAddress(str, {\n eui: '48'\n }) || isMACAddress(str, {\n eui: '64'\n });\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar md5 = /^[a-f0-9]{32}$/;\n\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n\n if (url.indexOf('magnet:?') !== 0) {\n return false;\n }\n\n return magnetURIComponent.test(url);\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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// 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// Handle \"charset\" in \"text/*\"\n\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// Handle \"boundary\" in \"multipart/*\"\n\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}\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\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-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 '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-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 '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 ?\\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 '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// aliases\n\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'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\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\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // 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\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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]{2,3}\\d{7,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}$/ // UNITED STATES\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 */\n\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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: /^\\d{4}\\s?[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 = Object.keys(patterns);\nexports.locales = locales;\n\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n\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\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\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, \"$\"));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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)?)\\)$/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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');\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\n\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\n\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n/* Return information about a password */\n\n\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}\n\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n\n return points;\n}\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\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\n\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\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); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\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/**\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// 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\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\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n }); // Calculate checksum by multiplying digits with fixed values\n\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\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 */\n\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 * 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 */\n\n\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract full year from TIN length\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\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\n\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 } // Add missing zero if needed\n\n\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\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\n month -= 20;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Verify divisibility by 11\n\n\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\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\n return true;\n}\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\n\n\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\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 */\n\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 }); // Fill array with strings of number positions\n\n var occurences = [];\n\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n } // Remove digits with one occurence and test for only one duplicate/triplicate\n\n\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n } // In case of triplicate value only two digits are allowed next to each other\n\n\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\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\n if (recurrent === 2) {\n return false;\n }\n }\n\n return algorithms.iso7064Check(tin);\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 */\n\n\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract year, check if valid for given century digit and add century\n\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n\n break;\n\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\n break;\n } // Add missing zero if needed\n\n\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n } // Check date validity\n\n\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n\n if (weight === 1) {\n weight = 7;\n }\n }\n\n checksum %= 11;\n\n if (checksum === 1) {\n return false;\n }\n\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\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 */\n\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; // add digits in even places\n\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n } // add digits in odd places\n\n\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\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\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 */\n\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\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n\n return checksum % 11 % 10 === digits[8];\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 */\n\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\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n\n checksum %= 23;\n\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n} // Valid US IRS campus prefixes\n\n\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}; // Return an array of all US IRS campus prefixes\n\nfunction enUsGetPrefixes() {\n var prefixes = [];\n\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\n return prefixes;\n}\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\n\n\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;\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 */\n\n\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Replace initial letter if needed\n\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n\n case 'Z':\n lead_replace = 2;\n break;\n\n default:\n }\n\n chars.splice(0, 1, lead_replace); // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n } // Calculate checksum and check according to lookup\n\n\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 * 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 */\n\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\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n } // Do again if modulo 11 of checksum is 10\n\n\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n }\n\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n\n return checksum % 11 === digits[10];\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 */\n\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\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate check character\n\n\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\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 * 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 */\n\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\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n\n if (checksum !== checkdigits) {\n return false;\n }\n }\n\n return true;\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 */\n\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 * 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 */\n\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\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Run Luhn check\n\n\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n } // Remove Luhn check digit and run Verhoeff check\n\n\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\n\n\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n/*\n * hu-HU validation function\n * (Adóazonosító jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\n\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\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n\n return checksum % 11 === digits[9];\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 */\n\n\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false; // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n\n var xflag = false;\n\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\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n\n return true;\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 */\n\n\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Check first and last name validity calling itItNameCheck()\n\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n } // Convert letters in number spaces back to numbers if any\n\n\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\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n } // Extract month and day, and check date validity\n\n\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\n if (day > 40) {\n day -= 40;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n } // Calculate check character by adding up even and odd characters as numbers\n\n\n var checksum = 0;\n\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n\n checksum += char_to_int;\n }\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\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n\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\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n\n checksum += _char_to_int;\n }\n\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n\n return true;\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 */\n\n\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract date from TIN\n\n var day = tin.slice(0, 2);\n\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n } // Calculate check digit\n\n\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n\n return parseInt(tin[10], 10) === checksum % 11;\n }\n\n return true;\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 */\n\n\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split(''); // Fill with zeros if smaller than proper\n\n while (chars.length < 8) {\n chars.unshift(0);\n } // Validate format according to last character\n\n\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n\n break;\n\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n\n if (first_part > 32000) {\n return false;\n }\n\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n\n return true;\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 */\n\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 * 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 */\n\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\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n\n _checksum %= 11;\n\n if (_checksum === 10) {\n return false;\n }\n\n return _checksum === parseInt(tin[9], 10);\n } // PESEL\n // Extract full year using month\n\n\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n\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 } // Add leading zero to month if needed\n\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate last digit by mulitplying with odd one-digit numbers except 5\n\n\n var checksum = 0;\n var multiplier = 1;\n\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\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\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n\n var remainder;\n _sum = 0;\n if ( // 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\n for (var i = 1; i <= 9; i++) {\n _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n }\n\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\n for (var _i8 = 1; _i8 <= 10; _i8++) {\n _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n }\n\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\n if ( // 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\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\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n\n return true;\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 */\n\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\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n\n return checksum === parseInt(tin[8], 10);\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 */\n\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\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n\n default:\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\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 } // Calculate check digit\n\n\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\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n\n return digits[12] === checksum % 11;\n }\n\n return true;\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 */\n\n\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n // Extract full year from TIN length\n\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\n if (full_year > 53) {\n return false;\n }\n\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n return true;\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 */\n\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\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n\n return checksum === parseInt(tin[7], 10);\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 */\n\n\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n } // Extract date of birth\n\n\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n\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\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\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n } // Normalize day and check date validity\n\n\n if (day > 60) {\n day -= 60;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n\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 return algorithms.luhnCheck(tin.replace(/\\W/, ''));\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 */\n\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-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}; // taxIdFormat locale aliases\n\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE'];\ntaxIdFormat['fr-CA'] = taxIdFormat['en-CA']; // Algorithmic tax id check functions for various locales\n\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-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}; // taxIdCheck locale aliases\n\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE'];\ntaxIdCheck['fr-CA'] = taxIdCheck['en-CA']; // Regexes for locales where characters should be omitted before checking format\n\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n}; // sanitizeRegexes locale aliases\n\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\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 */\n\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str); // Copy TIN to avoid replacement if sanitized\n\n var strcopy = str.slice(0);\n\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n } // Fallthrough; not all locales have algorithmic checks\n\n\n return true;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTime;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\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.\"); }\n\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); }\n\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\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\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*/\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]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\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\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\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\n split[0] = url.slice(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n if (split[0] === '') {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\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\n if (user === '' && password === '') {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\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\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n\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\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n\n if (host === '' && !options.require_host) {\n return true;\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\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 = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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 all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PT = function PT(str) {\n var match = str.match(/^(PT)?(\\d{9})$/);\n\n if (!match) {\n return false;\n }\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\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n\n return checksum === parseInt(tin[8], 10);\n};\n\nvar 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\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: function AU(str) {\n return /^(AU)?\\d{11}$/.test(str);\n },\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{9}$/.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: function CH(str) {\n return /^(CH)?(\\d{6}|\\d{9}|(\\d{3}.\\d{3})|(\\d{3}.\\d{3}.\\d{3}))(TVA|MWST|IVA)$/.test(str);\n },\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\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};\nexports.vatMatchers = vatMatchers;\n\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode](str);\n }\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;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\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 = ltrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return !!str.match(pattern);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}; // List of domains used by iCloud\n\nvar icloud_domains = ['icloud.com', 'me.com']; // 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/\n\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']; // List of domains used by Yahoo Mail\n// This list is likely incomplete\n\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com']; // List of domains used by yandex.ru\n\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru']; // replace single dots, but not multiple consecutive dots\n\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n\n return '';\n}\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]; // The domain is always lowercased, as it's case-insensitive per RFC 1035\n\n parts[1] = parts[1].toLowerCase();\n\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\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\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\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\n if (!parts[0].length) {\n return false;\n }\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\n if (!parts[0].length) {\n return false;\n }\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\n if (!parts[0].length) {\n return false;\n }\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\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\n return parts.join('@');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n\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 } // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n\n\n var strIndex = str.length - 1;\n\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n\n return str.slice(0, strIndex + 1);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\n\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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, '&'); // & 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}\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/**\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\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\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\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 */\n\n\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n\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\n second = !second;\n }\n\n return checksum % 10 === 0;\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 */\n\n\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n\n return total;\n}\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\n\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]]; // Copy (to prevent replacement) and reverse\n\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n\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\n return checksum === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\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}\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;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\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/**\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}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// 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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\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\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 value = +value;\n return Number.isFinite(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\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\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};\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\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\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 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'],\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 if (!hasJSONContentType) {\n return data;\n }\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 ) {\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 (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 {\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","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 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","'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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return 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 };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.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 requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 // 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 if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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(fullPath);\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","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\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 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\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\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","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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","export const VERSION = \"1.6.2\";","'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 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","export function Base64() {\n this._keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n this.encode = input => {\n let output = \"\";\n let chr1;\n let chr2;\n let chr3;\n let enc1;\n let enc2;\n let enc3;\n let enc4;\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))\n enc3 = enc4 = 64;\n else if (isNaN(chr3))\n enc4 = 64;\n\n output = output +\n this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +\n this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n this.encodeIgnoreUtf8 = inputBytes => {\n let output = \"\";\n let chr1;\n let chr2;\n let chr3;\n let enc1;\n let enc2;\n let enc3;\n let enc4;\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))\n enc3 = enc4 = 64;\n else if (isNaN(chr3))\n enc4 = 64;\n\n output = output +\n this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +\n this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n this.decode = input => {\n let output = \"\";\n let chr1;\n let chr2;\n let chr3;\n let enc1;\n let enc2;\n let enc3;\n let enc4;\n let i = 0;\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (i < input.length) {\n enc1 = this._keyStr.indexOf(input.charAt(i++));\n enc2 = this._keyStr.indexOf(input.charAt(i++));\n enc3 = this._keyStr.indexOf(input.charAt(i++));\n enc4 = this._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)\n output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64)\n output = output + String.fromCharCode(chr3);\n }\n\n return this._utf8_decode(output);\n }\n\n this.decodeToByteArray = input => {\n let output = \"\";\n let chr1;\n let chr2;\n let chr3;\n let enc1;\n let enc2;\n let enc3;\n let enc4;\n let i = 0;\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (i < input.length) {\n enc1 = this._keyStr.indexOf(input.charAt(i++));\n enc2 = this._keyStr.indexOf(input.charAt(i++));\n enc3 = this._keyStr.indexOf(input.charAt(i++));\n enc4 = this._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)\n output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64)\n output = output + String.fromCharCode(chr3);\n }\n\n return this._out2ByteArray(output);\n }\n\n this._out2ByteArray = utftext => {\n const byteArray = 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 this._utf8_encode = 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 this._utf8_decode = utftext => {\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';\n\nexport function byte2hexStr(byte) {\n if (typeof byte !== 'number')\n throw new Error('Input must be a number');\n\n if (byte < 0 || byte > 255)\n 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) {\n if (typeof arr === 'string')\n return arr;\n\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++)\n 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) {\n const arr = hex.replace(/^0x/, '').split('');\n let out = '';\n\n for (let i = 0; i < arr.length / 2; i++) {\n let tmp = `0x${arr[i * 2]}${arr[i * 2 + 1]}`;\n out += String.fromCharCode(tmp);\n }\n\n return out;\n}\n\nexport function byteArray2hexStr(byteArray) {\n let str = '';\n\n for (let i = 0; i < (byteArray.length); i++)\n str += byte2hexStr(byteArray[i]);\n\n return str;\n}\n\nexport function base64DecodeFromString(string64) {\n return new Base64().decodeToByteArray(string64);\n}\n\nexport function base64EncodeToString(bytes) {\n const b = new Base64();\n const string64 = b.encodeIgnoreUtf8(bytes);\n\n return string64\n}\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export 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\";","import {\n byte2hexStr,\n bytesToString,\n hextoString,\n byteArray2hexStr,\n base64DecodeFromString,\n base64EncodeToString\n} from './bytes';\n\nexport function bin2String(array) {\n // TODO Do we need this alias?\n return bytesToString(array);\n}\n\nexport function arrayEquals(array1, array2, strict) {\n if (array1.length != array2.length)\n return false;\n\n let i;\n\n for (i = 0; i < array1.length; i++) {\n if (strict) {\n if (array1[i] != array2[i])\n return false;\n } else if (JSON.stringify(array1[i]) != JSON.stringify(array2[i]))\n return false;\n }\n\n return true;\n}\n\nexport function stringToBytes(str) {\n\n if (typeof str !== 'string')\n throw new Error('The passed string is not a string')\n\n const bytes = new Array();\n let len;\n let c;\n\n len = str.length;\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) {\n let d;\n\n if (c >= 'A' && c <= 'F')\n d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n else if (c >= 'a' && c <= 'f')\n d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;\n else if (c >= '0' && c <= '9')\n d = c.charCodeAt(0) - '0'.charCodeAt(0);\n\n if (typeof d === 'number')\n return d;\n else\n throw new Error('The passed hex char is not a valid hex char');\n}\n\nexport function isHexChar(c) {\n if ((c >= 'A' && c <= 'F') ||\n (c >= 'a' && c <= 'f') ||\n (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, strict = false) {\n if (typeof str !== 'string')\n throw new Error('The passed string is not a string')\n\n let len = str.length;\n\n if (strict) {\n if (len % 2) {\n str = `0${str}`;\n len++;\n }\n }\n const byteArray = Array();\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\n 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) {\n\n if (!/^\\d{4}-\\d{2}-\\d{2}( \\d{2}-\\d{2}-\\d{2}|)/.test(str))\n 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) {\n if (c >= '0' && c <= '9')\n 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) {\n if (null == str)\n return -1;\n\n if (typeof (str) != 'string')\n return -1;\n\n if (str.length == 0 || str == \"\")\n return -1;\n\n let i = 0;\n\n // TODO Should we return 1 if someone passes a full, 42-chars long address?\n // if (str.length == 42 && /^41/.test(str)) {\n // for (; i < 40; i++) {\n // var c = str.charAt(i+2);\n //\n // if (!isHexChar(c))\n // break;\n // }\n // } else\n if (str.length == 40) {\n for (; i < 40; i++) {\n var c = str.charAt(i);\n\n if (!isHexChar(c))\n break;\n }\n }\n\n if (i == 40)\n return 1; //40 Hex, Address\n\n for (i = 0; i < str.length; i++) {\n var c = str.charAt(i);\n\n if (!isNumber(c))\n break;\n }\n\n if (i == str.length)\n return 2; // All Decimal number, BlockNumber\n\n for (i = 0; i < str.length; i++) {\n var c = str.charAt(i);\n\n if (c > ' ')\n return 3; // At least one visible character\n }\n\n return -1;\n}\n","const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nconst ALPHABET_MAP = {};\n\nfor (let i = 0; i < ALPHABET.length; i++)\n ALPHABET_MAP[ALPHABET.charAt(i)] = i;\n\nconst BASE = 58;\n\nexport function encode58(buffer) {\n if (buffer.length === 0)\n return '';\n\n let i;\n let j;\n\n const digits = [0];\n\n for (i = 0; i < buffer.length; i++) {\n for (j = 0; j < digits.length; j++)\n digits[j] <<= 8;\n\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++)\n digits.push(0);\n\n return digits.reverse().map(digit => ALPHABET[digit]).join('');\n}\n\nexport function decode58(string) {\n if (string.length === 0)\n 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[i];\n\n if (!(c in ALPHABET_MAP))\n throw new Error('Non-base58 character');\n\n for (j = 0; j < bytes.length; j++)\n 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++)\n bytes.push(0);\n\n return bytes.reverse();\n}\n","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}",null,null,null,null,null,null,null,"export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n","export const crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n","import assert from './_assert.js';\nimport { hmac } from './hmac.js';\nimport { createView, toBytes, checkOpts, asyncLoop } from './utils.js';\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n assert.hash(hash);\n const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n assert.number(c);\n assert.number(dkLen);\n assert.number(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = toBytes(_password);\n const salt = toBytes(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nexport function pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexport async function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await asyncLoop(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\n","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n",null,null,null,null,"import assert from './_assert.js';\nimport u64 from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n assert.number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n assert.exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n assert.exists(this, false);\n assert.bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n assert.number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n assert.output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n",null,null,null,null,null,null,null,null,null,"import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst endo = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar(k) {\n const { n } = CURVE;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000');\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n};\nconst fieldLen = 32;\nconst groupLen = 32;\nconst hashLen = 32;\nconst compressedLen = fieldLen + 1;\nconst uncompressedLen = 2 * fieldLen + 1;\nexport { CURVE };\nfunction weierstrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nfunction assertJacPoint(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return JacobianPoint.ZERO;\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.BASE;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1;\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n k1p = constTimeNegate(k1neg, k1p);\n k2p = constTimeNegate(k2neg, k2p);\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ) {\n const { x, y, z } = this;\n const is0 = this.equals(JacobianPoint.ZERO);\n if (invZ == null)\n invZ = is0 ? _8n : invert(z);\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (is0)\n return Point.ZERO;\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, fieldLen + 1));\n const y = bytesToNumber(bytes.subarray(fieldLen + 1, fieldLen * 2 + 1));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === fieldLen)\n return this.fromCompressedHex(bytes);\n if (len === compressedLen && (header === 0x02 || header === 0x03)) {\n return this.fromCompressedHex(bytes);\n }\n if (len === uncompressedLen && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n const { r, s } = normalizeSignature(signature);\n if (![0, 1, 2, 3].includes(recovery))\n throw new Error('Cannot recover: invalid recovery bit');\n const h = truncateHash(ensureBytes(msgHash));\n const { n } = CURVE;\n const radj = recovery === 2 || recovery === 3 ? r + n : r;\n const rinv = invert(radj, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(radj));\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weierstrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, mod(-this.s, CURVE.n)) : this;\n }\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const sHexL = sHex.length / 2;\n const rHexL = rHex.length / 2;\n const sLen = numberToHexUnpadded(sHexL);\n const rLen = numberToHexUnpadded(rHexL);\n const length = numberToHexUnpadded(rHexL + sHexL + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number 0 <= n < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n const rt = pow2(t2, _2n);\n const xc = (rt * rt) % P;\n if (xc !== x)\n throw new Error('Cannot find square root');\n return rt;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nfunction bits2int_2(bytes) {\n const delta = bytes.length * 8 - groupLen * 8;\n const num = bytesToNumber(bytes);\n return delta > 0 ? num >> BigInt(delta) : num;\n}\nfunction truncateHash(hash, truncateOnly = false) {\n const h = bits2int_2(hash);\n if (truncateOnly)\n return h;\n const { n } = CURVE;\n return h >= n ? h - n : h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor(hashLen, qByteLen) {\n this.hashLen = hashLen;\n this.qByteLen = qByteLen;\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n this.v = new Uint8Array(hashLen).fill(1);\n this.k = new Uint8Array(hashLen).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = await this.hmac(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n generateSync() {\n this.checkSync();\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = this.hmacSync(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d, lowS = true) {\n const { n } = CURVE;\n const k = truncateHash(kBytes, true);\n if (!isWithinCurveOrder(k))\n return;\n const kinv = invert(k, n);\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(kinv * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n let sig = new Signature(r, s);\n let recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n if (lowS && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 2 * groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === compressedLen * 2 || len === uncompressedLen * 2;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > fieldLen ? bytes.slice(0, fieldLen) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(fieldLen);\n const e = ensureBytes(extraEntropy);\n if (e.length !== fieldLen)\n throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n const { sig, recovery } = recSig;\n const { der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n await drbg.reseed(seed);\n let sig;\n while (!(sig = kmdToSig(await drbg.generate(), m, d, opts.canonical)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n drbg.reseedSync(seed);\n let sig;\n while (!(sig = kmdToSig(drbg.generateSync(), m, d, opts.canonical)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n const minLen = groupLen + 8;\n if (hash.length < minLen || hash.length > 1024) {\n throw new Error(`Expected valid bytes of private key as per FIPS 186`);\n }\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => utils.hashToPrivateKey(utils.randomBytes(groupLen + 8)),\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n _JacobianPoint: JacobianPoint,\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n",null,null,"import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}",null,null,null,null,null,null,"import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import { SHA2 } from './_sha2.js';\nimport { wrapConstructor } from './utils.js';\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nexport class RIPEMD160 extends SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = wrapConstructor(() => new RIPEMD160());\n",null,null,null,"/*! MIT License. Copyright 2015-2022 Richard Moore . See LICENSE.txt. */\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _AES_key, _AES_Kd, _AES_Ke;\n// Number of rounds by keysize\nconst numberOfRounds = { 16: 10, 24: 12, 32: 14 };\n// Round constant words\nconst rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n// S-box and Inverse S-box (S is for Substitution)\nconst S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\nconst Si = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n// Transformations for encryption\nconst T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\nconst T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\nconst T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\nconst T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n// Transformations for decryption\nconst T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\nconst T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\nconst T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\nconst T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n// Transformations for decryption key expansion\nconst U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\nconst U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\nconst U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\nconst U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\nfunction convertToInt32(bytes) {\n const result = [];\n for (let i = 0; i < bytes.length; i += 4) {\n result.push((bytes[i] << 24) | (bytes[i + 1] << 16) | (bytes[i + 2] << 8) | bytes[i + 3]);\n }\n return result;\n}\nexport class AES {\n get key() { return __classPrivateFieldGet(this, _AES_key, \"f\").slice(); }\n constructor(key) {\n _AES_key.set(this, void 0);\n _AES_Kd.set(this, void 0);\n _AES_Ke.set(this, void 0);\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n __classPrivateFieldSet(this, _AES_key, new Uint8Array(key), \"f\");\n const rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new TypeError('invalid key size (must be 16, 24 or 32 bytes)');\n }\n // encryption round keys\n __classPrivateFieldSet(this, _AES_Ke, [], \"f\");\n // decryption round keys\n __classPrivateFieldSet(this, _AES_Kd, [], \"f\");\n for (let i = 0; i <= rounds; i++) {\n __classPrivateFieldGet(this, _AES_Ke, \"f\").push([0, 0, 0, 0]);\n __classPrivateFieldGet(this, _AES_Kd, \"f\").push([0, 0, 0, 0]);\n }\n const roundKeyCount = (rounds + 1) * 4;\n const KC = this.key.length / 4;\n // convert the key into ints\n const tk = convertToInt32(this.key);\n // copy values into round key arrays\n let index;\n for (let i = 0; i < KC; i++) {\n index = i >> 2;\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[index][i % 4] = tk[i];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds - index][i % 4] = tk[i];\n }\n // key expansion (fips-197 section 5.2)\n let rconpointer = 0;\n let t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (let i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n }\n else {\n for (let i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n tk[KC / 2] ^= (S[tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n for (let i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n // copy values into round key arrays\n let i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[r][c] = tk[i];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds - r][c] = tk[i++];\n t++;\n }\n }\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (let r = 1; r < rounds; r++) {\n for (let c = 0; c < 4; c++) {\n tt = __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][c];\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[tt & 0xFF]);\n }\n }\n }\n encrypt(plaintext) {\n if (plaintext.length != 16) {\n throw new TypeError('invalid plaintext size (must be 16 bytes)');\n }\n const rounds = __classPrivateFieldGet(this, _AES_Ke, \"f\").length - 1;\n const a = [0, 0, 0, 0];\n // convert plaintext to (ints ^ key)\n let t = convertToInt32(plaintext);\n for (let i = 0; i < 4; i++) {\n t[i] ^= __classPrivateFieldGet(this, _AES_Ke, \"f\")[0][i];\n }\n // apply round transforms\n for (let r = 1; r < rounds; r++) {\n for (let i = 0; i < 4; i++) {\n a[i] = (T1[(t[i] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[t[(i + 3) % 4] & 0xff] ^\n __classPrivateFieldGet(this, _AES_Ke, \"f\")[r][i]);\n }\n t = a.slice();\n }\n // the last round is special\n const result = new Uint8Array(16);\n let tt = 0;\n for (let i = 0; i < 4; i++) {\n tt = __classPrivateFieldGet(this, _AES_Ke, \"f\")[rounds][i];\n result[4 * i] = (S[(t[i] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[t[(i + 3) % 4] & 0xff] ^ tt) & 0xff;\n }\n return result;\n }\n decrypt(ciphertext) {\n if (ciphertext.length != 16) {\n throw new TypeError('invalid ciphertext size (must be 16 bytes)');\n }\n const rounds = __classPrivateFieldGet(this, _AES_Kd, \"f\").length - 1;\n const a = [0, 0, 0, 0];\n // convert plaintext to (ints ^ key)\n let t = convertToInt32(ciphertext);\n for (let i = 0; i < 4; i++) {\n t[i] ^= __classPrivateFieldGet(this, _AES_Kd, \"f\")[0][i];\n }\n // apply round transforms\n for (let r = 1; r < rounds; r++) {\n for (let i = 0; i < 4; i++) {\n a[i] = (T5[(t[i] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[t[(i + 1) % 4] & 0xff] ^\n __classPrivateFieldGet(this, _AES_Kd, \"f\")[r][i]);\n }\n t = a.slice();\n }\n // the last round is special\n const result = new Uint8Array(16);\n let tt = 0;\n for (let i = 0; i < 4; i++) {\n tt = __classPrivateFieldGet(this, _AES_Kd, \"f\")[rounds][i];\n result[4 * i] = (Si[(t[i] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[t[(i + 1) % 4] & 0xff] ^ tt) & 0xff;\n }\n return result;\n }\n}\n_AES_key = new WeakMap(), _AES_Kd = new WeakMap(), _AES_Ke = new WeakMap();\n//# sourceMappingURL=aes.js.map","import { AES } from \"./aes.js\";\nexport class ModeOfOperation {\n constructor(name, key, cls) {\n if (cls && !(this instanceof cls)) {\n throw new Error(`${name} must be instantiated with \"new\"`);\n }\n Object.defineProperties(this, {\n aes: { enumerable: true, value: new AES(key) },\n name: { enumerable: true, value: name }\n });\n }\n}\n//# sourceMappingURL=mode.js.map","// Cipher Block Chaining\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CBC_iv, _CBC_lastBlock;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CBC extends ModeOfOperation {\n constructor(key, iv) {\n super(\"ECC\", key, CBC);\n _CBC_iv.set(this, void 0);\n _CBC_lastBlock.set(this, void 0);\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _CBC_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _CBC_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _CBC_lastBlock, this.iv, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _CBC_iv, \"f\")); }\n encrypt(plaintext) {\n if (plaintext.length % 16) {\n throw new TypeError(\"invalid plaintext size (must be multiple of 16 bytes)\");\n }\n const ciphertext = new Uint8Array(plaintext.length);\n for (let i = 0; i < plaintext.length; i += 16) {\n for (let j = 0; j < 16; j++) {\n __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j] ^= plaintext[i + j];\n }\n __classPrivateFieldSet(this, _CBC_lastBlock, this.aes.encrypt(__classPrivateFieldGet(this, _CBC_lastBlock, \"f\")), \"f\");\n ciphertext.set(__classPrivateFieldGet(this, _CBC_lastBlock, \"f\"), i);\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (ciphertext.length % 16) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of 16 bytes)\");\n }\n const plaintext = new Uint8Array(ciphertext.length);\n for (let i = 0; i < ciphertext.length; i += 16) {\n const block = this.aes.decrypt(ciphertext.subarray(i, i + 16));\n for (let j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j];\n __classPrivateFieldGet(this, _CBC_lastBlock, \"f\")[j] = ciphertext[i + j];\n }\n }\n return plaintext;\n }\n}\n_CBC_iv = new WeakMap(), _CBC_lastBlock = new WeakMap();\n//# sourceMappingURL=mode-cbc.js.map","// Cipher Feedback\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CFB_instances, _CFB_iv, _CFB_shiftRegister, _CFB_shift;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CFB extends ModeOfOperation {\n constructor(key, iv, segmentSize = 8) {\n super(\"CFB\", key, CFB);\n _CFB_instances.add(this);\n _CFB_iv.set(this, void 0);\n _CFB_shiftRegister.set(this, void 0);\n // This library currently only handles byte-aligned segmentSize\n if (!Number.isInteger(segmentSize) || (segmentSize % 8)) {\n throw new TypeError(\"invalid segmentSize\");\n }\n Object.defineProperties(this, {\n segmentSize: { enumerable: true, value: segmentSize }\n });\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _CFB_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _CFB_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _CFB_shiftRegister, this.iv, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _CFB_iv, \"f\")); }\n encrypt(plaintext) {\n if (8 * plaintext.length % this.segmentSize) {\n throw new TypeError(\"invalid plaintext size (must be multiple of segmentSize bytes)\");\n }\n const segmentSize = this.segmentSize / 8;\n const ciphertext = new Uint8Array(plaintext);\n for (let i = 0; i < ciphertext.length; i += segmentSize) {\n const xorSegment = this.aes.encrypt(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\"));\n for (let j = 0; j < segmentSize; j++) {\n ciphertext[i + j] ^= xorSegment[j];\n }\n __classPrivateFieldGet(this, _CFB_instances, \"m\", _CFB_shift).call(this, ciphertext.subarray(i));\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (8 * ciphertext.length % this.segmentSize) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of segmentSize bytes)\");\n }\n const segmentSize = this.segmentSize / 8;\n const plaintext = new Uint8Array(ciphertext);\n for (let i = 0; i < plaintext.length; i += segmentSize) {\n const xorSegment = this.aes.encrypt(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\"));\n for (let j = 0; j < segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n __classPrivateFieldGet(this, _CFB_instances, \"m\", _CFB_shift).call(this, ciphertext.subarray(i));\n }\n return plaintext;\n }\n}\n_CFB_iv = new WeakMap(), _CFB_shiftRegister = new WeakMap(), _CFB_instances = new WeakSet(), _CFB_shift = function _CFB_shift(data) {\n const segmentSize = this.segmentSize / 8;\n // Shift the register\n __classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").set(__classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").subarray(segmentSize));\n __classPrivateFieldGet(this, _CFB_shiftRegister, \"f\").set(data.subarray(0, segmentSize), 16 - segmentSize);\n};\n//# sourceMappingURL=mode-cfb.js.map","// Counter Mode\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CTR_remaining, _CTR_remainingIndex, _CTR_counter;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class CTR extends ModeOfOperation {\n constructor(key, initialValue) {\n super(\"CTR\", key, CTR);\n // Remaining bytes for the one-time pad\n _CTR_remaining.set(this, void 0);\n _CTR_remainingIndex.set(this, void 0);\n // The current counter\n _CTR_counter.set(this, void 0);\n __classPrivateFieldSet(this, _CTR_counter, new Uint8Array(16), \"f\");\n __classPrivateFieldGet(this, _CTR_counter, \"f\").fill(0);\n __classPrivateFieldSet(this, _CTR_remaining, __classPrivateFieldGet(this, _CTR_counter, \"f\"), \"f\"); // This will be discarded immediately\n __classPrivateFieldSet(this, _CTR_remainingIndex, 16, \"f\");\n if (initialValue == null) {\n initialValue = 1;\n }\n if (typeof (initialValue) === \"number\") {\n this.setCounterValue(initialValue);\n }\n else {\n this.setCounterBytes(initialValue);\n }\n }\n get counter() { return new Uint8Array(__classPrivateFieldGet(this, _CTR_counter, \"f\")); }\n setCounterValue(value) {\n if (!Number.isInteger(value) || value < 0 || value > Number.MAX_SAFE_INTEGER) {\n throw new TypeError(\"invalid counter initial integer value\");\n }\n for (let index = 15; index >= 0; --index) {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[index] = value % 256;\n value = Math.floor(value / 256);\n }\n }\n setCounterBytes(value) {\n if (value.length !== 16) {\n throw new TypeError(\"invalid counter initial Uint8Array value length\");\n }\n __classPrivateFieldGet(this, _CTR_counter, \"f\").set(value);\n }\n increment() {\n for (let i = 15; i >= 0; i--) {\n if (__classPrivateFieldGet(this, _CTR_counter, \"f\")[i] === 255) {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[i] = 0;\n }\n else {\n __classPrivateFieldGet(this, _CTR_counter, \"f\")[i]++;\n break;\n }\n }\n }\n encrypt(plaintext) {\n var _a, _b;\n const crypttext = new Uint8Array(plaintext);\n for (let i = 0; i < crypttext.length; i++) {\n if (__classPrivateFieldGet(this, _CTR_remainingIndex, \"f\") === 16) {\n __classPrivateFieldSet(this, _CTR_remaining, this.aes.encrypt(__classPrivateFieldGet(this, _CTR_counter, \"f\")), \"f\");\n __classPrivateFieldSet(this, _CTR_remainingIndex, 0, \"f\");\n this.increment();\n }\n crypttext[i] ^= __classPrivateFieldGet(this, _CTR_remaining, \"f\")[__classPrivateFieldSet(this, _CTR_remainingIndex, (_b = __classPrivateFieldGet(this, _CTR_remainingIndex, \"f\"), _a = _b++, _b), \"f\"), _a];\n }\n return crypttext;\n }\n decrypt(ciphertext) {\n return this.encrypt(ciphertext);\n }\n}\n_CTR_remaining = new WeakMap(), _CTR_remainingIndex = new WeakMap(), _CTR_counter = new WeakMap();\n//# sourceMappingURL=mode-ctr.js.map","// Output Feedback\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _OFB_iv, _OFB_lastPrecipher, _OFB_lastPrecipherIndex;\nimport { ModeOfOperation } from \"./mode.js\";\nexport class OFB extends ModeOfOperation {\n constructor(key, iv) {\n super(\"OFB\", key, OFB);\n _OFB_iv.set(this, void 0);\n _OFB_lastPrecipher.set(this, void 0);\n _OFB_lastPrecipherIndex.set(this, void 0);\n if (iv) {\n if (iv.length % 16) {\n throw new TypeError(\"invalid iv size (must be 16 bytes)\");\n }\n __classPrivateFieldSet(this, _OFB_iv, new Uint8Array(iv), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _OFB_iv, new Uint8Array(16), \"f\");\n }\n __classPrivateFieldSet(this, _OFB_lastPrecipher, this.iv, \"f\");\n __classPrivateFieldSet(this, _OFB_lastPrecipherIndex, 16, \"f\");\n }\n get iv() { return new Uint8Array(__classPrivateFieldGet(this, _OFB_iv, \"f\")); }\n encrypt(plaintext) {\n var _a, _b;\n if (plaintext.length % 16) {\n throw new TypeError(\"invalid plaintext size (must be multiple of 16 bytes)\");\n }\n const ciphertext = new Uint8Array(plaintext);\n for (let i = 0; i < ciphertext.length; i++) {\n if (__classPrivateFieldGet(this, _OFB_lastPrecipherIndex, \"f\") === 16) {\n __classPrivateFieldSet(this, _OFB_lastPrecipher, this.aes.encrypt(__classPrivateFieldGet(this, _OFB_lastPrecipher, \"f\")), \"f\");\n __classPrivateFieldSet(this, _OFB_lastPrecipherIndex, 0, \"f\");\n }\n ciphertext[i] ^= __classPrivateFieldGet(this, _OFB_lastPrecipher, \"f\")[__classPrivateFieldSet(this, _OFB_lastPrecipherIndex, (_b = __classPrivateFieldGet(this, _OFB_lastPrecipherIndex, \"f\"), _a = _b++, _b), \"f\"), _a];\n }\n return ciphertext;\n }\n decrypt(ciphertext) {\n if (ciphertext.length % 16) {\n throw new TypeError(\"invalid ciphertext size (must be multiple of 16 bytes)\");\n }\n return this.encrypt(ciphertext);\n }\n}\n_OFB_iv = new WeakMap(), _OFB_lastPrecipher = new WeakMap(), _OFB_lastPrecipherIndex = new WeakMap();\n//# sourceMappingURL=mode-ofb.js.map","import assert from './_assert.js';\nimport { sha256 } from './sha256.js';\nimport { pbkdf2 } from './pbkdf2.js';\nimport { asyncLoop, checkOpts, u32 } from './utils.js';\n// RFC 7914 Scrypt KDF\n// Left rotate for uint32\nconst rotl = (a, b) => (a << b) | (a >>> (32 - b));\n// The main Scrypt loop: uses Salsa extensively.\n// Six versions of the function were tried, this is the fastest one.\n// prettier-ignore\nfunction XorAndSalsa(prev, pi, input, ii, out, oi) {\n // Based on https://cr.yp.to/salsa20.html\n // Xor blocks\n let y00 = prev[pi++] ^ input[ii++], y01 = prev[pi++] ^ input[ii++];\n let y02 = prev[pi++] ^ input[ii++], y03 = prev[pi++] ^ input[ii++];\n let y04 = prev[pi++] ^ input[ii++], y05 = prev[pi++] ^ input[ii++];\n let y06 = prev[pi++] ^ input[ii++], y07 = prev[pi++] ^ input[ii++];\n let y08 = prev[pi++] ^ input[ii++], y09 = prev[pi++] ^ input[ii++];\n let y10 = prev[pi++] ^ input[ii++], y11 = prev[pi++] ^ input[ii++];\n let y12 = prev[pi++] ^ input[ii++], y13 = prev[pi++] ^ input[ii++];\n let y14 = prev[pi++] ^ input[ii++], y15 = prev[pi++] ^ input[ii++];\n // Save state to temporary variables (salsa)\n let x00 = y00, x01 = y01, x02 = y02, x03 = y03, x04 = y04, x05 = y05, x06 = y06, x07 = y07, x08 = y08, x09 = y09, x10 = y10, x11 = y11, x12 = y12, x13 = y13, x14 = y14, x15 = y15;\n // Main loop (salsa)\n for (let i = 0; i < 8; i += 2) {\n x04 ^= rotl(x00 + x12 | 0, 7);\n x08 ^= rotl(x04 + x00 | 0, 9);\n x12 ^= rotl(x08 + x04 | 0, 13);\n x00 ^= rotl(x12 + x08 | 0, 18);\n x09 ^= rotl(x05 + x01 | 0, 7);\n x13 ^= rotl(x09 + x05 | 0, 9);\n x01 ^= rotl(x13 + x09 | 0, 13);\n x05 ^= rotl(x01 + x13 | 0, 18);\n x14 ^= rotl(x10 + x06 | 0, 7);\n x02 ^= rotl(x14 + x10 | 0, 9);\n x06 ^= rotl(x02 + x14 | 0, 13);\n x10 ^= rotl(x06 + x02 | 0, 18);\n x03 ^= rotl(x15 + x11 | 0, 7);\n x07 ^= rotl(x03 + x15 | 0, 9);\n x11 ^= rotl(x07 + x03 | 0, 13);\n x15 ^= rotl(x11 + x07 | 0, 18);\n x01 ^= rotl(x00 + x03 | 0, 7);\n x02 ^= rotl(x01 + x00 | 0, 9);\n x03 ^= rotl(x02 + x01 | 0, 13);\n x00 ^= rotl(x03 + x02 | 0, 18);\n x06 ^= rotl(x05 + x04 | 0, 7);\n x07 ^= rotl(x06 + x05 | 0, 9);\n x04 ^= rotl(x07 + x06 | 0, 13);\n x05 ^= rotl(x04 + x07 | 0, 18);\n x11 ^= rotl(x10 + x09 | 0, 7);\n x08 ^= rotl(x11 + x10 | 0, 9);\n x09 ^= rotl(x08 + x11 | 0, 13);\n x10 ^= rotl(x09 + x08 | 0, 18);\n x12 ^= rotl(x15 + x14 | 0, 7);\n x13 ^= rotl(x12 + x15 | 0, 9);\n x14 ^= rotl(x13 + x12 | 0, 13);\n x15 ^= rotl(x14 + x13 | 0, 18);\n }\n // Write output (salsa)\n out[oi++] = (y00 + x00) | 0;\n out[oi++] = (y01 + x01) | 0;\n out[oi++] = (y02 + x02) | 0;\n out[oi++] = (y03 + x03) | 0;\n out[oi++] = (y04 + x04) | 0;\n out[oi++] = (y05 + x05) | 0;\n out[oi++] = (y06 + x06) | 0;\n out[oi++] = (y07 + x07) | 0;\n out[oi++] = (y08 + x08) | 0;\n out[oi++] = (y09 + x09) | 0;\n out[oi++] = (y10 + x10) | 0;\n out[oi++] = (y11 + x11) | 0;\n out[oi++] = (y12 + x12) | 0;\n out[oi++] = (y13 + x13) | 0;\n out[oi++] = (y14 + x14) | 0;\n out[oi++] = (y15 + x15) | 0;\n}\nfunction BlockMix(input, ii, out, oi, r) {\n // The block B is r 128-byte chunks (which is equivalent of 2r 64-byte chunks)\n let head = oi + 0;\n let tail = oi + 16 * r;\n for (let i = 0; i < 16; i++)\n out[tail + i] = input[ii + (2 * r - 1) * 16 + i]; // X ← B[2r−1]\n for (let i = 0; i < r; i++, head += 16, ii += 16) {\n // We write odd & even Yi at same time. Even: 0bXXXXX0 Odd: 0bXXXXX1\n XorAndSalsa(out, tail, input, ii, out, head); // head[i] = Salsa(blockIn[2*i] ^ tail[i-1])\n if (i > 0)\n tail += 16; // First iteration overwrites tmp value in tail\n XorAndSalsa(out, head, input, (ii += 16), out, tail); // tail[i] = Salsa(blockIn[2*i+1] ^ head[i])\n }\n}\n// Common prologue and epilogue for sync/async functions\nfunction scryptInit(password, salt, _opts) {\n // Maxmem - 1GB+1KB by default\n const opts = checkOpts({\n dkLen: 32,\n asyncTick: 10,\n maxmem: 1024 ** 3 + 1024,\n }, _opts);\n const { N, r, p, dkLen, asyncTick, maxmem, onProgress } = opts;\n assert.number(N);\n assert.number(r);\n assert.number(p);\n assert.number(dkLen);\n assert.number(asyncTick);\n assert.number(maxmem);\n if (onProgress !== undefined && typeof onProgress !== 'function')\n throw new Error('progressCb should be function');\n const blockSize = 128 * r;\n const blockSize32 = blockSize / 4;\n if (N <= 1 || (N & (N - 1)) !== 0 || N >= 2 ** (blockSize / 8) || N > 2 ** 32) {\n // NOTE: we limit N to be less than 2**32 because of 32 bit variant of Integrify function\n // There is no JS engines that allows alocate more than 4GB per single Uint8Array for now, but can change in future.\n throw new Error('Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32');\n }\n if (p < 0 || p > ((2 ** 32 - 1) * 32) / blockSize) {\n throw new Error('Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)');\n }\n if (dkLen < 0 || dkLen > (2 ** 32 - 1) * 32) {\n throw new Error('Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32');\n }\n const memUsed = blockSize * (N + p);\n if (memUsed > maxmem) {\n throw new Error(`Scrypt: parameters too large, ${memUsed} (128 * r * (N + p)) > ${maxmem} (maxmem)`);\n }\n // [B0...Bp−1] ← PBKDF2HMAC-SHA256(Passphrase, Salt, 1, blockSize*ParallelizationFactor)\n // Since it has only one iteration there is no reason to use async variant\n const B = pbkdf2(sha256, password, salt, { c: 1, dkLen: blockSize * p });\n const B32 = u32(B);\n // Re-used between parallel iterations. Array(iterations) of B\n const V = u32(new Uint8Array(blockSize * N));\n const tmp = u32(new Uint8Array(blockSize));\n let blockMixCb = () => { };\n if (onProgress) {\n const totalBlockMix = 2 * N * p;\n // Invoke callback if progress changes from 10.01 to 10.02\n // Allows to draw smooth progress bar on up to 8K screen\n const callbackPer = Math.max(Math.floor(totalBlockMix / 10000), 1);\n let blockMixCnt = 0;\n blockMixCb = () => {\n blockMixCnt++;\n if (onProgress && (!(blockMixCnt % callbackPer) || blockMixCnt === totalBlockMix))\n onProgress(blockMixCnt / totalBlockMix);\n };\n }\n return { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick };\n}\nfunction scryptOutput(password, dkLen, B, V, tmp) {\n const res = pbkdf2(sha256, password, B, { c: 1, dkLen });\n B.fill(0);\n V.fill(0);\n tmp.fill(0);\n return res;\n}\n/**\n * Scrypt KDF from RFC 7914.\n * @param password - pass\n * @param salt - salt\n * @param opts - parameters\n * - `N` is cpu/mem work factor (power of 2 e.g. 2**18)\n * - `r` is block size (8 is common), fine-tunes sequential memory read size and performance\n * - `p` is parallelization factor (1 is common)\n * - `dkLen` is output key length in bytes e.g. 32.\n * - `asyncTick` - (default: 10) max time in ms for which async function can block execution\n * - `maxmem` - (default: `1024 ** 3 + 1024` aka 1GB+1KB). A limit that the app could use for scrypt\n * - `onProgress` - callback function that would be executed for progress report\n * @returns Derived key\n */\nexport function scrypt(password, salt, opts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb } = scryptInit(password, salt, opts);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++)\n V[i] = B32[Pi + i]; // V[0] = B[i]\n for (let i = 0, pos = 0; i < N - 1; i++) {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n }\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n for (let i = 0; i < N; i++) {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++)\n tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n }\n }\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n/**\n * Scrypt KDF from RFC 7914.\n */\nexport async function scryptAsync(password, salt, opts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick } = scryptInit(password, salt, opts);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++)\n V[i] = B32[Pi + i]; // V[0] = B[i]\n let pos = 0;\n await asyncLoop(N - 1, asyncTick, (i) => {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n });\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n await asyncLoop(N, asyncTick, (i) => {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++)\n tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n });\n }\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n",null,null,null,null,null,null,"export function pkcs7Pad(data) {\n const padder = 16 - (data.length % 16);\n const result = new Uint8Array(data.length + padder);\n result.set(data);\n for (let i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n}\nexport function pkcs7Strip(data) {\n if (data.length < 16) {\n throw new TypeError('PKCS#7 invalid length');\n }\n const padder = data[data.length - 1];\n if (padder > 16) {\n throw new TypeError('PKCS#7 padding byte out of range');\n }\n const length = data.length - padder;\n for (let i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new TypeError('PKCS#7 invalid padding byte');\n }\n }\n return new Uint8Array(data.subarray(0, length));\n}\n//# sourceMappingURL=padding.js.map",null,null,"/**\n * About frgaments...\n *\n * @_subsection api/abi/abi-coder:Fragments [about-fragments]\n */\nimport { defineProperties, getBigInt, getNumber, assert, assertPrivate, assertArgument } from \"ethers\";\nimport { id } from \"ethers\";\n;\n// [ \"a\", \"b\" ] => { \"a\": 1, \"b\": 1 }\nfunction setify(items) {\n const result = new Set();\n items.forEach((k) => result.add(k));\n return Object.freeze(result);\n}\n// Visibility Keywords\nconst _kwVisib = \"constant external internal payable private public pure view\";\nconst KwVisib = setify(_kwVisib.split(\" \"));\nconst _kwTypes = \"constructor error event fallback function receive struct\";\nconst KwTypes = setify(_kwTypes.split(\" \"));\nconst _kwModifiers = \"calldata memory storage payable indexed\";\nconst KwModifiers = setify(_kwModifiers.split(\" \"));\nconst _kwOther = \"tuple returns\";\n// All Keywords\nconst _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(\" \");\nconst Keywords = setify(_keywords.split(\" \"));\n// Single character tokens\nconst SimpleTokens = {\n \"(\": \"OPEN_PAREN\", \")\": \"CLOSE_PAREN\",\n \"[\": \"OPEN_BRACKET\", \"]\": \"CLOSE_BRACKET\",\n \",\": \"COMMA\", \"@\": \"AT\"\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// 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]*))$\");\nclass TokenString {\n #offset;\n #tokens;\n get offset() { return this.#offset; }\n get length() { return this.#tokens.length - this.#offset; }\n constructor(tokens) {\n this.#offset = 0;\n this.#tokens = tokens.slice();\n }\n clone() { return new TokenString(this.#tokens); }\n reset() { this.#offset = 0; }\n #subTokenString(from = 0, to = 0) {\n return new TokenString(this.#tokens.slice(from, to).map((t) => {\n return Object.freeze(Object.assign({}, t, {\n match: (t.match - from),\n linkBack: (t.linkBack - from),\n linkNext: (t.linkNext - from),\n }));\n return t;\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) {\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 // Pops and returns the value of the next token if it is `type`; throws if out of tokens\n popType(type) {\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 // Pops and returns a \"(\" TOKENS \")\"\n popParen() {\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 // Pops and returns the items within \"(\" ITEM1 \",\" ITEM2 \",\" ... \")\"\n popParams() {\n const top = this.peek();\n if (top.type !== \"OPEN_PAREN\") {\n throw new Error(\"bad start\");\n }\n const result = [];\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 this.#offset = top.match + 1;\n return result;\n }\n // Returns the top Token, throwing if out of tokens\n peek() {\n if (this.#offset >= this.#tokens.length) {\n throw new Error(\"out-of-bounds\");\n }\n return this.#tokens[this.#offset];\n }\n // Returns the next value, if it is a keyword in `allowed`\n peekKeyword(allowed) {\n const top = this.peekType(\"KEYWORD\");\n return (top != null && allowed.has(top)) ? top : null;\n }\n // Returns the value of the next token if it is `type`\n peekType(type) {\n if (this.length === 0) {\n return null;\n }\n const top = this.peek();\n return (top.type === type) ? top.text : null;\n }\n // Returns the next token; throws if out of tokens\n pop() {\n const result = this.peek();\n this.#offset++;\n return result;\n }\n toString() {\n const tokens = [];\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}\nfunction lex(text) {\n const tokens = [];\n const throwError = (message) => {\n const token = (offset < text.length) ? JSON.stringify(text[offset]) : \"$EOI\";\n throw new Error(`invalid token ${token} at ${offset}: ${message}`);\n };\n let brackets = [];\n let commas = [];\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 const token = { depth: brackets.length, linkBack: -1, linkNext: -1, match: -1, type: \"\", text: \"\", offset, value: -1 };\n tokens.push(token);\n let type = (SimpleTokens[cur[0]] || \"\");\n if (type) {\n token.type = type;\n token.text = cur[0];\n offset++;\n if (type === \"OPEN_PAREN\") {\n brackets.push(tokens.length - 1);\n commas.push(tokens.length - 1);\n }\n else if (type == \"CLOSE_PAREN\") {\n if (brackets.length === 0) {\n throwError(\"no matching open bracket\");\n }\n token.match = brackets.pop();\n (tokens[token.match]).match = tokens.length - 1;\n token.depth--;\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n }\n else if (type === \"COMMA\") {\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n commas.push(tokens.length - 1);\n }\n else if (type === \"OPEN_BRACKET\") {\n token.type = \"BRACKET\";\n }\n else if (type === \"CLOSE_BRACKET\") {\n // Remove the CLOSE_BRACKET\n let suffix = tokens.pop().text;\n if (tokens.length > 0 && tokens[tokens.length - 1].type === \"NUMBER\") {\n const value = tokens.pop().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 continue;\n }\n match = cur.match(regexIdPrefix);\n if (match) {\n token.text = match[1];\n offset += token.text.length;\n if (Keywords.has(token.text)) {\n token.type = \"KEYWORD\";\n continue;\n }\n if (token.text.match(regexType)) {\n token.type = \"TYPE\";\n continue;\n }\n token.type = \"ID\";\n continue;\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 throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`);\n }\n return new TokenString(tokens.map((t) => Object.freeze(t)));\n}\n// Check only one of `allowed` is in `set`\nfunction allowSingle(set, allowed) {\n let included = [];\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// Functions to process a Solidity Signature TokenString from left-to-right for...\n// ...the name with an optional type, returning the name\nfunction consumeName(type, tokens) {\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 return tokens.popType(\"ID\");\n}\n// ...all keywords matching allowed, returning the keywords\nfunction consumeKeywords(tokens, allowed) {\n const keywords = new Set();\n while (true) {\n const keyword = tokens.peekType(\"KEYWORD\");\n if (keyword == null || (allowed && !allowed.has(keyword))) {\n break;\n }\n tokens.pop();\n if (keywords.has(keyword)) {\n throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`);\n }\n keywords.add(keyword);\n }\n return Object.freeze(keywords);\n}\n// ...all visibility keywords, returning the coalesced mutability\nfunction consumeMutability(tokens) {\n let modifiers = consumeKeywords(tokens, KwVisib);\n // Detect conflicting modifiers\n allowSingle(modifiers, setify(\"constant payable nonpayable\".split(\" \")));\n allowSingle(modifiers, setify(\"pure view payable nonpayable\".split(\" \")));\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 // Process legacy `constant` last\n if (modifiers.has(\"constant\")) {\n return \"view\";\n }\n return \"nonpayable\";\n}\n// ...a parameter list, returning the ParamType list\nfunction consumeParams(tokens, allowIndexed) {\n return tokens.popParams().map((t) => ParamType.from(t, allowIndexed));\n}\n// ...a gas limit, returning a BigNumber or null if none\nfunction consumeGas(tokens) {\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}\nfunction consumeEoi(tokens) {\n if (tokens.length) {\n throw new Error(`unexpected tokens: ${tokens.toString()}`);\n }\n}\nconst regexArrayType = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nfunction verifyBasicType(type) {\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 if (match[2]) {\n // bytesXX\n const length = parseInt(match[2]);\n assertArgument(length !== 0 && length <= 32, \"invalid bytes length\", \"type\", type);\n }\n else if (match[3]) {\n // intXX or uintXX\n const size = parseInt(match[3]);\n assertArgument(size !== 0 && size <= 256 && (size % 8) === 0, \"invalid numeric width\", \"type\", type);\n }\n return type;\n}\n// Make the Fragment constructors effectively private\nconst _guard = {};\nconst internal = Symbol.for(\"_ethers_internal\");\nconst ParamTypeInternal = \"_ParamTypeInternal\";\nconst ErrorFragmentInternal = \"_ErrorInternal\";\nconst EventFragmentInternal = \"_EventInternal\";\nconst ConstructorFragmentInternal = \"_ConstructorInternal\";\nconst FallbackFragmentInternal = \"_FallbackInternal\";\nconst FunctionFragmentInternal = \"_FunctionInternal\";\nconst StructFragmentInternal = \"_StructInternal\";\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 name;\n /**\n * The fully qualified type (e.g. ``\"address\"``, ``\"tuple(address)\"``,\n * ``\"uint256[3][]\"``)\n */\n type;\n /**\n * The base type (e.g. ``\"address\"``, ``\"tuple\"``, ``\"array\"``)\n */\n baseType;\n /**\n * True if the parameters is indexed.\n *\n * For non-indexable types this is ``null``.\n */\n indexed;\n /**\n * The components for the tuple.\n *\n * For non-tuple types this is ``null``.\n */\n components;\n /**\n * The array length, or ``-1`` for dynamic-lengthed arrays.\n *\n * For non-array types this is ``null``.\n */\n arrayLength;\n /**\n * The type of each child in the array.\n *\n * For non-array types this is ``null``.\n */\n arrayChildren;\n /**\n * @private\n */\n constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) {\n assertPrivate(guard, _guard, \"ParamType\");\n Object.defineProperty(this, internal, { value: ParamTypeInternal });\n if (components) {\n components = Object.freeze(components.slice());\n }\n if (baseType === \"array\") {\n if (arrayLength == null || arrayChildren == null) {\n throw new Error(\"\");\n }\n }\n else if (arrayLength != null || arrayChildren != null) {\n throw new Error(\"\");\n }\n if (baseType === \"tuple\") {\n if (components == null) {\n // throw new Error(\"\");\n components = Object.freeze([]);\n }\n }\n else if (components != null) {\n throw new Error(\"\");\n }\n defineProperties(this, {\n name, type, baseType, indexed, components, arrayLength, arrayChildren\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) {\n if (format == null) {\n format = \"sighash\";\n }\n if (format === \"json\") {\n let result = {\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 let result = \"\";\n // Array\n if (this.isArray()) {\n result += this.arrayChildren.format(format);\n result += `[${(this.arrayLength < 0 ? \"\" : String(this.arrayLength))}]`;\n }\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 }\n else {\n result += this.type;\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 return result;\n }\n /*\n * Returns true if %%value%% is an Array type.\n *\n * This provides a type gaurd ensuring that the\n * [[arrayChildren]] and [[arrayLength]] are non-null.\n */\n //static isArray(value: any): value is { arrayChildren: ParamType, arrayLength: number } {\n // return value && (value.baseType === \"array\")\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() {\n return (this.baseType === \"array\");\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() {\n return (this.baseType === \"tuple\");\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() {\n return (this.indexed != null);\n }\n /**\n * Walks the **ParamType** with %%value%%, calling %%process%%\n * on each type, destructing the %%value%% recursively.\n */\n walk(value, process) {\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 _this = this;\n return value.map((v) => (_this.arrayChildren.walk(v, process)));\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 const _this = this;\n return value.map((v, i) => (_this.components[i].walk(v, process)));\n }\n return process(this.type, value);\n }\n #walkAsync(promises, value, process, setValue) {\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 const result = value.slice();\n result.forEach((value, index) => {\n childType.#walkAsync(promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n if (this.isTuple()) {\n const components = this.components;\n // Convert the object into an array\n let result;\n if (Array.isArray(value)) {\n result = value.slice();\n }\n else {\n if (value == null || typeof (value) !== \"object\") {\n throw new Error(\"invalid tuple value\");\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 if (result.length !== this.components.length) {\n throw new Error(\"array is wrong length\");\n }\n result.forEach((value, index) => {\n components[index].#walkAsync(promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n const result = process(this.type, value);\n if (result.then) {\n promises.push((async function () { setValue(await result); })());\n }\n else {\n setValue(result);\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, process) {\n const promises = [];\n const result = [value];\n this.#walkAsync(promises, value, process, (value) => {\n result[0] = value;\n });\n if (promises.length) {\n await Promise.all(promises);\n }\n return result[0];\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, allowIndexed) {\n if (ParamType.isParamType(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return ParamType.from(lex(obj), allowIndexed);\n }\n else if (obj instanceof TokenString) {\n let type = \"\", baseType = \"\";\n let comps = null;\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 }\n else {\n // Normal\n type = verifyBasicType(obj.popType(\"TYPE\"));\n baseType = type;\n }\n // Check for Array\n let arrayChildren = null;\n let arrayLength = null;\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 let indexed = 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 const name = (obj.peekType(\"ID\") ? obj.pop().text : \"\");\n if (obj.length) {\n throw new Error(\"leftover tokens\");\n }\n return new ParamType(_guard, name, type, baseType, indexed, comps, arrayLength, arrayChildren);\n }\n const name = obj.name;\n assertArgument(!name || (typeof (name) === \"string\" && name.match(regexId)), \"invalid name\", \"obj.name\", name);\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 let type = obj.type;\n let 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 return new ParamType(_guard, name || \"\", type, \"array\", indexed, null, arrayLength, arrayChildren);\n }\n if (type === \"tuple\" || type.startsWith(\"tuple(\" /* fix: ) */) || type.startsWith(\"(\" /* fix: ) */)) {\n const comps = (obj.components != null) ? obj.components.map((c) => 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 type = verifyBasicType(obj.type);\n return new ParamType(_guard, name || \"\", type, type, indexed, null, null, null);\n }\n /**\n * Returns true if %%value%% is a **ParamType**.\n */\n static isParamType(value) {\n return (value && value[internal] === ParamTypeInternal);\n }\n}\n/**\n * An abstract class to represent An individual fragment from a parse ABI.\n */\nexport class Fragment {\n /**\n * The type of the fragment.\n */\n type;\n /**\n * The inputs for the fragment.\n */\n inputs;\n /**\n * @private\n */\n constructor(guard, type, inputs) {\n assertPrivate(guard, _guard, \"Fragment\");\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { type, inputs });\n }\n /**\n * Creates a new **Fragment** for %%obj%%, wich can be any supported\n * ABI frgament type.\n */\n static from(obj) {\n if (typeof (obj) === \"string\") {\n // Try parsing JSON...\n try {\n Fragment.from(JSON.parse(obj));\n }\n catch (e) { }\n // ...otherwise, use the human-readable lexer\n return Fragment.from(lex(obj));\n }\n if (obj instanceof TokenString) {\n // Human-readable ABI (already lexed)\n const type = obj.peekKeyword(KwTypes);\n switch (type) {\n case \"constructor\": return ConstructorFragment.from(obj);\n case \"error\": return ErrorFragment.from(obj);\n case \"event\": return EventFragment.from(obj);\n case \"fallback\":\n case \"receive\":\n return FallbackFragment.from(obj);\n case \"function\": return FunctionFragment.from(obj);\n case \"struct\": return StructFragment.from(obj);\n }\n }\n else if (typeof (obj) === \"object\") {\n // JSON ABI\n switch (obj.type) {\n case \"constructor\": return ConstructorFragment.from(obj);\n case \"error\": return ErrorFragment.from(obj);\n case \"event\": return EventFragment.from(obj);\n case \"fallback\":\n case \"receive\":\n return FallbackFragment.from(obj);\n case \"function\": return FunctionFragment.from(obj);\n case \"struct\": return StructFragment.from(obj);\n }\n assert(false, `unsupported type: ${obj.type}`, \"UNSUPPORTED_OPERATION\", {\n operation: \"Fragment.from\"\n });\n }\n assertArgument(false, \"unsupported frgament object\", \"obj\", obj);\n }\n /**\n * Returns true if %%value%% is a [[ConstructorFragment]].\n */\n static isConstructor(value) {\n return ConstructorFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is an [[ErrorFragment]].\n */\n static isError(value) {\n return ErrorFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is an [[EventFragment]].\n */\n static isEvent(value) {\n return EventFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is a [[FunctionFragment]].\n */\n static isFunction(value) {\n return FunctionFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is a [[StructFragment]].\n */\n static isStruct(value) {\n return StructFragment.isFragment(value);\n }\n}\n/**\n * An abstract class to represent An individual fragment\n * which has a name from a parse ABI.\n */\nexport class NamedFragment extends Fragment {\n /**\n * The name of the fragment.\n */\n name;\n /**\n * @private\n */\n constructor(guard, type, name, inputs) {\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}\nfunction joinParams(format, params) {\n return \"(\" + params.map((p) => p.format(format)).join((format === \"full\") ? \", \" : \",\") + \")\";\n}\n/**\n * A Fragment which represents a //Custom Error//.\n */\nexport class ErrorFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard, name, inputs) {\n super(guard, \"error\", name, inputs);\n Object.defineProperty(this, internal, { value: ErrorFragmentInternal });\n }\n /**\n * The Custom Error selector.\n */\n get selector() {\n return id(this.format(\"sighash\")).substring(0, 10);\n }\n format(format) {\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 const result = [];\n if (format !== \"sighash\") {\n result.push(\"error\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n return result.join(\" \");\n }\n static from(obj) {\n if (ErrorFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return ErrorFragment.from(lex(obj));\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"error\", obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n return new ErrorFragment(_guard, name, inputs);\n }\n return new ErrorFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n static isFragment(value) {\n return (value && value[internal] === ErrorFragmentInternal);\n }\n}\n/**\n * A Fragment which represents an Event.\n */\nexport class EventFragment extends NamedFragment {\n anonymous;\n /**\n * @private\n */\n constructor(guard, name, inputs, anonymous) {\n super(guard, \"event\", name, inputs);\n Object.defineProperty(this, internal, { value: EventFragmentInternal });\n defineProperties(this, { anonymous });\n }\n /**\n * The Event topic hash.\n */\n get topicHash() {\n return id(this.format(\"sighash\"));\n }\n format(format) {\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 const result = [];\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 static getTopicHash(name, params) {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new EventFragment(_guard, name, params, false);\n return fragment.topicHash;\n }\n static from(obj) {\n if (EventFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return EventFragment.from(lex(obj));\n }\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 return new EventFragment(_guard, name, inputs, anonymous);\n }\n return new EventFragment(_guard, obj.name, obj.inputs ? obj.inputs.map((p) => ParamType.from(p, true)) : [], !!obj.anonymous);\n }\n static isFragment(value) {\n return (value && value[internal] === EventFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a constructor.\n */\nexport class ConstructorFragment extends Fragment {\n payable;\n gas;\n /**\n * @private\n */\n constructor(guard, type, inputs, payable, gas) {\n super(guard, type, inputs);\n Object.defineProperty(this, internal, { value: ConstructorFragmentInternal });\n defineProperties(this, { payable, gas });\n }\n format(format) {\n assert(format != null && format !== \"sighash\", \"cannot format a constructor for sighash\", \"UNSUPPORTED_OPERATION\", { operation: \"format(sighash)\" });\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 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 static from(obj) {\n if (ConstructorFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return ConstructorFragment.from(lex(obj));\n }\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 return new ConstructorFragment(_guard, \"constructor\", inputs, payable, gas);\n }\n return new ConstructorFragment(_guard, \"constructor\", obj.inputs ? obj.inputs.map(ParamType.from) : [], !!obj.payable, (obj.gas != null) ? obj.gas : null);\n }\n static isFragment(value) {\n return (value && value[internal] === ConstructorFragmentInternal);\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 payable;\n constructor(guard, inputs, payable) {\n super(guard, \"fallback\", inputs);\n Object.defineProperty(this, internal, { value: FallbackFragmentInternal });\n defineProperties(this, { payable });\n }\n format(format) {\n const type = ((this.inputs.length === 0) ? \"receive\" : \"fallback\");\n if (format === \"json\") {\n const stateMutability = (this.payable ? \"payable\" : \"nonpayable\");\n return JSON.stringify({ type, stateMutability });\n }\n return `${type}()${this.payable ? \" payable\" : \"\"}`;\n }\n static from(obj) {\n if (FallbackFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return FallbackFragment.from(lex(obj));\n }\n else if (obj instanceof TokenString) {\n const errorObj = obj.toString();\n const topIsValid = obj.peekKeyword(setify([\"fallback\", \"receive\"]));\n assertArgument(topIsValid, \"type must be fallback or receive\", \"obj\", errorObj);\n const type = obj.popKeyword(setify([\"fallback\", \"receive\"]));\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 // fallback() [payable]\n // fallback(bytes) [payable] returns (bytes)\n let inputs = consumeParams(obj);\n if (inputs.length) {\n assertArgument(inputs.length === 1 && inputs[0].type === \"bytes\", \"invalid fallback inputs\", \"obj.inputs\", inputs.map((i) => i.format(\"minimal\")).join(\", \"));\n }\n else {\n inputs = [ParamType.from(\"bytes\")];\n }\n const mutability = consumeMutability(obj);\n assertArgument(mutability === \"nonpayable\" || mutability === \"payable\", \"fallback cannot be constants\", \"obj.stateMutability\", mutability);\n if (consumeKeywords(obj, setify([\"returns\"])).has(\"returns\")) {\n const outputs = consumeParams(obj);\n assertArgument(outputs.length === 1 && outputs[0].type === \"bytes\", \"invalid fallback outputs\", \"obj.outputs\", outputs.map((i) => i.format(\"minimal\")).join(\", \"));\n }\n consumeEoi(obj);\n return new FallbackFragment(_guard, inputs, mutability === \"payable\");\n }\n if (obj.type === \"receive\") {\n return new FallbackFragment(_guard, [], true);\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 assertArgument(false, \"invalid fallback description\", \"obj\", obj);\n }\n static isFragment(value) {\n return (value && value[internal] === FallbackFragmentInternal);\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 constant;\n /**\n * The returned types for the result of calling this function.\n */\n outputs;\n /**\n * The state mutability (e.g. ``payable``, ``nonpayable``, ``view``\n * or ``pure``)\n */\n stateMutability;\n /**\n * If the function can be sent value during invocation.\n */\n payable;\n /**\n * The amount of gas to send when calling this function\n */\n gas;\n /**\n * @private\n */\n constructor(guard, name, stateMutability, inputs, outputs, gas) {\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, { constant, gas, outputs, payable, stateMutability });\n }\n /**\n * The Function selector.\n */\n get selector() {\n return id(this.format(\"sighash\")).substring(0, 10);\n }\n format(format) {\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 const result = [];\n if (format !== \"sighash\") {\n result.push(\"function\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== \"sighash\") {\n if (this.stateMutability !== \"nonpayable\") {\n result.push(this.stateMutability);\n }\n if (this.outputs && this.outputs.length) {\n result.push(\"returns\");\n result.push(joinParams(format, this.outputs));\n }\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n }\n return result.join(\" \");\n }\n static getSelector(name, params) {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new FunctionFragment(_guard, name, \"view\", params, [], null);\n return fragment.selector;\n }\n static from(obj) {\n if (FunctionFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return FunctionFragment.from(lex(obj));\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"function\", obj);\n const inputs = consumeParams(obj);\n const mutability = consumeMutability(obj);\n let outputs = [];\n if (consumeKeywords(obj, setify([\"returns\"])).has(\"returns\")) {\n outputs = consumeParams(obj);\n }\n const gas = consumeGas(obj);\n consumeEoi(obj);\n return new FunctionFragment(_guard, name, mutability, inputs, outputs, gas);\n }\n // @TODO: verifyState for stateMutability\n return new FunctionFragment(_guard, obj.name, obj.stateMutability, obj.inputs ? obj.inputs.map(ParamType.from) : [], obj.outputs ? obj.outputs.map(ParamType.from) : [], (obj.gas != null) ? obj.gas : null);\n }\n static isFragment(value) {\n return (value && value[internal] === FunctionFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a structure.\n */\nexport class StructFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard, name, inputs) {\n super(guard, \"struct\", name, inputs);\n Object.defineProperty(this, internal, { value: StructFragmentInternal });\n }\n format() {\n throw new Error(\"@TODO\");\n }\n static from(obj) {\n if (typeof (obj) === \"string\") {\n return StructFragment.from(lex(obj));\n }\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 return new StructFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n static isFragment(value) {\n return (value && value[internal] === StructFragmentInternal);\n }\n}\n//# sourceMappingURL=fragments.js.map","/**\n * About Interface\n *\n * @_subsection api/abi:Interfaces [interfaces]\n */\nimport { keccak256 } from \"ethers\";\nimport { id } from \"ethers\";\nimport { concat, dataSlice, getBigInt, getBytes, getBytesCopy, hexlify, zeroPadValue, isHexString, defineProperties, assertArgument, toBeHex, assert } from \"ethers\";\nimport { AbiCoder } from \"ethers\";\nimport { checkResultErrors, Result } from \"ethers\";\nimport { Typed } from \"ethers\";\nimport { ParamType, Fragment, ConstructorFragment, ErrorFragment, EventFragment, FunctionFragment } from \"./fragments\";\nexport { checkResultErrors, Result };\nexport class LogDescription {\n fragment;\n name;\n signature;\n topic;\n args;\n constructor(fragment, topic, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, signature, topic, args\n });\n }\n}\nexport class TransactionDescription {\n fragment;\n name;\n args;\n signature;\n selector;\n value;\n constructor(fragment, selector, args, value) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector, value\n });\n }\n}\nexport class ErrorDescription {\n fragment;\n name;\n args;\n signature;\n selector;\n constructor(fragment, selector, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector\n });\n }\n}\nexport class Indexed {\n hash;\n _isIndexed;\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n constructor(hash) {\n defineProperties(this, { hash, _isIndexed: true });\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 = {\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};\nconst BuiltinErrors = {\n \"0x08c379a0\": {\n signature: \"Error(string)\",\n name: \"Error\",\n inputs: [\"string\"],\n reason: (message) => {\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) => {\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 * 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 fragments;\n /**\n * The Contract constructor.\n */\n deploy;\n /**\n * The Fallback method, if any.\n */\n fallback;\n /**\n * If receiving ether is supported.\n */\n receive;\n #errors;\n #events;\n #functions;\n // #structs: Map;\n #abiCoder;\n /**\n * Create a new Interface for the %%fragments%%.\n */\n constructor(fragments) {\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n this.#functions = new Map();\n this.#errors = new Map();\n this.#events = new Map();\n // this.#structs = new Map();\n const frags = [];\n for (const a of abi) {\n try {\n frags.push(Fragment.from(a));\n }\n catch (error) {\n console.log(\"EE\", error);\n }\n }\n defineProperties(this, {\n fragments: Object.freeze(frags)\n });\n let fallback = null;\n let receive = false;\n this.#abiCoder = this.getAbiCoder();\n // Add all fragments by their signature\n this.fragments.forEach((fragment, index) => {\n let bucket;\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, { deploy: fragment });\n return;\n case \"fallback\":\n if (fragment.inputs.length === 0) {\n receive = true;\n }\n else {\n assertArgument(!fallback || fragment.payable !== fallback.payable, \"conflicting fallback fragments\", `fragments[${index}]`, fragment);\n fallback = fragment;\n receive = fallback.payable;\n }\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.#functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.#events;\n break;\n case \"error\":\n bucket = this.#errors;\n break;\n default:\n return;\n }\n // Two identical entries; ignore it\n const signature = fragment.format();\n if (bucket.has(signature)) {\n return;\n }\n bucket.set(signature, fragment);\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 defineProperties(this, { fallback, receive });\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) {\n const format = (minimal ? \"minimal\" : \"full\");\n const abi = this.fragments.map((f) => f.format(format));\n return abi;\n }\n /**\n * Return the JSON-encoded ABI. This is the format Solidiy\n * returns.\n */\n formatJson() {\n const abi = this.fragments.map((f) => f.format(\"json\"));\n // We need to re-bundle the JSON fragments a bit\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n /**\n * The ABI coder that will be used to encode and decode binary\n * data.\n */\n getAbiCoder() {\n return AbiCoder.defaultAbiCoder();\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n #getFunction(key, values, forceUnique) {\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 // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#functions) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (values) {\n const lastValue = (values.length > 0) ? values[values.length - 1] : null;\n let valueLength = values.length;\n let allowOptions = true;\n if (Typed.isTyped(lastValue) && lastValue.type === \"overrides\") {\n allowOptions = false;\n valueLength--;\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 // 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 // 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 // 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 // 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 if (matching.length === 0) {\n return null;\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 return matching[0];\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 return null;\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) {\n const fragment = this.#getFunction(key, null, false);\n assertArgument(fragment, \"no matching function\", \"key\", key);\n return fragment.name;\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, values) {\n return this.#getFunction(key, values || null, true);\n }\n /**\n * Iterate over all functions, calling %%callback%%, sorted by their name.\n */\n forEachFunction(callback) {\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 // Find an event definition by any means necessary (unless it is ambiguous)\n #getEvent(key, values, forceUnique) {\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 // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#events) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\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 // 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 // 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 if (matching.length === 0) {\n return null;\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 return matching[0];\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 return null;\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) {\n const fragment = this.#getEvent(key, null, false);\n assertArgument(fragment, \"no matching event\", \"key\", key);\n return fragment.name;\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, values) {\n return this.#getEvent(key, values || null, true);\n }\n /**\n * Iterate over all events, calling %%callback%%, sorted by their name.\n */\n forEachEvent(callback) {\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 * 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, values) {\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n if (BuiltinErrors[selector]) {\n return ErrorFragment.from(BuiltinErrors[selector].signature);\n }\n for (const fragment of this.#errors.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n return null;\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#errors) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\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 }\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 return matching[0];\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 const result = this.#errors.get(key);\n if (result) {\n return result;\n }\n return null;\n }\n /**\n * Iterate over all errors, calling %%callback%%, sorted by their name.\n */\n forEachError(callback) {\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 // Get the 4-byte selector used by Solidity to identify a function\n /*\ngetSelector(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 // 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 _decodeParams(params, data) {\n return this.#abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this.#abiCoder.encode(params, values);\n }\n /**\n * Encodes a ``tx.data`` object for deploying the Contract with\n * the %%values%% as the constructor arguments.\n */\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\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, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getError(fragment);\n assertArgument(f, \"unknown error\", \"fragment\", fragment);\n fragment = f;\n }\n assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, \"data\", data);\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\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, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getError(fragment);\n assertArgument(f, \"unknown error\", \"fragment\", fragment);\n fragment = f;\n }\n return concat([\n fragment.selector,\n 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, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, \"data\", data);\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\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, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n return concat([\n fragment.selector,\n 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, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n let message = \"invalid length for result data\";\n const bytes = getBytesCopy(data);\n if ((bytes.length % 32) === 0) {\n try {\n return this.#abiCoder.decode(fragment.outputs, bytes);\n }\n catch (error) {\n message = \"could not decode result data\";\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 makeError(_data, tx) {\n const data = getBytes(_data, \"data\");\n const error = AbiCoder.getBuiltinCallException(\"call\", tx, data);\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 const ef = this.getError(selector);\n if (ef) {\n try {\n const args = this.#abiCoder.decode(ef.inputs, data.slice(4));\n error.revert = {\n name: ef.name, signature: ef.format(), args\n };\n error.reason = error.revert.signature;\n error.message = `execution reverted: ${error.reason}`;\n }\n catch (e) {\n error.message = `execution reverted (coult not decode custom error)`;\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 return error;\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, values) {\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, 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, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, \"UNEXPECTED_ARGUMENT\", { count: values.length, expectedCount: fragment.inputs.length });\n const topics = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n // @TODO: Use the coders for this; to properly support tuples, etc.\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n if (param.type === \"bool\" && typeof (value) === \"boolean\") {\n value = (value ? \"0x01\" : \"0x00\");\n }\n if (param.type.match(/^u?int/)) {\n value = toBeHex(value);\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 values.forEach((value, index) => {\n const param = fragment.inputs[index];\n if (!param.indexed) {\n assertArgument(value == null, \"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n assertArgument(false, \"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n assertArgument(values.length === fragment.inputs.length, \"event arguments/values mismatch\", \"values\", values);\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 }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this.#abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this.#abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(fragment, data, topics) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n if (topics != null && !fragment.anonymous) {\n const eventTopic = fragment.topicHash;\n assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, \"fragment/topic mismatch\", \"topics[0]\", topics[0]);\n topics = topics.slice(1);\n }\n const indexed = [];\n const nonIndexed = [];\n const dynamic = [];\n fragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.from({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n const resultIndexed = (topics != null) ? this.#abiCoder.decode(indexed, concat(topics)) : null;\n const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true);\n //const result: (Array & { [ key: string ]: any }) = [ ];\n const values = [];\n const keys = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n fragment.inputs.forEach((param, index) => {\n let value = null;\n if (param.indexed) {\n if (resultIndexed == null) {\n value = new Indexed(null);\n }\n else if (dynamic[index]) {\n value = new Indexed(resultIndexed[indexedIndex++]);\n }\n else {\n try {\n value = resultIndexed[indexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n }\n else {\n try {\n value = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n values.push(value);\n keys.push(param.name || null);\n });\n return Result.fromItems(values, keys);\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) {\n const data = getBytes(tx.data, \"tx.data\");\n const value = getBigInt((tx.value != null) ? tx.value : 0, \"tx.value\");\n const fragment = this.getFunction(hexlify(data.slice(0, 4)));\n if (!fragment) {\n return null;\n }\n const args = this.#abiCoder.decode(fragment.inputs, data.slice(4));\n return new TransactionDescription(fragment, fragment.selector, args, value);\n }\n parseCallResult(data) {\n throw new Error(\"@TODO\");\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) {\n const fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\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 return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));\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) {\n const hexData = hexlify(data);\n const fragment = this.getError(dataSlice(hexData, 0, 4));\n if (!fragment) {\n return null;\n }\n const args = this.#abiCoder.decode(fragment.inputs, dataSlice(hexData, 4));\n return new ErrorDescription(fragment, fragment.selector, args);\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) {\n // Already an Interface, which is immutable\n if (value instanceof Interface) {\n return value;\n }\n // JSON\n if (typeof (value) === \"string\") {\n return new Interface(JSON.parse(value));\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 // Array of fragments\n return new Interface(value);\n }\n}\n//# sourceMappingURL=interface.js.map","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 Wallet as ethersWallet,\n HDNodeWallet as ethersHDNodeWallet,\n getBytes,\n computeHmac,\n} from 'ethers';\n\nimport { Interface } from './interface.js';\n\nconst splitSignature = (sigBytes) => Signature.from(sigBytes);\nconst joinSignature = (splitSig) => Signature.from(splitSig).serialized;\nconst arrayify = (value) => 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 SigningKey,\n Signature,\n AbiCoder,\n Interface,\n FormatTypes,\n splitSignature,\n joinSignature,\n arrayify,\n ethersWallet,\n ethersHDNodeWallet,\n concat,\n id,\n Mnemonic,\n Wordlist,\n wordlists,\n isValidMnemonic,\n};\n","import TronWeb from \"../index\";\nimport { id, keccak256, concat, defineProperties, getBigInt, getBytes, hexlify, mask, toTwos, toBeHex, zeroPadValue, assertArgument } from \"ethers\";\nimport { ADDRESS_PREFIX_REGEX } from './address';\n\nfunction getAddress(address) {\n return TronWeb.address.toHex(address).replace(ADDRESS_PREFIX_REGEX, '0x');\n};\nfunction getTronAddress(address) {\n return TronWeb.address.toHex(address);\n};\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst BN__1 = BigInt(-1);\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value) {\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}\nconst hexTrue = toBeHex(BN_1, 32);\nconst hexFalse = toBeHex(BN_0, 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n assertArgument(typeof (value) === \"string\", `invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n return getBigInt(value, \"domain.chainId\");\n },\n verifyingContract: function (value) {\n try {\n return getTronAddress(value).toLowerCase();\n }\n catch (error) { }\n assertArgument(false, `invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\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};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n assertArgument(width % 8 === 0 && width !== 0 && width <= 256 && (match[2] == null || match[2] === String(width)), \"invalid numeric width\", \"type\", type);\n const boundsUpper = mask(BN_MAX_UINT256, signed ? (width - 1) : width);\n const boundsLower = signed ? ((boundsUpper + BN_1) * BN__1) : BN_0;\n return function (_value) {\n const value = getBigInt(_value, \"value\");\n assertArgument(value >= boundsLower && value <= boundsUpper, `value out-of-bounds for ${type}`, \"value\", value);\n if (!signed) return toBeHex(value, 32);\n return toBeHex(toTwos(value, 256), 32);\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 return function (value) {\n const bytes = getBytes(value);\n assertArgument(bytes.length === width, `invalid length for ${type}`, \"value\", value);\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n \tcase \"trcToken\": return getBaseEncoder('uint256');\n case \"address\": return function (value) {\n return zeroPadValue(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n primaryType;\n #types;\n get types() {\n return JSON.parse(this.#types);\n }\n #fullTypes;\n #encoderCache;\n constructor(types) {\n this.#types = JSON.stringify(types);\n this.#fullTypes = new Map();\n this.#encoderCache = new Map();\n // Link struct types to their direct child structs\n const links = new Map();\n // Link structs to structs which contain them as a child\n const parents = new Map();\n // Link all subtypes within a given struct\n const subtypes = new Map();\n Object.keys(types).forEach((type) => {\n links.set(type, new Set());\n parents.set(type, []);\n subtypes.set(type, new Set());\n });\n for (const name in types) {\n const uniqueNames = new Set();\n for (const field of types[name]) {\n // Check each field has a unique name\n assertArgument(!uniqueNames.has(field.name), `duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n uniqueNames.add(field.name);\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 // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n continue;\n }\n assertArgument(parents.has(baseType), `unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n // Add linkage\n parents.get(baseType).push(name);\n links.get(name).add(baseType);\n }\n }\n // Deduce the primary type\n const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n).length === 0));\n assertArgument(primaryTypes.length !== 0, \"missing primary type\", \"types\", types);\n assertArgument(primaryTypes.length === 1, `ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n defineProperties(this, { primaryType: primaryTypes[0] });\n // Check for circular type references\n function checkCircular(type, found) {\n assertArgument(!found.has(type), `circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n found.add(type);\n for (const child of links.get(type)) {\n if (!parents.has(child)) {\n continue;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n for (const subtype of found) {\n subtypes.get(subtype).add(child);\n }\n }\n found.delete(type);\n }\n checkCircular(this.primaryType, new Set());\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 getEncoder(type) {\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 #getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\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) => {\n assertArgument(!match[3] || parseInt(match[3]) === value.length, `array length mismatch; expected length ${parseInt(match[3])}`, \"value\", value);\n let result = value.map(subEncoder);\n if (this.#fullTypes.has(subtype)) {\n result = result.map(keccak256);\n }\n return keccak256(concat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this.#fullTypes.get(type));\n return (value) => {\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 assertArgument(false, `unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this.#fullTypes.get(name);\n assertArgument(result, `unknown type: ${JSON.stringify(name)}`, \"name\", name);\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\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 // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n assertArgument(!match[3] || parseInt(match[3]) === value.length, `array length mismatch; expected length ${parseInt(match[3])}`, \"value\", value);\n return value.map((v) => this._visit(match[1], v, callback));\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 assertArgument(false, `unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\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 domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return concat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\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 const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = Object.assign({}, types);\n assertArgument(typesWithDomain.EIP712Domain == null, \"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n typesWithDomain.EIP712Domain = domainTypes;\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(getBytes(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return getBigInt(value).toString();\n }\n switch (type) {\n\t\t 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 assertArgument(false, \"unsupported type\", \"type\", type);\n })\n };\n }\n}\n//# sourceMappingURL=typed-data.js.map","import {ADDRESS_PREFIX, ADDRESS_PREFIX_BYTE, ADDRESS_SIZE} from './address';\nimport {base64EncodeToString} from './code';\nimport {base64DecodeFromString, hexStr2byteArray} from './code';\nimport {encode58, decode58} from './base58';\nimport {byte2hexStr, byteArray2hexStr} from './bytes';\nimport {arrayify, keccak256, recoverAddress, sha256, Signature, SigningKey} from './ethersUtils';\nimport {TypedDataEncoder} from './typedData';\nimport { secp256k1 as secp } from \"ethereum-cryptography/secp256k1.js\";\n\nfunction normalizePrivateKeyBytes(priKeyBytes) {\n return hexStr2byteArray(byteArray2hexStr(priKeyBytes).padStart(64, '0'));\n}\n\nexport function getBase58CheckAddress(addressBytes) {\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) {\n if (typeof (base58Sting) != 'string')\n return false;\n\n if (base58Sting.length <= 4)\n return false;\n\n let address = decode58(base58Sting);\n\n if (base58Sting.length <= 4)\n 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 (checkSum[0] == checkSum1[0] && checkSum[1] == checkSum1[1] && checkSum[2] ==\n checkSum1[2] && checkSum[3] == checkSum1[3]\n ) {\n return address;\n }\n\n throw new Error('Invalid address provided');\n}\n\nexport function signTransaction(priKeyBytes, transaction) {\n if (typeof priKeyBytes === 'string')\n 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))\n transaction.signature.push(signature);\n } else\n transaction.signature = [signature];\n return transaction;\n}\n\nexport function ecRecover(signedData, signature) {\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) {\n return btoa(String.fromCharCode(...a));\n}\n\nexport function signBytes(privateKey, contents) {\n if (typeof privateKey === 'string')\n privateKey = hexStr2byteArray(privateKey);\n\n const hashBytes = SHA256(contents);\n const signBytes = ECKeySign(hashBytes, privateKey);\n\n return signBytes;\n}\n\nexport function _signTypedData(domain, types, value, privateKey) {\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 = [\n '0x',\n signature.r.substring(2),\n signature.s.substring(2),\n Number(signature.v).toString(16),\n ].join('');\n return signatureHex;\n}\n\nexport function getRowBytesFromTransactionBase64(base64Data) {\n const bytesDecode = base64DecodeFromString(base64Data);\n const transaction = 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) {\n if (pubBytes.length === 65)\n 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) {\n let pubBytes = getPubKeyFromPriKey(priKeyBytes);\n return computeAddress(pubBytes);\n}\n\nexport function decode58Check(addressStr) {\n const decodeCheck = decode58(addressStr);\n\n if (decodeCheck.length <= 4)\n 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 (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 return decodeData;\n }\n\n return false;\n}\n\nexport function isAddressValid(base58Str) {\n if (typeof (base58Str) !== 'string')\n return false;\n\n if (base58Str.length !== ADDRESS_SIZE)\n return false;\n\n let address = decode58(base58Str);\n\n if (address.length !== 25)\n return false;\n\n if (address[0] !== ADDRESS_PREFIX_BYTE)\n 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 (checkSum[0] == checkSum1[0] && checkSum[1] == checkSum1[1] && checkSum[2] ==\n checkSum1[2] && checkSum[3] == checkSum1[3]\n ) {\n return true\n }\n\n return false;\n}\n\nexport function getBase58CheckAddressFromPriKeyBase64String(priKeyBase64String) {\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) {\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) {\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) {\n const pubkey = secp.ProjectivePoint.fromPrivateKey(new Uint8Array(normalizePrivateKeyBytes(priKeyBytes)));\n const x = pubkey.x;\n const y = pubkey.y;\n\n let xHex = x.toString(16).padStart(64, '0');\n let 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, priKeyBytes) {\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) {\n const msgHex = byteArray2hexStr(msgBytes);\n const hashHex = sha256('0x' + msgHex).replace(/^0x/, '')\n return hexStr2byteArray(hashHex);\n}\n\nexport function passwordToAddress(password) {\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, strict = false) {\n const com_priKeyBytes = hexStr2byteArray(privateKey, strict);\n const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);\n\n return getBase58CheckAddress(com_addressBytes);\n}\n","import {byteArray2hexStr} from './bytes';\nimport {\n getBase58CheckAddress,\n genPriKey,\n getAddressFromPriKey,\n getPubKeyFromPriKey,\n pkToAddress,\n} from './crypto';\nimport {ethersHDNodeWallet, Mnemonic} from './ethersUtils'\nimport {TRON_BIP39_PATH_INDEX_0} from './address'\nimport utils from './index';\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(options) {\n if(!utils.isObject(options)) { options = {}; }\n if(!options.path) {\n options.path = TRON_BIP39_PATH_INDEX_0;\n }\n if(!String(options.path).match(/^m\\/44\\'\\/195\\'/)) {\n throw new Error(INVALID_TRON_PATH_ERROR_MSG);\n }\n\n const account = ethersHDNodeWallet.createRandom(options.password, options.path, options.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 }\n \n return result;\n}\n\nexport function generateAccountWithMnemonic(mnemonic, path, wordlist = null) {\n if(!path) {\n path = TRON_BIP39_PATH_INDEX_0;\n }\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, null, 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}","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"logger/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"bytes/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"properties/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"abi/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","export const version = \"bignumber/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","export const version = \"address/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\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 return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","export const version = \"strings/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\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.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.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 ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.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 let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","import { AbiCoder } from '@ethersproject/abi';\nimport TronWeb from 'index';\nimport {ADDRESS_PREFIX, ADDRESS_PREFIX_REGEX} from 'utils/address';\n\nconst abiCoder = new AbiCoder();\n\nfunction _isArray(_array) {\n return Array.isArray(_array);\n}\n\nfunction _addressToHex(value) {\n return TronWeb.address.toHex(value).replace(ADDRESS_PREFIX_REGEX, '0x');\n}\n\nfunction deepCopy(target) {\n if (\n Object.prototype.toString.call(target) !== '[object Object]' &&\n Object.prototype.toString.call(target) !== '[object Array]'\n ) {\n return target;\n }\n const newTarget = _isArray(target) ? [] : {};\n\n Object.keys(target).forEach(key =>\n newTarget[key] = target[key] instanceof Object && !target[key]._isBigNumber ? deepCopy(target[key]) : target[key]\n );\n\n return newTarget;\n}\n\nexport function decodeParams(names, types, output, ignoreMethodHash) {\n if (!output || typeof output === 'boolean') {\n ignoreMethodHash = output;\n output = types;\n types = names;\n names = [];\n }\n\n if (ignoreMethodHash && output.replace(/^0x/, '').length % 64 === 8)\n 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 // 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((obj, arg, index) => {\n if (types[index] == 'address')\n arg = ADDRESS_PREFIX + arg.substr(2).toLowerCase();\n\n if (names.length)\n obj[names[index]] = arg;\n else obj.push(arg);\n\n return obj;\n }, names.length ? {} : []);\n}\n\nexport function encodeParams(types, values) {\n\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) {\n const size = type.match(/([a-zA-Z0-9])(\\[.*\\])/);\n return size ? size[2] : '';\n}\n\nfunction extractArrayDim (type) {\n const size = extractSize(type)\n return (size.match(/\\]\\[/g) || []).length + 1;\n}\n\nexport function encodeParamsV2ByABI(funABI, args) {\n const types = [];\n\n const buildFullTypeDefinition = (typeDef) => {\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType) => { return buildFullTypeDefinition(innerType) });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}`;\n }\n\n if (/trcToken/.test(typeDef.type))\n return typeDef.type.replace(/trcToken/, 'uint256');\n\n return typeDef.type;\n }\n\n const convertTypes = (types) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (/trcToken/.test(type))\n types[i] = type.replace(/trcToken/, 'uint256');\n }\n }\n\n const convertAddresses = addrArr => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs);\n });\n return addrArr;\n } else {\n return _addressToHex(addrArr)\n }\n };\n\n const mapTuple = (components, args, dimension) => {\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 = [], args) => {\n if (inputs.length)\n inputs.forEach((input, i) => {\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[')\n 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, data) {\n const convertTypeNames = (types) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i]\n if (/^trcToken/.test(type))\n types[i] = type.replace(/^trcToken/, 'uint256')\n }\n }\n\n const convertAddresses = addrArr => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs);\n });\n return addrArr;\n } else {\n return TronWeb.address.toHex(addrArr)\n }\n };\n\n const mapTuple = (components, args, dimension) => {\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 decodeResult(components, arg);\n });\n }\n }\n };\n\n const buildFullTypeNameDefinition = (typeDef) => {\n const name = typeDef.name ? ` ${typeDef.name}` : '';\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType) => { return buildFullTypeNameDefinition(innerType) });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}${name}`;\n }\n if (/trcToken/.test(typeDef.type))\n return typeDef.type.replace(/trcToken/, 'uint256') + name;\n\n return typeDef.type + name;\n }\n\n const decodeResult = (outputs = [], result) => {\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 if(name) result[name] = TronWeb.address.toHex(result[name]);\n }\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)[0] === 'address[') {\n convertAddresses(result[i])\n if(name) convertAddresses(result[name])\n }\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 if(name) result[name] = result[i];\n }\n });\n };\n\n // Only decode if there supposed to be fields\n if (funABI.outputs && funABI.outputs.length > 0) {\n\n let outputTypes = [];\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 = deepCopy(decodeRes);\n decodeResult(funABI.outputs, decodeResCopy);\n\n return decodeResCopy\n }\n return [];\n}","import { keccak256, toUtf8Bytes, concat, recoverAddress, SigningKey, joinSignature } from 'utils/ethersUtils';\nimport { ADDRESS_PREFIX } from 'utils/address';\nimport { getBase58CheckAddress } from 'utils/crypto';\nimport { hexStr2byteArray } from 'utils/code';\n\nexport const TRON_MESSAGE_PREFIX = \"\\x19TRON Signed Message:\\n\";\n\nexport function hashMessage(message) {\n if (typeof(message) === \"string\") { \n message = toUtf8Bytes(message);\n }\n\n if (Array.isArray(message)) {\n message = new Uint8Array(message);\n }\n\n return keccak256(concat([\n toUtf8Bytes(TRON_MESSAGE_PREFIX),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\nexport function signMessage(message, privateKey) {\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, signature) {\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","const google_protobuf_any_pb = require('@tronweb3/google-protobuf/google/protobuf/any_pb');\n\nconst { Transaction, Permission, Key } = require('../protocol/core/Tron_pb');\n\nconst {\n TransferContract,\n FreezeBalanceContract,\n UnfreezeBalanceContract,\n WithdrawBalanceContract,\n FreezeBalanceV2Contract,\n UnfreezeBalanceV2Contract,\n WithdrawExpireUnfreezeContract,\n DelegateResourceContract,\n UnDelegateResourceContract,\n} = require('../protocol/core/contract/balance_contract_pb');\nconst {\n TransferAssetContract,\n ParticipateAssetIssueContract,\n AssetIssueContract,\n UpdateAssetContract\n} = require('../protocol/core/contract/asset_issue_contract_pb');\n\nconst {\n TriggerSmartContract,\n ClearABIContract,\n UpdateEnergyLimitContract,\n UpdateSettingContract,\n CreateSmartContract,\n SmartContract,\n} = require('../protocol/core/contract/smart_contract_pb');\n\nconst { ResourceCode } = require('../protocol/core/contract/common_pb');\n\nconst {\n WitnessCreateContract,\n VoteWitnessContract,\n} = require('../protocol/core/contract/witness_contract_pb');\n\nconst {\n UpdateBrokerageContract,\n} = require('../protocol/core/contract/storage_contract_pb');\n\nconst {\n AccountCreateContract,\n AccountUpdateContract,\n SetAccountIdContract,\n AccountPermissionUpdateContract,\n} = require('../protocol/core/contract/account_contract_pb');\n\nconst {\n ProposalCreateContract,\n ProposalDeleteContract,\n ProposalApproveContract,\n} = require('../protocol/core/contract/proposal_contract_pb');\n\nconst {\n ExchangeCreateContract,\n ExchangeInjectContract,\n ExchangeWithdrawContract,\n ExchangeTransactionContract,\n} = require('../protocol/core/contract/exchange_contract_pb');\n\nimport { byteArray2hexStr } from './bytes';\nimport { sha256, keccak256 } from './ethersUtils';\nimport TronWeb from '../index';\n\nconst fromHexString = (hexString) => {\n if (!hexString || hexString.length === 0) return new Uint8Array([]);\n return new Uint8Array(\n TronWeb.address.toHex(hexString).match(/.{1,2}/g).map((byte) => parseInt(byte, 16))\n );\n};\n \n\nconst sha3 = (string, prefix = true) => {\n return (\n (prefix ? '0x' : '') +\n keccak256(Buffer.from(string, 'utf-8')).toString().substring(2)\n );\n};\n\nconst buildCommonTransaction = (\n message,\n contractType,\n typeName,\n permissionId\n) => {\n let anyValue = new google_protobuf_any_pb.Any();\n anyValue.pack(message.serializeBinary(), 'protocol.' + typeName);\n let contract = new Transaction.Contract();\n contract.setType(contractType);\n contract.setParameter(anyValue);\n if (permissionId) {\n contract.setPermissionId(permissionId);\n }\n let raw = new Transaction.raw();\n raw.addContract(contract);\n let 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 let 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 let transferContract = new TransferAssetContract();\n transferContract.setToAddress(fromHexString(to_address));\n transferContract.setOwnerAddress(fromHexString(owner_address));\n transferContract.setAssetName(fromHexString(asset_name.replace(/^0x/, '')));\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 let pbObj = new ParticipateAssetIssueContract();\n pbObj.setToAddress(fromHexString(value.to_address));\n pbObj.setOwnerAddress(fromHexString(value.owner_address));\n pbObj.setAssetName(fromHexString(value.asset_name.replace(/^0x/, '')));\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 let 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(fromHexString(data));\n } else if (function_selector) {\n const contractData = sha3(function_selector).substring(2, 10) + parameter;\n triggerSmartContract.setData(fromHexString(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 let freezeBalanceContract = new FreezeBalanceContract();\n const {\n owner_address,\n frozen_balance,\n frozen_duration,\n resource,\n receiver_address,\n } = 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(\n fromHexString(receiver_address)\n );\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 let 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(\n fromHexString(receiver_address)\n );\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 let 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 {\n owner_address,\n frozen_balance,\n resource,\n } = 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 {\n owner_address,\n unfreeze_balance,\n resource,\n } = 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 {\n owner_address,\n receiver_address,\n balance,\n resource,\n lock = false,\n lock_period,\n } = 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 {\n owner_address,\n receiver_address,\n balance,\n resource,\n } = 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(fromHexString(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 let voteWitnessContract = new VoteWitnessContract();\n const { owner_address, votes } = value;\n voteWitnessContract.setOwnerAddress(fromHexString(owner_address));\n\n votes.forEach((voteItem) => {\n let vote = new VoteWitnessContract.Vote();\n const { vote_address, vote_count } = voteItem;\n vote.setVoteAddress(fromHexString(vote_address));\n let 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 let 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 let {\n owner_address,\n consume_user_resource_percent,\n origin_energy_limit,\n abi,\n bytecode = '',\n name: contracName,\n parameter = '',\n call_value,\n call_token_value,\n token_id,\n origin_address,\n } = params;\n\n let 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 {\n anonymous,\n constant,\n name,\n inputs,\n outputs,\n type,\n payable,\n stateMutability,\n } = 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(\n inputs.map((input) => buildEntryParam(input))\n );\n }\n if (outputs) {\n entryBuilder.setOutputsList(\n outputs.map((output) => buildEntryParam(output))\n );\n }\n if (type) {\n entryBuilder.setType(\n SmartContract.ABI.Entry.EntryType[type.toUpperCase()]\n );\n }\n \n entryBuilder.setPayable(payable);\n if(stateMutability) {\n entryBuilder.setStatemutability(\n SmartContract.ABI.Entry.StateMutabilityType[\n stateMutability.toUpperCase()\n ]\n );\n }\n \n return entryBuilder;\n });\n abiBuilder.setEntrysList(entryBuilders);\n smartContractBuilder.setAbi(abiBuilder);\n }\n \n\n if (call_value) {\n smartContractBuilder.setCallValue(call_value);\n }\n\n smartContractBuilder.setConsumeUserResourcePercent(\n consume_user_resource_percent\n );\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(fromHexString(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 let assetIssueContract = new AssetIssueContract();\n assetIssueContract.setOwnerAddress(fromHexString(owner_address));\n if (name) {\n assetIssueContract.setName(fromHexString(name.replace(/^0x/, '')));\n }\n if (abbr) {\n assetIssueContract.setAbbr(fromHexString(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(\n public_latest_free_net_time\n );\n }\n if (description) {\n assetIssueContract.setDescription(\n fromHexString(description.replace(/^0x/, ''))\n );\n }\n if (url) {\n assetIssueContract.setUrl(fromHexString(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 let 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 let accountCreateContract = new AccountCreateContract();\n const { account_address, owner_address } = value;\n accountCreateContract.setOwnerAddress(fromHexString(owner_address));\n accountCreateContract.setAccountAddress(\n fromHexString(account_address.replace(/^0x/, ''))\n );\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 let accountUpdateContract = new AccountUpdateContract();\n const { account_name, owner_address } = value;\n accountUpdateContract.setOwnerAddress(fromHexString(owner_address));\n accountUpdateContract.setAccountName(\n fromHexString(account_name.replace(/^0x/, ''))\n );\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 let setAccountIdContract = new SetAccountIdContract();\n const { account_id, owner_address } = value;\n setAccountIdContract.setOwnerAddress(fromHexString(owner_address));\n setAccountIdContract.setAccountId(\n fromHexString(account_id.replace(/^0x/, ''))\n );\n return buildCommonTransaction(\n setAccountIdContract,\n Transaction.Contract.ContractType.SETACCOUNTIDCONTRACT,\n 'SetAccountIdContract',\n options.Permission_id\n );\n};\n\nconst buildProposalCreateContract = (value, options) => {\n let proposalCreateContract = new ProposalCreateContract();\n const { owner_address, parameters } = value;\n proposalCreateContract.setOwnerAddress(fromHexString(owner_address));\n parameters.forEach((parameter) => {\n proposalCreateContract\n .getParametersMap()\n .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 let 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 let 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 {\n owner_address,\n first_token_id,\n first_token_balance,\n second_token_id,\n second_token_balance,\n } = value;\n exchangeCreateContract.setOwnerAddress(fromHexString(owner_address));\n exchangeCreateContract.setFirstTokenId(\n fromHexString(first_token_id.replace(/^0x/, ''))\n );\n exchangeCreateContract.setFirstTokenBalance(first_token_balance);\n exchangeCreateContract.setSecondTokenId(\n fromHexString(second_token_id.replace(/^0x/, ''))\n );\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(\n fromHexString(token_id.replace(/^0x/, ''))\n );\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(\n fromHexString(token_id.replace(/^0x/, ''))\n );\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(\n fromHexString(token_id.replace(/^0x/, ''))\n );\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 } =\n value;\n updateSettingContract.setOwnerAddress(fromHexString(owner_address));\n updateSettingContract.setContractAddress(fromHexString(contract_address));\n updateSettingContract.setConsumeUserResourcePercent(\n consume_user_resource_percent\n );\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(\n fromHexString(contract_address)\n );\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 =\n new AccountPermissionUpdateContract();\n const { owner_address, owner, witness, actives } = value;\n accountPermissionUpdateContract.setOwnerAddress(\n fromHexString(owner_address)\n );\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 {\n type,\n id,\n permission_name,\n threshold,\n parentId,\n operations,\n keys,\n } = 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(fromHexString(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(\n actives.map(active => buildPermission(active))\n );\n } else {\n accountPermissionUpdateContract.setActivesList([\n buildPermission(actives),\n ]);\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(fromHexString(description.replace(/^0x/, '')));\n }\n if (url) {\n updateAssetContract.setUrl(fromHexString(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 };\n const transactionObj = contractJsonToProtobuf(contractJson, data, options);\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(fromHexString(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(fromHexString(rawData.ref_block_hash));\n if (rawData.data) {\n rawDataObj.setData(fromHexString(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 = (\n transaction,\n args = {},\n options = {}\n) => {\n const rawData = transaction['raw_data'];\n const contractJson = rawData.contract[0];\n\n const transactionObj = contractJsonToProtobuf(contractJson, args, { Permission_id: args?.Permission_id });\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(fromHexString(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(fromHexString(rawData.ref_block_hash));\n // for memo\n if (options.data) {\n rawDataObj.setData(fromHexString(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() ===\n transaction.txID.replace(/^0x/, '').toLowerCase()\n );\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(\n transaction,\n args,\n options\n );\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 {\n txJsonToPb,\n txPbToTxID,\n txPbToRawDataHex,\n txJsonToPbWithArgs,\n txCheckWithArgs,\n txCheck,\n};\n","/*\r\n * bignumber.js v9.1.1\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, P.lt);\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, P.gt);\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 function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\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 = n / pows10[d - j - 1] % 10 | 0;\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 : n / pows10[d - j - 1] % 10 | 0;\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) t = xc, xc = yc, yc = t, y.s = -y.s;\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) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\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) t = yc, yc = xc, xc = t, b = a;\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) i = g1, g1 = g2, g2 = i, len -= i;\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 * as accounts from './accounts';\nimport * as base58 from './base58';\nimport * as bytes from './bytes';\nimport * as crypto from './crypto';\nimport * as code from './code';\nimport * as abi from './abi';\nimport * as message from './message'\nimport * as ethersUtils from './ethersUtils';\nimport {TypedDataEncoder as _TypedDataEncoder} from './typedData';\nimport * as transaction from './transaction';\n\nimport validator from 'validator';\nimport BigNumber from 'bignumber.js';\nimport {ADDRESS_PREFIX} from 'utils/address';\n\nconst utils = {\n isValidURL(url) {\n if (typeof url !== 'string')\n return false;\n return validator.isURL(url.toString(), {\n protocols: ['http', 'https'],\n require_tld: false\n });\n },\n\n isObject(obj) {\n return obj === Object(obj) && Object.prototype.toString.call(obj) !== '[object Array]';\n },\n\n isArray(array) {\n return Array.isArray(array);\n },\n\n isJson(string) {\n try {\n return !!JSON.parse(string);\n } catch (ex) {\n return false;\n }\n },\n\n isBoolean(bool) {\n return typeof bool === 'boolean';\n },\n\n isBigNumber(number) {\n return number && (number instanceof BigNumber || (number.constructor && number.constructor.name === 'BigNumber'));\n },\n\n isString(string) {\n return typeof string === 'string' || (string && string.constructor && string.constructor.name === 'String');\n },\n\n isFunction(obj) {\n return typeof obj === 'function';\n },\n\n isHex(string) {\n return (typeof string === 'string'\n && !isNaN(parseInt(string, 16))\n && /^(0x|)[a-fA-F0-9]+$/.test(string));\n },\n\n isInteger(number) {\n if (number === null)\n return false\n return Number.isInteger(\n Number(number)\n );\n },\n\n hasProperty(obj, property) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n },\n\n hasProperties(obj, ...properties) {\n return properties.length && !properties.map(property => {\n return this.hasProperty(obj, property)\n }).includes(false);\n },\n\n mapEvent(event) {\n let data = {\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\n parseEvent(event, {inputs: abi}) {\n if (!event.result)\n return event;\n\n if (this.isObject(event.result)) {\n for (var i = 0; i < abi.length; i++) {\n let obj = abi[i];\n if (obj.type == 'address' && obj.name in event.result)\n event.result[obj.name] = ADDRESS_PREFIX + event.result[obj.name].substr(2).toLowerCase();\n }\n } else if (this.isArray(event.result)) {\n event.result = event.result.reduce((obj, result, index) => {\n const {\n name,\n type\n } = abi[index];\n\n if (type == 'address')\n result = ADDRESS_PREFIX + result.substr(2).toLowerCase();\n\n obj[name] = result;\n\n return obj;\n }, {});\n }\n\n return event;\n },\n\n padLeft(input, padding, amount) {\n let res = input.toString();\n\n while (res.length < amount)\n res = padding + res;\n\n return res;\n },\n\n isNotNullOrUndefined(val) {\n return val !== null && typeof val !== 'undefined';\n },\n\n async sleep(millis = 1000){\n return new Promise(resolve => setTimeout(resolve, millis));\n }\n}\n\nexport default {\n ...utils,\n code,\n accounts,\n base58,\n bytes,\n crypto,\n abi,\n message,\n _TypedDataEncoder,\n transaction,\n ethersUtils\n};\n","import HttpProvider from './HttpProvider';\n\nexport default {\n HttpProvider\n};","import axios from 'axios';\nimport utils from 'utils';\n\nexport default class HttpProvider {\n constructor(host, timeout = 30000, user = false, password = false, headers = {}, statusPage = '/') {\n if (!utils.isValidURL(host))\n throw new Error('Invalid URL provided to HttpProvider');\n\n if (isNaN(timeout) || timeout < 0)\n throw new Error('Invalid timeout duration provided');\n\n if (!utils.isObject(headers))\n 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 user,\n password\n },\n });\n }\n\n setStatusPage(statusPage = '/') {\n this.statusPage = statusPage;\n }\n\n async isConnected(statusPage = this.statusPage) {\n return this.request(statusPage).then(data => {\n return utils.hasProperties(data, 'blockID', 'block_header');\n }).catch(() => false);\n }\n\n request(url, payload = {}, method = 'get') {\n method = method.toLowerCase();\n\n return this.instance.request({\n data: method == 'post' && Object.keys(payload).length ? payload : null,\n params: method == 'get' && payload,\n url,\n method\n }).then(({data}) => data);\n }\n};\n","import TronWeb from 'index';\nimport utils from 'utils';\n\nexport default class Validator {\n\n constructor(tronWeb = false) {\n if (!tronWeb || !tronWeb instanceof TronWeb)\n throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n }\n\n invalid(param) {\n return param.msg || `Invalid ${param.name}${param.type === 'address' ? ' address' : ''} provided`;\n }\n\n notPositive(param) {\n return `${param.name} must be a positive integer`;\n }\n\n notEqual(param) {\n return param.msg || `${param.names[0]} can not be equal to ${param.names[1]}`;\n }\n\n notValid(params = [], callback = new Function) {\n\n let normalized = {};\n let no = false;\n for (const param of params) {\n let {\n name,\n names,\n value,\n type,\n gt,\n lt,\n gte,\n lte,\n se,\n optional\n } = param;\n if (optional && (\n !utils.isNotNullOrUndefined(value)\n || (type !== 'boolean' && value === false)))\n continue;\n normalized[param.name] = param.value;\n switch (type) {\n\n case 'address':\n if (!this.tronWeb.isAddress(value)) {\n no = true;\n } else {\n normalized[name] = this.tronWeb.address.toHex(value);\n }\n break;\n\n case 'integer':\n if (!utils.isInteger(value) ||\n (typeof gt === 'number' && value <= param.gt) ||\n (typeof lt === 'number' && value >= param.lt) ||\n (typeof gte === 'number' && value < param.gte) ||\n (typeof lte === 'number' && value > param.lte)) {\n no = true;\n }\n break;\n\n case 'positive-integer':\n if (!utils.isInteger(value) || value <= 0) {\n callback(this.notPositive(param));\n return;\n }\n break;\n\n case 'tokenId':\n if (!utils.isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'notEmptyObject':\n if (!utils.isObject(value) || !Object.keys(value).length) {\n no = true;\n }\n break;\n\n case 'notEqual':\n if (normalized[names[0]] === normalized[names[1]]) {\n callback(this.notEqual(param));\n return true;\n }\n break;\n\n case 'resource':\n if (!['BANDWIDTH', 'ENERGY'].includes(value)) {\n no = true;\n }\n break;\n\n case 'url':\n if (!utils.isValidURL(value)) {\n no = true;\n }\n break;\n\n case 'hex':\n if (!utils.isHex(value)) {\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 (!utils.isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'boolean':\n if (!utils.isBoolean(value)) {\n no = true;\n }\n break;\n case 'string':\n if (!utils.isString(value) ||\n (typeof gt === 'number' && value.length <= param.gt) ||\n (typeof lt === 'number' && value.length >= param.lt) ||\n (typeof gte === 'number' && value.length < param.gte) ||\n (typeof lte === 'number' && value.length > param.lte)) {\n no = true;\n }\n break;\n }\n if (no) {\n callback(this.invalid(param));\n return true;\n }\n }\n return false;\n }\n}\n\n","import TronWeb from 'index';\nimport utils from 'utils';\nimport { AbiCoder } from '@ethersproject/abi';\nimport Validator from 'paramValidator';\nimport {ADDRESS_PREFIX_REGEX} from 'utils/address';\nimport injectpromise from 'injectpromise';\nimport {encodeParamsV2ByABI} from 'utils/abi';\nimport {txCheckWithArgs, txJsonToPb, txPbToTxID, txPbToRawDataHex} from 'utils/transaction';\nimport { keccak256 } from 'utils/ethersUtils';\n\nlet self;\n\n//helpers\n\nfunction toHex(value) {\n return TronWeb.address.toHex(value);\n}\n\nfunction fromUtf8(value) {\n return self.tronWeb.fromUtf8(value).replace(/^0x/, '');\n}\n\nfunction deepCopyJson(json) {\n return JSON.parse(JSON.stringify(json));\n}\n\nfunction resultManager(transaction, data, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n }\n\n if (typeof data === 'function') {\n callback = data;\n data = null;\n }\n\n if (transaction.Error)\n return callback(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n return callback(\n self.tronWeb.toUtf8(transaction.result.message)\n );\n }\n const authResult = txCheckWithArgs(transaction, data, options);\n if(authResult) {\n return callback(null, transaction);\n }\n return callback('Invalid transaction');\n}\n\nfunction resultManagerTriggerSmartContract(transaction, data, options, callback) {\n if (transaction.Error)\n return callback(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n return callback(\n self.tronWeb.toUtf8(transaction.result.message)\n );\n }\n\n if(!(options._isConstant || options.estimateEnergy)) {\n const authResult = txCheckWithArgs(transaction.transaction, data, options);\n if(authResult) {\n return callback(null, transaction);\n }\n return callback('Invalid transaction');\n }\n return callback(null, transaction);\n}\n\nfunction genContractAddress(ownerAddress, txID) {\n return '41' + keccak256(Buffer.from(txID + ownerAddress, 'hex')).toString().substring(2).slice(24);\n}\n\nfunction getHeaderInfo(node) {\n return node.request('wallet/getblock', { detail: false }, 'post')\n .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 = {}) {\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\nasync function createTransaction(tronWeb, type, value, Permission_id, options = {}) {\n const tx = {\n visible: false,\n txID: '',\n raw_data_hex: '',\n raw_data: {\n contract: [{\n parameter: {\n value,\n type_url: `type.googleapis.com/protocol.${type}`,\n },\n type,\n }],\n ...(checkBlockHeader(options) ? {} : 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\nfunction getTransactionOptions(options) {\n const ret = {};\n if (checkBlockHeader(options?.blockHeader)) {\n ['ref_block_bytes', 'ref_block_hash', 'expiration', 'timestamp'].forEach((key) => {\n ret[key] = options.blockHeader[key];\n });\n }\n return ret;\n}\n\nexport default class TransactionBuilder {\n constructor(tronWeb = false) {\n if (!tronWeb || !tronWeb instanceof TronWeb)\n throw new Error('Expected instance of TronWeb');\n self = this;\n this.tronWeb = tronWeb;\n this.injectPromise = injectpromise(this);\n this.validator = new Validator(tronWeb);\n }\n\n sendTrx(to = false, amount = 0, from = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(from)) {\n callback = from;\n from = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(from)) {\n options = from;\n from = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.sendTrx, to, amount, from, options);\n\n // accept amounts passed as strings\n amount = parseInt(amount)\n\n if (this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to\n },\n {\n name: 'origin',\n type: 'address',\n value: from\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 ], callback))\n return;\n\n const data = {\n to_address: toHex(to),\n owner_address: toHex(from),\n amount: amount,\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'TransferContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n sendToken(to = false, amount = 0, tokenID = false, from = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(from)) {\n callback = from;\n from = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(from)) {\n options = from;\n from = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.sendToken, to, amount, tokenID, from, options);\n\n amount = parseInt(amount)\n if (this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to\n },\n {\n name: 'origin',\n type: 'address',\n value: from,\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 ], callback))\n return;\n\n const data = {\n to_address: toHex(to),\n owner_address: toHex(from),\n asset_name: fromUtf8(tokenID),\n amount: parseInt(amount)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'TransferAssetContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n purchaseToken(issuerAddress = false, tokenID = false, amount = 0, buyer = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(buyer)) {\n callback = buyer;\n buyer = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(buyer)) {\n options = buyer;\n buyer = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.purchaseToken, issuerAddress, tokenID, amount, buyer, options);\n\n if (this.validator.notValid([\n {\n name: 'buyer',\n type: 'address',\n value: buyer\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 ], callback))\n return;\n\n const data = {\n to_address: toHex(issuerAddress),\n owner_address: toHex(buyer),\n asset_name: fromUtf8(tokenID),\n amount: parseInt(amount)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ParticipateAssetIssueContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n freezeBalance(amount = 0, duration = 3, resource = \"BANDWIDTH\", address = this.tronWeb.defaultAddress.hex, receiverAddress = undefined, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(receiverAddress)) {\n callback = receiverAddress;\n receiverAddress = undefined;\n } else if (utils.isObject(receiverAddress)) {\n options = receiverAddress;\n receiverAddress = undefined;\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(duration)) {\n callback = duration;\n duration = 3;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.freezeBalance, amount, duration, resource, address, receiverAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n frozen_balance: parseInt(amount),\n frozen_duration: parseInt(duration),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n\n if (utils.isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress) !== toHex(address)) {\n data.receiver_address = toHex(receiverAddress)\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'FreezeBalanceContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n unfreezeBalance(resource = \"BANDWIDTH\", address = this.tronWeb.defaultAddress.hex, receiverAddress = undefined, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(receiverAddress)) {\n callback = receiverAddress;\n receiverAddress = undefined;\n } else if (utils.isObject(receiverAddress)) {\n options = receiverAddress;\n receiverAddress = undefined;\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.unfreezeBalance, resource, address, receiverAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n\n if (utils.isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress) !== toHex(address)) {\n data.receiver_address = toHex(receiverAddress)\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UnfreezeBalanceContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n freezeBalanceV2(amount = 0, resource = \"BANDWIDTH\", address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n } else if (utils.isObject(resource)) {\n options = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.freezeBalanceV2, amount, resource, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\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,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"'\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n frozen_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'FreezeBalanceV2Contract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n unfreezeBalanceV2(amount = 0, resource = \"BANDWIDTH\", address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n } else if (utils.isObject(resource)) {\n options = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.unfreezeBalanceV2, amount, resource, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\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,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"'\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n unfreeze_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UnfreezeBalanceV2Contract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n cancelUnfreezeBalanceV2(address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n options = {};\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.cancelUnfreezeBalanceV2, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'CancelAllUnfreezeV2Contract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n delegateResource(\n amount = 0,\n receiverAddress,\n resource = \"BANDWIDTH\",\n address = this.tronWeb.defaultAddress.hex,\n lock = false,\n lockPeriod,\n options,\n callback = false\n ) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(lockPeriod)) {\n callback = lockPeriod;\n lockPeriod = undefined;\n } else if (utils.isObject(lockPeriod)) {\n options = lockPeriod;\n lockPeriod = undefined;\n }\n\n if (utils.isFunction(lock)) {\n callback = lock;\n lock = false;\n } else if (utils.isObject(lock)) {\n options = lock;\n lock = false;\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n } else if (utils.isObject(resource)) {\n options = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.delegateResource, amount, receiverAddress, resource, address, lock, lockPeriod, options);\n\n if (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,\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\n },\n {\n name: 'lock',\n type: 'boolean',\n value: lock\n },\n {\n name: 'lock period',\n type: 'integer',\n gte: 0,\n value: lockPeriod,\n optional: true,\n }\n ], callback))\n return;\n\n if(toHex(receiverAddress) === toHex(address)) {\n return callback('Receiver address must not be the same as owner address');\n }\n\n const data = {\n owner_address: toHex(address),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n if (lock) {\n data.lock = lock;\n if (utils.isNotNullOrUndefined(lockPeriod)) {\n data.lock_period = lockPeriod;\n }\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'DelegateResourceContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n undelegateResource(amount = 0, receiverAddress, resource = \"BANDWIDTH\", address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n } else if (utils.isObject(resource)) {\n options = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (!callback)\n return this.injectPromise(this.undelegateResource, amount, receiverAddress, resource, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\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,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"'\n }\n ], callback))\n return;\n\n if(toHex(receiverAddress) === toHex(address)) {\n return callback('Receiver address must not be the same as owner address');\n }\n \n const data = {\n owner_address: toHex(address),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UnDelegateResourceContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n withdrawExpireUnfreeze(address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.withdrawExpireUnfreeze, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address)\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'WithdrawExpireUnfreezeContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n withdrawBlockRewards(address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.withdrawBlockRewards, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'WithdrawBalanceContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n applyForSR(\n address = this.tronWeb.defaultAddress.hex,\n url = false,\n options,\n callback = false\n ) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (utils.isObject(url) && utils.isValidURL(address)) {\n options = url;\n url = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.applyForSR, address, url, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n },\n {\n name: 'url',\n type: 'url',\n value: url,\n msg: 'Invalid url provided'\n },\n {\n name: 'url',\n type: 'string',\n value: url,\n lte: 256,\n msg: 'Invalid url provided'\n },\n ], callback))\n return;\n\n\n const data = {\n owner_address: toHex(address),\n url: fromUtf8(url),\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'WitnessCreateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n vote(votes = {}, voterAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(voterAddress)) {\n callback = voterAddress;\n voterAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(voterAddress)) {\n options = voterAddress;\n voterAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.vote, votes, voterAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress\n },\n {\n name: 'votes',\n type: 'notEmptyObject',\n value: votes\n }\n ], callback))\n return;\n\n let invalid = false;\n\n votes = Object.entries(votes).map(([srAddress, voteCount]) => {\n if (invalid)\n return;\n\n if (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 return invalid = true;\n\n return {\n vote_address: toHex(srAddress),\n vote_count: parseInt(voteCount)\n };\n });\n\n if (invalid)\n return;\n\n const data = {\n owner_address: toHex(voterAddress),\n votes,\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'VoteWitnessContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n createSmartContract(options = {}, issuerAddress = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.createSmartContract, options, issuerAddress);\n\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 const tokenId = options.tokenId || options.token_id;\n\n let {\n abi = false,\n bytecode = false,\n parameters = [],\n name = \"\"\n } = options;\n\n if (abi && utils.isString(abi)) {\n try {\n abi = JSON.parse(abi);\n } catch {\n return callback('Invalid options.abi provided');\n }\n }\n\n if (abi.entrys)\n abi = abi.entrys;\n\n if (!utils.isArray(abi))\n return callback('Invalid options.abi provided');\n\n\n const payable = abi.some(func => {\n return func.type === 'constructor' && 'payable' === func.stateMutability.toLowerCase();\n });\n\n if (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 ], callback))\n return;\n\n if (!payable && (callValue > 0 || tokenValue > 0))\n return callback('When contract is not payable, options.callValue and options.tokenValue must be 0');\n\n\n if (options.rawParameter && utils.isString(options.rawParameter)) {\n parameters = options.rawParameter.replace(/^(0x)/, '');\n } else if (options.funcABIV2) {\n parameters = encodeParamsV2ByABI(options.funcABIV2, options.parametersV2).replace(/^(0x)/, '');\n } else {\n var constructorParams = abi.find(\n (it) => {\n return it.type === 'constructor';\n }\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 return callback(`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 = parameters[i];\n\n if (!type || !utils.isString(type) || !type.length)\n return callback('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value) => {\n if (utils.isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type.startsWith('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 parameters = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } catch (ex) {\n return callback(ex);\n }\n } else parameters = '';\n }\n\n const args = {\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: parameters,\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 (utils.isNotNullOrUndefined(tokenValue))\n args.call_token_value = parseInt(tokenValue)\n if (utils.isNotNullOrUndefined(tokenId))\n args.token_id = parseInt(tokenId)\n\n new Promise((resolve) => {\n const contract = {};\n contract.owner_address = args.owner_address;\n if (utils.isNotNullOrUndefined(args.call_token_value)) {\n contract.call_token_value = args.call_token_value;\n }\n if (utils.isNotNullOrUndefined(args.token_id)) {\n contract.token_id = args.token_id;\n }\n const new_contract = contract.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 (utils.isNotNullOrUndefined(args.name)) {\n new_contract.name = args.name;\n }\n\n resolve(contract);\n })\n .then(async contract => {\n const transactionOptions = getTransactionOptions(options);\n const tx = await createTransaction(this.tronWeb, 'CreateSmartContract', contract, options?.permissionId, {\n ...transactionOptions,\n fee_limit: args.fee_limit\n })\n tx.contract_address = genContractAddress(args.owner_address, tx.txID);\n return tx;\n })\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n triggerSmartContract(...params) {\n if (typeof params[2] !== 'object') {\n params[2] = {\n feeLimit: params[2],\n callValue: params[3]\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 triggerConstantContract(...params) {\n params[2]._isConstant = true\n return this._triggerSmartContract(...params);\n }\n\n triggerConfirmedConstantContract(...params) {\n params[2]._isConstant = true\n params[2].confirmed = true\n return this._triggerSmartContract(...params);\n }\n\n estimateEnergy(...params) {\n params[2].estimateEnergy = true;\n return this._triggerSmartContract(...params);\n }\n\n async deployConstantContract(options = {}) {\n const {\n input,\n ownerAddress,\n tokenId,\n tokenValue,\n callValue = 0,\n } = 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 ], (str) => {\n throw new Error(str);\n });\n \n const args = {\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' : ''}/${options.estimateEnergy ? 'estimateenergy' : 'triggerconstantcontract'}`;\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode']\n .request(pathInfo, args, 'post')\n .then(transaction => {\n if (transaction.Error)\n throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(\n this.tronWeb.toUtf8(transaction.result.message)\n );\n }\n return transaction;\n })\n .then((transaction) => {\n if (transaction.energy_used) {\n return {\n result: transaction.result,\n energy_required: transaction.energy_used,\n };\n }\n return transaction;\n });\n }\n\n _getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit,\n ) {\n const args = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(issuerAddress)\n };\n\n\n if (functionSelector && utils.isString(functionSelector)) {\n functionSelector = functionSelector.replace('/\\s*/g', '');\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 {type, value} = parameters[i];\n\n if (!type || !utils.isString(type) || !type.length)\n throw new Error('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value) => {\n if (utils.isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type.startsWith('address')) value = replaceAddressPrefix(value);\n\n types.push(type);\n values.push(value);\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 parameters = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } else parameters = '';\n\n // work for abiv2 if passed the function abi in options\n if (options.funcABIV2) {\n parameters = encodeParamsV2ByABI(options.funcABIV2, options.parametersV2).replace(/^(0x)/, '');\n }\n\n if (options.shieldedParameter && utils.isString(options.shieldedParameter)) {\n parameters = options.shieldedParameter.replace(/^(0x)/, '');\n }\n\n if (options.rawParameter && utils.isString(options.rawParameter)) {\n parameters = options.rawParameter.replace(/^(0x)/, '');\n }\n\n args.function_selector = functionSelector;\n args.parameter = parameters;\n } else if (options.input) {\n args.data = options.input;\n }\n\n args.call_value = parseInt(callValue)\n if (utils.isNotNullOrUndefined(tokenValue))\n args.call_token_value = parseInt(tokenValue)\n if (utils.isNotNullOrUndefined(tokenId))\n args.token_id = parseInt(tokenId)\n\n if (!(options._isConstant || options.estimateEnergy)) {\n args.fee_limit = parseInt(feeLimit)\n }\n\n if (options.permissionId) {\n args.Permission_id = options.permissionId;\n }\n\n return args;\n }\n\n _triggerSmartContractLocal(\n contractAddress,\n functionSelector,\n options = {},\n parameters = [],\n issuerAddress = this.tronWeb.defaultAddress.hex,\n callback = false\n ) {\n\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(parameters)) {\n callback = parameters;\n parameters = [];\n }\n\n if (!callback) {\n return this.injectPromise(\n this._triggerSmartContractLocal,\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress\n );\n }\n\n let {\n tokenValue,\n tokenId,\n callValue,\n feeLimit,\n } = Object.assign({\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit\n }, options)\n\n if (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 ], callback))\n return;\n\n let args;\n try {\n args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n } catch (err) {\n return callback(err);\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 = {\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\n const transactionOptions = getTransactionOptions(options);\n createTransaction(\n this.tronWeb,\n 'TriggerSmartContract', \n value,\n options.permissionId,\n {\n ...transactionOptions,\n fee_limit: args.fee_limit,\n }\n ).then(transaction => {\n callback(null, {\n result: {\n result: true,\n },\n transaction,\n });\n }).catch(err => callback(err));\n }\n\n _triggerSmartContract(\n contractAddress,\n functionSelector,\n options = {},\n parameters = [],\n issuerAddress = this.tronWeb.defaultAddress.hex,\n callback = false\n ) {\n\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (utils.isFunction(parameters)) {\n callback = parameters;\n parameters = [];\n }\n\n if (!callback) {\n return this.injectPromise(\n this._triggerSmartContract,\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress\n );\n }\n\n let {\n tokenValue,\n tokenId,\n callValue,\n feeLimit,\n } = Object.assign({\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit\n }, options)\n\n if (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 ], callback))\n return;\n\n let args;\n try {\n args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n } catch (err) {\n return callback(err);\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 this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(pathInfo, args, 'post').then(transaction => resultManagerTriggerSmartContract(transaction, args, options, callback)).catch(err => callback(err));\n }\n\n clearABI(contractAddress, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) { \n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n \n if (!callback)\n return this.injectPromise(this.clearABI, contractAddress, ownerAddress, options);\n\n if (!this.tronWeb.isAddress(contractAddress))\n return callback('Invalid contract address provided');\n\n if (!this.tronWeb.isAddress(ownerAddress))\n return callback('Invalid owner address provided');\n\n const data = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(ownerAddress)\n };\n\n if (this.tronWeb.trx.cache.contracts[contractAddress]) {\n delete this.tronWeb.trx.cache.contracts[contractAddress]\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ClearABIContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n\n }\n\n updateBrokerage(brokerage, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.updateBrokerage, brokerage, ownerAddress, options);\n\n if (!utils.isNotNullOrUndefined(brokerage))\n return callback('Invalid brokerage provided');\n\n if (!utils.isInteger(brokerage) || brokerage < 0 || brokerage > 100)\n return callback('Brokerage must be an integer between 0 and 100');\n\n if (!this.tronWeb.isAddress(ownerAddress))\n return callback('Invalid owner address provided');\n\n const data = {\n brokerage: parseInt(brokerage),\n owner_address: toHex(ownerAddress)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UpdateBrokerageContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n createToken(options = {}, issuerAddress = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.createToken, options, issuerAddress);\n\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 if (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 ], callback))\n return;\n\n if (utils.isNotNullOrUndefined(voteScore) && (!utils.isInteger(voteScore) || voteScore <= 0))\n return callback('voteScore must be a positive integer greater than 0');\n\n if (utils.isNotNullOrUndefined(precision) && (!utils.isInteger(precision) || precision < 0 || precision > 6))\n return callback('precision must be a positive integer >= 0 and <= 6');\n\n const data = {\n owner_address: toHex(issuerAddress),\n name: fromUtf8(name),\n abbr: fromUtf8(abbreviation),\n description: fromUtf8(description),\n url: fromUtf8(url),\n total_supply: parseInt(totalSupply),\n trx_num: parseInt(trxRatio),\n num: parseInt(tokenRatio),\n start_time: parseInt(saleStart),\n end_time: parseInt(saleEnd),\n frozen_supply: [{\n frozen_amount: parseInt(frozenAmount),\n frozen_days: parseInt(frozenDuration)\n }]\n };\n ['name', 'abbr', 'description', 'url'].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\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'AssetIssueContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n createAccount(accountAddress, address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback) {\n return this.injectPromise(this.createAccount, accountAddress, address, options);\n }\n\n if (this.validator.notValid([\n {\n name: 'account',\n type: 'address',\n value: accountAddress\n },\n {\n name: 'origin',\n type: 'address',\n value: address\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(address),\n account_address: toHex(accountAddress),\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'AccountCreateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n updateAccount(accountName = false, address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback) {\n return this.injectPromise(this.updateAccount, accountName, address, options);\n }\n\n if (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\n }\n ], callback))\n return;\n\n const data = {\n account_name: fromUtf8(accountName),\n owner_address: toHex(address),\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'AccountUpdateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n setAccountId(accountId, address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback) {\n return this.injectPromise(this.setAccountId, accountId, address, options);\n }\n\n if (accountId && utils.isString(accountId) && accountId.startsWith('0x')) {\n accountId = accountId.slice(2);\n }\n\n if (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\n }\n ], callback))\n return;\n\n const data = {\n account_id: accountId,\n owner_address: toHex(address),\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'SetAccountIdContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n updateToken(options = {}, issuerAddress = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(issuerAddress)) {\n options = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.updateToken, options, issuerAddress);\n\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\n if (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\n },\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(issuerAddress),\n description: fromUtf8(description),\n url: fromUtf8(url),\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 createTransaction(this.tronWeb, 'UpdateAssetContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n sendAsset(...args) {\n return this.sendToken(...args);\n }\n\n purchaseAsset(...args) {\n return this.purchaseToken(...args);\n }\n\n createAsset(...args) {\n return this.createToken(...args);\n }\n\n updateAsset(...args) {\n return this.updateToken(...args);\n }\n\n /**\n * Creates a proposal to modify the network.\n * Can only be created by a current Super Representative.\n */\n createProposal(parameters = false, issuerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(issuerAddress)) {\n options = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.createProposal, parameters, issuerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress\n }\n ], callback))\n return;\n\n const invalid = 'Invalid proposal parameters provided';\n\n if (!parameters)\n return callback(invalid);\n\n if (!utils.isArray(parameters))\n parameters = [parameters];\n\n for (let parameter of parameters) {\n if (!utils.isObject(parameter))\n return callback(invalid);\n }\n\n const data = {\n owner_address: toHex(issuerAddress),\n parameters: parameters\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ProposalCreateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 deleteProposal(proposalID = false, issuerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(issuerAddress)) {\n callback = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(issuerAddress)) {\n options = issuerAddress;\n issuerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.deleteProposal, proposalID, issuerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress\n },\n {\n name: 'proposalID',\n type: 'integer',\n value: proposalID,\n gte: 0\n }\n ], callback))\n return;\n\n const data = {\n owner_address: toHex(issuerAddress),\n proposal_id: parseInt(proposalID)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ProposalDeleteContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 voteProposal(proposalID = false, isApproval = false, voterAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(voterAddress)) {\n callback = voterAddress;\n voterAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(voterAddress)) {\n options = voterAddress;\n voterAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.voteProposal, proposalID, isApproval, voterAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(voterAddress),\n proposal_id: parseInt(proposalID),\n is_add_approval: isApproval\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ProposalApproveContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 createTRXExchange(tokenName, tokenBalance, trxBalance, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.createTRXExchange, tokenName, tokenBalance, trxBalance, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\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 createTransaction(this.tronWeb, 'ExchangeCreateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 createTokenExchange(firstTokenName, firstTokenBalance, secondTokenName, secondTokenBalance, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.createTokenExchange, firstTokenName, firstTokenBalance, secondTokenName, secondTokenBalance, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\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 createTransaction(this.tronWeb, 'ExchangeCreateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 injectExchangeTokens(exchangeID = false, tokenName = false, tokenAmount = 0, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.injectExchangeTokens, exchangeID, tokenName, tokenAmount, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ExchangeInjectContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 withdrawExchangeTokens(exchangeID = false, tokenName = false, tokenAmount = 0, ownerAddress = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.withdrawExchangeTokens, exchangeID, tokenName, tokenAmount, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ExchangeWithdrawContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\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 tradeExchangeTokens(exchangeID = false,\n tokenName = false,\n tokenAmountSold = 0,\n tokenAmountExpected = 0,\n ownerAddress = this.tronWeb.defaultAddress.hex,\n options,\n callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.tradeExchangeTokens, exchangeID, tokenName, tokenAmountSold, tokenAmountExpected, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\n exchange_id: parseInt(exchangeID),\n token_id: this.tronWeb.fromAscii(tokenName).replace(/^0x/, ''),\n quant: parseInt(tokenAmountSold),\n expected: parseInt(tokenAmountExpected)\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'ExchangeTransactionContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n /**\n * Update userFeePercentage.\n */\n updateSetting(contractAddress = false,\n userFeePercentage = false,\n ownerAddress = this.tronWeb.defaultAddress.hex,\n options,\n callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.updateSetting, contractAddress, userFeePercentage, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\n contract_address: toHex(contractAddress),\n consume_user_resource_percent: userFeePercentage\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UpdateSettingContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n /**\n * Update energy limit.\n */\n updateEnergyLimit(contractAddress = false,\n originEnergyLimit = false,\n ownerAddress = this.tronWeb.defaultAddress.hex,\n options,\n callback = false) {\n\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(ownerAddress)) {\n callback = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(ownerAddress)) {\n options = ownerAddress;\n ownerAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.updateEnergyLimit, contractAddress, originEnergyLimit, ownerAddress, options);\n\n if (this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress\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 ], callback))\n return;\n\n const data = {\n owner_address: toHex(ownerAddress),\n contract_address: toHex(contractAddress),\n origin_energy_limit: originEnergyLimit\n };\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'UpdateEnergyLimitContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n checkPermissions(permissions, type) {\n if (permissions) {\n if (permissions.type !== type\n || !permissions.permission_name\n || !utils.isString(permissions.permission_name)\n || !utils.isInteger(permissions.threshold)\n || permissions.threshold < 1\n || !permissions.keys\n ) {\n return false\n }\n for (let key of permissions.keys) {\n if (!this.tronWeb.isAddress(key.address)\n || !utils.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 updateAccountPermissions(\n ownerAddress = this.tronWeb.defaultAddress.hex,\n ownerPermissions = false,\n witnessPermissions = false,\n activesPermissions = false,\n options,\n callback = false\n ) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(activesPermissions)) {\n callback = activesPermissions;\n activesPermissions = false;\n }\n\n if (utils.isFunction(witnessPermissions)) {\n callback = witnessPermissions;\n witnessPermissions = activesPermissions = false;\n }\n\n if (utils.isFunction(ownerPermissions)) {\n callback = ownerPermissions;\n ownerPermissions = witnessPermissions = activesPermissions = false;\n }\n\n if (!callback)\n return this.injectPromise(this.updateAccountPermissions, ownerAddress, ownerPermissions, witnessPermissions, activesPermissions, options);\n\n if (!this.tronWeb.isAddress(ownerAddress))\n return callback('Invalid ownerAddress provided');\n\n if (!this.checkPermissions(ownerPermissions, 0)) {\n return callback('Invalid ownerPermissions provided');\n }\n\n if (!this.checkPermissions(witnessPermissions, 1)) {\n return callback('Invalid witnessPermissions provided');\n }\n\n if (!Array.isArray(activesPermissions)) {\n activesPermissions = [activesPermissions]\n }\n\n for (let activesPermission of activesPermissions) {\n if (!this.checkPermissions(activesPermission, 2)) {\n return callback('Invalid activesPermissions provided');\n }\n }\n\n const data = {\n owner_address: toHex(ownerAddress)\n }\n if (ownerPermissions) {\n const _ownerPermissions = deepCopyJson(ownerPermissions);\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 data.owner = _ownerPermissions;\n }\n if (witnessPermissions) {\n const _witnessPermissions = deepCopyJson(witnessPermissions);\n // for compatible with old way of building transaction from chain which type prop is Witness\n _witnessPermissions.type = 'Witness';\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) => {\n activePermissions.type = 'Active';\n });\n data.actives = _activesPermissions;\n }\n\n const transactionOptions = getTransactionOptions(options);\n createTransaction(this.tronWeb, 'AccountPermissionUpdateContract', data, options?.permissionId, transactionOptions)\n .then(transaction => callback(null, transaction))\n .catch(err => callback(err));\n }\n\n async newTxID(transaction, options, callback) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.newTxID, transaction, options);\n\n if (options?.txLocal) {\n const contract = transaction.raw_data.contract[0];\n createTransaction(this.tronWeb, contract.type, contract.parameter.value, contract.Permission_id, {\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 }).then((tx) => {\n tx.signature = transaction.signature;\n tx.visible = transaction.visible;\n callback(null, tx);\n }).catch((err) => callback('Error generating a new transaction id.'));\n return;\n }\n \n this.tronWeb.fullNode\n .request(\n 'wallet/getsignweight',\n transaction,\n 'post'\n )\n .then(newTransaction => {\n if (typeof transaction.visible === 'boolean') {\n newTransaction.transaction.transaction.visible = transaction.visible\n }\n return resultManager(\n newTransaction.transaction.transaction,\n {\n ...transaction.raw_data.contract[0].parameter.value,\n Permission_id: transaction.raw_data.contract[0].Permission_id,\n },\n { data: transaction.raw_data.data, fee_limit: transaction.raw_data.fee_limit },\n callback\n );\n })\n .catch(err => callback('Error generating a new transaction id.'));\n }\n\n async alterTransaction(transaction, options = {}, callback = false) {\n if (!callback)\n return this.injectPromise(this.alterTransaction, transaction, options);\n\n if (transaction.signature)\n return callback('You can not extend the expiration of a signed transaction.')\n\n if (options.data) {\n if (options.dataFormat !== 'hex')\n options.data = this.tronWeb.toHex(options.data);\n options.data = options.data.replace(/^0x/, '')\n if (options.data.length === 0)\n return callback('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 return callback('Invalid extension provided');\n transaction.raw_data.expiration += options.extension;\n }\n\n this.newTxID(transaction, { txLocal: options.txLocal }, callback)\n }\n\n async extendExpiration(transaction, extension, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.extendExpiration, transaction, extension, options);\n\n this.alterTransaction(transaction, {extension, txLocal: options?.txLocal}, callback);\n }\n\n async addUpdateData(transaction, data, dataFormat = 'utf8', options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(dataFormat)) {\n callback = dataFormat;\n dataFormat = 'utf8';\n } else if (utils.isObject(dataFormat)) {\n options = dataFormat;\n dataFormat = 'utf8';\n }\n\n if (!callback)\n return this.injectPromise(this.addUpdateData, transaction, data, dataFormat, options);\n\n this.alterTransaction(transaction, {data, dataFormat, txLocal: options?.txLocal}, callback);\n }\n\n}\n","import TronWeb from 'index';\nimport utils from 'utils';\nimport { keccak256, toUtf8Bytes, recoverAddress, SigningKey, Signature } from 'utils/ethersUtils';\nimport { ADDRESS_PREFIX } from 'utils/address';\nimport Validator from \"../paramValidator\";\nimport injectpromise from 'injectpromise';\nimport { txCheck } from '../utils/transaction';\nimport { ecRecover } from '../utils/crypto';\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) {\n return TronWeb.address.toHex(value);\n}\n\nexport default class Trx {\n constructor(tronWeb = false) {\n if (!tronWeb || !tronWeb instanceof TronWeb)\n throw new Error('Expected instance of TronWeb');\n\n this.tronWeb = tronWeb;\n this.injectPromise = injectpromise(this);\n this.cache = {\n contracts: {}\n }\n this.validator = new Validator(tronWeb);\n }\n\n _parseToken(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(callback = false) {\n if (!callback)\n return this.injectPromise(this.getCurrentBlock);\n this.tronWeb.fullNode.request('wallet/getnowblock').then(block => {\n callback(null, block);\n }).catch(err => callback(err));\n }\n\n getConfirmedCurrentBlock(callback = false) {\n if (!callback)\n return this.injectPromise(this.getConfirmedCurrentBlock);\n\n this.tronWeb.solidityNode.request('walletsolidity/getnowblock').then(block => {\n callback(null, block);\n }).catch(err => callback(err));\n }\n\n getBlock(block = this.tronWeb.defaultBlock, callback = false) {\n if (utils.isFunction(block)) {\n callback = block;\n block = this.tronWeb.defaultBlock;\n }\n\n if (!callback)\n return this.injectPromise(this.getBlock, block);\n\n if (block === false)\n return callback('No block identifier provided');\n\n if (block == 'earliest')\n block = 0;\n\n if (block == 'latest')\n return this.getCurrentBlock(callback);\n\n if (isNaN(block) && utils.isHex(block))\n return this.getBlockByHash(block, callback);\n\n this.getBlockByNumber(block, callback);\n }\n\n getBlockByHash(blockHash, callback = false) {\n if (!callback)\n return this.injectPromise(this.getBlockByHash, blockHash);\n\n this.tronWeb.fullNode.request('wallet/getblockbyid', {\n value: blockHash\n }, 'post').then(block => {\n if (!Object.keys(block).length)\n return callback('Block not found');\n\n callback(null, block);\n }).catch(err => callback(err));\n }\n\n getBlockByNumber(blockID, callback = false) {\n if (!callback)\n return this.injectPromise(this.getBlockByNumber, blockID);\n\n if (!utils.isInteger(blockID) || blockID < 0)\n return callback('Invalid block number provided');\n\n this.tronWeb.fullNode.request('wallet/getblockbynum', {\n num: parseInt(blockID)\n }, 'post').then(block => {\n if (!Object.keys(block).length)\n return callback('Block not found');\n\n callback(null, block);\n }).catch(err => callback(err));\n }\n\n getBlockTransactionCount(block = this.tronWeb.defaultBlock, callback = false) {\n if (utils.isFunction(block)) {\n callback = block;\n block = this.tronWeb.defaultBlock;\n }\n\n if (!callback)\n return this.injectPromise(this.getBlockTransactionCount, block);\n\n this.getBlock(block).then(({transactions = []}) => {\n callback(null, transactions.length);\n }).catch(err => callback(err));\n }\n\n getTransactionFromBlock(block = this.tronWeb.defaultBlock, index, callback = false) {\n if (utils.isFunction(index)) {\n callback = index;\n index = 0;\n }\n\n if (utils.isFunction(block)) {\n callback = block;\n block = this.tronWeb.defaultBlock;\n }\n\n if (!callback)\n return this.injectPromise(this.getTransactionFromBlock, block, index);\n\n this.getBlock(block).then(({transactions = false}) => {\n if (!transactions)\n callback('Transaction not found in block');\n else if (typeof index == 'number') {\n if (index >= 0 && index < transactions.length)\n callback(null, transactions[index]);\n else\n callback('Invalid transaction index provided');\n } else\n callback(null, transactions);\n }).catch(err => callback(err));\n }\n\n getTransaction(transactionID, callback = false) {\n if (!callback)\n return this.injectPromise(this.getTransaction, transactionID);\n\n this.tronWeb.fullNode.request('wallet/gettransactionbyid', {\n value: transactionID\n }, 'post').then(transaction => {\n if (!Object.keys(transaction).length)\n return callback('Transaction not found');\n\n callback(null, transaction);\n }).catch(err => callback(err));\n }\n\n getConfirmedTransaction(transactionID, callback = false) {\n if (!callback)\n return this.injectPromise(this.getConfirmedTransaction, transactionID);\n\n this.tronWeb.solidityNode.request('walletsolidity/gettransactionbyid', {\n value: transactionID\n }, 'post').then(transaction => {\n if (!Object.keys(transaction).length)\n return callback('Transaction not found');\n\n callback(null, transaction);\n }).catch(err => callback(err));\n }\n\n getUnconfirmedTransactionInfo(transactionID, callback = false) {\n return this._getTransactionInfoById(transactionID, {confirmed: false}, callback)\n }\n\n getTransactionInfo(transactionID, callback = false) {\n return this._getTransactionInfoById(transactionID, {confirmed: true}, callback)\n }\n\n _getTransactionInfoById(transactionID, options, callback = false) {\n if (!callback)\n return this.injectPromise(this._getTransactionInfoById, transactionID, options);\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/gettransactioninfobyid`, {\n value: transactionID\n }, 'post').then(transaction => {\n callback(null, transaction);\n }).catch(err => callback(err));\n }\n\n getTransactionsToAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0, callback = false) {\n if (utils.isFunction(offset)) {\n callback = offset;\n offset = 0;\n }\n\n if (utils.isFunction(limit)) {\n callback = limit;\n limit = 30;\n }\n\n if (!callback)\n return this.injectPromise(this.getTransactionsToAddress, address, limit, offset);\n\n address = this.tronWeb.address.toHex(address);\n\n return this.getTransactionsRelated(address, 'to', limit, offset, callback);\n }\n\n getTransactionsFromAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0, callback = false) {\n if (utils.isFunction(offset)) {\n callback = offset;\n offset = 0;\n }\n\n if (utils.isFunction(limit)) {\n callback = limit;\n limit = 30;\n }\n\n if (!callback)\n return this.injectPromise(this.getTransactionsFromAddress, address, limit, offset);\n\n address = this.tronWeb.address.toHex(address);\n\n return this.getTransactionsRelated(address, 'from', limit, offset, callback);\n }\n\n async getTransactionsRelated(address = this.tronWeb.defaultAddress.hex, direction = 'all', limit = 30, offset = 0, callback = false) {\n if (utils.isFunction(offset)) {\n callback = offset;\n offset = 0;\n }\n\n if (utils.isFunction(limit)) {\n callback = limit;\n limit = 30;\n }\n\n if (utils.isFunction(direction)) {\n callback = direction;\n direction = 'all';\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getTransactionsRelated, address, direction, limit, offset);\n\n if (!['to', 'from', 'all'].includes(direction))\n return callback('Invalid direction provided: Expected \"to\", \"from\" or \"all\"');\n\n if (direction == 'all') {\n try {\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 callback(null, [\n ...from.map(tx => (tx.direction = 'from', tx)),\n ...to.map(tx => (tx.direction = 'to', tx))\n ].sort((a, b) => {\n return b.raw_data.timestamp - a.raw_data.timestamp\n }));\n } catch (ex) {\n return callback(ex);\n }\n }\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1))\n return callback('Invalid limit provided');\n\n if (!utils.isInteger(offset) || offset < 0)\n return callback('Invalid offset provided');\n\n address = this.tronWeb.address.toHex(address);\n\n this.tronWeb.solidityNode.request(`walletextension/gettransactions${direction}this`, {\n account: {\n address\n },\n offset,\n limit\n }, 'post').then(({transaction}) => {\n callback(null, transaction);\n }).catch(err => callback(err));\n }\n\n getAccount(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getAccount, address);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n address = this.tronWeb.address.toHex(address);\n\n this.tronWeb.solidityNode.request('walletsolidity/getaccount', {\n address\n }, 'post').then(account => {\n callback(null, account);\n }).catch(err => callback(err));\n }\n\n getAccountById(id = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getAccountById, id);\n\n this.getAccountInfoById(id, {confirmed: true}, callback);\n }\n\n getAccountInfoById(id, options, callback) {\n if (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 ], callback))\n return;\n\n if (id.startsWith('0x')) {\n id = id.slice(2);\n }\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getaccountbyid`, {\n account_id: id\n }, 'post').then(account => {\n callback(null, account);\n }).catch(err => callback(err));\n }\n\n getBalance(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getBalance, address);\n\n this.getAccount(address).then(({balance = 0}) => {\n callback(null, balance);\n }).catch(err => callback(err));\n }\n\n getUnconfirmedAccount(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getUnconfirmedAccount, address);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n address = this.tronWeb.address.toHex(address);\n\n this.tronWeb.fullNode.request('wallet/getaccount', {\n address\n }, 'post').then(account => {\n callback(null, account);\n }).catch(err => callback(err));\n }\n\n getUnconfirmedAccountById(id, callback = false) {\n if (!callback)\n return this.injectPromise(this.getUnconfirmedAccountById, id);\n\n this.getAccountInfoById(id, {confirmed: false}, callback);\n }\n\n getUnconfirmedBalance(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getUnconfirmedBalance, address);\n\n this.getUnconfirmedAccount(address).then(({balance = 0}) => {\n callback(null, balance);\n }).catch(err => callback(err));\n }\n\n getBandwidth(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getBandwidth, address);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n address = this.tronWeb.address.toHex(address);\n\n this.tronWeb.fullNode.request('wallet/getaccountnet', {\n address\n }, 'post').then(({freeNetUsed = 0, freeNetLimit = 0, NetUsed = 0, NetLimit = 0}) => {\n callback(null, (freeNetLimit - freeNetUsed) + (NetLimit - NetUsed));\n }).catch(err => callback(err));\n }\n\n getTokensIssuedByAddress(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getTokensIssuedByAddress, address);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n address = this.tronWeb.address.toHex(address);\n\n this.tronWeb.fullNode.request('wallet/getassetissuebyaccount', {\n address\n }, 'post').then(({assetIssue = false}) => {\n if (!assetIssue)\n return callback(null, {});\n\n const tokens = assetIssue.map(token => {\n return this._parseToken(token);\n }).reduce((tokens, token) => {\n return tokens[token.name] = token, tokens;\n }, {});\n\n callback(null, tokens);\n }).catch(err => callback(err));\n }\n\n getTokenFromID(tokenID = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getTokenFromID, tokenID);\n\n if (utils.isInteger(tokenID))\n tokenID = tokenID.toString()\n\n if (!utils.isString(tokenID) || !tokenID.length)\n return callback('Invalid token ID provided');\n\n this.tronWeb.fullNode.request('wallet/getassetissuebyname', {\n value: this.tronWeb.fromUtf8(tokenID)\n }, 'post').then(token => {\n if (!token.name)\n return callback('Token does not exist');\n\n callback(null, this._parseToken(token));\n }).catch(err => callback(err));\n }\n\n listNodes(callback = false) {\n if (!callback)\n return this.injectPromise(this.listNodes);\n\n this.tronWeb.fullNode.request('wallet/listnodes').then(({nodes = []}) => {\n callback(null, nodes.map(({address: {host, port}}) => (\n `${this.tronWeb.toUtf8(host)}:${port}`\n )));\n }).catch(err => callback(err));\n }\n\n getBlockRange(start = 0, end = 30, callback = false) {\n if (utils.isFunction(end)) {\n callback = end;\n end = 30;\n }\n\n if (utils.isFunction(start)) {\n callback = start;\n start = 0;\n }\n\n if (!callback)\n return this.injectPromise(this.getBlockRange, start, end);\n\n if (!utils.isInteger(start) || start < 0)\n return callback('Invalid start of range provided');\n\n if (!utils.isInteger(end) || end < start)\n return callback('Invalid end of range provided');\n\n if (end + 1 - start > 100)\n return callback('Invalid range size, which should be no more than 100.');\n\n this.tronWeb.fullNode.request('wallet/getblockbylimitnext', {\n startNum: parseInt(start),\n endNum: parseInt(end) + 1\n }, 'post').then(({block = []}) => {\n callback(null, block);\n }).catch(err => callback(err));\n }\n\n listSuperRepresentatives(callback = false) {\n if (!callback)\n return this.injectPromise(this.listSuperRepresentatives);\n\n this.tronWeb.fullNode.request('wallet/listwitnesses').then(({witnesses = []}) => {\n callback(null, witnesses);\n }).catch(err => callback(err));\n }\n\n listTokens(limit = 0, offset = 0, callback = false) {\n if (utils.isFunction(offset)) {\n callback = offset;\n offset = 0;\n }\n\n if (utils.isFunction(limit)) {\n callback = limit;\n limit = 0;\n }\n\n if (!callback)\n return this.injectPromise(this.listTokens, limit, offset);\n\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1))\n return callback('Invalid limit provided');\n\n if (!utils.isInteger(offset) || offset < 0)\n return callback('Invalid offset provided');\n\n if (!limit) {\n return this.tronWeb.fullNode.request('wallet/getassetissuelist').then(({assetIssue = []}) => {\n callback(null, assetIssue.map(token => this._parseToken(token)));\n }).catch(err => callback(err));\n }\n\n this.tronWeb.fullNode.request('wallet/getpaginatedassetissuelist', {\n offset: parseInt(offset),\n limit: parseInt(limit)\n }, 'post').then(({assetIssue = []}) => {\n callback(null, assetIssue.map(token => this._parseToken(token)));\n }).catch(err => callback(err));\n }\n\n timeUntilNextVoteCycle(callback = false) {\n if (!callback)\n return this.injectPromise(this.timeUntilNextVoteCycle);\n\n this.tronWeb.fullNode.request('wallet/getnextmaintenancetime').then(({num = -1}) => {\n if (num == -1)\n return callback('Failed to get time until next vote cycle');\n\n callback(null, Math.floor(num / 1000));\n }).catch(err => callback(err));\n }\n\n getContract(contractAddress, callback = false) {\n if (!callback)\n return this.injectPromise(this.getContract, contractAddress);\n\n if (!this.tronWeb.isAddress(contractAddress))\n return callback('Invalid contract address provided');\n\n if (this.cache.contracts[contractAddress]) {\n callback(null, this.cache.contracts[contractAddress]);\n return;\n }\n\n contractAddress = this.tronWeb.address.toHex(contractAddress);\n\n this.tronWeb.fullNode.request('wallet/getcontract', {\n value: contractAddress\n }).then(contract => {\n if (contract.Error)\n return callback('Contract does not exist');\n this.cache.contracts[contractAddress] = contract;\n callback(null, contract);\n }).catch(err => callback(err));\n }\n\n ecRecover(transaction) {\n return Trx.ecRecover(transaction);\n }\n\n static ecRecover(transaction) {\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 = false, signature = false, address = this.tronWeb.defaultAddress.base58, useTronHeader = true, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.base58;\n useTronHeader = true;\n }\n\n if (utils.isFunction(useTronHeader)) {\n callback = useTronHeader;\n useTronHeader = true;\n }\n\n if (!callback)\n return this.injectPromise(this.verifyMessage, message, signature, address, useTronHeader);\n\n if (!utils.isHex(message))\n return callback('Expected hex message input');\n\n if (Trx.verifySignature(message, address, signature, useTronHeader))\n return callback(null, true);\n\n callback('Signature does not match');\n }\n\n static verifySignature(message, address, signature, 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 verifyMessageV2(message = false, signature = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.verifyMessageV2, message, signature, options);\n\n try {\n const base58Address = Trx.verifyMessageV2(message, signature);\n callback(null, base58Address);\n } catch(ex) {\n callback(ex);\n }\n }\n\n static verifyMessageV2(message, signature) {\n return utils.message.verifyMessage(message, signature);\n }\n \n verifyTypedData(domain, types, value, signature, address = this.tronWeb.defaultAddress.base58, callback = false) {\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.base58;\n }\n\n if (!callback)\n return this.injectPromise(this.verifyTypedData, domain, types, value, signature, address);\n\n if (Trx.verifyTypedData(domain, types, value, signature, address))\n return callback(null, true);\n\n callback('Signature does not match');\n }\n\n static verifyTypedData(domain, types, value, signature, address) {\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(transaction = false, privateKey = this.tronWeb.defaultPrivateKey, useTronHeader = true, multisig = false, callback = false) {\n\n if (utils.isFunction(multisig)) {\n callback = multisig;\n multisig = false;\n }\n\n if (utils.isFunction(useTronHeader)) {\n callback = useTronHeader;\n useTronHeader = true;\n multisig = false;\n }\n\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n useTronHeader = true;\n multisig = false;\n }\n\n\n if (!callback)\n return this.injectPromise(this.sign, transaction, privateKey, useTronHeader, multisig);\n\n // Message signing\n if (utils.isString(transaction)) {\n\n if (!utils.isHex(transaction))\n return callback('Expected hex message input');\n\n try {\n const signatureHex = Trx.signString(transaction, privateKey, useTronHeader)\n return callback(null, signatureHex);\n } catch (ex) {\n callback(ex);\n }\n }\n\n if (!utils.isObject(transaction))\n return callback('Invalid transaction provided');\n\n if (!multisig && transaction.signature)\n return callback('Transaction is already signed');\n\n try {\n if (!multisig) {\n const address = this.tronWeb.address.toHex(\n this.tronWeb.address.fromPrivateKey(privateKey)\n ).toLowerCase();\n\n if (address !== this.tronWeb.address.toHex(transaction.raw_data.contract[0].parameter.value.owner_address))\n return callback('Private key does not match address in transaction');\n\n if (!txCheck(transaction)) {\n return callback('Invalid transaction');\n }\n }\n return callback(null,\n utils.crypto.signTransaction(privateKey, transaction)\n );\n } catch (ex) {\n callback(ex);\n }\n }\n\n static signString(message, privateKey, 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 = [\n '0x',\n signature.r.substring(2),\n signature.s.substring(2),\n Number(signature.v).toString(16)\n ].join('');\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 * @param {callback function} callback\n */\n signMessageV2(message, privateKey = this.tronWeb.defaultPrivateKey, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n \n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n }\n\n if (!callback)\n return this.injectPromise(this.signMessageV2, message, privateKey);\n\n try {\n const signatureHex = Trx.signMessageV2(message, privateKey);\n return callback(null, signatureHex);\n } catch (ex) {\n callback(ex);\n }\n }\n\n static signMessageV2(message, privateKey) {\n return utils.message.signMessage(message, privateKey);\n }\n\n _signTypedData(domain, types, value, privateKey = this.tronWeb.defaultPrivateKey, callback = false) {\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n }\n\n if (!callback)\n return this.injectPromise(this._signTypedData, domain, types, value, privateKey);\n\n try {\n const signatureHex = Trx._signTypedData(domain, types, value, privateKey);\n return callback(null, signatureHex);\n } catch (ex) {\n callback(ex);\n }\n }\n\n static _signTypedData(domain, types, value, privateKey) {\n return utils.crypto._signTypedData(domain, types, value, privateKey);\n }\n\n async multiSign(transaction = false, privateKey = this.tronWeb.defaultPrivateKey, permissionId = false, callback = false) {\n\n if (utils.isFunction(permissionId)) {\n callback = permissionId;\n permissionId = 0;\n }\n\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n permissionId = 0;\n }\n\n if (!callback)\n return this.injectPromise(this.multiSign, transaction, privateKey, permissionId);\n\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract)\n return callback('Invalid transaction provided');\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.toHex(this.tronWeb.address.fromPrivateKey(privateKey)).toLowerCase();\n const signWeight = await this.getSignWeight(transaction, permissionId);\n\n if (signWeight.result.code === 'PERMISSION_ERROR') {\n return callback(signWeight.result.message);\n }\n\n let foundKey = false;\n signWeight.permission.keys.map(key => {\n if (key.address === address)\n foundKey = true;\n });\n\n if (!foundKey)\n return callback(privateKey + ' has no permission to sign');\n\n if (signWeight.approved_list && signWeight.approved_list.indexOf(address) != -1) {\n return callback(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 return callback('Invalid transaction provided');\n }\n }\n\n // sign\n try {\n if (!txCheck(transaction)) {\n return callback('Invalid transaction');\n }\n return callback(null, utils.crypto.signTransaction(privateKey, transaction));\n } catch (ex) {\n callback(ex);\n }\n }\n\n async getApprovedList(transaction, callback = false) {\n if (!callback)\n return this.injectPromise(this.getApprovedList, transaction);\n\n if (!utils.isObject(transaction))\n return callback('Invalid transaction provided');\n\n\n this.tronWeb.fullNode.request(\n 'wallet/getapprovedlist',\n transaction,\n 'post'\n ).then(result => {\n callback(null, result);\n }).catch(err => callback(err));\n }\n\n async getSignWeight(transaction, permissionId, callback = false) {\n if (utils.isFunction(permissionId)) {\n callback = permissionId;\n permissionId = undefined;\n }\n\n if (!callback)\n return this.injectPromise(this.getSignWeight, transaction, permissionId);\n\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract)\n return callback('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 if (!utils.isObject(transaction))\n return callback('Invalid transaction provided');\n\n\n this.tronWeb.fullNode.request(\n 'wallet/getsignweight',\n transaction,\n 'post'\n ).then(result => {\n callback(null, result);\n }).catch(err => callback(err));\n }\n\n sendRawTransaction(signedTransaction = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.sendRawTransaction, signedTransaction, options);\n\n if (!utils.isObject(signedTransaction))\n return callback('Invalid transaction provided');\n\n if (!utils.isObject(options))\n return callback('Invalid options provided');\n\n if (!signedTransaction.signature || !utils.isArray(signedTransaction.signature))\n return callback('Transaction is not signed');\n\n this.tronWeb.fullNode.request(\n 'wallet/broadcasttransaction',\n signedTransaction,\n 'post'\n ).then(result => {\n if (result.result)\n result.transaction = signedTransaction;\n callback(null, result);\n }).catch(err => callback(err));\n }\n\n sendHexTransaction(signedHexTransaction = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.sendHexTransaction, signedHexTransaction, options);\n\n if (!utils.isHex(signedHexTransaction))\n return callback('Invalid hex transaction provided');\n\n if (!utils.isObject(options))\n return callback('Invalid options provided');\n\n const params = {\n transaction: signedHexTransaction\n }\n\n this.tronWeb.fullNode.request(\n 'wallet/broadcasthex',\n params,\n 'post'\n ).then(result => {\n if (result.result) {\n result.transaction = JSON.parse(result.transaction)\n result.hexTransaction = signedHexTransaction;\n }\n callback(null, result);\n }).catch(err => callback(err));\n }\n\n async sendTransaction(to = false, amount = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (typeof options === 'string')\n options = {privateKey: options};\n\n if (!callback)\n return this.injectPromise(this.sendTransaction, to, amount, options);\n\n if (!this.tronWeb.isAddress(to))\n return callback('Invalid recipient provided');\n\n if (!utils.isInteger(amount) || amount <= 0)\n return callback('Invalid amount provided');\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey,\n address: this.tronWeb.defaultAddress.hex,\n ...options\n };\n\n if (!options.privateKey && !options.address)\n return callback('Function requires either a private key or address to be set');\n\n try {\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const transaction = await this.tronWeb.transactionBuilder.sendTrx(to, amount, address);\n const signedTransaction = await this.sign(transaction, options.privateKey || undefined);\n const result = await this.sendRawTransaction(signedTransaction);\n\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async sendToken(to = false, amount = false, tokenID = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (typeof options === 'string')\n options = {privateKey: options};\n\n if (!callback)\n return this.injectPromise(this.sendToken, to, amount, tokenID, options);\n\n if (!this.tronWeb.isAddress(to))\n return callback('Invalid recipient provided');\n\n if (!utils.isInteger(amount) || amount <= 0)\n return callback('Invalid amount provided');\n\n if (utils.isInteger(tokenID))\n tokenID = tokenID.toString()\n\n if (!utils.isString(tokenID))\n return callback('Invalid token ID provided');\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey,\n address: this.tronWeb.defaultAddress.hex,\n ...options\n };\n\n if (!options.privateKey && !options.address)\n return callback('Function requires either a private key or address to be set');\n\n try {\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);\n const signedTransaction = await this.sign(transaction, options.privateKey || undefined);\n const result = await this.sendRawTransaction(signedTransaction);\n\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\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 * @param callback\n */\n async freezeBalance(amount = 0, duration = 3, resource = \"BANDWIDTH\", options = {}, receiverAddress = undefined, callback = false) {\n if (utils.isFunction(receiverAddress)) {\n callback = receiverAddress;\n receiverAddress = undefined;\n }\n if (utils.isFunction(duration)) {\n callback = duration;\n duration = 3;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = \"BANDWIDTH\";\n }\n\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (typeof options === 'string')\n options = {privateKey: options};\n\n if (!callback)\n return this.injectPromise(this.freezeBalance, amount, duration, resource, options, receiverAddress);\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource))\n return callback('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n\n if (!utils.isInteger(amount) || amount <= 0)\n return callback('Invalid amount provided');\n\n if (!utils.isInteger(duration) || duration < 3)\n return callback('Invalid duration provided, minimum of 3 days');\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey,\n address: this.tronWeb.defaultAddress.hex,\n ...options\n };\n\n if (!options.privateKey && !options.address)\n return callback('Function requires either a private key or address to be set');\n\n try {\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const freezeBalance = await this.tronWeb.transactionBuilder.freezeBalance(amount, duration, resource, address, receiverAddress);\n const signedTransaction = await this.sign(freezeBalance, options.privateKey || undefined);\n const result = await this.sendRawTransaction(signedTransaction);\n\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\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 * @param callback\n */\n async unfreezeBalance(resource = \"BANDWIDTH\", options = {}, receiverAddress = undefined, callback = false) {\n if (utils.isFunction(receiverAddress)) {\n callback = receiverAddress;\n receiverAddress = undefined;\n }\n\n if (utils.isFunction(resource)) {\n callback = resource;\n resource = 'BANDWIDTH';\n }\n\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (typeof options === 'string')\n options = {privateKey: options};\n\n if (!callback)\n return this.injectPromise(this.unfreezeBalance, resource, options, receiverAddress);\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource))\n return callback('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey,\n address: this.tronWeb.defaultAddress.hex,\n ...options\n };\n\n if (!options.privateKey && !options.address)\n return callback('Function requires either a private key or address to be set');\n\n try {\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const unfreezeBalance = await this.tronWeb.transactionBuilder.unfreezeBalance(resource, address, receiverAddress);\n const signedTransaction = await this.sign(unfreezeBalance, options.privateKey || undefined);\n const result = await this.sendRawTransaction(signedTransaction);\n\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\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 * @param callback\n *\n * @return modified Transaction Object\n */\n async updateAccount(accountName = false, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (typeof options === 'string')\n options = {privateKey: options};\n\n if (!callback) {\n return this.injectPromise(this.updateAccount, accountName, options);\n }\n\n if (!utils.isString(accountName) || !accountName.length) {\n return callback('Name must be a string');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey,\n address: this.tronWeb.defaultAddress.hex,\n ...options\n };\n\n if (!options.privateKey && !options.address)\n return callback('Function requires either a private key or address to be set');\n\n try {\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const updateAccount = await this.tronWeb.transactionBuilder.updateAccount(accountName, address);\n const signedTransaction = await this.sign(updateAccount, options.privateKey || undefined);\n const result = await this.sendRawTransaction(signedTransaction);\n\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n signMessage(...args) {\n return this.sign(...args);\n }\n\n sendAsset(...args) {\n return this.sendToken(...args);\n }\n\n send(...args) {\n return this.sendTransaction(...args);\n }\n\n sendTrx(...args) {\n return this.sendTransaction(...args);\n }\n\n broadcast(...args) {\n return this.sendRawTransaction(...args);\n }\n\n broadcastHex(...args) {\n return this.sendHexTransaction(...args);\n }\n\n signTransaction(...args) {\n return this.sign(...args);\n }\n\n /**\n * Gets a network modification proposal by ID.\n */\n getProposal(proposalID = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getProposal, proposalID);\n\n if (!utils.isInteger(proposalID) || proposalID < 0)\n return callback('Invalid proposalID provided');\n\n this.tronWeb.fullNode.request('wallet/getproposalbyid', {\n id: parseInt(proposalID),\n }, 'post').then(proposal => {\n callback(null, proposal);\n }).catch(err => callback(err));\n }\n\n /**\n * Lists all network modification proposals.\n */\n listProposals(callback = false) {\n if (!callback)\n return this.injectPromise(this.listProposals);\n\n this.tronWeb.fullNode.request('wallet/listproposals', {}, 'post').then(({proposals = []}) => {\n callback(null, proposals);\n }).catch(err => callback(err));\n }\n\n /**\n * Lists all parameters available for network modification proposals.\n */\n getChainParameters(callback = false) {\n if (!callback)\n return this.injectPromise(this.getChainParameters);\n\n this.tronWeb.fullNode.request('wallet/getchainparameters', {}, 'post').then(({chainParameter = []}) => {\n callback(null, chainParameter);\n }).catch(err => callback(err));\n }\n\n /**\n * Get the account resources\n */\n getAccountResources(address = this.tronWeb.defaultAddress.hex, callback = false) {\n if (!callback)\n return this.injectPromise(this.getAccountResources, address);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n this.tronWeb.fullNode.request('wallet/getaccountresource', {\n address: this.tronWeb.address.toHex(address),\n }, 'post').then(resources => {\n callback(null, resources);\n }).catch(err => callback(err));\n }\n\n /**\n * Query the amount of resources of a specific resourceType delegated by fromAddress to toAddress\n */\n getDelegatedResourceV2(fromAddress = this.tronWeb.defaultAddress.hex, toAddress = this.tronWeb.defaultAddress.hex, options = { confirmed: true }, callback = false) {\n if(utils.isFunction(options)) {\n callback = options;\n options = { confirmed: true };\n }\n\n if(utils.isFunction(toAddress)) {\n callback = toAddress;\n toAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if(utils.isFunction(fromAddress)) {\n callback = fromAddress;\n fromAddress = this.tronWeb.defaultAddress.hex;\n toAddress = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getDelegatedResourceV2, fromAddress, toAddress, options);\n\n if (!this.tronWeb.isAddress(fromAddress))\n return callback('Invalid address provided');\n\n if (!this.tronWeb.isAddress(toAddress))\n return callback('Invalid address provided');\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourcev2`, {\n fromAddress: toHex(fromAddress),\n toAddress: toHex(toAddress)\n }, 'post').then(resources => {\n callback(null, resources);\n }).catch(err => callback(err));\n }\n\n /**\n * Query the resource delegation index by an account\n */\n getDelegatedResourceAccountIndexV2(address = this.tronWeb.defaultAddress.hex, options = { confirmed: true }, callback = false) {\n if(utils.isFunction(options)) {\n callback = options;\n options = { confirmed: true };\n }\n \n if(utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex\n }\n\n if (!callback)\n return this.injectPromise(this.getDelegatedResourceAccountIndexV2, address, options);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourceaccountindexv2`, {\n value: toHex(address)\n }, 'post').then(resources => {\n callback(null, resources);\n }).catch(err => callback(err));\n }\n\n /**\n * Query the amount of delegatable resources of the specified resource Type for target address, unit is sun.\n */\n getCanDelegatedMaxSize(address = this.tronWeb.defaultAddress.hex, resource = 'BANDWIDTH', options = { confirmed: true }, callback = false) {\n if(utils.isFunction(options)) {\n callback = options;\n options = { confirmed: true };\n }\n \n if(utils.isFunction(resource)) {\n callback = resource;\n resource = 'BANDWIDTH';\n }\n\n if(utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n \n if (!callback)\n return this.injectPromise(this.getCanDelegatedMaxSize, address, resource, options);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n \n if (this.validator.notValid([\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"'\n }\n ], callback))\n return;\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getcandelegatedmaxsize`, {\n owner_address: toHex(address),\n type: resource === \"ENERGY\" ? 1 : 0\n }, 'post').then(resources => {\n callback(null, resources);\n }).catch(err => callback(err));\n }\n\n /**\n * Remaining times of available unstaking API\n */\n getAvailableUnfreezeCount(address = this.tronWeb.defaultAddress.hex, options = { confirmed: true }, callback = false) {\n if(utils.isFunction(options)) {\n callback = options;\n options = { confirmed: true };\n }\n\n if(utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getAvailableUnfreezeCount, address, options);\n \n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n \n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getavailableunfreezecount`, {\n owner_address: toHex(address),\n }, 'post').then(data => {\n callback(null, data);\n }).catch(err => callback(err));\n }\n\n /**\n * Query the withdrawable balance at the specified timestamp\n */\n getCanWithdrawUnfreezeAmount(address = this.tronWeb.defaultAddress.hex, timestamp = Date.now(), options = { confirmed: true }, callback = false) {\n if(utils.isFunction(options)) {\n callback = options;\n options = { confirmed: true };\n }\n\n if(utils.isFunction(timestamp)) {\n callback = timestamp;\n timestamp = Date.now();\n }\n\n if(utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this.getCanWithdrawUnfreezeAmount, address, timestamp, options);\n\n if (!this.tronWeb.isAddress(address))\n return callback('Invalid address provided');\n\n if (!utils.isInteger(timestamp) || timestamp < 0)\n return callback('Invalid timestamp provided');\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getcanwithdrawunfreezeamount`, {\n owner_address: toHex(address),\n timestamp: timestamp\n }, 'post').then(data => {\n callback(null, data);\n }).catch(err => callback(err));\n\n }\n\n /**\n * Get the exchange ID.\n */\n getExchangeByID(exchangeID = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getExchangeByID, exchangeID);\n\n if (!utils.isInteger(exchangeID) || exchangeID < 0)\n return callback('Invalid exchangeID provided');\n\n this.tronWeb.fullNode.request('wallet/getexchangebyid', {\n id: exchangeID,\n }, 'post').then(exchange => {\n callback(null, exchange);\n }).catch(err => callback(err));\n }\n\n /**\n * Lists the exchanges\n */\n listExchanges(callback = false) {\n if (!callback)\n return this.injectPromise(this.listExchanges);\n\n this.tronWeb.fullNode.request('wallet/listexchanges', {}, 'post').then(({exchanges = []}) => {\n callback(null, exchanges);\n }, 'post').catch(err => callback(err));\n }\n\n /**\n * Lists all network modification proposals.\n */\n listExchangesPaginated(limit = 10, offset = 0, callback = false) {\n if (utils.isFunction(offset)) {\n callback = offset;\n offset = 0;\n }\n if (utils.isFunction(limit)) {\n callback = limit;\n limit = 10;\n }\n if (!callback)\n return this.injectPromise(this.listExchangesPaginated, limit, offset);\n\n this.tronWeb.fullNode.request('wallet/getpaginatedexchangelist', {\n limit,\n offset\n }, 'post').then(({exchanges = []}) => {\n callback(null, exchanges);\n }).catch(err => callback(err));\n }\n\n /**\n * Get info about thre node\n */\n getNodeInfo(callback = false) {\n if (!callback)\n return this.injectPromise(this.getNodeInfo);\n\n this.tronWeb.fullNode.request('wallet/getnodeinfo', {}, 'post').then(info => {\n callback(null, info);\n }, 'post').catch(err => callback(err));\n }\n\n\n getTokenListByName(tokenID = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getTokenListByName, tokenID);\n\n if (utils.isInteger(tokenID))\n tokenID = tokenID.toString()\n\n if (!utils.isString(tokenID) || !tokenID.length)\n return callback('Invalid token ID provided');\n\n this.tronWeb.fullNode.request('wallet/getassetissuelistbyname', {\n value: this.tronWeb.fromUtf8(tokenID)\n }, 'post').then(token => {\n if (Array.isArray(token.assetIssue)) {\n callback(null, token.assetIssue.map(t => this._parseToken(t)));\n } else if (!token.name)\n return callback('Token does not exist');\n\n callback(null, this._parseToken(token));\n }).catch(err => callback(err));\n }\n\n getTokenByID(tokenID = false, callback = false) {\n if (!callback)\n return this.injectPromise(this.getTokenByID, tokenID);\n\n if (utils.isInteger(tokenID))\n tokenID = tokenID.toString()\n\n if (!utils.isString(tokenID) || !tokenID.length)\n return callback('Invalid token ID provided');\n\n this.tronWeb.fullNode.request('wallet/getassetissuebyid', {\n value: tokenID\n }, 'post').then(token => {\n if (!token.name)\n return callback('Token does not exist');\n\n callback(null, this._parseToken(token));\n }).catch(err => callback(err));\n }\n\n async getReward(address, options = {}, callback = false) {\n options.confirmed = true;\n return this._getReward(address, options, callback);\n }\n\n async getUnconfirmedReward(address, options = {}, callback = false) {\n options.confirmed = false;\n return this._getReward(address, options, callback);\n }\n\n async getBrokerage(address, options = {}, callback = false) {\n options.confirmed = true;\n return this._getBrokerage(address, options, callback);\n }\n\n async getUnconfirmedBrokerage(address, options = {}, callback = false) {\n options.confirmed = false;\n return this._getBrokerage(address, options, callback);\n }\n\n async _getReward(address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this._getReward, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n }\n ], callback))\n return;\n\n const data = {\n address: toHex(address)\n };\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getReward`, data, 'post')\n .then((result = {}) => {\n\n if (typeof result.reward === 'undefined')\n return callback('Not found.');\n\n callback(null, result.reward);\n }).catch(err => callback(err));\n }\n\n\n async _getBrokerage(address = this.tronWeb.defaultAddress.hex, options, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (utils.isFunction(address)) {\n callback = address;\n address = this.tronWeb.defaultAddress.hex;\n } else if (utils.isObject(address)) {\n options = address;\n address = this.tronWeb.defaultAddress.hex;\n }\n\n if (!callback)\n return this.injectPromise(this._getBrokerage, address, options);\n\n if (this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address\n }\n ], callback))\n return;\n\n const data = {\n address: toHex(address)\n };\n\n this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(`wallet${options.confirmed ? 'solidity' : ''}/getBrokerage`, data, 'post')\n .then((result = {}) => {\n\n if (typeof result.brokerage === 'undefined')\n return callback('Not found.');\n\n callback(null, result.brokerage);\n }).catch(err => callback(err));\n }\n\n async getBandwidthPrices() {\n return this.tronWeb.fullNode.request('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() {\n return this.tronWeb.fullNode.request('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","import utils from 'utils';\nimport {encodeParamsV2ByABI, decodeParamsV2ByABI} from 'utils/abi';\nimport injectpromise from 'injectpromise';\n\nconst getFunctionSelector = abi => {\n abi.stateMutability = abi.stateMutability ? abi.stateMutability.toLowerCase() : 'nonpayable';\n abi.type = abi.type ? abi.type.toLowerCase() : '';\n if(abi.type === 'fallback' || abi.type === 'receive') return '0x';\n let iface = new utils.ethersUtils.Interface([abi]);\n if(abi.type === 'event') {\n return iface.getEvent(abi.name).format(utils.ethersUtils.FormatTypes.sighash);\n }\n return iface.getFunction(abi.name).format(utils.ethersUtils.FormatTypes.sighash);\n}\n\nconst decodeOutput = (abi, output) => {\n return decodeParamsV2ByABI(abi, output)\n};\n\nexport default class Method {\n constructor(contract, abi) {\n this.tronWeb = contract.tronWeb;\n this.contract = contract;\n\n this.abi = abi;\n this.name = abi.name || (abi.name = abi.type);\n\n this.inputs = abi.inputs || [];\n this.outputs = abi.outputs || [];\n\n this.functionSelector = getFunctionSelector(abi);\n this.signature = this.tronWeb.sha3(this.functionSelector, false).slice(0, 8);\n this.injectPromise = injectpromise(this);\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) {\n return decodeOutput(this.inputs, '0x' + data);\n }\n\n onMethod(...args) {\n let rawParameter = '';\n if(this.abi && !/event/i.test(this.abi.type)) {\n rawParameter = encodeParamsV2ByABI(this.abi, args);\n }\n return {\n call: (options = {}, callback = false) => {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n options = {\n ...options,\n rawParameter\n };\n\n return this._call([], [], options, callback);\n },\n send: (options = {}, privateKey = this.tronWeb.defaultPrivateKey, callback = false) => {\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n }\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n options = {\n ...options,\n rawParameter\n };\n\n return this._send([], [], options, privateKey, callback);\n },\n watch: (...methodArgs) => this._watch(...methodArgs)\n }\n }\n\n async _call(types, args, options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this._call, types, args, options);\n\n if (types.length !== args.length)\n return callback('Invalid argument count provided');\n\n if (!this.contract.address)\n return callback('Smart contract is missing address');\n\n if (!this.contract.deployed)\n return callback('Calling smart contracts requires you to load the contract first');\n\n const {stateMutability} = this.abi;\n\n if (!['pure', 'view'].includes(stateMutability.toLowerCase()))\n return callback(`Methods with state mutability \"${stateMutability}\" must use send()`);\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 this.tronWeb.transactionBuilder.triggerSmartContract(\n this.contract.address,\n this.functionSelector,\n options,\n parameters,\n options.from ? this.tronWeb.address.toHex(options.from) : false,\n (err, transaction) => {\n if (err)\n return callback(err);\n\n if (!utils.hasProperty(transaction, 'constant_result'))\n return callback('Failed to execute');\n\n try {\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 let 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.replace(/(\\u0000|\\u000b|\\f)+/g, ' ').replace(/ +/g, ' ').replace(/\\s+$/g, '');\n }\n return callback(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\n return callback(null, output);\n } catch (ex) {\n return callback(ex);\n }\n });\n }\n\n async _send(types, args, options = {}, privateKey = this.tronWeb.defaultPrivateKey, callback = false) {\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n }\n\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this._send, types, args, options, privateKey);\n\n if (types.length !== args.length)\n throw new Error('Invalid argument count provided');\n\n if (!this.contract.address)\n return callback('Smart contract is missing address');\n\n if (!this.contract.deployed)\n return callback('Calling smart contracts requires you to load the contract first');\n\n const {stateMutability} = this.abi;\n\n if (['pure', 'view'].includes(stateMutability.toLowerCase()))\n return callback(`Methods with state mutability \"${stateMutability}\" must use call()`);\n\n // If a function isn't payable, dont provide a callValue.\n if (!['payable'].includes(stateMutability.toLowerCase()))\n options.callValue = 0;\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 try {\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)\n );\n\n if (!transaction.result || !transaction.result.result)\n return callback('Unknown error: ' + JSON.stringify(transaction, null, 2));\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 return callback('Transaction was not signed properly');\n\n return callback('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\n };\n if (broadcast.message)\n err.message = this.tronWeb.toUtf8(broadcast.message);\n return callback(err)\n }\n\n if (!options.shouldPollResponse)\n return callback(null, signedTransaction.txID);\n\n const checkResult = async (index = 0) => {\n if (index === (options.pollTimes || 20)) {\n return callback({\n error: 'Cannot find result in solidity node',\n transaction: signedTransaction\n });\n }\n\n const output = await this.tronWeb.trx.getTransactionInfo(signedTransaction.txID);\n\n if (!Object.keys(output).length) {\n return setTimeout(() => {\n checkResult(index + 1);\n }, 3000);\n }\n\n if (output.result && output.result === 'FAILED') {\n return callback({\n error: this.tronWeb.toUtf8(output.resMessage),\n transaction: signedTransaction,\n output\n });\n }\n\n if (!utils.hasProperty(output, 'contractResult')) {\n return callback({\n error: 'Failed to execute: ' + JSON.stringify(output, null, 2),\n transaction: signedTransaction,\n output\n });\n }\n\n if (options.rawResponse)\n return callback(null, output);\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 callback(null, [signedTransaction.txID, decoded]);\n }\n\n return callback(null, decoded);\n }\n\n checkResult();\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async _watch(options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!utils.isFunction(callback))\n throw new Error('Expected callback to be provided');\n\n if (!this.contract.address)\n return callback('Smart contract is missing address');\n\n if (!this.abi.type || !/event/i.test(this.abi.type))\n return callback('Invalid method type for event watching');\n\n if (!this.tronWeb.eventServer)\n return callback('No event server configured');\n\n let listener = false;\n let lastBlock = false;\n let since = Date.now() - 1000;\n\n const getEvents = async () => {\n try {\n\n const params = {\n since,\n eventName: this.name,\n sort: 'block_timestamp',\n blockNumber: 'latest',\n filters: options.filters\n }\n\n if(options.size) {\n params.size = options.size;\n }\n \n if (options.resourceNode) {\n if (/full/i.test(options.resourceNode))\n params.onlyUnconfirmed = true\n else\n params.onlyConfirmed = true\n }\n\n const events = await this.tronWeb.event.getEventsByContractAddress(this.contract.address, params);\n const [latestEvent] = events.sort((a, b) => b.block - a.block);\n const newEvents = events.filter((event, index) => {\n\n if (options.resourceNode && event.resourceNode &&\n options.resourceNode.toLowerCase() !== event.resourceNode.toLowerCase()) {\n return false\n }\n\n const duplicate = events.slice(0, index).some(priorEvent => (\n JSON.stringify(priorEvent) == JSON.stringify(event)\n ));\n\n if (duplicate)\n return false;\n\n if (!lastBlock)\n return true;\n\n return event.block > lastBlock;\n });\n\n if (latestEvent)\n lastBlock = latestEvent.block;\n\n return newEvents;\n } catch (ex) {\n return Promise.reject(ex);\n }\n\n };\n\n const bindListener = () => {\n if (listener)\n clearInterval(listener);\n\n listener = setInterval(() => {\n getEvents().then(events => events.forEach(event => {\n callback(null, utils.parseEvent(event, this.abi))\n })).catch(err => callback(err));\n }, 3000);\n };\n\n await getEvents();\n bindListener();\n\n return {\n start: bindListener,\n stop: () => {\n if (!listener)\n return;\n\n clearInterval(listener);\n listener = false;\n }\n }\n }\n}\n","import TronWeb from 'index';\nimport utils from 'utils';\nimport Method from './method';\nimport injectpromise from 'injectpromise';\n\nexport default class Contract {\n constructor(tronWeb = false, abi = [], address = false) {\n if (!tronWeb || !tronWeb instanceof TronWeb)\n throw new Error('Expected instance of TronWeb');\n\n this.tronWeb = tronWeb;\n this.injectPromise = injectpromise(this);\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 (this.tronWeb.isAddress(address))\n this.deployed = true;\n else this.address = false;\n\n this.loadAbi(abi);\n }\n\n async _getEvents(options = {}) {\n const events = await this.tronWeb.event.getEventsByContractAddress(this.address, options);\n const [latestEvent] = events.sort((a, b) => b.block - a.block);\n const newEvents = events.filter((event, index) => {\n\n if (options.resourceNode && event.resourceNode &&\n options.resourceNode.toLowerCase() !== event.resourceNode.toLowerCase()) {\n return false\n }\n\n const duplicate = events.slice(0, index).some(priorEvent => (\n JSON.stringify(priorEvent) == JSON.stringify(event)\n ));\n\n if (duplicate)\n return false;\n\n if (!this.lastBlock)\n return true;\n\n return event.block > this.lastBlock;\n });\n\n if (latestEvent)\n this.lastBlock = latestEvent.block;\n\n return newEvents;\n }\n\n async _startEventListener(options = {}, callback) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (this.eventListener)\n clearInterval(this.eventListener);\n\n if (!this.tronWeb.eventServer)\n throw new Error('Event server is not configured');\n\n if (!this.address)\n throw new Error('Contract is not configured with an address');\n\n this.eventCallback = callback;\n await this._getEvents(options);\n\n this.eventListener = setInterval(() => {\n this._getEvents(options).then(newEvents => newEvents.forEach(event => {\n this.eventCallback && this.eventCallback(event)\n })).catch(err => {\n console.error('Failed to get event list', err);\n });\n }, 3000);\n }\n\n _stopEventListener() {\n if (!this.eventListener)\n return;\n\n clearInterval(this.eventListener);\n this.eventListener = false;\n this.eventCallback = false;\n }\n\n hasProperty(property) {\n return this.hasOwnProperty(property) || this.__proto__.hasOwnProperty(property);\n }\n\n loadAbi(abi) {\n this.abi = abi;\n this.methods = {};\n\n this.props.forEach(prop => delete this[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))\n return;\n\n const method = new Method(this, func);\n const methodCall = method.onMethod.bind(method);\n\n const {\n name,\n functionSelector,\n signature\n } = 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[name] = methodCall;\n this.props.push(name);\n }\n\n if (!this.hasProperty(functionSelector)) {\n this[functionSelector] = methodCall;\n this.props.push(functionSelector);\n }\n\n if (!this.hasProperty(signature)) {\n this[signature] = methodCall;\n this.props.push(signature);\n }\n });\n }\n\n decodeInput(data) {\n\n const methodName = data.substring(0, 8);\n const inputData = data.substring(8);\n\n if (!this.methodInstances[methodName])\n 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, privateKey = this.tronWeb.defaultPrivateKey, callback = false) {\n if (utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.tronWeb.defaultPrivateKey;\n }\n\n if (!callback)\n return this.injectPromise(this.new, options, privateKey);\n\n try {\n const address = this.tronWeb.address.fromPrivateKey(privateKey);\n const transaction = await this.tronWeb.transactionBuilder.createSmartContract(options, 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 return callback({\n error: contract.code,\n message: this.tronWeb.toUtf8(contract.message)\n })\n\n await utils.sleep(3000);\n return this.at(signedTransaction.contract_address, callback);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async at(contractAddress, callback = false) {\n if (!callback)\n return this.injectPromise(this.at, contractAddress);\n\n try {\n const contract = await this.tronWeb.trx.getContract(contractAddress);\n\n if (!contract.contract_address)\n return callback('Unknown error: ' + JSON.stringify(contract, null, 2));\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 callback(null, this);\n } catch (ex) {\n if (ex.toString().includes('does not exist'))\n return callback('Contract has not been deployed on the network');\n\n return callback(ex);\n }\n }\n\n events(options = {}, callback = false) {\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!utils.isFunction(callback))\n throw new Error('Callback function expected');\n\n const self = this;\n\n return {\n start(startCallback = false) {\n if (!startCallback) {\n self._startEventListener(options, callback);\n return this;\n }\n\n self._startEventListener(options, callback).then(() => {\n startCallback();\n }).catch(err => {\n startCallback(err)\n });\n\n return this;\n },\n stop() {\n self._stopEventListener();\n }\n };\n }\n}\n","import TronWeb from 'index';\nimport utils from 'utils';\nimport semver from 'semver';\n\nexport default class Plugin {\n\n constructor(tronWeb = false, options = {}) {\n if (!tronWeb || !tronWeb instanceof TronWeb)\n 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, options) {\n let pluginInterface = {\n requires: '0.0.0',\n components: {}\n }\n let result = {\n libs: [],\n plugged: [],\n skipped: []\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 let className = plugin.constructor.name\n let classInstanceName = className.substring(0, 1).toLowerCase() + className.substring(1)\n if (className !== classInstanceName) {\n TronWeb[className] = Plugin\n this.tronWeb[classInstanceName] = plugin\n result.libs.push(className)\n }\n } else {\n // plug methods into a class, like trx\n for (let component in pluginInterface.components) {\n if (!this.tronWeb.hasOwnProperty(component)) {\n continue\n }\n let methods = pluginInterface.components[component]\n let pluginNoOverride = this.tronWeb[component].pluginNoOverride || []\n for (let method in methods) {\n if (method === 'constructor' || (this.tronWeb[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[component][method] = methods[method].bind(this.tronWeb[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\n","import TronWeb from 'index';\nimport utils from 'utils';\nimport providers from \"./providers\";\nimport querystring from \"querystring-es3\";\nimport injectpromise from 'injectpromise';\n\nexport default class Event {\n\n constructor(tronWeb = false) {\n if (!tronWeb || !(tronWeb instanceof TronWeb))\n throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n this.injectPromise = injectpromise(this);\n }\n\n setServer(eventServer = false, healthcheck = 'healthcheck') {\n if (!eventServer)\n return this.tronWeb.eventServer = false;\n\n if (utils.isString(eventServer))\n eventServer = new providers.HttpProvider(eventServer);\n\n if (!this.tronWeb.isValidProvider(eventServer))\n throw new Error('Invalid event server provided');\n\n this.tronWeb.eventServer = eventServer;\n this.tronWeb.eventServer.isConnected = () => this.tronWeb.eventServer.request(healthcheck).then(() => true).catch(() => false);\n }\n\n getEventsByContractAddress(contractAddress = false, options = {}, callback = false) {\n\n let {\n sinceTimestamp,\n since,\n fromTimestamp,\n eventName,\n blockNumber,\n size,\n page,\n onlyConfirmed,\n onlyUnconfirmed,\n previousLastEventFingerprint,\n previousFingerprint,\n fingerprint,\n rawResponse,\n sort,\n filters\n } = Object.assign({\n sinceTimestamp: 0,\n eventName: false,\n blockNumber: false,\n size: 20,\n page: 1\n }, options)\n\n if (!callback)\n return this.injectPromise(this.getEventsByContractAddress, contractAddress, options);\n\n fromTimestamp = fromTimestamp || sinceTimestamp || since;\n\n if (!this.tronWeb.eventServer)\n return callback('No event server configured');\n\n const routeParams = [];\n\n if (!this.tronWeb.isAddress(contractAddress))\n return callback('Invalid contract address provided');\n\n if (eventName && !contractAddress)\n return callback('Usage of event name filtering requires a contract address');\n\n if (typeof fromTimestamp !== 'undefined' && !utils.isInteger(fromTimestamp))\n return callback('Invalid fromTimestamp provided');\n\n if (!utils.isInteger(size))\n return callback('Invalid size provided');\n\n if (size > 200) {\n console.warn('Defaulting to maximum accepted size: 200');\n size = 200;\n }\n\n if (!utils.isInteger(page))\n return callback('Invalid page provided');\n\n if (blockNumber && !eventName)\n return callback('Usage of block number filtering requires an event name');\n\n if (contractAddress)\n routeParams.push(this.tronWeb.address.fromHex(contractAddress));\n\n if (eventName)\n routeParams.push(eventName);\n\n if (blockNumber)\n routeParams.push(blockNumber);\n\n const qs = {\n size,\n page\n }\n\n if (typeof filters === 'object' && Object.keys(filters).length > 0) {\n qs.filters = JSON.stringify(filters);\n }\n\n if (fromTimestamp) {\n qs.fromTimestamp = qs.since = fromTimestamp;\n }\n\n if (onlyConfirmed)\n qs.only_confirmed = onlyConfirmed\n\n if (onlyUnconfirmed && !onlyConfirmed)\n qs.only_unconfirmed = onlyUnconfirmed\n\n if (sort)\n qs.sort = sort\n\n fingerprint = fingerprint || previousFingerprint || previousLastEventFingerprint\n if (fingerprint)\n qs.fingerprint = fingerprint\n\n return this.tronWeb.eventServer.request(`event/contract/${routeParams.join('/')}?${querystring.stringify(qs)}`).then((data = false) => {\n if (!data)\n return callback('Unknown error occurred');\n\n if (!utils.isArray(data))\n return callback(data);\n\n return callback(null,\n rawResponse === true ? data : data.map(event => utils.mapEvent(event))\n );\n }).catch(err => callback((err.response && err.response.data) || err));\n }\n\n\n getEventsByTransactionID(transactionID = false, options = {}, callback = false) {\n\n if (utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n\n if (!callback)\n return this.injectPromise(this.getEventsByTransactionID, transactionID, options);\n\n if (!this.tronWeb.eventServer)\n return callback('No event server configured');\n\n return this.tronWeb.eventServer.request(`event/transaction/${transactionID}`).then((data = false) => {\n if (!data)\n return callback('Unknown error occurred');\n\n if (!utils.isArray(data))\n return callback(data);\n\n return callback(null,\n options.rawResponse === true ? data : data.map(event => utils.mapEvent(event))\n );\n }).catch(err => callback((err.response && err.response.data) || err));\n }\n\n}\n\n","import injectpromise from 'injectpromise';\nimport Validator from 'paramValidator';\n\nexport default class SideChain {\n constructor(sideOptions, TronWeb = false, mainchain = false, privateKey = false) {\n this.mainchain = mainchain;\n const { fullHost, fullNode, solidityNode, eventServer, mainGatewayAddress, sideGatewayAddress, sideChainId } = sideOptions;\n this.sidechain = new TronWeb(fullHost || fullNode, fullHost || solidityNode, fullHost || eventServer, privateKey);\n this.isAddress = this.mainchain.isAddress;\n this.utils = this.mainchain.utils;\n this.setMainGatewayAddress(mainGatewayAddress);\n this.setSideGatewayAddress(sideGatewayAddress);\n this.setChainId(sideChainId);\n this.injectPromise = injectpromise(this);\n this.validator = new Validator(this.sidechain);\n\n const self = this;\n this.sidechain.trx.sign = (...args) => {\n return self.sign(...args);\n };\n this.sidechain.trx.multiSign = (...args) => {\n return self.multiSign(...args);\n };\n\n console.warn(\"TronWeb: 'tronWeb.sidechain' is deprecated and may be removed in the future. Please use the 'sunweb' sdk instead. For more information, see: https://github.com/tronprotocol/sun-network/tree/develop/js-sdk\");\n }\n setMainGatewayAddress(mainGatewayAddress) {\n if (!this.isAddress(mainGatewayAddress))\n throw new Error('Invalid main gateway address provided');\n this.mainGatewayAddress = mainGatewayAddress;\n }\n\n setSideGatewayAddress(sideGatewayAddress) {\n if (!this.isAddress(sideGatewayAddress))\n throw new Error('Invalid side gateway address provided');\n this.sideGatewayAddress = sideGatewayAddress;\n }\n\n setChainId(sideChainId) {\n if (!this.utils.isString(sideChainId) || !sideChainId)\n throw new Error('Invalid side chainId provided');\n this.chainId = sideChainId;\n }\n\n signTransaction(priKeyBytes, transaction) {\n if (typeof priKeyBytes === 'string') {\n priKeyBytes = this.utils.code.hexStr2byteArray(priKeyBytes);\n }\n let chainIdByteArr = this.utils.code.hexStr2byteArray(this.chainId);\n\n let byteArr = this.utils.code.hexStr2byteArray(transaction.txID).concat(chainIdByteArr);\n let byteArrHash = this.sidechain.utils.ethersUtils.sha256(byteArr);\n\n const signature = this.utils.crypto.ECKeySign(this.utils.code.hexStr2byteArray(byteArrHash.replace(/^0x/, '')), priKeyBytes);\n\n if (Array.isArray(transaction.signature)) {\n if (!transaction.signature.includes(signature))\n transaction.signature.push(signature);\n } else\n transaction.signature = [signature];\n return transaction;\n }\n\n async multiSign(transaction = false, privateKey = this.sidechain.defaultPrivateKey, permissionId = false, callback = false) {\n if (this.utils.isFunction(permissionId)) {\n callback = permissionId;\n permissionId = 0;\n }\n\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n permissionId = 0;\n }\n\n if (!callback) return this.injectPromise(this.multiSign, transaction, privateKey, permissionId);\n\n if (!this.utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract) return callback('Invalid transaction provided');\n\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.sidechain.address.toHex(this.sidechain.address.fromPrivateKey(privateKey)).toLowerCase();\n const signWeight = await this.sidechain.trx.getSignWeight(transaction, permissionId);\n\n if (signWeight.result.code === 'PERMISSION_ERROR') {\n return callback(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) return callback(privateKey + ' has no permission to sign');\n\n if (signWeight.approved_list && signWeight.approved_list.indexOf(address) != -1) {\n return callback(privateKey + ' already sign transaction');\n }\n\n // reset transaction\n if (signWeight.transaction && signWeight.transaction.transaction) {\n transaction = signWeight.transaction.transaction;\n transaction.raw_data.contract[0].Permission_id = permissionId;\n } else {\n return callback('Invalid transaction provided');\n }\n }\n // sign\n try {\n return callback(null, this.signTransaction(privateKey, transaction));\n } catch (ex) {\n callback(ex);\n }\n }\n\n async sign(transaction = false, privateKey = this.sidechain.defaultPrivateKey, useTronHeader = true, multisig = false, callback = false) {\n if (this.utils.isFunction(multisig)) {\n callback = multisig;\n multisig = false;\n }\n\n if (this.utils.isFunction(useTronHeader)) {\n callback = useTronHeader;\n useTronHeader = true;\n multisig = false;\n }\n\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.sidechain.defaultPrivateKey;\n useTronHeader = true;\n multisig = false;\n }\n\n if (!callback)\n return this.injectPromise(this.sign, transaction, privateKey, useTronHeader, multisig);\n\n // Message signing\n if (this.utils.isString(transaction)) {\n\n if (!this.utils.isHex(transaction))\n return callback('Expected hex message input');\n\n try {\n const signatureHex = this.sidechain.trx.signString(transaction, privateKey, useTronHeader);\n return callback(null, signatureHex);\n } catch (ex) {\n callback(ex);\n }\n }\n\n if (!this.utils.isObject(transaction))\n return callback('Invalid transaction provided');\n\n if (!multisig && transaction.signature)\n return callback('Transaction is already signed');\n\n try {\n if (!multisig) {\n const address = this.sidechain.address.toHex(\n this.sidechain.address.fromPrivateKey(privateKey)\n ).toLowerCase();\n if (address !== this.sidechain.address.toHex(transaction.raw_data.contract[0].parameter.value.owner_address))\n return callback('Private key does not match address in transaction');\n }\n return callback(null,\n this.signTransaction(privateKey, transaction)\n );\n } catch (ex) {\n callback(ex);\n }\n }\n\n /**\n * deposit asset to sidechain\n */\n async depositTrx(\n callValue,\n depositFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.depositTrx, callValue, depositFee, feeLimit, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0\n },\n {\n name: 'depositFee',\n type: 'integer',\n value: depositFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n }\n ], callback)) {\n return;\n }\n options = {\n callValue: Number(callValue) + Number(depositFee),\n feeLimit,\n ...options\n };\n try {\n const contractInstance = await this.mainchain.contract().at(this.mainGatewayAddress);\n const result = await contractInstance.depositTRX().send(options, privateKey);\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async depositTrc10(\n tokenId,\n tokenValue,\n depositFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.depositTrc10, tokenId, tokenValue, depositFee, feeLimit, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0\n },\n {\n name: 'depositFee',\n type: 'integer',\n value: depositFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0\n }\n ], callback)) {\n return;\n }\n options = {\n tokenId,\n tokenValue,\n feeLimit,\n ...options,\n callValue: depositFee\n };\n try {\n const contractInstance = await this.mainchain.contract().at(this.mainGatewayAddress);\n const result = await contractInstance.depositTRC10(tokenId, tokenValue).send(options, privateKey);\n callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async depositTrc(\n functionSelector,\n num,\n fee,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.depositTrc, functionSelector, num, fee, feeLimit, contractAddress, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'functionSelector',\n type: 'not-empty-string',\n value: functionSelector\n },\n {\n name: 'num',\n type: 'integer',\n value: num,\n gte: 0\n },\n {\n name: 'fee',\n type: 'integer',\n value: fee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n },\n {\n name: 'contractAddress',\n type: 'address',\n value: contractAddress\n }\n ], callback)) {\n return;\n }\n options = {\n feeLimit,\n ...options,\n callValue: fee,\n tokenId: '',\n tokenValue: 0\n };\n try {\n let result = null;\n if (functionSelector === 'approve') {\n const approveInstance = await this.mainchain.contract().at(contractAddress);\n result = await approveInstance.approve(this.mainGatewayAddress, num).send(options, privateKey);\n } else {\n const contractInstance = await this.mainchain.contract().at(this.mainGatewayAddress);\n switch (functionSelector) {\n case 'depositTRC20':\n result = await contractInstance.depositTRC20(contractAddress, num).send(options, privateKey);\n break;\n case 'depositTRC721':\n result = await contractInstance.depositTRC721(contractAddress, num).send(options, privateKey);\n break;\n case 'retryDeposit':\n result = await contractInstance.retryDeposit(num).send(options, privateKey);\n break;\n case 'retryMapping':\n result = await contractInstance.retryMapping(num).send(options, privateKey);\n break;\n default:\n break;\n }\n }\n callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async approveTrc20(\n num,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'approve';\n return this.depositTrc(\n functionSelector,\n num,\n 0,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback\n );\n }\n\n async approveTrc721(\n id,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'approve';\n return this.depositTrc(\n functionSelector,\n id,\n 0,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback\n );\n }\n\n async depositTrc20(\n num,\n depositFee,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'depositTRC20';\n return this.depositTrc(\n functionSelector,\n num,\n depositFee,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback\n );\n }\n\n async depositTrc721(\n id,\n depositFee,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'depositTRC721';\n return this.depositTrc(\n functionSelector,\n id,\n depositFee,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback\n );\n }\n\n /**\n * mapping asset TRC20 or TRC721 to DAppChain\n */\n async mappingTrc(\n trxHash,\n mappingFee,\n feeLimit,\n functionSelector,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.mappingTrc, trxHash, mappingFee, feeLimit, functionSelector, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'trxHash',\n type: 'not-empty-string',\n value: trxHash\n },\n {\n name: 'mappingFee',\n type: 'integer',\n value: mappingFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n }\n ], callback)) {\n return;\n }\n trxHash = trxHash.startsWith('0x') ? trxHash : ('0x' + trxHash);\n options = {\n feeLimit,\n ...options,\n callValue: mappingFee\n };\n try {\n const contractInstance = await this.mainchain.contract().at(this.mainGatewayAddress);\n let result = null;\n if (functionSelector === 'mappingTRC20') {\n result = await contractInstance.mappingTRC20(trxHash).send(options, privateKey);\n } else if (functionSelector === 'mappingTRC721') {\n result = await contractInstance.mappingTRC721(trxHash).send(options, privateKey);\n } else {\n callback(new Error('type must be trc20 or trc721'));\n }\n callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async mappingTrc20(\n trxHash,\n mappingFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'mappingTRC20';\n return this.mappingTrc(\n trxHash,\n mappingFee,\n feeLimit,\n functionSelector,\n options,\n privateKey,\n callback);\n }\n\n async mappingTrc721(\n trxHash,\n mappingFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'mappingTRC721';\n return this.mappingTrc(\n trxHash,\n mappingFee,\n feeLimit,\n functionSelector,\n options,\n privateKey,\n callback);\n }\n\n /**\n * withdraw trx from sidechain to mainchain\n */\n async withdrawTrx(\n callValue,\n withdrawFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.withdrawTrx, callValue, withdrawFee, feeLimit, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0\n },\n {\n name: 'withdrawFee',\n type: 'integer',\n value: withdrawFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n }\n ], callback)) {\n return;\n }\n options = {\n callValue: Number(callValue) + Number(withdrawFee),\n feeLimit,\n ...options\n };\n try {\n const contractInstance = await this.sidechain.contract().at(this.sideGatewayAddress);\n const result = await contractInstance.withdrawTRX().send(options, privateKey);\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async withdrawTrc10(\n tokenId,\n tokenValue,\n withdrawFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.withdrawTrc10, tokenId, tokenValue, withdrawFee, feeLimit, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0\n },\n {\n name: 'withdrawFee',\n type: 'integer',\n value: withdrawFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n }\n ], callback)) {\n return;\n }\n options = {\n tokenValue,\n tokenId,\n callValue: withdrawFee,\n feeLimit,\n ...options\n };\n try {\n const contractInstance = await this.sidechain.contract().at(this.sideGatewayAddress);\n const result = await contractInstance.withdrawTRC10(tokenId, tokenValue).send(options, privateKey);\n return callback(null, result);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async withdrawTrc(\n functionSelector,\n numOrId,\n withdrawFee,\n feeLimit,\n contractAddress,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.withdrawTrc, functionSelector, numOrId, withdrawFee, feeLimit, contractAddress, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'functionSelector',\n type: 'not-empty-string',\n value: functionSelector\n },\n {\n name: 'numOrId',\n type: 'integer',\n value: numOrId,\n gte: 0\n },\n {\n name: 'withdrawFee',\n type: 'integer',\n value: withdrawFee,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n },\n {\n name: 'contractAddress',\n type: 'address',\n value: contractAddress\n }\n ], callback)) {\n return;\n }\n options = {\n feeLimit,\n ...options,\n callValue: withdrawFee\n };\n const parameters = [\n {\n type: 'uint256',\n value: numOrId\n }\n ];\n\n try {\n const address = privateKey ? this.sidechain.address.fromPrivateKey(privateKey) : this.sidechain.defaultAddress.base58;\n const transaction = await this.sidechain.transactionBuilder.triggerSmartContract(\n contractAddress,\n functionSelector,\n options,\n parameters,\n this.sidechain.address.toHex(address)\n );\n if (!transaction.result || !transaction.result.result) {\n return callback('Unknown error: ' + JSON.stringify(transaction.transaction, null, 2));\n }\n\n const signedTransaction = await this.sidechain.trx.sign(transaction.transaction, privateKey);\n\n if (!signedTransaction.signature) {\n if (!privateKey)\n return callback('Transaction was not signed properly');\n\n return callback('Invalid private key provided');\n }\n\n const broadcast = await this.sidechain.trx.sendRawTransaction(signedTransaction);\n if (broadcast.code) {\n const err = {\n error: broadcast.code,\n message: broadcast.code\n };\n if (broadcast.message)\n err.message = this.sidechain.toUtf8(broadcast.message);\n return callback(err)\n }\n\n if (!options.shouldPollResponse)\n return callback(null, signedTransaction.txID);\n\n const checkResult = async (index = 0) => {\n if (index == 20) {\n return callback({\n error: 'Cannot find result in solidity node',\n transaction: signedTransaction\n });\n }\n\n const output = await this.sidechain.trx.getTransactionInfo(signedTransaction.txID);\n\n if (!Object.keys(output).length) {\n return setTimeout(() => {\n checkResult(index + 1);\n }, 3000);\n }\n\n if (output.result && output.result == 'FAILED') {\n return callback({\n error: this.sidechain.toUtf8(output.resMessage),\n transaction: signedTransaction,\n output\n });\n }\n\n if (!this.utils.hasProperty(output, 'contractResult')) {\n return callback({\n error: 'Failed to execute: ' + JSON.stringify(output, null, 2),\n transaction: signedTransaction,\n output\n });\n }\n\n if (options.rawResponse)\n return callback(null, output);\n\n let decoded = decodeOutput(this.outputs, '0x' + output.contractResult[0]);\n\n if (decoded.length === 1)\n decoded = decoded[0];\n\n return callback(null, decoded);\n }\n\n checkResult();\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async withdrawTrc20(\n num,\n withdrawFee,\n feeLimit,\n contractAddress,\n options,\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'withdrawal(uint256)';\n return this.withdrawTrc(\n functionSelector,\n num,\n withdrawFee,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback);\n }\n\n async withdrawTrc721(\n id,\n withdrawFee,\n feeLimit,\n contractAddress,\n options,\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'withdrawal(uint256)';\n return this.withdrawTrc(\n functionSelector,\n id,\n withdrawFee,\n feeLimit,\n contractAddress,\n options,\n privateKey,\n callback);\n }\n\n\n async injectFund(\n num,\n feeLimit,\n options,\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n if (this.utils.isFunction(privateKey)) {\n callback = privateKey;\n privateKey = this.mainchain.defaultPrivateKey;\n }\n\n if (this.utils.isFunction(options)) {\n callback = options;\n options = {};\n }\n if (!callback) {\n return this.injectPromise(this.injectFund, num, feeLimit, options, privateKey);\n }\n if (this.validator.notValid([\n {\n name: 'num',\n type: 'integer',\n value: num,\n gte: 0\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gte: 0\n }\n ], callback)) {\n return;\n }\n\n try {\n const address = this.sidechain.address.fromPrivateKey(privateKey);\n const hexAddress = this.sidechain.address.toHex(address);\n const transaction = await this.sidechain.fullNode.request('/wallet/fundinject', {\n owner_address: hexAddress,\n amount: num\n }, 'post');\n\n const signedTransaction = await this.sidechain.trx.sign(transaction, privateKey);\n\n if (!signedTransaction.signature) {\n if (!privateKey)\n return callback('Transaction was not signed properly');\n\n return callback('Invalid private key provided');\n }\n\n const broadcast = await this.sidechain.trx.sendRawTransaction(signedTransaction);\n if (broadcast.code) {\n const err = {\n error: broadcast.code,\n message: broadcast.code\n };\n if (broadcast.message)\n err.message = this.mainchain.toUtf8(broadcast.message);\n return callback(err)\n }\n return callback(null, signedTransaction.txID);\n } catch (ex) {\n return callback(ex);\n }\n }\n\n async retryWithdraw(\n nonce,\n retryWithdrawFee,\n feeLimit,\n options = {},\n privateKey = this.sidechain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'retryWithdraw(uint256)';\n return this.withdrawTrc(\n functionSelector,\n nonce,\n retryWithdrawFee,\n feeLimit,\n this.sideGatewayAddress,\n options,\n privateKey,\n callback\n );\n }\n\n async retryDeposit(\n nonce,\n retryDepositFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'retryDeposit';\n return this.depositTrc(\n functionSelector,\n nonce,\n retryDepositFee,\n feeLimit,\n this.mainGatewayAddress,\n options,\n privateKey,\n callback\n );\n }\n\n async retryMapping(\n nonce,\n retryMappingFee,\n feeLimit,\n options = {},\n privateKey = this.mainchain.defaultPrivateKey,\n callback = false\n ) {\n const functionSelector = 'retryMapping';\n return this.depositTrc(\n functionSelector,\n nonce,\n retryMappingFee,\n feeLimit,\n this.mainGatewayAddress,\n options,\n privateKey,\n callback\n );\n }\n}\n\n","import providers from 'lib/providers';\nimport utils from 'utils';\nimport BigNumber from 'bignumber.js';\nimport EventEmitter from 'eventemitter3';\nimport Package from '../package.json';\nimport semver from 'semver';\nimport injectpromise from 'injectpromise';\n\nimport TransactionBuilder from 'lib/transactionBuilder';\nimport Trx from 'lib/trx';\nimport Contract from 'lib/contract';\nimport Plugin from 'lib/plugin';\nimport Event from 'lib/event';\nimport SideChain from 'lib/sidechain';\nimport { keccak256 } from 'utils/ethersUtils';\nimport { ADDRESS_PREFIX, TRON_BIP39_PATH_INDEX_0 } from 'utils/address';\n\nconst { version } = Package;\n\nconst DEFAULT_VERSION = '4.7.1';\n\nconst FEE_LIMIT = 150000000;\n\nexport default class TronWeb extends EventEmitter {\n static providers = providers;\n static BigNumber = BigNumber;\n static TransactionBuilder = TransactionBuilder;\n static Trx = Trx;\n static Contract = Contract;\n static Plugin = Plugin;\n static Event = Event;\n static version = version;\n static utils = utils;\n\n constructor(options = false,\n // for retro-compatibility:\n solidityNode = false, eventServer = false, sideOptions = false, privateKey = false) {\n super();\n\n let fullNode;\n let headers = false;\n let eventHeaders = false;\n\n if (typeof options === 'object' && (options.fullNode || options.fullHost)) {\n fullNode = options.fullNode || options.fullHost;\n sideOptions = solidityNode;\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))\n fullNode = new providers.HttpProvider(fullNode);\n\n if (utils.isString(solidityNode))\n solidityNode = new providers.HttpProvider(solidityNode);\n\n if (utils.isString(eventServer))\n 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, options);\n this.utils = utils;\n\n this.setFullNode(fullNode);\n this.setSolidityNode(solidityNode);\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 [\n 'sha3', 'toHex', 'toUtf8', 'fromUtf8',\n 'toAscii', 'fromAscii', 'toDecimal', 'fromDecimal',\n 'toSun', 'fromSun', 'toBigNumber', 'isAddress',\n 'createAccount', 'address', 'version', 'createRandom', 'fromMnemonic'\n ].forEach(key => {\n this[key] = TronWeb[key];\n });\n // for sidechain\n if (typeof sideOptions === 'object' && (sideOptions.fullNode || sideOptions.fullHost)) {\n this.sidechain = new SideChain(sideOptions, TronWeb, this, privateKey);\n } else {\n privateKey = privateKey || sideOptions;\n }\n\n if (privateKey)\n this.setPrivateKey(privateKey);\n this.fullnodeVersion = DEFAULT_VERSION;\n this.feeLimit = FEE_LIMIT;\n this.injectPromise = injectpromise(this);\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) {\n if ([false, 'latest', 'earliest', 0].includes(blockID)) {\n return this.defaultBlock = blockID;\n }\n\n if (!utils.isInteger(blockID) || !blockID)\n throw new Error('Invalid block ID provided');\n\n this.defaultBlock = Math.abs(blockID);\n }\n\n setPrivateKey(privateKey) {\n try {\n this.setAddress(\n this.address.fromPrivateKey(privateKey)\n );\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) {\n if (!this.isAddress(address))\n throw new Error('Invalid address provided');\n\n const hex = this.address.toHex(address);\n const base58 = this.address.fromHex(address);\n\n if (this.defaultPrivateKey && this.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) {\n return semver.satisfies(this.fullnodeVersion, version);\n }\n\n isValidProvider(provider) {\n return Object.values(providers).some(knownProvider => provider instanceof knownProvider);\n }\n\n setFullNode(fullNode) {\n if (utils.isString(fullNode))\n fullNode = new providers.HttpProvider(fullNode);\n\n if (!this.isValidProvider(fullNode))\n throw new Error('Invalid full node provided');\n\n this.fullNode = fullNode;\n this.fullNode.setStatusPage('wallet/getnowblock');\n }\n\n setSolidityNode(solidityNode) {\n if (utils.isString(solidityNode))\n solidityNode = new providers.HttpProvider(solidityNode);\n\n if (!this.isValidProvider(solidityNode))\n throw new Error('Invalid solidity node provided');\n\n this.solidityNode = solidityNode;\n this.solidityNode.setStatusPage('walletsolidity/getnowblock');\n }\n\n setEventServer(...params) {\n this.event.setServer(...params)\n }\n\n setHeader (headers = {}) {\n const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, false, false, headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, false, false, headers);\n const eventServer = new providers.HttpProvider(this.eventServer.host, 30000, false, false, 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, false, false, headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, false, false, 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, false, false, 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\n getEventResult(...params) {\n\n if (typeof params[1] !== 'object') {\n params[1] = {\n sinceTimestamp: params[1] || 0,\n eventName: params[2] || false,\n blockNumber: params[3] || false,\n size: params[4] || 20,\n page: params[5] || 1\n }\n params.splice(2, 4)\n\n // callback:\n if (!utils.isFunction(params[2])) {\n\n if (utils.isFunction(params[1].page)) {\n params[2] = params[1].page;\n params[1].page = 1;\n } else if (utils.isFunction(params[1].size)) {\n params[2] = params[1].size;\n params[1].size = 20;\n params[1].page = 1;\n }\n }\n }\n\n return this.event.getEventsByContractAddress(...params);\n }\n\n getEventByTransactionID(...params) {\n return this.event.getEventsByTransactionID(...params)\n }\n\n contract(abi = [], address = false) {\n return new Contract(this, abi, address);\n }\n\n static get address() {\n return {\n fromHex(address) {\n if (!utils.isHex(address))\n return address;\n\n return utils.crypto.getBase58CheckAddress(\n utils.code.hexStr2byteArray(address.replace(/^0x/, ADDRESS_PREFIX))\n );\n },\n toHex(address) {\n if (utils.isHex(address))\n return address.toLowerCase().replace(/^0x/, ADDRESS_PREFIX);\n\n return utils.code.byteArray2hexStr(\n utils.crypto.decodeBase58Address(address)\n ).toLowerCase();\n },\n fromPrivateKey(privateKey, strict = false) {\n try {\n return utils.crypto.pkToAddress(privateKey, strict);\n } catch {\n return false;\n }\n }\n }\n }\n\n static sha3(string, prefix = true) {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n }\n\n static toHex(val) {\n if (utils.isBoolean(val))\n return TronWeb.fromDecimal(+val);\n\n if (utils.isBigNumber(val))\n return TronWeb.fromDecimal(val);\n\n if (typeof val === 'object')\n return TronWeb.fromUtf8(JSON.stringify(val));\n\n if (utils.isString(val)) {\n if (/^(-|)0x/.test(val))\n return val;\n\n if ((!isFinite(val)) || /^\\s*$/.test(val))\n return TronWeb.fromUtf8(val);\n }\n\n let result = TronWeb.fromDecimal(val);\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 static toUtf8(hex) {\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 static fromUtf8(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 static toAscii(hex) {\n if (utils.isHex(hex)) {\n let str = \"\";\n let i = 0, l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i += 2) {\n let 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 static fromAscii(string, padding) {\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\n static toDecimal(value) {\n return TronWeb.toBigNumber(value).toNumber();\n }\n\n static fromDecimal(value) {\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 static fromSun(sun) {\n const trx = TronWeb.toBigNumber(sun).div(1_000_000);\n return utils.isBigNumber(sun) ? trx : trx.toString(10);\n }\n\n static toSun(trx) {\n const sun = TronWeb.toBigNumber(trx).times(1_000_000);\n return utils.isBigNumber(trx) ? sun : sun.toString(10);\n }\n\n static toBigNumber(amount = 0) {\n if (utils.isBigNumber(amount))\n return amount;\n\n if (utils.isString(amount) && /^(-|)0x/.test(amount))\n return new BigNumber(amount.replace('0x', ''), 16);\n\n return new BigNumber(amount.toString(10), 10);\n }\n\n static isAddress(address = false) {\n if (!utils.isString(address))\n return false;\n\n // Convert HEX to Base58\n if (address.length === 42) {\n try {\n return TronWeb.isAddress(\n utils.crypto.getBase58CheckAddress(\n utils.code.hexStr2byteArray(address) // it throws an error if the address starts with 0x\n )\n );\n } catch (err) {\n return false;\n }\n }\n try {\n return utils.crypto.isAddressValid(address);\n } catch (err) {\n return false;\n }\n }\n\n static async createAccount() {\n const account = utils.accounts.generateAccount();\n\n return account;\n }\n\n static createRandom(options) {\n const account = utils.accounts.generateRandom(options);\n\n return account\n }\n\n static fromMnemonic(mnemonic, path = TRON_BIP39_PATH_INDEX_0, wordlist = null) {\n const account = utils.accounts.generateAccountWithMnemonic(mnemonic, path, wordlist);\n\n return account\n }\n\n async isConnected(callback = false) {\n if (!callback)\n return this.injectPromise(this.isConnected);\n\n return callback(null, {\n fullNode: await this.fullNode.isConnected(),\n solidityNode: await this.solidityNode.isConnected(),\n eventServer: this.eventServer && await this.eventServer.isConnected()\n });\n }\n};\n"],"names":["root","factory","exports","module","define","amd","self","leafPrototypes","getProto","Object","defineProperty","value","createCurve","getHash","hmac_1","utils_1","weierstrass_js_1","hash","hmac","key","msgs","concatBytes","randomBytes","curveDef","defHash","create","weierstrass","freeze","validateBasic","wNAF","modular_js_1","utils_js_1","_0n","BigInt","_1n","c","bits","constTimeNegate","condition","item","neg","negate","opts","W","windows","Math","ceil","windowSize","unsafeLadder","elm","n","p","ZERO","d","add","double","precomputeWindow","points","base","window","push","i","precomputes","f","BASE","mask","maxNumber","shiftBy","offset","wbits","Number","offset1","offset2","abs","cond1","cond2","wNAFCached","P","precomputesMap","transform","_WINDOW_SIZE","comp","get","this","set","curve","validateField","Fp","validateObject","h","Gx","Gy","nBitLength","nByteLength","nLength","ORDER","createHasher","isogenyMap","hash_to_field","expand_message_xof","expand_message_xmd","os2ip","bytesToNumberBE","i2osp","length","Error","res","Array","from","fill","Uint8Array","strxor","a","b","arr","isBytes","isNum","isSafeInteger","msg","DST","lenInBytes","H","utf8ToBytes","outputLen","b_in_bytes","blockLen","r_in_bytes","ell","DST_prime","Z_pad","l_i_b_str","b_0","args","slice","k","dkLen","update","digest","count","options","m","expand","_DST","dst","validateDST","log2p","toString","L","len_in_bytes","prb","u","e","j","elm_offset","tv","subarray","mod","field","map","COEFF","reverse","x","y","xNum","xDen","yNum","yDen","val","reduce","acc","mul","div","Point","mapToCurve","def","hashToCurve","u0","fromAffine","u1","clearCofactor","assertValidity","encodeToCurve","encodeDST","hashToPrivateScalar","FpSqrtEven","FpSqrtOdd","Field","FpIsSquare","FpDiv","FpInvertBatch","FpPow","isNegativeLE","FpSqrt","tonelliShanks","invert","pow2","pow","_2n","_3n","_4n","_5n","_8n","result","num","power","modulo","number","v","q","r","legendreC","Q","S","Z","p1div4","eql","sqr","Q1div2","ONE","g","t2","ge","c1","n2","nv","sub","FIELD_FIELDS","nums","tmp","lastMultiplied","is0","inverted","inv","reduceRight","_nBitLength","undefined","MASK","BYTES","BITS","lhs","rhs","legendreConst","bitLen","isLE","redef","sqrtP","bitMask","isValid","isOdd","sqrN","addN","subN","mulN","sqrt","invertBatch","lst","cmov","toBytes","numberToBytesLE","numberToBytesBE","fromBytes","bytes","bytesToNumberLE","groupOrder","hashLen","ensureBytes","minLen","createHmacDrbg","bitSet","bitGet","equalBytes","numberToVarBytesBE","hexToBytes","hexToNumber","numberToHexUnpadded","bytesToHex","u8a","hexes","padStart","hex","array","hexByte","byte","parseInt","isNaN","arrs","sum","pad","forEach","len","title","expectedLength","b1","b2","str","TextEncoder","encode","pos","u8n","data","u8fr","qByteLen","hmacFn","reset","reseed","seed","gen","out","sl","pred","validatorFns","bigint","function","boolean","string","isArray","object","validators","optValidators","checkField","fieldName","type","isOptional","checkVal","String","entries","mapToCurveSimpleSWU","SWUFpSqrtRatio","weierstrassPoints","DER","ut","curve_js_1","b2n","h2b","Err","constructor","super","_parseInt","E","l","toSig","sBytes","s","rBytesLeft","hexFromSig","sig","shl","rhl","rl","CURVE","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","allowInfinityPoint","endo","beta","splitScalar","validatePointOpts","point","isCompressed","toAffine","tail","weierstrassEquation","x2","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","lengths","includes","error","pointPrecomputes","Map","assertPrjPoint","other","px","py","pz","static","toInv","privateKey","multiply","_setWindowSize","delete","left","right","hasEvenY","equals","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t0","t1","t3","t4","t5","subtract","wnaf","multiplyUnsafe","I","k1neg","k1","k2neg","k2","k1p","k2p","scalar","fake","f1p","f2p","normalizeZ","multiplyAndAddUnsafe","G","iz","z","ax","ay","zz","cofactor","toRawBytes","toHex","_bits","ProjectivePoint","o","c2","c3","c4","c5","c6","c7","sqrtRatio","tv1","tv2","tv3","tv5","tv4","isQR","tvv5","e1","y1","y2","bits2int","bits2int_modN","lowS","validateOpts","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","head","numToNByteStr","isBiggerThanHalfOrder","slcNum","to","Signature","recovery","addRecoveryBit","recoverPublicKey","msgHash","rec","radj","prefix","R","fromHex","ir","u2","hasHighS","normalizeS","toDERRawBytes","toDERHex","toCompactRawBytes","toCompactHex","utils","isValidPrivateKey","randomPrivateKey","rand","precompute","isProbPub","delta","ORDER_MASK","int2octets","defaultSigOpts","prehash","defaultVerOpts","getPublicKey","fromPrivateKey","getSharedSecret","privateA","publicB","sign","privKey","k2sig","some","extraEntropy","ent","h1int","seedArgs","kBytes","ik","normS","prepSig","drbg","verify","signature","publicKey","sg","_sig","fromDER","derError","fromCompact","message","is","A","B","tv6","bool","TypeError","exists","instance","checkFinished","destroyed","finished","output","min","assert","SHA2","_assert_js_1","Hash","padOffset","buffer","view","createView","default","take","process","dataView","roundClean","digestInto","byteOffset","setBigUint64","_32n","_u32_max","wh","wl","setUint32","oview","outLen","state","destroy","_cloneInto","crypto","globalThis","HMAC","_key","iHash","oHash","buf","getPrototypeOf","sha224","sha256","_sha2_js_1","Maj","SHA256_K","Uint32Array","IV","SHA256_W","SHA256","C","D","F","getUint32","W15","W2","s0","rotr","s1","T1","T2","SHA224","wrapConstructor","wrapConstructorWithOpts","checkOpts","asyncLoop","nextTick","u32","u8","crypto_1","byteLength","floor","DataView","word","shift","uint8a","async","iters","tick","cb","ts","Date","now","diff","arrays","every","clone","defaults","obj","prototype","call","assign","hashConstructor","hashC","hashCons","bytesLength","getRandomValues","_a","schnorr","secp256k1","sha256_1","htf","_shortw_utils_js_1","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b6","b9","b11","b22","b44","b88","b176","b220","b223","a1","a2","POW_2_128","fe","TAGGED_HASH_PREFIXES","taggedHash","tag","messages","tagP","tagH","charCodeAt","pointToBytes","numTo32b","modP","GmulAdd","schnorrGetExtPubKey","priv","d_","lift_x","xx","challenge","schnorrVerify","pub","auxRand","t","k_","rx","isoMap","mapSWU","scalars","aa","defineProperties","da","Symbol","ea","fa","configurable","writable","ha","iterator","next","ia","done","ca","split","ba","ja","ka","execScript","splice","propertyIsEnumerable","la","oa","qa","ra","arguments","sa","va","Function","displayName","name","arrClean","wa","w","hasOwnProperty","xa","fromCharCode","apply","sort","toArray","Mc","toObject","fromObject","Jb","getLength","clear","Cb","del","Eb","getEntryList","keys","values","has","Jc","Va","Ya","serializeBinary","deserializeBinary","bb","ya","za","Aa","Ba","Ca","M","join","Da","indexOf","charAt","La","test","Ea","concat","yb","ee","FLOAT","ke","te","je","xb","wb","BOOL","re","ie","le","ce","se","me","ne","oe","pe","he","ve","ue","de","qe","Fa","Ga","Ha","round","log","LN2","Ia","Ja","Ka","Ma","Na","NaN","Infinity","Oa","Pa","Qa","Ra","Sa","Ta","Ua","ArrayBuffer","toLowerCase","toUpperCase","Wa","pop","J","O","getInstanceCacheLength","alloc","free","Y","getBuffer","setBlock","Db","getEnd","setEnd","getCursor","setCursor","advance","atEnd","Qb","pastEnd","getError","readSplitVarint64","readSplitZigzagVarint64","ta","readSplitFixed64","kb","skipVarint","mb","unskipVarint","readUnsignedVarint32","readSignedVarint32","readSignedVarint32String","readZigzagVarint32","readUnsignedVarint64","readUnsignedVarint64String","readSignedVarint64","readSignedVarint64String","readZigzagVarint64","fb","readZigzagVarintHash64","readZigzagVarint64String","Gc","readUint8","Ec","readUint16","readUint32","ga","readUint64","readUint64String","Xb","readInt8","Vb","readInt16","readInt32","readInt64","readInt64String","readFloat","readDouble","pa","readBool","readEnum","readString","Dc","readStringWithLength","readBytes","readVarintHash64","$","readFixedHash64","K","Xa","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","max","MAX_VALUE","ab","db","eb","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","compareExtensions","compareFields","Bb","cloneMessage","copyInto","registerMessageType","we","dump","X","T","lo","hi","rb","U","V","sb","substring","tb","end","ub","vb","ua","$name","exec","extensionObject_","$extensions","extensions","replace","writeSplitVarint64","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","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","Message","BinaryReader","BinaryWriter","ExtensionFieldInfo","ExtensionFieldBinaryInfo","exportSymbol","inherits","extend","typeOf","jspb","goog","global","proto","google","protobuf","Any","opt_data","DEBUG","COMPILED","opt_includeInstance","includeInstance","typeUrl","getValue_asB64","$jspbMessageInstance","reader","deserializeBinaryFromReader","setTypeUrl","setValue","writer","serializeBinaryToWriter","getTypeUrl","getValue_asU8","getValue","getTypeName","pack","serialized","opt_typeUrlPrefix","substr","unpack","deserialize","require","google_protobuf_any_pb","TronWebProto","AccountId","Vote","Proposal","repeatedFields_","Exchange","Account","Frozen","AccountResource","Key","DelegatedResource","authority","Permission","Witness","Votes","MarketOrderDetail","Transaction","Contract","Result","raw","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","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","code","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","weight","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","id","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","url","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","provider","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","ret","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","getHash_asB64","setHash","setNumber","getHash_asU8","getNumber","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","version","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","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","red","_init","Buffer","wordSize","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","start","move","dest","src","_initNumber","_initArray","_parseHex","_parseBase","off","_strip","limbLen","limbPow","total","imuln","_iaddn","copy","_move","_expand","size","_normSign","for","inspect","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modrn","idivn","toNumber","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","allocUnsafe","allocate","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","revBin","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","isqr","toBitArray","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","qj","divmod","positive","divn","umod","divRound","dm","half","r2","andln","modn","egcd","isEven","yp","xp","im","jm","gcd","_invmp","x1","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","input","prev","mod3","one","nOne","lpow","wnd","current","currentLen","mont","secp256k1_1","enumerable","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","__proto__","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","listenerCount","emit","removeListener","on","removeAllListeners","prefixed","scope","func","Promise","resolve","reject","err","bind","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","versions","node","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","methods","createKmacOutputMethod","createOutputMethods","method","createMethod","algorithms","bytepad","Kmac","methodNames","algorithm","methodName","newMethodName","blocks","finalized","block","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","unshift","encodeString","strs","paddingBytes","finalize","arrayBuffer","c0","c8","c9","b10","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b45","b46","b47","b48","b49","prop","qs","sep","regexp","maxKeys","kstr","vstr","idx","decodeURIComponent","xs","stringifyPrimitive","isFinite","objectKeys","ks","encodeURIComponent","decode","parse","stringify","SemVer","env","NODE_DEBUG","console","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","loose","includePrerelease","er","trim","match","major","minor","patch","prerelease","build","format","valid","clean","compare","compareMain","comparePre","compareIdentifiers","inc","release","identifier","version1","version2","v1","v2","defaultResult","numeric","anum","bnum","neq","op","Comparator","semver","ANY","operator","rcompareIdentifiers","compareLoose","rcompare","list","rsort","Range","range","parseRange","filter","isX","hyphenReplace","$0","fM","fm","fp","fpr","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","replaceXRange","replaceXRanges","replaceStars","parseComparator","thisComparators","thisComparator","rangeComparators","rangeComparator","toComparators","maxSatisfying","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","compver","validRange","ltr","gtr","parsed","r1","coerce","_typeof","_toDate","_interopRequireDefault","_toFloat","_toInt","_toBoolean","_equals","_contains","_matches","_isEmail","_isURL","_isMACAddress","_isIP","_isIPRange","_isFQDN","_isDate","_isTime","_isBoolean","_isLocale","_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","_isRFC","_isISO31661Alpha","_isISO31661Alpha2","_isISO3","_isBase","_isBase2","_isBase3","_isDataURI","_isMagnetURI","_isMimeType","_isLatLong","_isPostalCode","_ltrim","_rtrim","_trim","_escape","_unescape","_stripLow","_whitelist","_blacklist","_isWhitelisted","_normalizeEmail","_isSlug","_isLicensePlate","_isStrongPassword","_isVAT","_getRequireWildcardCache","WeakMap","cache","__esModule","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_default","toDate","toFloat","toInt","toBoolean","contains","matches","isEmail","isURL","isMACAddress","isIP","isIPRange","isFQDN","isBoolean","isIBAN","isBIC","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","isISO6391","isISO8601","isRFC3339","isISO31661Alpha2","isISO31661Alpha3","isISO4217","isBase32","isBase58","isBase64","isDataURI","isMagnetURI","isMimeType","isLatLong","ltrim","rtrim","escape","unescape","stripLow","whitelist","blacklist","isWhitelisted","normalizeEmail","isSlug","isStrongPassword","isTaxID","isDate","isTime","isLicensePlate","isVAT","ibanLocales","commaDecimal","dotDecimal","bengaliLocales","farsiLocales","arabicLocales","englishLocales","decimal","alphanumeric","alpha","ar","bn","locale","_locale","_i","_locale2","_i2","_locale3","_i3","_i4","_i5","chars","_assertString","elem","_merge","defaulContainsOptions","ignoreCase","_toString","minOccurrences","comparison","date","comparisonDate","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","sanitized","cards","allCards","amex","dinersclub","discover","jcb","mastercard","unionpay","visa","decimal_digits","digits_after_decimal","digit","symbol","require_symbol","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","_e2","normalCompletion","didErr","step","_e3","return","_createForOfIteratorHelper","_step$value","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","_nonIterableRest","dateWord","formatWord","getDate","_arrayLikeToArray","arr2","default_decimal_options","_includes","force_decimal","decimalRegExp","ean","remainder","actualCheckDigit","validEanRegex","char","LENGTH_EAN_8","LENGTH_EAN_14","getPositionWeightThroughLengthAndIndex","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","parts","domain","lower_domain","host_blacklist","host_whitelist","user","domain_specific_validation","username","_user_parts","gmailUserPart","require_tld","allow_ip_domain","startsWith","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","allow_underscores","float","parseFloat","fullWidth","strippedStr","hslComma","hslSpace","halfWidth","md5","md4","sha1","sha384","sha512","ripemd128","ripemd160","tiger128","tiger160","tiger192","crc32","crc32b","hexcolor","hexadecimal","isoCountryCode","ibanRegexThroughCountryCode","hasValidIbanFormat","hasValidIbanChecksum","AD","AE","AL","AT","AZ","BA","BE","BG","BH","BR","BY","CH","CR","CY","CZ","DE","DK","DO","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","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","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","subnetMaybe","expectedSubnet","v4Subnet","v6Subnet","isbn","sanitizedIsbn","checksum","possibleIsbn10","possibleIsbn13","factor","isin","trunc","_digit","check","validISO31661Alpha2CountriesCodes","Set","validISO31661Alpha3CountriesCodes","validISO4217CurrencyCodes","CurrencyCodes","isISO6391Set","strictSeparator","iso8601StrictSeparator","iso8601","strict","isValidDate","ordinalMatch","oYear","oDay","year","month","day","monthString","dayString","getUTCFullYear","getUTCMonth","getUTCDate","isrc","testIssn","issn","require_hyphen","case_sensitive","digits","validator","weightOfDigits","allow_leading_zeroes","lastDigit","charsValue","IN","lastNumber","TH","LK","incNum","idCardNo","provincesAndCities","powers","parityBit","checkAddressCode","addressCode","checkBirthDayCode","birDayCode","yyyy","mm","xdata","getFullYear","getMonth","check15IdCardNo","id17","getParityBit","checkParityBit","check18IdCardNo","regexIsDigit","checkSumVal","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","localeReg","tmpNum","shouldDouble","eui","no_colons","no_separators","macAddress48NoSeparators","macAddress64NoSeparators","macAddress48","macAddress48WithDots","macAddress64","macAddress64WithDots","magnetURIComponent","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","phones","multibyte","no_symbols","numericNoSymbols","octal","normalizedStr","passportRegexByCountryCode","AM","AR","AU","CA","CN","DZ","ID","JM","JP","KR","LY","MY","MX","NZ","PH","RU","SL","US","patterns","threeDigit","fourDigit","fiveDigit","sixDigit","HT","KE","MG","NP","PR","SG","TW","ZA","ZM","rfc3339","timeHour","timeMinute","timeNumOffset","source","timeOffset","partialTime","fullDate","fullTime","includePercentValues","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","semanticVersioningRegex","charsetRegex","analysis","password","charMap","countChars","uniqueChars","uppercaseCount","lowercaseCount","numberCount","symbolCount","upperCaseRegex","lowerCaseRegex","numberRegex","symbolRegex","analyzePassword","returnScore","scoringOptions","pointsPerUnique","pointsPerRepeat","pointsForContainingLower","pointsForContainingUpper","pointsForContainingNumber","pointsForContainingSymbol","scorePassword","minLength","minLowercase","minUppercase","minNumbers","minSymbols","surrogatePair","strcopy","taxIdFormat","sanitizeRegexes","taxIdCheck","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","digitsArray","even","cur","reverseMultiplyAndSum","prefixes","location","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","enUsGetPrefixes","lead_replace","checkdigits","verhoeffCheck","number_replace","_number_locations","char_to_int","odd_convert","_i6","_char_to_int","multiplier","first_part","lookup","_checksum","_i7","_sum","_i8","identifiers","verificators","_i9","_i10","multipliers","tin_copy","current_year","current_century","allsymbols","default_time_options","formats","hourFormat","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","NG","UZ","BO","CL","CO","EC","HN","NI","PA","PY","PE","UY","VE","modifiers","email","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","d_table","p_table","str_copy","invalidType","arrVal","flags","regexpAsStringLiteral","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","doneResult","isGeneratorFunction","genFun","mark","setPrototypeOf","awrap","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","getter","ns","getOwnPropertyNames","definition","nmd","paths","children","asyncGeneratorStep","_next","_throw","Constructor","_toPropertyKey","prim","toPrimitive","_defineProperties","target","props","descriptor","protoProps","staticProps","ReferenceError","_setPrototypeOf","subClass","superClass","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","content","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","lastIndex","forEachEntry","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","generateString","alphabet","random","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","catch","AxiosError","config","request","response","captureStackTrace","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","predicates","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","isFlatArray","el","exposedHelpers","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","hasBrowserEnv","document","hasStandardBrowserEnv","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","rawValue","parser","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","normalized","formatHeader","targets","asStrings","first","computed","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","write","expires","secure","cookie","toGMTString","read","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","pathname","requestURL","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","Boolean","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","renderReason","reason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","deprecatedWarnings","formatMessage","opt","warn","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","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","toFormData","Cancel","promises","spread","callback","isAxiosError","payload","formToJSON","Base64","_this","_keyStr","chr1","chr2","chr3","enc1","enc2","enc3","enc4","encodeIgnoreUtf8","inputBytes","_utf8_decode","decodeToByteArray","_out2ByteArray","utftext","byteArray","_utf8_encode","byte2hexStr","hexByteMap","bytesToString","store","st","hextoString","byteArray2hexStr","base64DecodeFromString","string64","base64EncodeToString","_toConsumableArray","ADDRESS_SIZE","ADDRESS_PREFIX","ADDRESS_PREFIX_BYTE","ADDRESS_PREFIX_REGEX","TRON_BIP39_PATH_INDEX_0","TRON_BIP39_PATH_PREFIX","bin2String","arrayEquals","array1","array2","stringToBytes","hexChar2byte","isHexChar","hexStr2byteArray","strToDate","tempStrs","dateStrs","timeStrs","hour","minute","getStringType","ALPHABET_MAP","encode58","decode58","_classExtractFieldDescriptor","receiver","privateMap","action","ZeroHash","checkType","types","argument","resolveProperties","_x","_resolveProperties","_asyncToGenerator","_callee","results","_context","accum","HEX","isError","makeError","details","RangeError","assertArgument","assertArgumentCount","expectedCount","_normalizeForms","form","assertNormalize","operation","assertPrivate","givenGuard","guard","className","_getBytes","getBytesCopy","isHexString","isBytesLike","HexCharacters","hexlify","datas","dataLength","dataSlice","zeroPadValue","zeroPad","BN_0","BN_1","maxValue","_width","getBigInt","limit","fault","getUint","isInteger","Nibbles","toBigInt","toBeHex","toBeArray","BN_2","BN_27","BN_28","BN_35","_guard","toUint256","_r2","_v2","_networkV","_Symbol$for","_classCallCheck","_classPrivateFieldInitSpec","_classPrivateFieldSet","_createClass","_classPrivateFieldGet","networkV","getChainId","yParityAndS","yParity","_type","bv","chainId","assertError","getNormalizedV","_r","_ref","_v","pbkdf2","salt","PRF","PRFSalt","_password","_salt","_opts","asyncTick","pbkdf2Init","prfW","ti","Ti","setInt32","ui","pbkdf2Output","Chi","U32_MASK64","fromBig","u64","Ah","Al","toBig","shrSH","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","rotlSH","rotlSL","rotlBH","rotlBL","Bh","Bl","add3L","Cl","add3H","Ch","add4L","Dl","add4H","Dh","add5H","Eh","add5L","El","SHA512_Kh","SHA512_Kl","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","SHA512_256","SHA384","anyGlobal","getGlobal","msCrypto","createHash","algo","_sha256","_sha512","__sha256","__sha512","locked256","locked512","_data","register","locked","_pbkdf2","iterations","keylen","_algo","pbkdf2Sync","__pbkdf2","ignoreFunc","badCodepoint","Utf8ErrorFuncs","toUtf8Bytes","toUtf8String","onError","_bytes","extraLength","overlongMask","nextChar","getUtf8CodePoints","codePoint","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_7n","_256n","_0x71n","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","suffix","enableXOF","rounds","posOut","state32","keccak","idx1","idx0","B0","B1","Th","Tl","curH","curL","keccakP","writeInto","bufferOut","xofInto","xof","keccak_256","genShake","_keccak256","__keccak256","keccak256","subsChrs","Word","unfold","initial","Wordlist","_defineProperty","phrase","_words","_loadWords","WeakSet","WordlistOwl","_Wordlist","_inherits","_super","_assertThisInitialized","subs","clumps","leftover","semi","_classPrivateMethodGet","_loadWords2","_decodeWords","wordlist","LangEn","_WordlistOwl","getUpperMask","mnemonicToEntropy","mnemonic","entropy","getWordIndex","entropyBits","checksumMask","entropyToMnemonic","indices","remainingBits","checksumBits","getWord","Mnemonic","_entropy","_computeHmac","createHmac","__computeHmac","computeHmac","BN_36","getChecksumAddress","expanded","hashed","ibanLookup","safeDigits","Base36","ibanChecksum","fromBase36","_slicedToArray","fieldLen","groupLen","USE_ENDOMORPHISM","ShaError","assertJacPoint","JacobianPoint","scratch","toAffineBatch","Z1Z1","Z2Z2","S1","S2","x1b","HH","HHH","P0","normalizeScalar","affinePoint","invZ","iz1","iz2","iz3","isShort","bytesToNumber","isValidFieldElement","rt","isYOdd","fromCompressedHex","fromUncompressedHex","normalizePrivateKey","normalizeSignature","truncateHash","numTo32bStr","toHexX","toRawX","aP","bQ","sliceDER","parseDERInt","parseDERSignature","HALF","sHex","rHex","sHexL","rHexL","sLen","rLen","POW_2_256","truncateOnly","bits2int_2","_sha256Sync","_hmacSha256Sync","HmacDrbg","counter","hmacSha256","hmacSync","checkSync","incr","reseedSync","generateSync","kmdToSig","kinv","bits2octets","z1","z2","web","_bigintTo32Bytes","_normalizePrivateKey","hashToPrivateKey","cached","subtle","ckey","importKey","sha256Sync","hmacSha256Sync","taggedHashSync","_JacobianPoint","_len","_privateKey","SigningKey","computePublicKey","_secp256k1$signSync","h1","initSigArgs","canonical","recSig","der","recovered","finalizeSig","_secp256k1$signSync2","sigDer","recid","pubKey","compressed","fromSignature","p0","pub0","pub1","computeAddress","recoverAddress","_construct","Parent","Class","Reflect","construct","sham","Proxy","valueOf","_wrapNativeSuper","_cache","Wrapper","WordSize","Padding","passProperties","throwError","wrapped","_names","_Array","items","nameCounts","_possibleConstructorReturn","_len2","_key2","_this2","Coder","localName","dynamic","_dataLength","_writeData","Writer","_classPrivateMethodInitSpec","_writeData2","paddingOffset","_this3","_data2","_offset","_peekBytes","Reader","allowLoose","_peekBytes2","alignedLength","_gaurd","signed","Typed","_typedSymbol","_options","gaurd","isTyped","AddressCoder","_Coder","_throwError","writeValue","readValue","AnonymousCoder","coder","coders","arrayValues","unique","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","writeUpdatableValue","baseOffset","appendWriter","baseReader","subReader","readIndex","offsetReader","baseType","ArrayCoder","defaultChild","BooleanCoder","_get","property","DynamicBytesCoder","_createSuper","BytesCoder","_DynamicBytesCoder","_super2","_getPrototypeOf","FixedBytesCoder","Empty","NullCoder","BN_MAX_UINT256","NumberCoder","maxUintValue","bounds","StringCoder","TupleCoder","uniqueNames","setify","_kwVisib","_kwTypes","_kwModifiers","KwModifiers","Keywords","SimpleTokens","regexWhitespacePrefix","regexNumberPrefix","regexIdPrefix","regexId","regexType","_tokens","_subTokenString","TokenString","top","peek","text","_subTokenString2","link","linkNext","peekType","_this$offset","linkBack","consumeKeywords","keywords","keyword","regexArrayType","verifyBasicType","internal","ParamTypeInternal","_walkAsync","ParamType","arrayLength","arrayChildren","_walkAsync3","isTuple","walk","_walkAsync2","_x2","allowIndexed","isParamType","brackets","commas","depth","lex","popParams","popType","bracket","arrayMatch","childType","param","_components$index","_callee2","_context2","PanicReasons","paramTypeBytes","paramTypeNumber","defaultCoder","_getCoder","AbiCoder","_getCoder2","tx","abiCoder","revert","transaction","invocation","getBuiltinCallException","defaultAbiCoder","_this4","checkAddress","_checkAddress","resolveAddress","resolver","resolveName","MessagePrefix","BN__1","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","toQuantity","getBaseEncoder","boundsUpper","boundsLower","hexPadRight","encodeType","fields","_types","_fullTypes","_encoderCache","_getEncoder","TypedDataEncoder","links","parents","subtypes","primaryTypes","primaryType","checkCircular","found","_step2","_iterator2","child","_step3","_iterator3","subtype","_step4","_iterator4","_step4$value","_resolveNames","_getEncoder2","getEncoder","encodeData","hashStruct","_visit","_ref2","domainFields","EIP712Domain","hashDomain","ensCache","_x3","_x4","domainValues","domainTypes","typesWithDomain","subEncoder","encodedType","_ref3","hexlifyByte","unarrayifyInteger","_decodeChildren","childOffset","decoded","_decode","consumed","checkOffset","lengthLength","decodeRlp","arrayifyInteger","nibbles","encodeRlp","accessSetify","addr","storageKeys","storageKey","accessListify","localeCompare","BN_MAX_UINT","handleAddress","handleAccessList","handleNumber","handleUint","formatNumber","formatAccessList","_serializeLegacy","nonce","gasPrice","gasLimit","legacyChainId","legacy","_parseEipSignature","_serializeEip1559","maxPriorityFeePerGas","maxFeePerGas","accessList","_serializeEip2930","_to","_nonce","_gasLimit","_gasPrice","_maxPriorityFeePerGas","_maxFeePerGas","_value2","_chainId","_accessList","unsignedSerialized","unsignedHash","inferType","inferTypes","hasGasPrice","hasFee","hasAccessList","_parseLegacy","_parseEip2930","_parseEip1559","isSigned","copyRequest","req","blockTag","enableCcipReadEnabled","enableCcipRead","customData","checkProvider","signer","populate","_populate","_callee12","_context12","AbstractSigner","_sendTransaction","_resolveName","_call","_estimateGas","_populateTransaction","_populateCall","_getNonce","getTransactionCount","_callee3","network","hasEip1559","feeData","_feeData","_context3","getNonce","estimateGas","getNetwork","getFeeData","_x5","_callee4","_context4","populateCall","_x6","_callee5","_context5","_x7","_callee6","_context6","_x8","_callee7","txObj","_context7","populateTransaction","signTransaction","broadcastTransaction","_x9","_throwUnsupported","VoidSigner","_AbstractSigner","_signMessage","_signTransaction","_getAddress","_callee8","_context8","_callee9","_context9","_throwUnsupported2","_x10","_callee10","_context10","_x11","_signTypedData","_callee11","_context11","_x12","_x13","_x14","_signingKey","BaseWallet","signingKey","_yield$resolvePropert","btx","signMessageSync","hashMessage","populated","Rho","Pi","idxL","idxR","shifts","shiftsL","shiftsR","Kl","Kr","rotl","group","BUF","RIPEMD160","h0","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","Alphabet","Lookup","getAlpha","letter","_AES_key","_AES_Kd","_AES_Ke","BN_58","__classPrivateFieldGet","__classPrivateFieldSet","numberOfRounds","rcon","Si","T3","T4","T5","T6","T7","T8","U3","U4","convertToInt32","AES","roundKeyCount","KC","tk","tt","rconpointer","encrypt","plaintext","decrypt","ciphertext","cls","aes","_CBC_iv","_CBC_lastBlock","CBC","iv","_CTR_remaining","_CTR_remainingIndex","_CTR_counter","CTR","initialValue","setCounterValue","setCounterBytes","increment","_b","crypttext","XorAndSalsa","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","scryptAsync","lockedSync","lockedAsync","_scryptAsync","passwd","_nobleAsync","_scryptSync","_nobleSync","__scryptAsync","__scryptSync","scrypt","_scrypt","_passwd","scryptSync","uuidV4","looseArrayify","hexString","zpad","getPassword","spelunk","_path","reqd","defaultPath","isKeystoreJson","json","mnemonicKey","mnemonicCiphertext","mnemonicIv","mnemonicAesCtr","getDecryptKdfParams","kdf","prf","stall","duration","decryptKeystoreJson","_decryptKeystoreJson","_salt3","_dkLen3","_key3","getEncryptKdfParams","_encryptKeystore","uuidRandom","derivedKey","macPrefix","mac","Crypto","cipher","cipherparams","kdfparams","dklen","client","gethFilename","getUTCHours","getUTCMinutes","getUTCSeconds","mnemonicCounter","encryptKeystoreJsonSync","passwordBytes","encryptKeystoreJson","_encryptKeystoreJson","progressCallback","MasterSecret","HardenedBit","encodeBase58Check","encodeBase58","ser_I","chainCode","derivePath","component","deriveChild","_account","HDNodeWallet","_BaseWallet","_encrypt","parentFingerprint","compressedPublicKey","fingerprint","_account2","HDNodeVoidWallet","_index","_ser_I","ki","extendedKey","decodeBase58","_classStaticPrivateMethodGet","_fromSeed","computeSeed","_seed","_VoidSigner","_ser_I2","Ki","isCrowdsaleJson","encseed","decryptCrowdsaleJson","encryptedSeed","padder","pkcs7Strip","seedHex","Wallet","_fromEncryptedJson","_fromAccount","decryptKeystoreJsonSync","wallet","connect","wordlists","en","KwVisib","KwTypes","allowSingle","included","consumeName","peekKeyword","consumeMutability","consumeParams","consumeGas","consumeEoi","ErrorFragmentInternal","EventFragmentInternal","ConstructorFragmentInternal","FallbackFragmentInternal","FunctionFragmentInternal","StructFragmentInternal","Fragment","inputs","ConstructorFragment","ErrorFragment","EventFragment","FallbackFragment","FunctionFragment","StructFragment","isFragment","NamedFragment","_Fragment","joinParams","_NamedFragment","_NamedFragment2","_super3","_this5","topicHash","_Fragment2","_super4","gas","_this6","stateMutability","_Fragment3","_super5","_this7","errorObj","popKeyword","mutability","outputs","_NamedFragment3","_super6","_this8","selector","_NamedFragment4","_super7","_this9","LogDescription","fragment","topic","TransactionDescription","ErrorDescription","Indexed","_isIndexed","BuiltinErrors","_errors","_functions","_abiCoder","_getFunction","_getEvent","Interface","fragments","frags","fallback","receive","getAbiCoder","bucket","deploy","minimal","_getFunction2","_getEvent2","matching","_step3$value","matchStr","_encodeParams","_decodeParams","getFunction","ef","parseTransaction","getEvent","topics","encodeTopic","dataTypes","dataValues","eventTopic","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","fromItems","decodeEventLog","hexData","forceUnique","_step5","_iterator5","_step5$value","lastValue","valueLength","allowOptions","lastArg","_step6","_iterator6","_step7","_iterator7","_step7$value","splitSignature","sigBytes","joinSignature","splitSig","arrayify","FormatTypes","sighash","full","isValidMnemonic","TronWeb","getBase58CheckAddress","addressBytes","hash0","checkSum","decodeBase58Address","base58Sting","checkSum1","priKeyBytes","ECKeySign","txID","ecRecover","signedData","arrayToBase64String","signBytes","contents","messageDigest","getRowBytesFromTransactionBase64","base64Data","bytesDecode","genPriKey","priKeyHex","secp","pubBytes","getAddressFromPriKey","getPubKeyFromPriKey","decode58Check","addressStr","decodeCheck","decodeData","hash1","isAddressValid","base58Str","getBase58CheckAddressFromPriKeyBase64String","priKeyBase64String","getHexStrAddressFromPriKeyBase64String","getAddressFromPriKeyBase64String","normalizePrivateKeyBytes","xHex","yHex","hashBytes","msgBytes","passwordToAddress","pkToAddress","INVALID_TRON_PATH_ERROR_MSG","generateAccount","pubKeyBytes","generateRandom","ethersHDNodeWallet","generateAccountWithMnemonic","fromPhrase","_permanentCensorErrors","_censorErrors","LogLevels","warning","_logLevel","_globalLogger","_normalizeError","missing","_checkNormalize","LogLevel","ErrorCode","_log","logLevel","level","throwArgumentError","levels","INFO","WARNING","errors","UNKNOWN_ERROR","messageDetails","NUMERIC_FAULT","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","INVALID_ARGUMENT","checkNormalize","UNSUPPORTED_OPERATION","checkSafeUint53","checkArgumentCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","checkAbstract","censorship","permanent","globalLogger","logger","isHexable","addSlice","allowMissingPrefix","toHexString","hexPad","objects","defineReadOnly","_constructorGuard","MAX_SAFE","_warnedToStringRadix","constructorGuard","_hex","_isBigNumber","toBigNumber","toBN","throwFault","isNegative","shr","anyValue","_padding","hexConcat","_getValue","coerceFunc","_coerceFunc","log10","LN10","hexZeroPad","NegativeOne","Zero","One","MaxUint256","UnicodeNormalizationForm","Utf8ErrorReason","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","OVERLONG","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","ModifiersBytes","calldata","memory","storage","ModifiersNest","checkModifier","paramTypeArray","_isParamType","verifyType","originalParam","newNode","parent","allowType","allowParams","allowName","allowArray","sibling","readArray","parseParamType","_getWordSize","_getReader","_getWriter","getDefaultValue","_addressToHex","deepCopy","_array","newTarget","decodeParams","ignoreMethodHash","encodeParams","extractSize","extractArrayDim","encodeParamsV2ByABI","funABI","buildFullTypeDefinition","typeDef","innerTypes","innerType","convertAddresses","addrArr","addrs","mapTuple","dimension","encodeArgs","convertTypes","decodeParamsV2ByABI","decodeResult","buildFullTypeNameDefinition","outputTypes","convertTypeNames","decodeResCopy","TRON_MESSAGE_PREFIX","signMessage","verifyMessage","_require","_require2","_require3","_require4","_require6","_require8","_require9","_require10","fromHexString","buildCommonTransaction","contractType","typeName","contract","contractJsonToProtobuf","to_address","owner_address","transferContract","Permission_id","buildTransferContract","asset_name","buildTransferAssetContract","pbObj","buildParticipateAssetIssueContract","triggerSmartContract","contract_address","_value$parameter","function_selector","call_value","call_token_value","token_id","contractData","sha3","buildTriggerSmartContract","freezeBalanceContract","frozen_balance","frozen_duration","receiver_address","buildFreezeBalanceContract","unfreezeBalanceContract","buildUnfreezeBalanceContract","withdrawbalanceContract","buildWithdrawBalanceContract","freezeBalanceV2Contract","buildFreezeBalanceV2Contract","withdrawExpireUnfreeze","buildCancelFreezeBalanceV2Contract","unfreezeBalanceV2Contract","unfreeze_balance","buildUnfreezeBalanceV2Contract","delegateResourceContract","_value$lock","lock_period","buildDelegateResourceContract","unDelegateResourceContract","buildUnDelegateResourceContract","buildWithdrawExpireUnfreezeContract","createWitnessContract","buildCreateWitness","voteWitnessContract","votes","voteItem","vote","vote_address","vote_count","numberOfVotes","buildVoteWitnessAccount","new_contract","_objectSpread","consume_user_resource_percent","origin_energy_limit","_params$bytecode","contracName","_params$parameter","origin_address","createSmartContract","smartContractBuilder","abiJson","entrys","abiBuilder","buildEntryParam","entryBuilders","entryBuilder","bytecodeParameter","buildCreateSmartContract","clearABIContract","buildClearABIContract","updateBrokerageContract","buildUpdateBrokerageContract","total_supply","trx_num","start_time","end_time","free_asset_net_limit","public_free_asset_net_limit","_value$public_free_as","public_free_asset_net_usage","_value$public_latest_","public_latest_free_net_time","_value$vote_score","vote_score","frozen_supply","assetIssueContract","frozenSupplyContract","frozen_amount","frozen_days","buildAssetIssueContract","accountCreateContract","account_address","buildAccountCreateContract","accountUpdateContract","account_name","buildAccountUpdateContract","setAccountIdContract","account_id","buildSetAccountIdContract","proposalCreateContract","parameters","buildProposalCreateContract","proposalDeleteContract","proposal_id","buildProposalDeleteContract","proposalVoteContract","is_add_approval","buildVoteProposalContract","exchangeCreateContract","first_token_id","first_token_balance","second_token_id","second_token_balance","buildExchangeCreateContract","exchangeInjectContract","exchange_id","buildExchangeInjectContract","exchangeWithdrawContract","buildExchangeWithdrawContract","exchangeTransactionContract","buildExchangeTransactionContract","updateSettingContract","buildUpdateSettingContract","updateEnergyLimitContract","buildUpdateEnergyLimitContract","accountPermissionUpdateContract","actives","buildPermission","permission","permission_name","keyBuilder","active","buildAccountPermissionUpdateContract","updateAssetContract","new_limit","new_public_limit","buildUpdateAssetContract","txJsonToPb","contractJson","transactionObj","rawDataObj","ref_block_bytes","ref_block_hash","fee_limit","txJsonToPbWithArgs","compareTransaction","transactionPb","rawDataBytes","rawDataHex","raw_data_hex","txPbToRawDataHex","txCheck","txCheckWithArgs","txPbToTxID","mathceil","mathfloor","bignumberError","tooManyDigits","LOG_BASE","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","intCheck","toExponential","toFixedPoint","zs","configObject","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","BigNumber","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","alphabetHasNormalDecimalDigits","caseChanged","rm","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","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","dp","plus","toBaseOut","baseIn","baseOut","arrL","callerIsToString","temp","xlo","xhi","klo","khi","aL","bL","more","prod","prodL","rem","remL","rem0","xi","xL","yc0","yL","yz","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","isModExp","nIsBig","nIsNeg","nIsOdd","times","integerValue","isEqualTo","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","isPositive","minus","xLTy","xe","ye","multipliedBy","xcL","ycL","ylo","yhi","sqrtBase","negated","shiftedBy","squareRoot","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","intDigits","toFraction","d0","d1","d2","exp","n0","n1","toPrecision","isValidURL","isJson","ex","isHex","hasProperty","hasProperties","properties","mapEvent","block_number","block_timestamp","event_name","transaction_id","resourceNode","resource_Node","_unconfirmed","unconfirmed","_fingerprint","parseEvent","_abi$index","padLeft","isNotNullOrUndefined","sleep","_arguments","millis","accounts","_TypedDataEncoder","ethersUtils","HttpProvider","statusPage","_isConnected","_args","Validator","tronWeb","no","optional","isAddress","notPositive","notEqual","invalid","fromUtf8","deepCopyJson","resultManager","toUtf8","checkBlockHeader","createTransaction","_createTransaction","_args7","type_url","fullNode","detail","block_header","raw_data","blockID","t6","t7","visible","getTransactionOptions","blockHeader","TransactionBuilder","injectPromise","injectpromise","_addUpdateData","_extendExpiration","_alterTransaction","_newTxID","_deployConstantContract","defaultAddress","sendTrx","notValid","transactionOptions","_options2","tokenID","sendToken","_options3","issuerAddress","buyer","purchaseToken","_options4","freezeBalance","_options5","_options6","freezeBalanceV2","_options7","unfreezeBalanceV2","_options8","cancelUnfreezeBalanceV2","_options9","delegateResource","_options10","undelegateResource","_options11","_options12","withdrawBlockRewards","_options13","applyForSR","_options14","voterAddress","srAddress","userFeePercentage","tokenValue","_options$abi","_options$bytecode","_options$parameters","_options$name","_unused","rawParameter","funcABIV2","parametersV2","constructorParams","_loop","replaceAddressPrefix","_ret","_args$origin_address","_params$","txLocal","_triggerSmartContractLocal","_triggerSmartContract","_isConstant","_len3","confirmed","_len4","_key4","estimateEnergy","_options$callValue","pathInfo","_args2","energy_used","energy_required","functionSelector","_loop2","_parameters$i","shieldedParameter","_Object$assign","_getTriggerSmartContractArgs","_Object$assign2","resultManagerTriggerSmartContract","_options15","clearABI","trx","contracts","_options16","updateBrokerage","createToken","_options$name2","_options$abbreviation","abbreviation","_options$description","_options$url","_options$totalSupply","_options$trxRatio","trxRatio","_options$tokenRatio","tokenRatio","_options$saleStart","saleStart","_options$saleEnd","saleEnd","_options$freeBandwidt","freeBandwidth","_options$freeBandwidt2","freeBandwidthLimit","_options$frozenAmount","_options$frozenDurati","_options17","createAccount","_options18","updateAccount","_options19","_options21","updateToken","_options20","_options20$descriptio","_options20$url","_options20$freeBandwi","_options20$freeBandwi2","_options22","createProposal","_options23","proposalID","deleteProposal","_options24","isApproval","voteProposal","tokenName","tokenBalance","trxBalance","_options25","createTRXExchange","firstTokenName","secondTokenName","_options26","createTokenExchange","_options27","exchangeID","tokenAmount","injectExchangeTokens","_options28","withdrawExchangeTokens","_options29","tokenAmountSold","tokenAmountExpected","tradeExchangeTokens","fromAscii","_options30","updateSetting","_options31","updateEnergyLimit","permissions","_options32","ownerPermissions","witnessPermissions","activesPermissions","updateAccountPermissions","checkPermissions","activesPermission","_ownerPermissions","_witnessPermissions","_activesPermissions","activePermissions","_options33","newTxID","newTransaction","_args4","alterTransaction","dataFormat","extension","_options34","_args5","extendExpiration","_options35","_args6","addUpdateData","TRX_MESSAGE_HEADER","ETH_MESSAGE_HEADER","Trx","_getEnergyPrices","_getBandwidthPrices","_getBrokerage3","_getReward3","_getUnconfirmedBrokerage","_getBrokerage2","_getUnconfirmedReward","_getReward2","_updateAccount","_unfreezeBalance","_freezeBalance","_sendToken","_getSignWeight","_getApprovedList","_multiSign","_sign","_verifyMessage","_getTransactionsRelated","getCurrentBlock","getConfirmedCurrentBlock","solidityNode","defaultBlock","getBlockByHash","getBlockByNumber","getBlock","blockHash","getBlockTransactionCount","_ref$transactions","transactions","getTransactionFromBlock","_ref2$transactions","transactionID","getTransaction","getConfirmedTransaction","_getTransactionInfoById","getTransactionsRelated","getTransactionsToAddress","getTransactionsFromAddress","direction","_yield$Promise$all","_yield$Promise$all2","getAccountById","getAccountInfoById","_ref4","_ref4$balance","getUnconfirmedAccount","getUnconfirmedAccountById","getUnconfirmedBalance","_ref5","_ref5$balance","_ref6","_ref6$freeNetUsed","freeNetUsed","_ref6$freeNetLimit","freeNetLimit","_ref6$NetUsed","NetUsed","_ref6$NetLimit","NetLimit","getBandwidth","_ref7","_ref7$assetIssue","assetIssue","_parseToken","getTokensIssuedByAddress","getTokenFromID","listNodes","_ref8","_ref8$nodes","nodes","_ref9","_ref9$address","startNum","endNum","_ref10","_ref10$block","getBlockRange","listSuperRepresentatives","_ref11","_ref11$witnesses","witnesses","_ref13","_ref13$assetIssue","_ref12","_ref12$assetIssue","listTokens","timeUntilNextVoteCycle","_ref14","_ref14$num","getContract","useTronHeader","verifySignature","verifyMessageV2","verifyTypedData","multisig","signatureHex","_args3","defaultPrivateKey","signString","signMessageV2","signWeight","foundKey","multiSign","getSignWeight","approved_list","getApprovedList","signedTransaction","sendRawTransaction","signedHexTransaction","sendHexTransaction","hexTransaction","sendTransaction","transactionBuilder","_args8","_freezeBalance2","_args9","_unfreezeBalance2","_args10","_updateAccount2","_args11","proposal","getProposal","listProposals","_ref15","_ref15$proposals","proposals","getChainParameters","_ref16","_ref16$chainParameter","chainParameter","resources","getAccountResources","fromAddress","getDelegatedResourceV2","getDelegatedResourceAccountIndexV2","getCanDelegatedMaxSize","getAvailableUnfreezeCount","getCanWithdrawUnfreezeAmount","exchange","getExchangeByID","listExchanges","_ref17","_ref17$exchanges","exchanges","listExchangesPaginated","_ref18","_ref18$exchanges","getNodeInfo","getTokenListByName","getTokenByID","_args12","_getReward","_callee13","_args13","_context13","_callee14","_args14","_context14","_getBrokerage","_callee15","_args15","_context15","_callee16","_args16","_context16","reward","_callee17","_args17","_context17","_callee18","_context18","prices","_callee19","_context19","_transaction$signatur","tronAddress","messageBytes","getFunctionSelector","iface","decodeOutput","Method","shouldPollResponse","_watch2","_send2","_call2","_send","watch","_watch","deployed","constant_result","msg2","chunk","broadcast","checkResult","pollTimes","getTransactionInfo","resMessage","rawResponse","keepTxID","lastBlock","since","getEvents","bindListener","eventServer","_events$sort","_events$sort2","latestEvent","newEvents","eventName","blockNumber","filters","onlyUnconfirmed","onlyConfirmed","getEventsByContractAddress","priorEvent","clearInterval","setInterval","eventListener","methodInstances","loadAbi","_at","_new2","_startEventListener2","_getEvents2","eventCallback","_getEvents","methodCall","onMethod","inputData","decodeInput","new","at","startCallback","_startEventListener","_stopEventListener","Plugin","pluginNoOverride","disablePlugins","pluginInterface","requires","libs","plugged","skipped","plugin","fullClass","classInstanceName","Event","healthcheck","providers","isValidProvider","isConnected","sinceTimestamp","page","fromTimestamp","previousLastEventFingerprint","previousFingerprint","routeParams","only_confirmed","only_unconfirmed","querystring","getEventsByTransactionID","SideChain","sideOptions","mainchain","fullHost","mainGatewayAddress","sideGatewayAddress","sideChainId","sidechain","setMainGatewayAddress","setSideGatewayAddress","setChainId","_retryMapping","_retryDeposit","_retryWithdraw","_injectFund","_withdrawTrc4","_withdrawTrc3","_withdrawTrc2","_withdrawTrc","_withdrawTrx","_mappingTrc3","_mappingTrc2","_mappingTrc","_depositTrc4","_depositTrc3","_approveTrc2","_approveTrc","_depositTrc2","_depositTrc","_depositTrx","chainIdByteArr","byteArr","byteArrHash","depositFee","contractInstance","depositTrx","depositTRX","depositTrc10","depositTRC10","approveInstance","depositTrc","approve","depositTRC20","depositTRC721","retryDeposit","retryMapping","_x15","_x16","_x17","_x18","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_x26","mappingFee","mappingTrc","mappingTRC20","mappingTRC721","_x27","_x28","_x29","_x30","_x31","_x32","_x33","_x34","_x35","_x36","withdrawFee","withdrawTrx","withdrawTRX","_x37","_x38","_x39","withdrawTrc10","withdrawTRC10","_x40","_x41","_x42","_x43","numOrId","withdrawTrc","_x44","_x45","_x46","_x47","_x48","_x49","_x50","_x51","_x52","_x53","_args18","_x54","_x55","_x56","_x57","_x58","hexAddress","_args19","injectFund","_x59","_x60","_x61","_callee20","retryWithdrawFee","_args20","_context20","_x62","_x63","_x64","_callee21","retryDepositFee","_args21","_context21","_x65","_x66","_x67","_callee22","retryMappingFee","_args22","_context22","_x68","_x69","_x70","DEFAULT_VERSION","FEE_LIMIT","_EventEmitter","_createAccount","_getFullnodeVersion","eventHeaders","setFullNode","setSolidityNode","setEventServer","setPrivateKey","fullnodeVersion","setFullNodeHeader","setEventHeader","nodeInfo","configNodeInfo","codeVersion","knownProvider","setStatusPage","_this$event","setServer","currentProviders","_this$event2","_this$event3","_unused2","fromDecimal","padEnd","sun"],"sourceRoot":""}