{"version":3,"file":"main.js","mappings":"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AAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;ACtDrB,mFAAmF;AACnF,8FAA8F;AAC9F,yEAAyE;AACzE,gFAAgF;AAEzE,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,2BAA2B;CACrC,CAAC;;;;;;;;;;;;;;;;;;ACR2C;AAGF;AACY;AAEvD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACVnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA,wBAAwB;AACxB;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB,+CAA+C;AAChF,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB,+CAA+C;AAChF,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kBAAkB;AAC7F;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,qBAAqB;AACtG;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,iFAAiF,qBAAqB;AACtG;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,oBAAoB;AACrG;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,2BAA2B;AACrH;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,0FAA0F,2BAA2B;AACrH;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,uBAAuB;AAC3G;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,8BAA8B;AAC3H;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,6FAA6F,8BAA8B;AAC3H;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,mBAAmB;AAC5F;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kBAAkB;AACrE;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,oBAAoB;AACnG;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,oBAAoB;AAChG;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mBAAmB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,qBAAqB;AAClH;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,sBAAsB;AACnI;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,8BAA8B;AACtI;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,wGAAwG,8BAA8B;AACtI;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1yCA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./lib/prokey-webcore/src/blockchain/BitcoinBlockchain.ts","./lib/prokey-webcore/src/blockchain/BlockchainBase.ts","./lib/prokey-webcore/src/blockchain/BlockchainProviders.ts","./lib/prokey-webcore/src/blockchain/EthereumBlockchain.ts","./lib/prokey-webcore/src/blockchain/RippleBlockchain.ts","./lib/prokey-webcore/src/blockchain/_servers/BaseBlockchainServer.ts","./lib/prokey-webcore/src/blockchain/_servers/blockbook/BlockbookRequestModels.ts","./lib/prokey-webcore/src/blockchain/_servers/blockbook/BlockbookServer.ts","./lib/prokey-webcore/src/blockchain/_servers/public/PublicEthereumServer.ts","./lib/prokey-webcore/src/blockchain/_servers/ripple/RippleRpcServer.ts","./lib/prokey-webcore/src/coins/CoinInfo.ts","./lib/prokey-webcore/src/device/BitcoinCommands.ts","./lib/prokey-webcore/src/device/Device.ts","./lib/prokey-webcore/src/device/EthereumCommands.ts","./lib/prokey-webcore/src/device/NemCommands.ts","./lib/prokey-webcore/src/device/RippleCommands.ts","./lib/prokey-webcore/src/models/GeneralResponse.ts","./lib/prokey-webcore/src/models/Prokey.ts","./lib/prokey-webcore/src/protobuf/Protobuf.ts","./lib/prokey-webcore/src/transport/ITransport.ts","./lib/prokey-webcore/src/transport/WebSocketTransport.ts","./lib/prokey-webcore/src/transport/WebUsb.ts","./lib/prokey-webcore/src/utils/DeviceUtils.ts","./lib/prokey-webcore/src/utils/address.ts","./lib/prokey-webcore/src/utils/console.ts","./lib/prokey-webcore/src/utils/constants.ts","./lib/prokey-webcore/src/utils/ethereum-hashTypedData.ts","./lib/prokey-webcore/src/utils/ethereum-networks.ts","./lib/prokey-webcore/src/utils/ethereum-providers.ts","./lib/prokey-webcore/src/utils/paramsValidator.ts","./lib/prokey-webcore/src/utils/pathUtils.ts","./lib/prokey-webcore/src/utils/rlp-encoding.ts","./lib/prokey-webcore/src/utils/utils.ts","./lib/prokey-webcore/src/wallet/BaseWallet.ts","./lib/prokey-webcore/src/wallet/BitcoinWallet.ts","./lib/prokey-webcore/src/wallet/EthereumWallet.ts","./lib/prokey-webcore/src/wallet/OmniWallet.ts","./lib/prokey-webcore/src/wallet/RippleWallet.ts","./src/app/_configs/rest-urls.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/component/app-header/app-header.component.ts","./src/app/core/component/app-header/app-header.component.html","./src/app/core/component/exchange-layout/exchange-layout.component.html","./src/app/core/component/exchange-layout/exchange-layout.component.ts","./src/app/core/component/spinner-loading/spinner-loading.component.ts","./src/app/core/component/wallet-add-coin/wallet-add-coin.component.ts","./src/app/core/component/wallet-add-coin/wallet-add-coin.component.html","./src/app/core/component/wallet-add-coin/wallet-add-custom-token/wallet-add-custom-token.component.ts","./src/app/core/component/wallet-add-coin/wallet-add-custom-token/wallet-add-custom-token.component.html","./src/app/core/component/wallet-device-info/wallet-device-info.component.ts","./src/app/core/component/wallet-device-info/wallet-device-info.component.html","./src/app/core/component/wallet-device-reboot/wallet-device-reboot.component.ts","./src/app/core/component/wallet-device-reboot/wallet-device-reboot.component.html","./src/app/core/component/wallet-footer-layout/wallet-footer-layout.component.ts","./src/app/core/component/wallet-footer-layout/wallet-footer-layout.component.html","./src/app/core/component/wallet-forget-device/wallet-forget-device.component.ts","./src/app/core/component/wallet-forget-device/wallet-forget-device.component.html","./src/app/core/component/wallet-header-layout/wallet-header-layout.component.ts","./src/app/core/component/wallet-header-layout/wallet-header-layout.component.html","./src/app/core/component/wallet-layout/wallet-layout.component.ts","./src/app/core/component/wallet-layout/wallet-layout.component.html","./src/app/core/component/wallet-no-backup/wallet-no-backup.component.ts","./src/app/core/component/wallet-no-backup/wallet-no-backup.component.html","./src/app/core/component/wallet-notify-layout/wallet-notify-layout.component.ts","./src/app/core/component/wallet-notify-layout/wallet-notify-layout.component.html","./src/app/core/component/wallet-passphrase-request/wallet-passphrase-request.component.ts","./src/app/core/component/wallet-passphrase-request/wallet-passphrase-request.component.html","./src/app/core/component/wallet-pin-on-device/wallet-pin-on-device.component.ts","./src/app/core/component/wallet-pin-on-device/wallet-pin-on-device.component.html","./src/app/core/component/wallet-pin-request/wallet-pin-request.component.ts","./src/app/core/component/wallet-pin-request/wallet-pin-request.component.html","./src/app/core/component/wallet-sidebar-layout/wallet-sidebar-layout.component.ts","./src/app/core/component/wallet-sidebar-layout/wallet-sidebar-layout.component.html","./src/app/core/component/wallet-sidemenu-layout/wallet-sidemenu-layout.component.ts","./src/app/core/component/wallet-sidemenu-layout/wallet-sidemenu-layout.component.html","./src/app/core/core.module.ts","./src/app/core/models/bootloader/ChallengeErrors.ts","./src/app/core/models/connect/asset-info.ts","./src/app/core/models/connect/button-request-type.enum.ts","./src/app/core/models/connect/coin-model.ts","./src/app/core/models/connect/device-firmware-status.enum.ts","./src/app/core/models/connect/device-mode.enum.ts","./src/app/core/models/connect/failure-type.enum.ts","./src/app/core/models/connect/transaction-type.enum.ts","./src/app/core/models/connect/ui-event.enum.ts","./src/app/core/models/layout-mode.ts","./src/app/core/models/prokey-settings-key.enum.ts","./src/app/core/services/bootloader/bootloader.service.ts","./src/app/core/services/bootloader/bridge.service.ts","./src/app/core/services/bootloader/challenge.service.ts","./src/app/core/services/bootloader/transport.service.ts","./src/app/core/services/bootloader/webusb.service.ts","./src/app/core/services/coin-market.service.ts","./src/app/core/services/coins/bitcoin.ts","./src/app/core/services/coins/ethereum.ts","./src/app/core/services/coins/omni.ts","./src/app/core/services/coins/ripple.ts","./src/app/core/services/coins/wallet-coins.ts","./src/app/core/services/coins/wallet.ts","./src/app/core/services/custom-error-handler.service.ts","./src/app/core/services/custom-token.service.ts","./src/app/core/services/helpers.ts","./src/app/core/services/layout.service.ts","./src/app/core/services/oauth2/google-oath2-provider.service.ts","./src/app/core/services/prokey-settings.service.ts","./src/app/core/services/script-loader.service.ts","./src/app/core/services/storage/repository/google-drive/google-storage-repository.service.ts","./src/app/core/services/storage/repository/local-storage-service.ts","./src/app/core/services/storage/storage.service.ts","./src/app/core/services/wallet-device-events.service.ts","./src/app/core/services/wallet-device.service.ts","./src/app/core/services/wallet-tour.service.ts","./src/app/core/services/wallet.service.ts","./src/app/core/services/window.service.ts","./src/app/core/services/xsrf.interceptor.ts","./src/app/page-not-found/page-not-found.component.ts","./src/app/page-not-found/page-not-found.component.html","./src/app/shared/components/alert/alert.component.ts","./src/app/shared/components/alert/alert.component.html","./src/app/shared/components/confirmation-dialog/confirmation-dialog.component.ts","./src/app/shared/components/confirmation-dialog/confirmation-dialog.component.html","./src/app/shared/dialog/_directive/dialog-footer-directive.ts","./src/app/shared/dialog/_services/dialog.service.ts","./src/app/shared/dialog/dialog.component.ts","./src/app/shared/dialog/dialog.component.html","./src/app/shared/dialog/dialog.module.ts","./src/app/shared/directives/address-validator.directive.ts","./src/app/shared/directives/amount-validator.directive.ts","./src/app/shared/directives/equal-validator.directive.ts","./src/app/shared/models/alert-type.enum.ts","./src/app/shared/pipes/address-path-index.pipe.ts","./src/app/shared/pipes/coin-type-to-name.pipe.ts","./src/app/shared/pipes/coin-unit.pipe.ts","./src/app/shared/pipes/num-to-ordinary.pipe.ts","./src/app/shared/pipes/safe.pipe.ts","./src/app/shared/shared.module.ts","./src/app/start/start.component.ts","./src/app/start/start.component.html","./src/app/wallet/backup/backup.component.ts","./src/app/wallet/backup/backup.component.html","./src/app/wallet/device/coin-fee/coin-fee.component.ts","./src/app/wallet/device/coin-fee/coin-fee.component.html","./src/app/wallet/device/device/device.component.ts","./src/app/wallet/device/device/device.component.html","./src/app/wallet/device/exchange/components/compare-coin/exchange.component.ts","./src/app/wallet/device/exchange/components/compare-coin/exchange.component.html","./src/app/wallet/device/exchange/components/offer-list/offer-list.component.ts","./src/app/wallet/device/exchange/components/offer-list/offer-list.component.html","./src/app/wallet/device/exchange/components/receive-coin/receive-coin.component.ts","./src/app/wallet/device/exchange/components/receive-coin/receive-coin.component.html","./src/app/wallet/device/exchange/components/receive-exchange/receive-exchange.component.ts","./src/app/wallet/device/exchange/components/receive-exchange/receive-exchange.component.html","./src/app/wallet/device/exchange/components/send-coin/send-coin.component.ts","./src/app/wallet/device/exchange/components/send-coin/send-coin.component.html","./src/app/wallet/device/exchange/components/status-exchange/status-exchange.component.ts","./src/app/wallet/device/exchange/components/status-exchange/status-exchange.component.html","./src/app/wallet/device/exchange/errors/exchange.exception.ts","./src/app/wallet/device/exchange/models/status-type.ts","./src/app/wallet/device/exchange/services/exchange.service.ts","./src/app/wallet/device/exchange/services/providers/baseProvider.ts","./src/app/wallet/device/exchange/services/providers/changeNow-provider.ts","./src/app/wallet/device/exchange/services/providers/changelly-provider.ts","./src/app/wallet/device/models/send-step.enum.ts","./src/app/wallet/device/processing-dialog/processing-dialog.component.ts","./src/app/wallet/device/processing-dialog/processing-dialog.component.html","./src/app/wallet/device/receive/receive.component.ts","./src/app/wallet/device/receive/receive.component.html","./src/app/wallet/device/send/send.component.ts","./src/app/wallet/device/send/send.component.html","./src/app/wallet/device/sign-verify/sign-verify.component.ts","./src/app/wallet/device/sign-verify/sign-verify.component.html","./src/app/wallet/device/transactions/transactions.component.ts","./src/app/wallet/device/transactions/transactions.component.html","./src/app/wallet/portfolio/portfolio.component.ts","./src/app/wallet/portfolio/portfolio.component.html","./src/app/wallet/route-active/storage.guard.ts","./src/app/wallet/settings/advance-settings/advance-settings.component.ts","./src/app/wallet/settings/advance-settings/advance-settings.component.html","./src/app/wallet/settings/basic-settings/basic-settings.component.ts","./src/app/wallet/settings/basic-settings/basic-settings.component.html","./src/app/wallet/settings/google-auth-insuffient-scope-dialig/google-auth-insufficient-scope-dialog.component.ts","./src/app/wallet/settings/google-auth-insuffient-scope-dialig/google-auth-insufficient-scope-dialog.component.html","./src/app/wallet/settings/reset-passphrase-dialog/reset-passphrase-dialog.component.ts","./src/app/wallet/settings/reset-passphrase-dialog/reset-passphrase-dialog.component.html","./src/app/wallet/settings/storage-auth-dialog/storage-auth-dialog.component.ts","./src/app/wallet/settings/storage-auth-dialog/storage-auth-dialog.component.html","./src/app/wallet/settings/storage-sync-dialog/storage-sync-dialog.component.ts","./src/app/wallet/settings/storage-sync-dialog/storage-sync-dialog.component.html","./src/app/wallet/settings/user-settings/user-settings.component.ts","./src/app/wallet/settings/user-settings/user-settings.component.html","./src/app/wallet/settings/wallet-settings/wallet-settings.component.ts","./src/app/wallet/settings/wallet-settings/wallet-settings.component.html","./src/app/wallet/settings/wipe-device-dialog/wipe-device-dialog.component.ts","./src/app/wallet/settings/wipe-device-dialog/wipe-device-dialog.component.html","./src/app/wallet/wallet-routing.module.ts","./src/app/wallet/wallet.module.ts","./src/app/welcome/welcome.component.ts","./src/app/welcome/welcome.component.html","./src/environments/environment.ts","./src/main.ts","./lib/prokey-webcore/src/protobuf/long.js","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\bn.js\\lib|buffer","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\brorand|crypto","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\elliptic\\node_modules\\bn.js\\lib|buffer","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\ethereumjs-abi\\node_modules\\bn.js\\lib|buffer","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\ethereumjs-util\\node_modules\\bn.js\\lib|buffer","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\hash-base\\node_modules\\readable-stream\\lib\\internal\\streams|util","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\hash-base\\node_modules\\readable-stream\\lib|util","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\keccak\\node_modules\\readable-stream\\lib\\internal\\streams|util","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\keccak\\node_modules\\readable-stream\\lib|util","ignored|C:\\MyProjects\\prokey\\prokey-website-clientapp\\lib\\prokey-webcore\\node_modules\\tweetnacl|crypto"],"sourcesContent":["/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { BlockchainBase } from './BlockchainBase';\r\nimport * as WalletModel from '../models/BitcoinWalletModel';\r\nimport { RequestAddressInfo } from '../models/GenericWalletModel';\r\nimport { BlockchainServerModel } from './BlockchainProviders';\r\nimport { BlockbookServer } from './_servers/blockbook/BlockbookServer';\r\nimport {\r\n BlockbookDetails,\r\n BlockbookRequestDetails,\r\n BlockbookTokens,\r\n} from './_servers/blockbook/BlockbookRequestModels';\r\nimport { MyConsole } from '../utils/console';\r\nimport { AddressModel } from '../models/Prokey';\r\nimport * as PathUtil from '../utils/pathUtils';\r\nimport * as GenericWalletModel from '../models/GenericWalletModel';\r\nimport * as BlockbookModels from './_servers/blockbook/BlockbookBitcoinModel';\r\nimport { Request, newHttpClient } from 'typescript-http-client';\r\nimport { BitcoinWallet } from '../wallet/BitcoinWallet';\r\n\r\nexport class BitcoinBlockchain extends BlockchainBase {\r\n _lastFeeFetchTime: Date = new Date();\r\n _lastFee: WalletModel.BitcoinFee = {};\r\n\r\n constructor(servers: BlockchainServerModel[]) {\r\n super(servers);\r\n\r\n //! Initial time to yesterday\r\n this._lastFeeFetchTime.setDate(this._lastFeeFetchTime.getDate() - 1);\r\n }\r\n\r\n /**\r\n * Get address info\r\n * @param reqAdd The address\r\n * @returns Bitcoin Address Info\r\n */\r\n public async GetAddressInfo(\r\n reqAdd: AddressModel,\r\n isIncludeTransactionData = true\r\n ): Promise {\r\n this._ensureThereIsAServer();\r\n\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].apiType == 'blockbook') {\r\n const reqDetails = new BlockbookRequestDetails();\r\n if (isIncludeTransactionData) {\r\n reqDetails.details = BlockbookDetails.Txs;\r\n }\r\n\r\n try {\r\n let addInfo: WalletModel.BitcoinAddressInfoModel =\r\n await BlockbookServer.GetAddressInfo(\r\n this._servers[i],\r\n reqAdd.address,\r\n reqDetails\r\n );\r\n\r\n //! Add address model\r\n addInfo.addressModel = reqAdd;\r\n\r\n return addInfo;\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::GetAddressInfo->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetAccountInfoByPublicKey->No server to handle the request');\r\n }\r\n\r\n /**\r\n * Get account information using public key\r\n * @param publicKey The extended public key\r\n * @returns Bitcoin account info\r\n */\r\n public async GetAccountInfoByPublicKey(publicKey: string): Promise {\r\n this._ensureThereIsAServer();\r\n\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].isSupportXpub != true) continue;\r\n\r\n if (this._servers[i].apiType == 'blockbook') {\r\n const req = new BlockbookRequestDetails();\r\n req.details = BlockbookDetails.Txs;\r\n req.tokens = BlockbookTokens.Used;\r\n\r\n // in case of any error, try the next server\r\n try {\r\n let accInfo: WalletModel.BitcoinAccountInfo = await BlockbookServer.GetAccount(\r\n this._servers[i],\r\n publicKey,\r\n req\r\n );\r\n\r\n // pars token data\r\n if (accInfo.tokens && accInfo.tokens.length > 0) {\r\n accInfo.addresses = [];\r\n accInfo.changeAddresses = [];\r\n accInfo.tokens\r\n .filter((t) => t.type == 'XPUBAddress')\r\n .forEach((t) => {\r\n let path = PathUtil.getHDPath(t.path);\r\n // Set change addresses\r\n if (PathUtil.IsChangePath(path)) {\r\n accInfo.changeAddresses?.push({\r\n address: t.name,\r\n path: path,\r\n });\r\n }\r\n // Set addresses\r\n else {\r\n accInfo.addresses?.push({\r\n address: t.name,\r\n path: path,\r\n });\r\n }\r\n });\r\n }\r\n\r\n return accInfo;\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::GetAccountInfoByPublicKey->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetAccountInfoByPublicKey->No server to handle the request');\r\n }\r\n\r\n /**\r\n * Get bitcoin transaction data in the exact format as returned by backend\r\n * @param transactionId Transaction ID\r\n */\r\n public async GetRawTransaction(transactionId: string): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].apiType == 'blockbook') {\r\n let txInfo = await BlockbookServer.GetRawTransaction(this._servers[i], transactionId);\r\n\r\n return txInfo;\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetRawTransaction->No server to handle the request');\r\n }\r\n\r\n /**\r\n * Get account utxo by public key\r\n * @param publicKey The extended public key\r\n * @returns List of UTXO\r\n */\r\n public async GetAccountUtxoByPublicKey(publicKey: string): Promise {\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].isSupportXpub != true) {\r\n continue;\r\n }\r\n\r\n if (this._servers[i].apiType == 'blockbook') {\r\n // in case of any error, try the next server\r\n try {\r\n let utxos: WalletModel.BitcoinUtxoModel[] = await BlockbookServer.GetUtxo(\r\n this._servers[i],\r\n publicKey\r\n );\r\n\r\n return utxos;\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::GetAccountUtxoByPublicKey->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetAccountUtxoByPublicKey->No server to handle the request');\r\n }\r\n\r\n /**\r\n * Get account utxo by public key\r\n * @param publicKey The extended public key\r\n * @returns List of UTXO\r\n */\r\n public async GetAddressUtxo(address: string): Promise {\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].isSupportXpub != true) {\r\n continue;\r\n }\r\n\r\n if (this._servers[i].apiType == 'blockbook') {\r\n // in case of any error, try the next server\r\n try {\r\n let utxos: WalletModel.BitcoinUtxoModel[] = await BlockbookServer.GetUtxo(\r\n this._servers[i],\r\n address\r\n );\r\n\r\n return utxos;\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::GetAddressUtxo->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetAddressUtxo->No server to handle the request');\r\n }\r\n\r\n /**\r\n * Get account info by addresses\r\n * @param addresses\r\n */\r\n public GetAccountInfoByAddresses(addresses: RequestAddressInfo[]) {}\r\n\r\n /**\r\n * Send new transaction to network\r\n * @param transaction raw signed transaction to be sent\r\n * @returns Send transaction result\r\n */\r\n public async BroadCastTransaction(transaction: string): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].apiType == 'blockbook') {\r\n try {\r\n const result = await BlockbookServer.BroadcastTransaction(this._servers[i], transaction);\r\n if (result.result) {\r\n return {\r\n isSuccess: true,\r\n txid: result.result,\r\n };\r\n } else if (result.error) {\r\n return {\r\n isSuccess: false,\r\n error: result.error,\r\n };\r\n } else {\r\n MyConsole.Info(\r\n 'BitcoinBlockchain::BroadCastTransaction->Send transaction neither have result or error'\r\n );\r\n return {\r\n isSuccess: false,\r\n error: 'Send transaction neither have result or error',\r\n };\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::BroadCastTransaction->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::BroadCastTransaction->No server to handle the request');\r\n }\r\n\r\n public async GetZcashChainId(): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].apiType == 'blockbook') {\r\n try {\r\n const result = await BlockbookServer.GetZcashChainId(this._servers[i]);\r\n if (result.backend && result.backend.consensus) {\r\n return {\r\n chaintip: result.backend.consensus.chaintip,\r\n nextblock: result.backend.consensus.nextblock,\r\n };\r\n } else MyConsole.Exception('BitcoinBlockchain::GetZcashChainId->Blockbook error');\r\n } catch (e) {\r\n MyConsole.Exception('BitcoinBlockchain::GetZcashChainId->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetZcashChainId->No server to handle the request');\r\n }\r\n\r\n public async GetTxFee(isBitcoin: boolean): Promise {\r\n //! fetch/update the fee rate every 1 minutes\r\n const secondsPassedFromLastCall = (new Date().getTime() - this._lastFeeFetchTime.getTime()) / 1000;\r\n if (this._lastFee != null && secondsPassedFromLastCall < 60) {\r\n return this._lastFee;\r\n }\r\n\r\n if (isBitcoin == false) {\r\n return await this._getTxEstimatedFee();\r\n }\r\n\r\n try {\r\n var fee = {};\r\n // get fee from https://bitcoinfees.earn.com/api/v1/fees/list\r\n const client = newHttpClient();\r\n\r\n const request = new Request('https://bitcoinfees.earn.com/api/v1/fees/list', { method: 'GET' });\r\n var r = await client.execute(request);\r\n r.fees.forEach((element) => {\r\n if (\r\n (element.maxMinutes == 360 && fee.economy == null) ||\r\n (element.minMinutes < 180 && fee.economy == null)\r\n ) {\r\n fee.economy = element.minFee;\r\n } else if (\r\n (element.maxMinutes == 180 && fee.normal == null) ||\r\n (element.minMinutes < 90 && fee.normal == null)\r\n ) {\r\n fee.normal = element.minFee;\r\n } else if (\r\n (element.maxMinutes == 60 && fee.high == null) ||\r\n (element.minMinutes < 30 && fee.high == null)\r\n ) {\r\n fee.high = element.minFee;\r\n }\r\n });\r\n\r\n this._lastFee = fee;\r\n return fee;\r\n } catch {\r\n return this._getTxEstimatedFee();\r\n }\r\n }\r\n\r\n //**********************\r\n // PRIVATE FUNCTIONS\r\n //**********************\r\n private _ensureThereIsAServer() {\r\n if (this._servers == undefined || this._servers.length == 0) {\r\n throw new Error('BitcoinBlockchain::_ensureThereIsAServer->No server');\r\n }\r\n }\r\n\r\n private async _getTxEstimatedFee(): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n if (this._servers[i].apiType == 'blockbook') {\r\n try {\r\n let fee: WalletModel.BitcoinFee = {\r\n economy: 0,\r\n high: 0,\r\n normal: 0,\r\n };\r\n\r\n let res = await BlockbookServer.GetEstimateFee(this._servers[i], 1);\r\n if (res.result) {\r\n fee.high = +res.result * 100000; // satoshi per KB\r\n }\r\n\r\n res = await BlockbookServer.GetEstimateFee(this._servers[i], 3);\r\n if (res.result) {\r\n fee.normal = +res.result * 100000; // satoshi per KB\r\n }\r\n\r\n res = await BlockbookServer.GetEstimateFee(this._servers[i], 6);\r\n if (res.result) {\r\n fee.economy = +res.result * 100000; // satoshi per KB\r\n }\r\n\r\n this._lastFee = fee;\r\n return fee;\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n throw new Error('BitcoinBlockchain::GetAccountInfoByPublicKey->No server to handle the request');\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { RequestAddressInfo } from \"../models/GenericWalletModel\";\r\nimport { BlockchainServerModel } from \"./BlockchainProviders\";\r\n\r\nexport abstract class BlockchainBase {\r\n _servers: BlockchainServerModel[];\r\n\r\n constructor(servers: BlockchainServerModel[]){\r\n this._servers = servers;\r\n }\r\n\r\n public abstract GetAddressInfo(reqAdd: RequestAddressInfo);\r\n public abstract BroadCastTransaction(transaction: string);\r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n *\r\n * Hadi Robati, hadi@prokey.io\r\n *\r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nconst _serverFileModel = require.resolve('../../data/BlockchainProviders.json');\r\ndelete require.cache[_serverFileModel];\r\nconst _providers = require('../../data/BlockchainProviders.json');\r\n\r\nimport { CoinBaseType } from '../coins/CoinInfo';\r\nimport { BaseCoinInfoModel, EthereumBaseCoinInfoModel } from '../models/CoinInfoModel';\r\nimport _publicProviders from '../../data/NetworkProviders.json';\r\n\r\nexport interface BlockchainServerModel {\r\n apiType: string;\r\n url: string;\r\n serverName: string;\r\n isSupportXpub?: boolean;\r\n}\r\n\r\n/**\r\n * Servers model in providers.json file\r\n */\r\ninterface ProviderServerModel {\r\n apiType: string;\r\n name: string;\r\n baseUrl: string;\r\n isSupportXpub?: boolean;\r\n}\r\n\r\n/**\r\n * Coins model in providers.json file\r\n */\r\ninterface ProviderCoinModel {\r\n type: number;\r\n name: string;\r\n shortcut: string;\r\n chainId?: number;\r\n servers: [\r\n {\r\n name: string;\r\n urlAffix?: string;\r\n type: string;\r\n }\r\n ];\r\n}\r\n\r\nexport class BlockchainProviders {\r\n public static Get(coinInfo: BaseCoinInfoModel): BlockchainServerModel[] {\r\n let coins: ProviderCoinModel[] = _providers.coins;\r\n let allServers: ProviderServerModel[] = _providers.servers;\r\n\r\n if (coins == undefined || allServers == undefined) {\r\n throw new Error('Error in reading providers.json file');\r\n }\r\n\r\n // CoinName\r\n const cn = coinInfo.name.toLocaleLowerCase();\r\n\r\n // Coin shortcut\r\n const cs = coinInfo.shortcut.toLocaleLowerCase();\r\n\r\n let coin: ProviderCoinModel | undefined;\r\n\r\n // serveral servers can be supported\r\n let servers: BlockchainServerModel[] = [];\r\n\r\n // The matching algorithm can be defferent based on coin type\r\n switch (coinInfo.coinBaseType) {\r\n // For bitcoin based\r\n case CoinBaseType.BitcoinBase:\r\n // find the coin in providers\r\n coin = coins.find(\r\n (c) => c.type == CoinBaseType.BitcoinBase && (c.name.toLowerCase() == cn || c.shortcut == cs)\r\n );\r\n break;\r\n case CoinBaseType.EthereumBase:\r\n case CoinBaseType.ERC20:\r\n // find the coin in providers\r\n coin = coins.find(\r\n (c) =>\r\n c.type == coinInfo.coinBaseType && c.chainId == (coinInfo as EthereumBaseCoinInfoModel).chain_id\r\n );\r\n break;\r\n case CoinBaseType.OMNI:\r\n // We support OMNI on Bitcoin network\r\n coin = coins.find(\r\n (c) =>\r\n c.type == CoinBaseType.BitcoinBase && (c.name.toLowerCase() == 'bitcoin' || c.shortcut == 'BTC')\r\n );\r\n break;\r\n case CoinBaseType.NEM:\r\n break;\r\n case CoinBaseType.Stellar:\r\n break;\r\n case CoinBaseType.Ripple:\r\n // find the coin in providers\r\n coin = coins.find((c) => c.type == CoinBaseType.Ripple);\r\n break;\r\n }\r\n\r\n // not supported or no server!\r\n if (coin == undefined || coin.servers == undefined) return [];\r\n\r\n // for all available servers for this coin(at least one should be there)\r\n coin.servers.forEach((coinServer) => {\r\n // find the specific server\r\n const s = allServers.find((s) => s.name == coinServer.name);\r\n if (s != undefined) {\r\n switch (s.apiType) {\r\n case 'geth':\r\n const publicProvider = _publicProviders.find((item) => item.chainId == coin?.chainId);\r\n if (publicProvider) {\r\n publicProvider.url.forEach((url) => {\r\n servers.push({ apiType: s.apiType, serverName: s.name, url });\r\n });\r\n }\r\n break;\r\n case 'blockbook':\r\n case 'fullnode':\r\n // add prefix to url if any\r\n let url: string = s.baseUrl;\r\n if (coinServer.urlAffix) {\r\n const searchRegExp = new RegExp('{a}', 'g');\r\n url = url.replace(searchRegExp, coinServer.urlAffix);\r\n }\r\n\r\n // push to list\r\n servers.push({\r\n apiType: s.apiType,\r\n serverName: s.name,\r\n url: url,\r\n isSupportXpub: s.isSupportXpub,\r\n });\r\n break;\r\n }\r\n }\r\n });\r\n\r\n return servers;\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { BlockchainBase } from './BlockchainBase';\r\nimport * as WalletModel from '../models/EthereumWalletModel';\r\nimport { BlockchainServerModel } from './BlockchainProviders';\r\nimport { BlockbookServer } from './_servers/blockbook/BlockbookServer';\r\nimport { BlockbookDetails, BlockbookRequestDetails } from './_servers/blockbook/BlockbookRequestModels';\r\nimport { MyConsole } from '../utils/console';\r\nimport { AddressModel } from '../models/Prokey';\r\nimport * as GenericWalletModel from '../models/GenericWalletModel';\r\nimport * as BlockbookModels from './_servers/blockbook/BlockbookEthereumModel';\r\nimport { GetGasParams } from '../utils/ethereum-providers';\r\nimport { FeeData } from '@ethersproject/providers';\r\nimport PublicEthereumServer from './_servers/public/PublicEthereumServer';\r\nimport { Erc20BaseCoinInfoModel, EthereumBaseCoinInfoModel } from '../models/CoinInfoModel';\r\nimport { BlockbookTransactionResult } from './_servers/blockbook/BlockbookCommonModel';\r\n\r\nexport class EthereumBlockchain extends BlockchainBase {\r\n private _isErc20: boolean;\r\n private _coinInfo?: Erc20BaseCoinInfoModel | EthereumBaseCoinInfoModel;\r\n\r\n constructor(\r\n servers: BlockchainServerModel[],\r\n isErc20 = false,\r\n coinInfo?: Erc20BaseCoinInfoModel | EthereumBaseCoinInfoModel\r\n ) {\r\n super(servers);\r\n\r\n this._isErc20 = isErc20;\r\n this._coinInfo = coinInfo;\r\n }\r\n\r\n /**\r\n * Get address info\r\n * @param reqAdd The address\r\n * @returns Bitcoin Address Info\r\n */\r\n public async GetAddressInfo(reqAdd: AddressModel): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n switch (this._servers[i].apiType) {\r\n case 'blockbook':\r\n const req = new BlockbookRequestDetails();\r\n req.details = BlockbookDetails.Txs;\r\n\r\n try {\r\n let addInfo: WalletModel.EthereumAccountInfo =\r\n await BlockbookServer.GetAddressInfo(\r\n this._servers[i],\r\n reqAdd.address,\r\n req\r\n );\r\n\r\n //! Add address model\r\n addInfo.addressModel = reqAdd;\r\n\r\n return addInfo;\r\n } catch (e) {\r\n MyConsole.Exception('EthereumBlockchain::GetAddressInfo->', e);\r\n }\r\n break;\r\n case 'geth':\r\n try {\r\n let providerResponse: WalletModel.EthereumAccountInfo =\r\n await PublicEthereumServer.GetAddressInfo(\r\n this._servers[i],\r\n reqAdd.address,\r\n this._isErc20,\r\n this._coinInfo\r\n );\r\n providerResponse.addressModel = reqAdd;\r\n return providerResponse;\r\n } catch (e) {\r\n MyConsole.Exception('EthereumBlockchain::GetAddressInfo->', e);\r\n }\r\n }\r\n }\r\n\r\n throw new Error('EthereumBlockchain::GetAddressInfo->No server to handle the request');\r\n }\r\n\r\n public async GetFeeData(chainId: number): Promise {\r\n return await GetGasParams(chainId);\r\n }\r\n\r\n public async BroadCastTransaction(transaction: string): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n let result: BlockbookTransactionResult | undefined;\r\n try {\r\n switch (this._servers[i].apiType) {\r\n case 'blockbook':\r\n result = await BlockbookServer.BroadcastTransaction(this._servers[i], transaction);\r\n break;\r\n case 'geth':\r\n result = await PublicEthereumServer.BroadcastTransaction(this._servers[i], transaction);\r\n }\r\n\r\n if (!result) {\r\n return {\r\n isSuccess: false,\r\n error: 'Send transaction neither have result or error',\r\n };\r\n }\r\n\r\n if (result.result) {\r\n return {\r\n isSuccess: true,\r\n txid: result.result,\r\n };\r\n } else if (result.error) {\r\n return {\r\n isSuccess: false,\r\n error: result.error,\r\n };\r\n } else {\r\n MyConsole.Info(\r\n 'EthereumBlockchain::BroadCastTransaction->Send transaction neither have result or error'\r\n );\r\n return {\r\n isSuccess: false,\r\n error: 'Send transaction neither have result or error',\r\n };\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('EthereumBlockchain::BroadCastTransaction->', e);\r\n }\r\n }\r\n\r\n throw new Error('EthereumBlockchain::BroadCastTransaction->No server to handle the request');\r\n }\r\n\r\n //**********************\r\n // PRIVATE FUNCTIONS\r\n //**********************\r\n private _ensureThereIsAServer() {\r\n if (this._servers == undefined || this._servers.length == 0) {\r\n throw new Error('EthereumBlockchain::_ensureThereIsAServer->No server');\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { BlockchainProviders, BlockchainServerModel } from './BlockchainProviders';\r\nimport { BlockchainBase } from './BlockchainBase';\r\nimport { BaseCoinInfoModel } from '../models/CoinInfoModel';\r\nimport { RippleServer } from './_servers/ripple/RippleRpcServer';\r\nimport { MyConsole } from '../utils/console';\r\nimport { AddressModel } from '../models/Prokey';\r\nimport * as WalletModel from '../models/RippleWalletModel';\r\n\r\ntype ProcessServersCallBack = (server: BlockchainServerModel) => Promise;\r\ntype ProcessServersError = (error: any) => void;\r\n\r\nexport class RippleBlockchain extends BlockchainBase {\r\n constructor(coinInfo: BaseCoinInfoModel) {\r\n const servers: Array = BlockchainProviders.Get(coinInfo);\r\n super(servers);\r\n }\r\n\r\n public async GetAddressInfo(reqAdd: AddressModel): Promise {\r\n this._ensureThereIsAServer();\r\n\r\n for (let i = 0; i < this._servers.length; i++) {\r\n try {\r\n // Get account data from ripple server\r\n let res = await RippleServer.GetAddressInfo(this._servers[i], reqAdd.address);\r\n if (res.status == 'success') {\r\n if (res.account_data == null) {\r\n throw new Error('Status is success but there is no account_data');\r\n }\r\n\r\n // return received data\r\n return {\r\n ...res.account_data,\r\n isAccountFounded: true,\r\n addressModel: reqAdd,\r\n };\r\n } else {\r\n // If this account/address is not available, the server returns \"Account not found.\" with following data:\r\n // \"error\": \"actNotFound\"\r\n // \"error_code\": 19,\r\n // \"error_message\": \"Account not found.\",\r\n // in this case, An empty account info with \"isAccountFounded: false\" flag will be retuned\r\n if (res.error == 'actNotFound') {\r\n return {\r\n isAccountFounded: false,\r\n addressModel: reqAdd,\r\n };\r\n }\r\n\r\n // If there is any error message\r\n if (res.error_message) {\r\n throw new Error(res.error_message);\r\n }\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('RippleBlockchain::GetAddressInfo->', e);\r\n }\r\n }\r\n\r\n throw new Error('RippleBlockchain::GetAddressInfo->Request has error');\r\n }\r\n\r\n public async BroadCastTransaction(transaction: string): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n try {\r\n let res = await RippleServer.BroadCastTransaction(this._servers[i], transaction);\r\n if (res.status == 'success') {\r\n return res;\r\n } else {\r\n // If there is any error message\r\n if (res.error_message) {\r\n throw new Error(res.error_message);\r\n } else {\r\n throw new Error('Unknown server error');\r\n }\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('RippleBlockchain::BroadCastTransaction->', e);\r\n }\r\n }\r\n\r\n throw new Error('RippleBlockchain::BroadCastTransaction->Request has error');\r\n }\r\n\r\n /**\r\n * Get Account transactions\r\n * @param account The account address\r\n * @param limit Max number of transaction to retrive\r\n * @returns An array of Ripple Transaction\r\n */\r\n async GetAccountTransactions(\r\n account: string,\r\n limit: number = 10\r\n ): Promise> {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n try {\r\n let res = await RippleServer.GetAccountTransactions(this._servers[i], account, limit);\r\n if (res.status == 'success') {\r\n if (res.transactions == null) {\r\n throw new Error('Status is success but there is no transaction data');\r\n }\r\n\r\n return res.transactions;\r\n } else {\r\n // If there is any error message\r\n if (res.error_message) {\r\n throw new Error(res.error_message);\r\n } else {\r\n throw new Error('Unknown server error');\r\n }\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('RippleBlockchain::GetAccountTransactions->', e);\r\n }\r\n }\r\n\r\n throw new Error('RippleBlockchain::GetAccountTransactions->Request has error');\r\n }\r\n\r\n async GetFee(): Promise {\r\n this._ensureThereIsAServer();\r\n for (let i = 0; i < this._servers.length; i++) {\r\n try {\r\n let res = await RippleServer.GetCurrentFee(this._servers[i]);\r\n if (res.status == 'success') {\r\n return res;\r\n } else {\r\n // If there is any error message\r\n if (res.error_message) {\r\n throw new Error(res.error_message);\r\n } else {\r\n throw new Error('Unknown server error');\r\n }\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('RippleBlockchain::GetFee->', e);\r\n }\r\n }\r\n\r\n throw new Error('RippleBlockchain::GetAddressInfo->Request has error');\r\n }\r\n\r\n private async foreachServer(\r\n callback: ProcessServersCallBack,\r\n errorCallback: ProcessServersError\r\n ): Promise {\r\n for (const server of this._servers) {\r\n try {\r\n return await callback(server);\r\n } catch (e: any) {\r\n errorCallback(e);\r\n }\r\n }\r\n throw new Error('there is no provider that respond to this request');\r\n }\r\n\r\n private _ensureThereIsAServer() {\r\n if (this._servers == undefined || this._servers.length == 0) {\r\n throw new Error('RippleBlockchain::_ensureThereIsAServer->No server');\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n *\r\n * Hadi Robati, hadi@prokey.io\r\n *\r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { Request, newHttpClient } from 'typescript-http-client';\r\n\r\nexport abstract class BaseBlockchainServer {\r\n /**\r\n * Get account info from blockchain node\r\n * @param publicKeyOrAddress Public key(XPUB, YPUB or ZPUB) or address(account base wallets)\r\n */\r\n //public abstract GetAccount(publicKeyOrAddress: string) : Promise;\r\n\r\n /**\r\n * This is a private helper function to GET data from server\r\n * @param url URL + data\r\n * @param changeJson a callback for adjust json before casting\r\n */\r\n protected static async GetFromServer(url: string, changeJson?: (json: string) => string) {\r\n const client = newHttpClient();\r\n\r\n const request = new Request(url, { method: 'GET' });\r\n\r\n return await client.execute(request);\r\n }\r\n\r\n /**\r\n * This is a private helper function to POST data to server\r\n * @param url URL\r\n * @param body Request Body\r\n * @returns Response data from server\r\n */\r\n protected static async PostToServer(url: string, body: any): Promise {\r\n const client = newHttpClient();\r\n\r\n const request = new Request(url, { body: body, method: 'POST' });\r\n\r\n return await client.execute(request);\r\n }\r\n\r\n /**\r\n * This is a private helper function to call a Json RPC method\r\n * @param url Server URL\r\n * @param method The method name to be called\r\n * @param params Params to be passed to method\r\n * @returns Call response\r\n */\r\n protected static async JsonRpcV2Request(url: string, method: string, params: any): Promise {\r\n const client = newHttpClient();\r\n const request = new Request(\r\n url, // server URL\r\n {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n jsonrpc: '2.0',\r\n method: method,\r\n params: [params],\r\n id: 1,\r\n }),\r\n }\r\n );\r\n\r\n return await client.execute(request);\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\n/**\r\n * Specifies level of details returned by request\r\n */\r\n export enum BlockbookDetails {\r\n Basic='basic', \r\n Tokens='tokens',\r\n TokenBalances='tokenBalances',\r\n Txids='txids',\r\n Txs='txs',\r\n Txslight='txslight',\r\n}\r\n\r\n/**\r\n * Specifies what tokens (xpub addresses) are returned by the request\r\n */\r\nexport enum BlockbookTokens {\r\n Nonzero='nonzero',\r\n Used='used',\r\n Derived='derived',\r\n}\r\n\r\n/**\r\n * The request details\r\n */\r\nexport class BlockbookRequestDetails {\r\n // specifies level of details returned by request\r\n public details = BlockbookDetails.Basic; \r\n\r\n // specifies what tokens (xpub addresses) are returned by the request\r\n public tokens = BlockbookTokens.Nonzero; \r\n\r\n // specifies page of returned transactions, starting from 1. If out of range, Blockbook returns the closest possible page.\r\n public page = 1; \r\n\r\n // number of transactions returned by call (default and maximum 1000)\r\n public pageSize = 1000;\r\n\r\n // filter of the returned transactions from block height (default no filter)\r\n public from?: number; \r\n\r\n // filter of the returned transactions to block height (default no filter)\r\n public to?: number; \r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { BlockchainServerModel } from \"../../BlockchainProviders\";\r\nimport { BaseBlockchainServer } from \"../BaseBlockchainServer\";\r\nimport { BitcoinAccountInfoModel, BitcoinAddressInfoModel, BitcoinTransactionDetailInfoModel, BitcoinTransactionInfoModel, BitcoinUtxoModel, BlockbookStatusModel } from \"./BlockbookBitcoinModel\";\r\nimport { BlockbookRequestDetails } from \"./BlockbookRequestModels\";\r\nimport { BlockbookFeeModel, BlockbookTransactionResult } from \"./BlockbookCommonModel\"\r\n\r\nexport class BlockbookServer extends BaseBlockchainServer {\r\n \r\n private _lastFeeFetchTime: Date = new Date();\r\n\r\n constructor() {\r\n super();\r\n\r\n // Initial time to yesterday\r\n this._lastFeeFetchTime.setDate(this._lastFeeFetchTime.getDate() - 1);\r\n }\r\n\r\n /**\r\n * Get bitcoin account using public key\r\n * @param server Server Model\r\n * @param publicKey publicKey in XPUB/YPUB/ZPUB format\r\n * @param details level of details\r\n * @returns \r\n */\r\n public static async GetAccount(server: BlockchainServerModel, publicKey: string, details?: BlockbookRequestDetails): Promise {\r\n const url = `${server.url}/xpub/${publicKey}` + this._getReqParams(details);\r\n \r\n let res = await this.GetFromServer(url);\r\n return res;\r\n }\r\n\r\n /**\r\n * Get information about an address\r\n * @param server Server Model\r\n * @param address address\r\n * @param details level of details\r\n */\r\n public static async GetAddressInfo(server: BlockchainServerModel, address: string, details?: BlockbookRequestDetails): Promise {\r\n const url = `${server.url}/address/${address}` + this._getReqParams(details);\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n /**\r\n * Get list of unspent transactions\r\n * @param server Server model\r\n * @param addressOrPublicKey Address or publickey\r\n * @returns list of Utxo\r\n */\r\n public static async GetUtxo(server: BlockchainServerModel, addressOrPublicKey: string): Promise {\r\n const url = `${server.url}/utxo/${addressOrPublicKey}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n /**\r\n * Get transaction info from server\r\n * @param server Server model\r\n * @param txid Transaction id\r\n * @returns Transaction info\r\n */\r\n public static async GetTransaction(server: BlockchainServerModel, txid: string): Promise {\r\n const url = `${server.url}/tx/${txid}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n /**\r\n * \r\n * @param server Server model\r\n * @param txid Transaction id\r\n * @returns transaction data in the exact format as returned by backend\r\n */\r\n public static async GetRawTransaction(server: BlockchainServerModel, txid: string): Promise {\r\n const url = `${server.url}/tx-specific/${txid}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n /**\r\n * Send new transaction to network\r\n * @param server Server model\r\n * @param transaction Signed transaction\r\n * @returns Broadcast result\r\n */\r\n public static async BroadcastTransaction(server: BlockchainServerModel, transaction: string): Promise {\r\n const url = `${server.url}/sendtx/${transaction}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n /**\r\n * Estimate transaction fee\r\n * @param server Server model\r\n * @param numberOfBlocks desire blocknumber\r\n * @returns Fee model (per BTC)\r\n */\r\n public static async GetEstimateFee(server: BlockchainServerModel, numberOfBlocks: number): Promise {\r\n const url = `${server.url}/estimatefee/${numberOfBlocks}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n public static async GetZcashChainId(server: BlockchainServerModel) {\r\n const url = `${server.url}`;\r\n\r\n return await this.GetFromServer(url);\r\n }\r\n\r\n //******************************\r\n // PRIVATE FUNCTIONS\r\n //******************************\r\n /**\r\n * serialize parameters\r\n * @param details \r\n * @returns \r\n */\r\n private static _getReqParams(details?: BlockbookRequestDetails): string {\r\n if(details == null)\r\n return '';\r\n \r\n let p = `?page=${details.page}&pagesize=${details.pageSize}&details=${details.details}&tokens=${details.tokens}`;\r\n\r\n if(details.from)\r\n p += `&from=${details.from}`;\r\n\r\n if(details.to)\r\n p += `&to=${details.to}`;\r\n\r\n return p;\r\n }\r\n}","import { FeeData, JsonRpcProvider } from '@ethersproject/providers';\r\nimport { BlockchainServerModel } from '../../BlockchainProviders';\r\nimport * as WalletModel from '../../../models/EthereumWalletModel';\r\nimport { Erc20BaseCoinInfoModel, EthereumBaseCoinInfoModel } from '../../../models/CoinInfoModel';\r\nimport { Contract } from '@ethersproject/contracts';\r\nimport ERC20_ABI from '../../../../data/erc20.abi.json';\r\nimport { GetGasParams } from '../../../utils/ethereum-providers';\r\nimport { BlockbookTransactionResult } from '../blockbook/BlockbookCommonModel';\r\n\r\nclass PublicEthereumServer {\r\n static async GetAddressInfo(\r\n server: BlockchainServerModel,\r\n address: string,\r\n isErc20: boolean,\r\n coinInfo: Erc20BaseCoinInfoModel | EthereumBaseCoinInfoModel | undefined\r\n ): Promise {\r\n const provider = new JsonRpcProvider(server.url);\r\n\r\n let balance = '0';\r\n let tokenBalance = '0';\r\n if (isErc20) {\r\n const erc20CoinInfo = coinInfo as Erc20BaseCoinInfoModel;\r\n const contract = new Contract(erc20CoinInfo.address, ERC20_ABI, provider);\r\n const addressBalance = (await contract.balanceOf(address)).toString();\r\n tokenBalance = addressBalance;\r\n }\r\n balance = (await provider.getBalance(address)).toString();\r\n const nonce = (await provider.getTransactionCount(address)).toString(16);\r\n\r\n const accInfo: WalletModel.EthereumAccountInfo = {\r\n address,\r\n balance: isErc20 ? tokenBalance : balance,\r\n nonce,\r\n unconfirmedBalance: '0',\r\n nonTokenTxs: 0,\r\n txs: 0,\r\n unconfirmedTxs: 0,\r\n transactions: [],\r\n isDirectQueryFromGeth: true,\r\n };\r\n if (isErc20) {\r\n accInfo.ethBalance = balance;\r\n }\r\n return accInfo;\r\n }\r\n\r\n public async GetFeeData(chainId: number): Promise {\r\n return await GetGasParams(chainId);\r\n }\r\n\r\n public static async BroadcastTransaction(\r\n server: BlockchainServerModel,\r\n transaction: string\r\n ): Promise {\r\n const provider = new JsonRpcProvider(server.url);\r\n try {\r\n const txResult = await provider.sendTransaction(transaction);\r\n return {\r\n result: txResult.hash,\r\n };\r\n } catch (e: any) {\r\n return {\r\n error: e.reason,\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default PublicEthereumServer;\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) 2022 Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { BaseBlockchainServer } from '../BaseBlockchainServer';\r\nimport { BlockchainServerModel } from '../../BlockchainProviders';\r\nimport {\r\n RippleAccountInfoResponse,\r\n RippleFeeResponse,\r\n RippleAccountTxResponse,\r\n RippleSubmitTransactionResponse,\r\n} from './RippleRpcModel';\r\n\r\nexport class RippleServer extends BaseBlockchainServer {\r\n /**\r\n * Get information about an address\r\n * @param server Server Model\r\n * @param address address\r\n */\r\n public static async GetAddressInfo(server: BlockchainServerModel, address: string): Promise {\r\n const res = await this.JsonRpcV2Request(\r\n server.url, // Server URL\r\n 'account_info', // method\r\n {\r\n // params\r\n account: address,\r\n strict: true,\r\n ledger_index: 'current',\r\n queue: false,\r\n }\r\n );\r\n\r\n if (res == null || res.result == null) {\r\n Promise.reject('Not a valid response from the server');\r\n }\r\n\r\n return res.result;\r\n }\r\n\r\n /**\r\n * Broadcasting the transaction\r\n * @param server Server Model\r\n * @param data Signed data to be broadcasted to network\r\n * @returns\r\n */\r\n public static async BroadCastTransaction(\r\n server: BlockchainServerModel,\r\n data: string\r\n ): Promise {\r\n const res = await this.JsonRpcV2Request(\r\n server.url, // Server URL\r\n 'submit', // method\r\n {\r\n // params\r\n tx_blob: data,\r\n }\r\n );\r\n\r\n return res.result;\r\n }\r\n\r\n /**\r\n * Getting list of transaction info\r\n * @param server Server Model\r\n * @param account Account address\r\n * @param limit Number of transactions\r\n * @returns List of ripple transaction data\r\n */\r\n public static async GetAccountTransactions(\r\n server: BlockchainServerModel,\r\n account: string,\r\n limit: number = 10\r\n ): Promise {\r\n const res = await this.JsonRpcV2Request(\r\n server.url, // Server URL\r\n 'account_tx', // method\r\n {\r\n // params\r\n account: account,\r\n binary: false,\r\n forward: false,\r\n ledger_index_max: -1,\r\n ledger_index_min: -1,\r\n limit: limit\r\n }\r\n );\r\n\r\n if (res == null || res.result == null) {\r\n Promise.reject('Not a valid response from the server');\r\n }\r\n\r\n return res.result;\r\n }\r\n\r\n /**\r\n * Getting current fee\r\n * @returns Ripple Fee\r\n */\r\n public static async GetCurrentFee(server: BlockchainServerModel): Promise {\r\n const res = await this.JsonRpcV2Request(\r\n server.url, // Server URL\r\n 'fee', // method\r\n {} // no param needed\r\n );\r\n\r\n if (res == null || res.result == null) {\r\n Promise.reject('Not a valid response from the server');\r\n }\r\n\r\n return res.result;\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n *\r\n * Hadi Robati, hadi@prokey.io\r\n *\r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport {\r\n BitcoinBaseCoinInfoModel,\r\n EthereumBaseCoinInfoModel,\r\n Erc20BaseCoinInfoModel,\r\n MiscCoinInfoModel,\r\n OmniCoinInfoModel,\r\n RippleCoinInfoModel,\r\n NemCoinInfoModel,\r\n} from \"../models/CoinInfoModel\";\r\n\r\n import * as EthereumNetworks from \"../utils/ethereum-networks\";\r\n\r\nconst compareVersions = require('compare-versions');\r\n\r\nconst modelName = require.resolve(\"../../data/ProkeyCoinsInfo.json\");\r\ndelete require.cache[modelName];\r\nconst ProkeyCoinInfoModel = require(\"../../data/ProkeyCoinsInfo.json\");\r\n\r\nexport enum CoinBaseType {\r\n BitcoinBase,\r\n EthereumBase,\r\n ERC20,\r\n NEM,\r\n OMNI,\r\n Ripple,\r\n Stellar,\r\n OTHERS\r\n}\r\n\r\nexport interface CoinNameModel {\r\n Name: string;\r\n Shortcut: string;\r\n Type: CoinBaseType;\r\n Priority: Number;\r\n ContractAddress: string;\r\n Decimals: number;\r\n ChainOrPropertyId?: number;\r\n}\r\n\r\nexport class CoinInfo {\r\n\r\n /**\r\n * This function will return the CoinInfo by coinName and type\r\n * @param coinName The coin name or shortcut\r\n * @param coinType Which coin type are you looking for? BitcoinBase, ERC20 or Ethereum.\r\n * @param chainOrPropertyId For Ethereum or OMNI, this property can be used instead of name if set.\r\n */\r\n public static Get(coinName: string, coinType: CoinBaseType, chainOrPropertyId?: number): T {\r\n if (coinType == undefined)\r\n throw new Error();\r\n\r\n if(coinType == CoinBaseType.ERC20 && coinName.length <= 0 ) {\r\n throw new Error(\"You have to provide Contract Address for ERC20 tokens\");\r\n } else if( (coinType == CoinBaseType.EthereumBase || coinType == CoinBaseType.OMNI) && coinName.length == 0 && chainOrPropertyId == null) {\r\n throw new Error(\"No Chain ID or coin name provided\");\r\n }\r\n\r\n let c: any;\r\n switch (coinType) {\r\n case CoinBaseType.BitcoinBase:\r\n c = ProkeyCoinInfoModel.bitcoin;\r\n break;\r\n case CoinBaseType.EthereumBase:\r\n c = ProkeyCoinInfoModel.eth;\r\n break;\r\n case CoinBaseType.ERC20:\r\n c = ProkeyCoinInfoModel.erc20;\r\n break;\r\n case CoinBaseType.OMNI:\r\n c = ProkeyCoinInfoModel.omni;\r\n break;\r\n case CoinBaseType.Ripple:\r\n c = ProkeyCoinInfoModel.ripple;\r\n break;\r\n case CoinBaseType.NEM:\r\n c = ProkeyCoinInfoModel.NEM;\r\n break;\r\n }\r\n\r\n let f = coinName.toLowerCase();\r\n\r\n let ci: any;\r\n\r\n switch(coinType){\r\n case CoinBaseType.BitcoinBase:\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n\r\n ci.id = `btc_${ci.shortcut}`;\r\n break;\r\n case CoinBaseType.EthereumBase:\r\n if(chainOrPropertyId != null) {\r\n ci = c.find( token => token.chain_id == chainOrPropertyId);\r\n } else {\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n }\r\n\r\n ci.id = `eth_${ci.shortcut}`;\r\n break;\r\n case CoinBaseType.ERC20:\r\n ci = c.find(obj => obj.address.toLowerCase() == f || obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n\r\n ci.id = `erc20_${EthereumNetworks.GetNetworkByChainId(ci.chain_id)}_${ci.shortcut}`;\r\n ci.slip44 = EthereumNetworks.GetSlip44ByChainId(ci.chain_id);\r\n break;\r\n case CoinBaseType.OMNI:\r\n if(chainOrPropertyId != null) {\r\n ci = c.find( token => token.proparty_id == chainOrPropertyId);\r\n } else {\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n }\r\n\r\n // Update the divisible\r\n ci.decimals = ci.divisible ? 8 : 0;\r\n \r\n ci.id = `omni_${ci.shortcut}`;\r\n break;\r\n case CoinBaseType.Ripple:\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n\r\n ci.id = `ripple_${ci.shortcut}`;\r\n break;\r\n case CoinBaseType.NEM:\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n\r\n ci.id = `nem_${ci.shortcut}`;\r\n break;\r\n default:\r\n ci = c.find(obj => obj.name.toLowerCase() == f || obj.shortcut.toLowerCase() == f);\r\n\r\n ci.id = `unknown_${ci.shortcut}`;\r\n break;\r\n }\r\n\r\n if (ci)\r\n {\r\n ci.coinBaseType = coinType;\r\n return ci;\r\n }\r\n else\r\n throw new Error(`cannot find ${coinName}`);\r\n }\r\n\r\n /**\r\n * Returning the sorted list of all coins\r\n * @param firmwareVersion Specific Version of Prokey which support this coin\r\n */\r\n public static GetAllCoinsInfoByVersion(firmwareVersion: string): Array< BitcoinBaseCoinInfoModel |\r\n EthereumBaseCoinInfoModel |\r\n Erc20BaseCoinInfoModel |\r\n MiscCoinInfoModel |\r\n OmniCoinInfoModel |\r\n RippleCoinInfoModel |\r\n NemCoinInfoModel> {\r\n\r\n let list = new Array();\r\n\r\n //! For all bitcoin base coins\r\n ProkeyCoinInfoModel.bitcoin.forEach(coin => {\r\n //! Check the version\r\n if(compareVersions(firmwareVersion, coin.support.optimum) >= 0) {\r\n list.push({\r\n ...coin,\r\n coinBaseType: CoinBaseType.BitcoinBase,\r\n id: `btc_${coin.shortcut}`,\r\n })\r\n }\r\n });\r\n\r\n //! For all ethereum base coins\r\n ProkeyCoinInfoModel.eth.forEach(coin => {\r\n if(compareVersions(firmwareVersion, coin.support.optimum) >= 0) {\r\n list.push({\r\n ...coin,\r\n coinBaseType: CoinBaseType.EthereumBase,\r\n id: `eth_${coin.shortcut}`,\r\n });\r\n }\r\n });\r\n\r\n //! For all ERC20 tokens\r\n ProkeyCoinInfoModel.erc20.forEach(token => {\r\n if(compareVersions(firmwareVersion, token.support.optimum) >= 0) {\r\n list.push({\r\n ...token,\r\n coinBaseType: CoinBaseType.ERC20,\r\n id: `erc20_${EthereumNetworks.GetNetworkByChainId(token.chain_id)}_${token.shortcut}`,\r\n slip44: EthereumNetworks.GetSlip44ByChainId(token.chain_id),\r\n });\r\n }\r\n });\r\n\r\n //! For all OMNI tokens in support file\r\n ProkeyCoinInfoModel.omni.forEach(omni => {\r\n if(compareVersions(firmwareVersion, omni.support.optimum) >= 0) {\r\n list.push({\r\n ...omni,\r\n decimals: (omni.divisible) ? 8 : 0,\r\n coinBaseType: CoinBaseType.OMNI,\r\n id: `omni_${omni.shortcut}`,\r\n });\r\n }\r\n });\r\n\r\n //! For all Ripple base coins\r\n ProkeyCoinInfoModel.ripple.forEach(ripple => {\r\n //! Check the version\r\n if(compareVersions(firmwareVersion, ripple.support.optimum) >= 0) {\r\n list.push({\r\n ...ripple,\r\n coinBaseType: CoinBaseType.Ripple,\r\n id: `ripple_${ripple.shortcut}`,\r\n })\r\n }\r\n });\r\n\r\n //! For all Nem base coins\r\n ProkeyCoinInfoModel.NEM.forEach(nem => {\r\n //! Check the version\r\n if(compareVersions(firmwareVersion, nem.support.optimum) >= 0) {\r\n list.push({\r\n ...nem,\r\n coinBaseType: CoinBaseType.NEM,\r\n id: `nem_${nem.shortcut}`,\r\n })\r\n }\r\n });\r\n\r\n //! Sort the list by Priority\r\n list.sort((a, b) => {\r\n if (a.priority > b.priority)\r\n return 1;\r\n else if (a.priority < b.priority)\r\n return -1;\r\n else\r\n return 0;\r\n });\r\n\r\n return list;\r\n }\r\n static compareVersions(firmwareVersion, networkVersion) {\r\n return compareVersions(firmwareVersion, networkVersion);\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport * as ProkeyResponses from '../models/Prokey';\r\nimport * as PathUtil from '../utils/pathUtils';\r\nimport * as Utility from '../utils/utils';\r\nimport { Device } from './Device';\r\nimport { GeneralResponse, GeneralErrors } from '../models/GeneralResponse';\r\nimport { ICoinCommands } from './ICoinCommand';\r\nimport { BitcoinTx, BitcoinSignTxParams } from '../models/BitcoinTx';\r\nimport { validateParams } from '../utils/paramsValidator';\r\nimport { MyConsole } from '../utils/console';\r\nimport { BitcoinBaseCoinInfoModel, OmniCoinInfoModel } from '../models/CoinInfoModel'\r\nimport { CoinInfo, CoinBaseType } from '../coins/CoinInfo';\r\nimport BigNumber from 'bignumber.js';\r\n\r\nexport class BitcoinCommands implements ICoinCommands {\r\n _bitcoinTx!: BitcoinTx;\r\n _signatures: Array = [];\r\n _serializedTx: string = '';\r\n _isSigning: boolean = false;\r\n _failedSignHandler: any;\r\n private _coinInfo: BitcoinBaseCoinInfoModel | OmniCoinInfoModel;\r\n\r\n constructor(coinNameOrShortcut: string = \"Bitcoin\", isOmni = false) {\r\n\r\n if(isOmni == false) {\r\n this._coinInfo = CoinInfo.Get(coinNameOrShortcut, CoinBaseType.BitcoinBase );\r\n } else {\r\n this._coinInfo = CoinInfo.Get(coinNameOrShortcut, CoinBaseType.OMNI );\r\n }\r\n\r\n\r\n if(this._coinInfo == null)\r\n {\r\n throw new Error(`Cannot load CoinInfo for ${coinNameOrShortcut}`);\r\n }\r\n }\r\n \r\n /**\r\n * Get Bitcoin/Litecoin and etc address\r\n * @param device Prokey device instance\r\n * @param path BIP path \r\n * @param showOnProkey true means show the address on device display\r\n */\r\n public async GetAddress(device: Device,\r\n path: Array | string,\r\n showOnProkey?: boolean): Promise {\r\n\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n const scriptType = PathUtil.GetScriptType(address_n);\r\n\r\n let param = {\r\n address_n: address_n,\r\n coin_name: this._coinInfo.on_device || this._coinInfo.name || 'Bitcoin',\r\n show_display: showDisplay,\r\n script_type: scriptType,\r\n }\r\n\r\n let res = await device.SendMessage('GetAddress', param, 'Address');\r\n\r\n return {\r\n address: res.address,\r\n path: address_n,\r\n };\r\n }\r\n \r\n /**\r\n * Get List of addresses, This function is useful in account discovery\r\n * @param device the prokey device instance\r\n * @param paths list of paths to retrive the addresses\r\n */\r\n public async GetAddresses(device: Device,\r\n paths: Array | string>): Promise> {\r\n\r\n if (device == null || paths == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let lstAddress: Array = new Array();\r\n let lstPathN: Array> = new Array>();\r\n let lstScriptType: Array = new Array();\r\n\r\n // convert path to array of num\r\n paths.forEach(async (path) => \r\n {\r\n let pn: Array;\r\n if(typeof path == \"string\") {\r\n try {\r\n pn = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return { success: false, errorCode: GeneralErrors.PATH_NOT_VALID }\r\n }\r\n } \r\n else {\r\n pn = path;\r\n }\r\n\r\n // prepare list of paths\r\n lstPathN.push(pn);\r\n\r\n // prepare list of Input Script Types\r\n lstScriptType.push(PathUtil.IsSegwitPath(pn) ? ProkeyResponses.EnumInputScriptType.SPENDP2SHWITNESS : ProkeyResponses.EnumInputScriptType.SPENDADDRESS);\r\n });\r\n \r\n let i=0;\r\n\r\n for(i=0; i('GetAddress', param, 'Address');\r\n\r\n // Generate address model\r\n lstAddress.push({\r\n address: res.address,\r\n path: lstPathN[i],\r\n });\r\n\r\n }\r\n catch(e) {\r\n Promise.reject(e);\r\n }\r\n }\r\n\r\n return lstAddress;\r\n }\r\n \r\n /**\r\n * Get Public key\r\n * @param device The prokey device\r\n * @param path BIP path\r\n * @param showOnProkey true means show the public key on prokey display\r\n */\r\n public async GetPublicKey(device: Device,\r\n path: Array | string,\r\n showOnProkey?: boolean): Promise {\r\n\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n //! Get the script type\r\n //! Default or BIP44 => SPENDADDRESS\r\n //! BIP49 => SPENDP2SHWITNESS\r\n let scriptType = PathUtil.GetScriptType(address_n);\r\n\r\n let param = {\r\n address_n: address_n,\r\n coin_name: this._coinInfo.on_device || this._coinInfo.name || 'Bitcoin',\r\n show_display: showDisplay,\r\n script_type: scriptType,\r\n }\r\n\r\n return await device.SendMessage('GetPublicKey', param, 'PublicKey');\r\n }\r\n \r\n /**\r\n * sign a transaction\r\n * @param device Prokey device instance\r\n * @param bitcoinTransaction transaction to be signed \r\n */\r\n public async SignTransaction(device: Device, bitcoinTransaction: BitcoinTx): Promise {\r\n\r\n console.log(\"SignTransaction\", bitcoinTransaction);\r\n if(!device) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"BitcoinCommands::SignTransaction->parameter Device cannot be null\",\r\n }\r\n\r\n throw e;\r\n }\r\n\r\n if(!bitcoinTransaction) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"BitcoinCommands::SignTransaction->parameter bitcoinTransaction cannot be null\",\r\n }\r\n \r\n throw e;\r\n }\r\n\r\n // reject if already in signing\r\n if(this._isSigning) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.BUSY,\r\n errorMessage: \"BitcoinCommands::SignTransaction->Already in signig\",\r\n }\r\n \r\n throw e;\r\n }\r\n\r\n this._serializedTx = '';\r\n this._signatures = [];\r\n\r\n return new Promise(async (resolve, reject) => {\r\n\r\n this._isSigning = true;\r\n\r\n this._failedSignHandler = (reason: any) => {\r\n // \"this\" can be null if the user after signing a transaction, change the coin \r\n if(this != undefined)\r\n this._isSigning = false;\r\n\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n\r\n /*let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.SIGNING_FAILED,\r\n errorMessage: `BitcoinCommands::SignTransaction->${reason}`,\r\n }*/\r\n\r\n reject(`Signing transaction failed: ${reason.message}`);\r\n };\r\n\r\n // Validate the parameters\r\n try {\r\n // TODO: This validator needs test\r\n validateParams(bitcoinTransaction, [\r\n { name: 'coinName', type: 'string', obligatory: true },\r\n { name: 'inputs', type: 'array', obligatory: true },\r\n { name: 'outputs', type: 'array', obligatory: true },\r\n { name: 'refTxs', type: 'array', allowEmpty: true },\r\n { name: 'locktime', type: 'number' },\r\n { name: 'timestamp', type: 'number' },\r\n { name: 'version', type: 'number' },\r\n { name: 'expiry', type: 'number' },\r\n { name: 'overwintered', type: 'boolean' },\r\n { name: 'versionGroupId', type: 'number' },\r\n { name: 'branchId', type: 'number' },\r\n ]);\r\n\r\n\r\n //! If there is refTxs, Validate it\r\n // TODO: This validator needs test\r\n if (Object.prototype.hasOwnProperty.call(bitcoinTransaction, 'refTxs')) {\r\n if(bitcoinTransaction.refTxs){\r\n bitcoinTransaction.refTxs.forEach(tx => {\r\n validateParams(tx, [\r\n { name: 'hash', type: 'string', obligatory: true },\r\n { name: 'inputs', type: 'array', obligatory: true },\r\n { name: 'bin_outputs', type: 'array', obligatory: true },\r\n { name: 'version', type: 'number', obligatory: true },\r\n { name: 'lock_time', type: 'number', obligatory: true },\r\n { name: 'extra_data', type: 'string' },\r\n { name: 'timestamp', type: 'number' },\r\n { name: 'version_group_id', type: 'number' },\r\n ]);\r\n });\r\n }\r\n }\r\n\r\n //! Validate the inputs\r\n // TODO: This validator needs test\r\n // TODO: Validate multisig\r\n for (const input of bitcoinTransaction.inputs) {\r\n PathUtil.validatePath(input.address_n);\r\n const useAmount = PathUtil.IsSegwitPath(input.address_n);\r\n input.script_type = ProkeyResponses.EnumInputScriptType.SPENDADDRESS;\r\n if(useAmount){\r\n input.script_type = ProkeyResponses.EnumInputScriptType.SPENDP2SHWITNESS;\r\n }\r\n validateParams(input, [\r\n { name: 'prev_hash', type: 'string', obligatory: true },\r\n { name: 'prev_index', type: 'number', obligatory: true },\r\n //{ name: 'script_type', type: 'string' },\r\n { name: 'amount', type: 'string', obligatory: useAmount },\r\n { name: 'sequence', type: 'number' },\r\n { name: 'multisig', type: 'object' },\r\n ]);\r\n }\r\n\r\n\r\n let totalOutputAmount : BigNumber = new BigNumber(0);\r\n //! Validate outputs\r\n for (const output of bitcoinTransaction.outputs) {\r\n validateParams(output, [\r\n { name: 'address_n', type: 'array' },\r\n { name: 'address', type: 'string' },\r\n { name: 'amount', type: 'string' },\r\n { name: 'op_return_data', type: 'array' },\r\n { name: 'multisig', type: 'object' },\r\n ]);\r\n\r\n if (Object.prototype.hasOwnProperty.call(output, 'address_n') && Object.prototype.hasOwnProperty.call(output, 'address')) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: 'Cannot use address and address_n in one output',\r\n }\r\n throw e;\r\n }\r\n\r\n // If there is amout in output, we need to check if it's less than dust_limit\r\n // now we sum all output's amount\r\n if(Object.prototype.hasOwnProperty.call(output, 'amount') && !Object.prototype.hasOwnProperty.call(output, 'op_return_data')) {\r\n totalOutputAmount = totalOutputAmount.plus(typeof output.amount === 'string' ? output.amount : '0');\r\n }\r\n\r\n\r\n // TODO Validate output address\r\n // if (output.hasOwnProperty(\"address_n\")) {\r\n // const scriptType = PathUtil.getOutputScriptType(output.address_n);\r\n // if (output.script_type !== scriptType){\r\n // let e: GeneralResponse = {\r\n // success: false,\r\n // errorCode: GeneralErrors.INVALID_PARAM,\r\n // errorMessage: `Output change script_type should be set to ${scriptType}`,\r\n // }\r\n // throw e;\r\n // }\r\n // }\r\n\r\n // if (typeof output.address === 'string' && isValidAddress(output.address, coinInfo)) {\r\n // // validate address with coin info\r\n // let e: GeneralResponse = {\r\n // success: false,\r\n // errorCode: GeneralErrors.INVALID_PARAM,\r\n // errorMessage: `Invalid output address ${ output.address }`,\r\n // }\r\n // throw e;\r\n // }\r\n }\r\n\r\n \r\n // Total output amount should be more than coin dust limit\r\n if( totalOutputAmount.lte(this._coinInfo.dust_limit)){\r\n let e : GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: `The total output is less than coin dust ${this._coinInfo.dust_limit}`,\r\n }\r\n\r\n throw e;\r\n }\r\n\r\n }\r\n catch (ex) {\r\n MyConsole.Info(ex);\r\n this._isSigning = false;\r\n return reject(ex);\r\n }\r\n\r\n // keep transaction\r\n this._bitcoinTx = bitcoinTransaction;\r\n\r\n // CPC, PPC and tPPC need timestamp\r\n let shortcut = this._coinInfo.shortcut;\r\n if ((shortcut === 'CPC' || shortcut === 'PPC' || shortcut === 'tPPC') && !Object.prototype.hasOwnProperty.call(bitcoinTransaction, 'timestamp')) {\r\n const d = new Date();\r\n\r\n bitcoinTransaction.options.timestamp = Math.round(d.getTime() / 1000);\r\n }\r\n\r\n // build a dictionary of RefTx\r\n const dicRefTx: { [key: string]: ProkeyResponses.RefTransaction } = {};\r\n if (bitcoinTransaction.refTxs != null) {\r\n bitcoinTransaction.refTxs.forEach((tx: ProkeyResponses.RefTransaction) => {\r\n dicRefTx[tx.hash.toLowerCase()] = tx;\r\n });\r\n }\r\n\r\n let param : BitcoinSignTxParams = {\r\n outputs_count: bitcoinTransaction.outputs.length,\r\n inputs_count: bitcoinTransaction.inputs.length,\r\n coin_name: bitcoinTransaction.coinName,\r\n ...bitcoinTransaction.options,\r\n }\r\n\r\n MyConsole.Info(param);\r\n \r\n try{\r\n device.AddOnFailureCallBack(this._failedSignHandler);\r\n let txReq = await device.SendMessage('SignTx', param, 'TxRequest');\r\n await this.TxReqHandler(device, dicRefTx, txReq, resolve, reject);\r\n }catch(e){\r\n this._isSigning = false;\r\n reject(e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Sign Message\r\n * @param device Prokey device instance\r\n * @param address_n array of BIP32/44 Path\r\n * @param message message to be signed\r\n * @param coin coin name\r\n */\r\n public async SignMessage(\r\n device: Device, \r\n address_n: Array, \r\n message: Uint8Array, \r\n coin?: string): Promise {\r\n\r\n let scriptType = PathUtil.GetScriptType(address_n);\r\n\r\n let res = await device.SendMessage('SignMessage', {\r\n address_n: address_n,\r\n message: message,\r\n coin_name: coin || 'Bitcoin',\r\n script_type: scriptType,\r\n },'MessageSignature');\r\n\r\n if(res.signature){\r\n res.signature = Utility.ByteArrayToHexString(res.signature);\r\n }\r\n\r\n return res;\r\n }\r\n \r\n /**\r\n * Verify Message\r\n * @param device Prokey device instance\r\n * @param address address\r\n * @param message message\r\n * @param signature signature data\r\n * @param coinName coin name\r\n */\r\n public async VerifyMessage(\r\n device: Device,\r\n address: string,\r\n message: Uint8Array,\r\n signature: Uint8Array,\r\n coinName: string): Promise {\r\n\r\n return await device.SendMessage('VerifyMessage', {\r\n address: address,\r\n signature: signature,\r\n message: message,\r\n coin_name: coinName || 'Bitcoin',\r\n } ,'Success');\r\n }\r\n\r\n // **********************************\r\n // PRIVATE FUNCTIONS\r\n // Signing transaction helpers\r\n // **********************************\r\n private RequesCurrentTxInfo(\r\n reqType: ProkeyResponses.eRequestType,\r\n reqIndex: number | string): any {\r\n //! request_index is used for input/output requested index\r\n const i = +reqIndex;\r\n\r\n //! the request should not be TXMETA or TXEXTRADATA\r\n if (reqType == ProkeyResponses.eRequestType.TXMETA || reqType == ProkeyResponses.eRequestType.TXEXTRADATA) {\r\n throw new Error(`Cannot read ${reqType} from signed transaction`);\r\n }\r\n\r\n if (reqType == ProkeyResponses.eRequestType.TXINPUT) {\r\n\r\n //! The prev_hash needs some modifications\r\n let inp: any = this._bitcoinTx.inputs[i];\r\n\r\n if (typeof (inp.prev_hash) == 'string') {\r\n //! The device needs prev_hash as byteArray\r\n inp.prev_hash = Utility.HexStringToByteArray(inp.prev_hash);\r\n }\r\n\r\n //! The prev_hash to device should be reversed\r\n inp.prev_hash = Utility.ReverseByteArray(inp.prev_hash);\r\n\r\n return { inputs: [inp] };\r\n }\r\n else if (reqType == ProkeyResponses.eRequestType.TXOUTPUT) {\r\n return { outputs: [this._bitcoinTx.outputs[i]] };\r\n }\r\n\r\n throw new Error(`Unknown request type: ${reqType}`);\r\n }\r\n \r\n private RequestPrevTxInfo(\r\n reqTx: ProkeyResponses.RefTransaction,\r\n requestType: ProkeyResponses.eRequestType,\r\n requestIndex: string | number,\r\n dataLen?: (string | number),\r\n dataOffset?: (string | number)): any {\r\n\r\n const i = +requestIndex;\r\n if (requestType == ProkeyResponses.eRequestType.TXINPUT) {\r\n //! The hash needs some modifications\r\n let inp: any = reqTx.inputs[i];\r\n\r\n //! The device needs prev_hash as byteArray\r\n inp.prev_hash = Utility.HexStringToByteArray(inp.prev_hash);\r\n\r\n //! The prev_hash to device should be reversed\r\n inp.prev_hash = Utility.ReverseByteArray(inp.prev_hash);\r\n\r\n inp.script_sig = Utility.HexStringToByteArray(inp.script_sig);\r\n\r\n return { inputs: [inp] };\r\n }\r\n\r\n if (requestType == ProkeyResponses.eRequestType.TXOUTPUT) {\r\n let out: any = reqTx.bin_outputs[i];\r\n\r\n out.script_pubkey = Utility.HexStringToByteArray(out.script_pubkey);\r\n return { bin_outputs: [out] };\r\n }\r\n\r\n if (requestType == ProkeyResponses.eRequestType.TXEXTRADATA) {\r\n if (dataLen == null) {\r\n throw new Error('Missing extra_data_len');\r\n }\r\n const dataLenN: number = +dataLen;\r\n\r\n if (dataOffset == null) {\r\n throw new Error('Missing extra_data_offset');\r\n }\r\n const dataOffsetN: number = +dataOffset;\r\n\r\n if (reqTx.extra_data == null) {\r\n throw new Error('No extra data for transaction ' + reqTx.hash);\r\n }\r\n\r\n const data: string = reqTx.extra_data;\r\n const substring = data.substring(dataOffsetN * 2, (dataOffsetN + dataLenN) * 2);\r\n return { extra_data: substring };\r\n }\r\n\r\n if (requestType == ProkeyResponses.eRequestType.TXMETA) {\r\n const outputCount = reqTx.bin_outputs.length;\r\n const data: string | undefined = reqTx.extra_data;\r\n const meta = {\r\n version: reqTx.version,\r\n lock_time: reqTx.lock_time,\r\n inputs_cnt: reqTx.inputs.length,\r\n outputs_cnt: outputCount,\r\n timestamp: reqTx.timestamp,\r\n version_group_id: reqTx.version_group_id,\r\n };\r\n\r\n if (typeof data === 'string' && data.length !== 0) {\r\n return {\r\n ...meta,\r\n extra_data_len: data.length / 2,\r\n };\r\n }\r\n\r\n return meta;\r\n }\r\n throw new Error(`Unknown request type: ${requestType}`);\r\n }\r\n \r\n private RequestTxInfo(\r\n req: ProkeyResponses.TxRequest,\r\n dicRefTx: { [hash: string]: ProkeyResponses.RefTransaction },\r\n ): any {\r\n // Device needs previous transaction info\r\n if (req.details.tx_hash && req.details.tx_hash.length > 0) {\r\n let requestedHashInString: string = Utility.ByteArrayToHexString(req.details.tx_hash);\r\n const reqTx = dicRefTx[requestedHashInString];\r\n if (reqTx == null) {\r\n throw new Error(`Unknown tx: ${req.details.tx_hash} requested`);\r\n }\r\n\r\n return this.RequestPrevTxInfo(\r\n reqTx,\r\n req.request_type,\r\n req.details.request_index,\r\n req.details.extra_data_len,\r\n req.details.extra_data_offset\r\n )\r\n } else { // Device needs current transaction info\r\n return this.RequesCurrentTxInfo(\r\n req.request_type,\r\n req.details.request_index,\r\n )\r\n }\r\n\r\n }\r\n \r\n private SaveTxSignatures(txReq: ProkeyResponses.TxRequestSerialized): void {\r\n if (txReq.serialized_tx != null) {\r\n if (this._serializedTx.length != 0) {\r\n this._serializedTx += ',';\r\n }\r\n this._serializedTx += txReq.serialized_tx;\r\n }\r\n if (txReq.signature_index != null) {\r\n if (txReq.signature == null) {\r\n throw new Error('Unexpected null in signature.');\r\n }\r\n\r\n if (txReq.signature.length > 0)\r\n this._signatures[txReq.signature_index] = txReq.signature;\r\n }\r\n };\r\n \r\n private async TxReqHandler(\r\n device: Device,\r\n dicRefTx: { [key: string]: ProkeyResponses.RefTransaction },\r\n txReq: ProkeyResponses.TxRequest,\r\n resolve: any,\r\n reject: any, ): Promise {\r\n\r\n MyConsole.Info(\"BitcoinCommands::TxReqHandler->Request\", txReq);\r\n\r\n // Save signature and serialized transaction\r\n if (txReq.serialized != null) {\r\n this.SaveTxSignatures(txReq.serialized);\r\n }\r\n\r\n //! If siging finished, Callback function will be called\r\n // and the serialized data will be passed to it\r\n if (txReq.request_type == ProkeyResponses.eRequestType.TXFINISHED) {\r\n this._isSigning = false;\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n resolve({\r\n serialized_tx: Utility.DecimalStrigArrayToHexString(this._serializedTx, ','),\r\n signatures: this._signatures,\r\n });\r\n return { success: true };\r\n }\r\n\r\n //! Device needs more data about current/previous transaction(s)\r\n try {\r\n \r\n //! Prepare the answer\r\n const resTx = this.RequestTxInfo(txReq, dicRefTx);\r\n\r\n //! Log the response\r\n MyConsole.Info(\"BitcoinCommands::LogAck->Ack\", resTx);\r\n\r\n //! Send the answer to deivce\r\n const res = await device.SendMessage('TxAck', { tx: resTx }, 'TxRequest')\r\n //! Check device response\r\n return await this.TxReqHandler(device, dicRefTx, res, resolve, reject);\r\n }\r\n catch (ex) {\r\n if (ex instanceof Error) {\r\n this._isSigning = false;\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n return reject({\r\n success: false,\r\n errorCode: GeneralErrors.UNKNOWN,\r\n errorMessage: ex.message,\r\n })\r\n }\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.UNKNOWN,\r\n };\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { MyConsole } from '../utils/console';\r\nimport { Protobuf } from '../protobuf/Protobuf';\r\nimport * as ProkeyResponses from '../models/Prokey';\r\nimport { ITransport, TransportType } from '../transport/ITransport';\r\nimport { WebUsb } from '../transport/WebUsb';\r\nimport { IMessagePayload } from '../transport/ITransport';\r\nimport * as PathUtil from '../utils/pathUtils';\r\nimport * as Util from '../utils/utils';\r\nimport { GeneralResponse, GeneralErrors } from '../models/GeneralResponse';\r\nimport { EventEmitter } from 'events' \r\nimport { WebSocketTransport } from '../transport/WebSocketTransport';\r\n\r\n\r\nexport class Device {\r\n private pb: Protobuf;\r\n private _passphraseTemporaryState?: string;\r\n private _transport!: ITransport;\r\n private _sendMessageResolve: any;\r\n private _sendMessageReject: any;\r\n private _sendMessageExpectedResponseType: string = \"\";\r\n\r\n _eventEmitters = new EventEmitter();\r\n\r\n /**\r\n * \r\n * @param callback this is an optional call back showing if protobuf successfully initialized\r\n */\r\n constructor(callback?: (success: boolean) => void, pathToProtoFile?: string) {\r\n this.pb = Protobuf.Instance;\r\n if (!this.pb.IsInited) {\r\n this.pb.Init((isSuccess: boolean) => {\r\n if(callback) {\r\n callback(isSuccess);\r\n }\r\n }, pathToProtoFile);\r\n } else if(callback) {\r\n callback(true);\r\n }\r\n }\r\n\r\n // ********************************************************\r\n // Registering Events\r\n // ********************************************************\r\n /**\r\n * Register a callback function to handle Device Button Request \r\n * @param fn Call back function to serve Device Button Request\r\n */\r\n public AddOnButtonRequestCallBack( fn: (buttonRequestType: string) => void ) {\r\n this._eventEmitters.addListener('OnButtonRequest', fn);\r\n }\r\n\r\n /**\r\n * Remove Device Button Request handler\r\n * @param fn Call back function to serve Device Button Request\r\n */\r\n public RemoveOnButtonRequestCallBack( fn: (buttonRequestType: string) => void ) {\r\n this._eventEmitters.removeListener('OnButtonRequest', fn)\r\n }\r\n\r\n /**\r\n * Register a callback function to handle Failure situations\r\n * @param fn Call back function to handle Failure situations\r\n */\r\n public AddOnFailureCallBack( fn: (reason: any) => void ) {\r\n this._eventEmitters.addListener('OnFailure', fn);\r\n }\r\n\r\n /**\r\n * Remove On Failure handler\r\n * @param fn Call back function\r\n */\r\n public RemoveOnFailureCallBack( fn: (reason: any) => void ) {\r\n this._eventEmitters.removeListener('OnFailure', fn)\r\n }\r\n\r\n /**\r\n * Register a callback function to handle Pin Matrix Request\r\n * @param fn Call back function to handle Pin Matrix Request\r\n */\r\n public AddOnPinMatrixRequestCallBack( fn: (pinMatrixRequestType: string) => void ) {\r\n this._eventEmitters.addListener('OnPinMatrixRequest', fn);\r\n }\r\n\r\n /**\r\n * Remove Pin Matrix Request handler\r\n * @param fn Call back function\r\n */\r\n public RemoveOnPinMatrixRequestCallBack( fn: (pinMatrixRequestType: string) => void ) {\r\n this._eventEmitters.removeListener('OnPinMatrixRequest', fn)\r\n }\r\n\r\n /**\r\n * Register a callback function to handle Passpharase Request\r\n * @param fn Call back function to handle Passpharase Request\r\n */\r\n public AddOnPasspharaseRequestCallBack( fn: () => void ) {\r\n this._eventEmitters.addListener('OnPasspharaseRequest', fn);\r\n }\r\n\r\n /**\r\n * Remove Passpharase Request handler\r\n * @param fn Call back function\r\n */\r\n public RemoveOnPasspharaseRequestCallBack( fn: () => void ) {\r\n this._eventEmitters.removeListener('OnPasspharaseRequest', fn)\r\n }\r\n\r\n /**\r\n * Register a callback function to handle Word Request\r\n * @param fn Call back function to handle Word Request\r\n */\r\n public AddOnWordRequestCallBack( fn: () => void ) {\r\n this._eventEmitters.addListener('OnWordRequest', fn);\r\n }\r\n\r\n /**\r\n * Remove Word Request handler\r\n * @param fn Call back function\r\n */\r\n public RemoveOnWordRequestCallBack( fn: () => void ) {\r\n this._eventEmitters.removeListener('OnWordRequest', fn)\r\n }\r\n\r\n /**\r\n * Register a callback function to handle Device Disconnect\r\n * @param fn Call back function to handle Device Disconnect\r\n */\r\n public AddOnDeviceDisconnectCallBack( fn: () => void ) {\r\n this._eventEmitters.addListener('OnDeviceDisconnect', fn);\r\n }\r\n\r\n /**\r\n * Remove Device Disconnect handler\r\n * @param fn Call back function\r\n */\r\n public RemoveOnDeviceDisconnectCallBack( fn: () => void ) {\r\n this._eventEmitters.removeListener('OnDeviceDisconnect', fn)\r\n }\r\n\r\n /**\r\n * Initializing the Trabsport layer and up and running the webusb\r\n * This function MUST be called first before executing any function \r\n */\r\n public async TransportConnect(transportType: TransportType = TransportType.WebUsb): Promise {\r\n switch (transportType) {\r\n case TransportType.WebUsb:\r\n this._transport = new WebUsb(); \r\n break;\r\n\r\n case TransportType.WebSocket:\r\n this._transport = new WebSocketTransport();\r\n \r\n default:\r\n break;\r\n }\r\n\r\n let res = await this._transport.Init(true,\r\n // OnReceice call back\r\n (msgPayload: IMessagePayload) => {\r\n this.OnReceiveDataFromBridge(msgPayload);\r\n });\r\n\r\n this._transport.onDeviceDisconnect = () => {\r\n this._eventEmitters.emit('OnDeviceDisconnect');\r\n }\r\n\r\n if (res.success == false)\r\n return res;\r\n\r\n return await this._transport.Open();\r\n }\r\n\r\n /**\r\n * Reset device to default state and ask for device details\r\n */\r\n public async Initialize(){\r\n return await this.SendMessage('Initialize', {}, 'Features');\r\n }\r\n\r\n public async RebootDevice(){\r\n await this.SendMessage('RebootDevice', {}, 'Success');\r\n }\r\n \r\n /**\r\n * Ping command\r\n * @param message Message to show on device or return on response\r\n * @param buttonReq Rise button request\r\n */\r\n public async Ping(message?: string, buttonReq?: boolean): Promise {\r\n return await this.SendMessage('Ping', {message: message, buttonProtection: buttonReq} , 'Success');\r\n }\r\n \r\n /**\r\n * Get device feature\r\n */\r\n public async GetFeatures(): Promise {\r\n return await this.SendMessage('GetFeatures', {}, 'Features');\r\n }\r\n \r\n /**\r\n * Request to change device pin\r\n * @param isRemove true: remove, false: change \r\n */\r\n public async ChangePin(isRemove: boolean): Promise {\r\n return await this.SendMessage('ChangePin', {remove: isRemove}, 'Success');\r\n }\r\n \r\n /**\r\n * Change pin\r\n * @param label New label\r\n */\r\n public async ChangeLabel(label: string): Promise {\r\n return await this.SendMessage('ApplySettings', {label: label} , 'Success');\r\n }\r\n \r\n /**\r\n * Request to wipe device\r\n */\r\n public async WipeDevice(): Promise {\r\n return await this.SendMessage('WipeDevice', {}, 'Success');\r\n }\r\n \r\n /**\r\n * Request to create a wallet\r\n * @param skipBackUp Skip doing backup \r\n * @param wordCount number of backup words\r\n */\r\n public async Reset(skipBackUp: Boolean, label?: string, wordCount?: number): Promise {\r\n let wc = 0;\r\n if(wordCount == null || wordCount == 24) {\r\n wc = 256;\r\n }\r\n else if (wordCount == 12) {\r\n wc = 128;\r\n } \r\n else if (wordCount == 18) {\r\n wc = 192;\r\n }\r\n else {\r\n wc = 256;\r\n }\r\n\r\n return this.SendMessage('ResetDevice', { strength: wc, skip_backup: skipBackUp, label: label}, 'Success');\r\n }\r\n \r\n /**\r\n * Start backup device after creating backup\r\n */\r\n public async Backup(): Promise {\r\n return this.SendMessage('BackupDevice', {}, 'Success');\r\n }\r\n \r\n /**\r\n * Enable passphrase\r\n */\r\n public async EnablePassphrase(): Promise {\r\n return await this.SendMessage('ApplySettings', {use_passphrase: true} , 'Success');\r\n }\r\n \r\n /**\r\n * Disable passphrase\r\n */\r\n public async DisablePassphrase(): Promise {\r\n return await this.SendMessage('ApplySettings', {use_passphrase: false} , 'Success');\r\n }\r\n \r\n\r\n /**\r\n * Cancel the last command\r\n */\r\n public async Cancel(): Promise {\r\n return await this.SendMessageByType('Cancel', {});\r\n }\r\n\r\n /**\r\n * To response to OnPinMatrixRequest, this function needs to be called\r\n * @param pin PinMatrix\r\n */\r\n public async PinMatrixAck(pin: string): Promise {\r\n return await this.SendMessageByType('PinMatrixAck', { pin: pin });\r\n }\r\n\r\n /**\r\n * To response to OnPasspharaseRequest, this function needs to be called\r\n * @param phassphrase Phassphrase\r\n */\r\n public async PassphraseAck(phassphrase: string): Promise {\r\n return await this.SendMessageByType('PassphraseAck', { passphrase: phassphrase, state: null });\r\n }\r\n\r\n /**\r\n * To response to OnWordRequest, this function needs to be called\r\n * @param word \r\n */\r\n public async WorkAck(word: string) {\r\n return await this.SendMessageByType('WordAck', { word: word });\r\n }\r\n\r\n /**\r\n * Send message to the device\r\n * @param messageTypeName MessageType\r\n * @param param Message\r\n * @param expectedResType Expected response type\r\n */\r\n public async SendMessage(messageTypeName: string, param: any, expectedResType: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (this._transport == null)\r\n {\r\n reject({ success: false, errorCode: GeneralErrors.NO_TRANSPORT });\r\n return;\r\n }\r\n\r\n if (this._transport.IsOpen() == false)\r\n {\r\n reject({ success: false, errorCode: GeneralErrors.USER_DID_NOT_SELECT_A_DEVICE });\r\n return;\r\n }\r\n\r\n // resolve will be called when device sends the corresponding response to the message\r\n this._sendMessageResolve = resolve;\r\n\r\n // reject will be called when device sends failure or unexpected response\r\n this._sendMessageReject = reject;\r\n\r\n // \r\n this._sendMessageExpectedResponseType = expectedResType;\r\n\r\n const res = await this.SendMessageByType(messageTypeName, param);\r\n if(res.success == false) {\r\n // On reboot command, device does not return any response\r\n if(messageTypeName == \"RebootDevice\") {\r\n return this._sendMessageResolve({});\r\n }\r\n return this._sendMessageReject(res);\r\n }\r\n });\r\n }\r\n\r\n // ***************************************\r\n // Private Functions\r\n // ***************************************\r\n private assertType(res: GeneralResponse, expectedResType: string) {\r\n if (res.type !== expectedResType) {\r\n throw new TypeError(`DeviceCommands::assertType->Response of unexpected type: ${res.type}. Should be ${expectedResType}`);\r\n }\r\n }\r\n\r\n private async SendMessageByType(typeName: string, message: any): Promise {\r\n try {\r\n const type = this.pb.GetMessageByName(typeName);\r\n const msgId = this.pb.GetMessageTypeIdByName(typeName);\r\n \r\n if(msgId == null) {\r\n throw new Error(\"Cannot find Message Id by name\");\r\n }\r\n\r\n if(type == null) {\r\n throw new Error(\"Cannot find Message type by name\");\r\n }\r\n\r\n const msg = type.create(message);\r\n if(!msg) {\r\n throw new Error(\"Cannot create message\");\r\n }\r\n\r\n const buffer = type.encode(msg).finish();\r\n\r\n return await this._transport.SendProtoMsg(msgId, buffer);\r\n\r\n } catch (e) {\r\n if (e instanceof Error) {\r\n MyConsole.Exception('DeviceCommands::SendMessageByType->' + e);\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.PROTO_ERR,\r\n errorMessage: e.message\r\n };\r\n }\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.UNKNOWN,\r\n };\r\n }\r\n }\r\n\r\n private OnReceiveDataFromBridge(msgPayload: IMessagePayload): void {\r\n const res = this.ParsMessage(msgPayload);\r\n if (res.success == false) {\r\n // Reject the current command because message parsing failed\r\n if(this._sendMessageReject) {\r\n this._sendMessageReject(res.errorMessage);\r\n }\r\n return;\r\n }\r\n\r\n if (res.type === 'Failure') \r\n {\r\n console.log(\"Failure\", res);\r\n if(this._eventEmitters.emit('OnFailure', res.payload) == false){\r\n MyConsole.Warning('DeviceCommands::OnReceiveDataFromBridge->OnFailure has no listener');\r\n }\r\n // Reject the current command because of failure\r\n if(this._sendMessageReject) {\r\n this._sendMessageReject(res.payload);\r\n }\r\n } \r\n else if (res.type === 'ButtonRequest') \r\n {\r\n if( this._eventEmitters.emit('OnButtonRequest', this.pb.GetEnumNameByValue('ButtonRequestType', res.payload.code)) == false)\r\n {\r\n MyConsole.Warning('DeviceCommands::OnReceiveDataFromBridge->OnButtonRequest has no listener');\r\n }\r\n\r\n // Sending 'ButtonAck' to ProKey to continue its job\r\n this.SendMessageByType('ButtonAck', {});\r\n\r\n } \r\n else if (res.type === 'EntropyRequest') \r\n {\r\n // No need to reply by upper layer\r\n let rand: Array = Util.generateEntropy(32);\r\n this.SendMessageByType('EntropyAck', {\r\n entropy: rand,\r\n });\r\n\r\n } \r\n else if (res.type === 'PinMatrixRequest') \r\n { \r\n // Next Step: To reply, PinMatrixAck function should be called\r\n if(this._eventEmitters.emit('OnPinMatrixRequest', this.pb.GetEnumNameByValue('PinMatrixRequestType', res.payload.type)) == false)\r\n {\r\n MyConsole.Warning('DeviceCommands::OnReceiveDataFromBridge->OnPinMatrixRequest has no listener');\r\n }\r\n } \r\n else if (res.type === 'PassphraseRequest') \r\n { \r\n // Next Step: To reply, PassphraseAck function should be called\r\n if(this._eventEmitters.emit('OnPasspharaseRequest') == false)\r\n {\r\n MyConsole.Warning('DeviceCommands::OnReceiveDataFromBridge->OnPasspharaseRequest has no listener');\r\n }\r\n } \r\n else if (res.type === 'PassphraseStateRequest') \r\n { \r\n // No need to reply by upper layer\r\n const state: string = res.payload.state;\r\n this._passphraseTemporaryState = state;\r\n this.SendMessageByType('PassphraseStateAck', {});\r\n } \r\n else if (res.type === 'WordRequest') \r\n { \r\n // Next Step: To reply, WordAck function should be called\r\n if(this._eventEmitters.emit('OnWordRequest') == false) \r\n {\r\n MyConsole.Warning('DeviceCommands::OnReceiveDataFromBridge->OnWordRequest has no listener');\r\n }\r\n } \r\n else \r\n {\r\n try {\r\n this.assertType(res, this._sendMessageExpectedResponseType);\r\n } catch(e) {\r\n if(this._sendMessageReject) {\r\n this._sendMessageReject(e);\r\n }\r\n }\r\n\r\n if(this._sendMessageResolve) {\r\n this._sendMessageResolve(res.payload);\r\n }\r\n }\r\n }\r\n\r\n private ParsMessage(msgPayload: IMessagePayload): GeneralResponse {\r\n try {\r\n const msg = this.pb.GetMessageById(msgPayload.MsgId);\r\n if(!msg) {\r\n throw new Error(\"Cannot get message by id\");\r\n }\r\n\r\n const type = this.pb.GetMessageTypeById(msgPayload.MsgId);\r\n if(!type) {\r\n throw new Error(\"Cannot get message type by id\");\r\n }\r\n\r\n return {\r\n success: true,\r\n type: type,\r\n payload: msg.decode(msgPayload.ProtoPayload),\r\n };\r\n } catch (e) {\r\n if (e instanceof Error) {\r\n MyConsole.Exception('DeviceCommands::GetMessage->' + e);\r\n return {\r\n success: false,\r\n errorMessage: e.message,\r\n };\r\n }\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.UNKNOWN,\r\n };\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport * as ProkeyResponses from '../models/Prokey';\r\nimport * as PathUtil from '../utils/pathUtils';\r\nimport * as Util from '../utils/utils'\r\nimport { getHDPath } from '../utils/pathUtils';\r\nimport { Device } from './Device';\r\nimport { GeneralResponse, GeneralErrors } from '../models/GeneralResponse';\r\nimport { ICoinCommands } from './ICoinCommand';\r\nimport { EthereumTx, EthTxToProkey } from '../models/EthereumTx';\r\nimport { validateParams } from '../utils/paramsValidator';\r\nimport { Erc20BaseCoinInfoModel, EthereumBaseCoinInfoModel } from '../models/CoinInfoModel';\r\nimport { CoinInfo, CoinBaseType } from '../coins/CoinInfo';\r\nimport { TypedMessage, MessageTypes, HashTypedDataModel } from '../models/EthereumTypedDataModel';\r\nimport { HashTypedData } from '../utils/ethereum-hashTypedData';\r\n\r\nexport class EthereumCommands implements ICoinCommands {\r\n\r\n _isSigning = false;\r\n _failedSignHandler: any;\r\n\r\n constructor() {\r\n }\r\n \r\n /**\r\n * Get Bitcoin/Litecoin and etc address\r\n * @param device Prokey device instance\r\n * @param path BIP path \r\n * @param showOnProkey true means show the address on device display\r\n */\r\n public async GetAddress(device: Device, path: Array, showOnProkey?: boolean): Promise {\r\n\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n let param = {\r\n address_n: address_n,\r\n show_display: showDisplay,\r\n }\r\n\r\n let address = await device.SendMessage('EthereumGetAddress', param, 'EthereumAddress');\r\n //! Add 0x prefix to be backward compatible\r\n if(address.address.startsWith(\"0x\") == false) {\r\n address.address = \"0x\" + address.address;\r\n }\r\n\r\n return address;\r\n }\r\n \r\n /**\r\n * Get List of addresses, This function is useful in account discovery\r\n * @param device the prokey device instance\r\n * @param paths list of paths to retrive the addresses\r\n */\r\n public async GetAddresses(device: Device, paths: Array>): Promise> {\r\n if (device == null || paths == null) {\r\n return Promise.reject({ \r\n success: false, \r\n errorCode: GeneralErrors.INVALID_PARAM \r\n });\r\n }\r\n\r\n let lstAddress: Array = new Array();\r\n\r\n paths.forEach(async (path) => \r\n {\r\n let pn: Array;\r\n if(typeof path == \"string\") {\r\n try {\r\n pn = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n } \r\n else {\r\n pn = path;\r\n }\r\n\r\n let param = {\r\n address_n: pn,\r\n show_display: false,\r\n }\r\n\r\n try{\r\n let address = await device.SendMessage('EthereumGetAddress', param, 'EthereumAddress');\r\n lstAddress.push(address);\r\n } catch(e) {\r\n Promise.reject(e);\r\n }\r\n });\r\n\r\n return lstAddress;\r\n }\r\n\r\n /**\r\n * Get Public key\r\n * @param device The prokey device\r\n * @param path BIP path\r\n * @param showOnProkey true means show the public key on prokey display\r\n */\r\n public async GetPublicKey(device: Device,\r\n path: string | Array,\r\n showOnProkey?: boolean): Promise {\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n let param = {\r\n address_n: address_n,\r\n show_display: showDisplay,\r\n }\r\n\r\n return await device.SendMessage('EthereumGetPublicKey', param, 'EthereumPublicKey');\r\n }\r\n\r\n /**\r\n * Sign an ethereum transaction\r\n * @param device Prokey device instance\r\n * @param ethTx ETH transaction\r\n */\r\n public async SignTransaction(device: Device, ethTx: EthereumTx): Promise {\r\n\r\n if(!device)\r\n throw new Error(\"Ethereum::SignTransaction->parameter Device cannot be null\");\r\n\r\n if(!ethTx)\r\n throw new Error(\"Ethereum::SignTransaction->parameter ethTx cannot be null\");\r\n\r\n if(ethTx.gasPrice == undefined && (ethTx.maxFeePerGas == undefined || ethTx.maxPriorityFeePerGas == undefined)) {\r\n throw new Error(\"Neither gasPrice, maxFeePerGas or maxPriorityFeePerGas provided\");\r\n }\r\n\r\n if(ethTx.gasPrice != undefined && (ethTx.maxFeePerGas != undefined || ethTx.maxPriorityFeePerGas != undefined)) {\r\n throw new Error(\"Cannot mix Legacy and EIP1559 transaction parameters\");\r\n }\r\n\r\n // reject if already in signing\r\n if(this._isSigning)\r\n return Promise.reject(\"Ethereum::SignTransaction->Already in signig\");\r\n\r\n return new Promise(async (resolve,reject) => {\r\n // This var is using to reject new request until this one is begin resolved or rejected\r\n this._isSigning = true;\r\n\r\n const isEIP1559 = ethTx.maxFeePerGas && ethTx.maxPriorityFeePerGas;\r\n\r\n this._failedSignHandler = (reason: any) => {\r\n // \"this\" can be null if the user after signing a transaction, change the coin \r\n if(this != undefined)\r\n this._isSigning = false;\r\n\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n\r\n reject(`Signing transaction failed: ${reason.message}`);\r\n };\r\n\r\n // Validate the parameters\r\n try {\r\n\r\n //! Validate common parameters\r\n validateParams(ethTx, [\r\n { name: 'address_n', type: 'array', obligatory: true },\r\n { name: 'to', type: 'string', obligatory: true },\r\n { name: 'value', type: 'string', obligatory: true },\r\n { name: 'gasLimit', type: 'string', obligatory: true },\r\n { name: 'nonce', type: 'string', obligatory: true },\r\n { name: 'chainId', type: 'number', obligatory: true },\r\n { name: 'data', type: 'string' },\r\n { name: 'txType', type: 'number' },\r\n ]);\r\n\r\n // Validate EIP1559 parameters\r\n if(isEIP1559){\r\n validateParams(ethTx, [\r\n { name: 'maxFeePerGas', type: 'string', obligatory: true},\r\n { name: 'maxPriorityFeePerGas', type: 'string', obligatory: true},\r\n ]);\r\n }\r\n // Validate legacy transaction parameters \r\n else {\r\n validateParams(ethTx, [\r\n { name: 'gasPrice', type: 'string', obligatory: true},\r\n ]);\r\n }\r\n\r\n // strip '0x' from values\r\n Object.keys(ethTx).map(key => {\r\n if (typeof ethTx[key] === 'string') {\r\n let value: string = Util.StripHexPrefix(ethTx[key]);\r\n // pad left even\r\n if (value.length % 2 !== 0) { value = '0' + value; }\r\n // $FlowIssue\r\n ethTx[key] = value;\r\n }\r\n });\r\n }\r\n catch (ex) {\r\n this._isSigning = false;\r\n return reject(ex);\r\n }\r\n\r\n device.AddOnFailureCallBack(this._failedSignHandler);\r\n\r\n await this.signTx(device, ethTx, resolve, reject);\r\n\r\n });\r\n }\r\n\r\n /**\r\n * \r\n * @param device Prokey device instance\r\n * @param path BIP44 path\r\n * @param typedData Typed data to be signed(Hash of this data will be sent to device)\r\n * @param isMetamaskV4Compatible Only V4 is supported\r\n * @returns \r\n */\r\n public async SignTypedData(device: Device, path: string | Array, typedData: TypedMessage, isMetamaskV4Compatible: boolean ): Promise {\r\n if(isMetamaskV4Compatible == false) {\r\n throw new Error(\"Only version 4 of typed data signing is supported\");\r\n }\r\n\r\n if(!device)\r\n throw new Error(\"Ethereum::SignTransaction->parameter Device cannot be null\");\r\n\r\n const hashed: HashTypedDataModel = HashTypedData(typedData, true);\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n let param = {\r\n address_n: address_n,\r\n domain_separator_hash: Util.HexStringToByteArray(hashed.domain_separator_hash),\r\n message_hash: hashed.message_hash ? Util.HexStringToByteArray(hashed.message_hash) : null,\r\n }\r\n\r\n const { address, signature } = await device.SendMessage('EthereumSignTypedHash', param, 'EthereumTypedDataSignature');\r\n return {\r\n address: address,\r\n signature: \"0x\" + Util.ByteArrayToHexString(signature),\r\n }\r\n }\r\n\r\n /**\r\n * Sign Message\r\n * @param device Prokey device instance\r\n * @param address_n array of BIP32/44 Path\r\n * @param message message to be signed\r\n */\r\n public async SignMessage(device: Device, path: Array, message: Uint8Array, coinName?: string): Promise {\r\n let res = await device.SendMessage('EthereumSignMessage', {\r\n address_n: path,\r\n message: message,\r\n }, 'EthereumMessageSignature');\r\n\r\n if(res.signature){\r\n res.signature = Util.ByteArrayToHexString(res.signature);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * Verify Message\r\n * @param device Prokey device instance\r\n * @param address address\r\n * @param signature signature data\r\n * @param message message\r\n * @param coinName\r\n */\r\n public async VerifyMessage(\r\n device: Device,\r\n address: string,\r\n message: Uint8Array,\r\n signature: Uint8Array): Promise {\r\n\r\n return await device.SendMessage('EthereumVerifyMessage', {\r\n address: address,\r\n signature: signature,\r\n message: message,\r\n },'Success');\r\n }\r\n\r\n // **********************************\r\n // PRIVATE FUNCTIONS\r\n // **********************************\r\n private async signTx (device: Device,\r\n ethTx: EthereumTx,\r\n resolve: any,\r\n reject: any): Promise {\r\n\r\n const length = ethTx.data == null ? 0 : ethTx.data.length / 2;\r\n\r\n const [first, rest] = Util.SplitString(1024*2, ethTx.data);\r\n\r\n let message: EthTxToProkey = {\r\n address_n: ethTx.address_n,\r\n nonce: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.nonce)),\r\n gas_limit: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.gasLimit)),\r\n to: ethTx.to,\r\n value: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.value)),\r\n }\r\n\r\n if(ethTx.gasPrice != undefined) {\r\n message = {\r\n ...message,\r\n gas_price: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.gasPrice)),\r\n };\r\n } else {\r\n message = {\r\n ...message,\r\n max_gas_fee: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.maxFeePerGas)),\r\n max_priority_fee: Util.HexStringToByteArray(Util.StripLeadingZeroes(ethTx.maxPriorityFeePerGas)),\r\n }\r\n }\r\n\r\n if (length !== 0) {\r\n message = {\r\n ...message,\r\n data_length: length,\r\n data_initial_chunk: Util.HexStringToByteArray(first),\r\n };\r\n }\r\n\r\n if (ethTx.chainId) {\r\n message = {\r\n ...message,\r\n chain_id: ethTx.chainId,\r\n };\r\n }\r\n\r\n if (ethTx.txType) {\r\n message = {\r\n ...message,\r\n tx_type: ethTx.txType,\r\n };\r\n }\r\n\r\n try\r\n {\r\n let msgType = (ethTx.gasPrice != undefined) ? 'EthereumSignTx' : 'EthereumSignTxEIP1559';\r\n let res = await device.SendMessage( msgType, message, 'EthereumTxRequest' );\r\n\r\n return await this.TxReqHandler(\r\n device,\r\n res,\r\n resolve,\r\n reject,\r\n rest,\r\n ethTx.chainId,\r\n );\r\n } catch(e) {\r\n this._isSigning = false;\r\n return reject(e);\r\n }\r\n }\r\n\r\n \r\n private async TxReqHandler( device: Device,\r\n request: ProkeyResponses.EthereumTxRequest,\r\n resolve: any,\r\n reject: any,\r\n data?: string,\r\n chain_id?: number): Promise {\r\n\r\n if (!request.data_length) {\r\n let v = request.signature_v;\r\n const r = request.signature_r;\r\n const s = request.signature_s;\r\n if (v == null || r == null || s == null) {\r\n var e: GeneralResponse = {\r\n success: false,\r\n errorMessage: 'Unexpected request.',\r\n }\r\n this._isSigning = false;\r\n return reject(e);\r\n }\r\n\r\n //! Remove Failure callback\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n\r\n resolve(\r\n {\r\n v: '0x' + v.toString(16),\r\n r: '0x' + Util.ByteArrayToHexString(r),\r\n s: '0x' + Util.ByteArrayToHexString(s),\r\n })\r\n\r\n // can accept new siging command\r\n this._isSigning = false;\r\n\r\n return {\r\n success: true,\r\n };\r\n }\r\n\r\n const [first, rest] = Util.SplitString(request.data_length * 2, data);\r\n\r\n const dataChunkInHexBytes = Util.HexStringToByteArray(first);\r\n\r\n try{\r\n let res = await device.SendMessage( 'EthereumTxAck', { data_chunk: dataChunkInHexBytes }, 'EthereumTxRequest' );\r\n return await this.TxReqHandler(\r\n device,\r\n res,\r\n resolve,\r\n reject,\r\n rest,\r\n chain_id);\r\n } catch(e) {\r\n this._isSigning = false;\r\n return reject(e);\r\n }\r\n }\r\n}","import {ICoinCommands} from \"./ICoinCommand\";\r\nimport {Device} from \"./Device\";\r\nimport {\r\n MessageSignature,\r\n NEMAddress,\r\n NEMGetAddress,\r\n NEMSignedTx,\r\n NEMSignTxMessage,\r\n PublicKey,\r\n Success\r\n} from \"../models/Prokey\";\r\nimport {NemCoinInfoModel} from \"../models/CoinInfoModel\";\r\nimport {CoinBaseType, CoinInfo} from \"../coins/CoinInfo\";\r\nimport {GeneralErrors, GeneralResponse} from \"../models/GeneralResponse\";\r\nimport * as PathUtil from \"../utils/pathUtils\";\r\nimport * as ProkeyResponses from \"../models/Prokey\";\r\nimport * as Utility from \"../utils/utils\";\r\nimport {MyConsole} from \"../utils/console\";\r\n\r\nexport class NemCommands implements ICoinCommands {\r\n private readonly _coinInfo: NemCoinInfoModel;\r\n\r\n constructor(coinName: string) {\r\n this._coinInfo = CoinInfo.Get(coinName, CoinBaseType.NEM);\r\n if (this._coinInfo == null) {\r\n throw new Error(`Cannot load CoinInfo for ${coinName}`);\r\n }\r\n }\r\n\r\n /**\r\n * Get nem account address based on given path\r\n * @param device Prokey device instance\r\n * @param path BIP path\r\n * @param showOnProkey true means show the address on device display\r\n * @returns NEMAddress nem unique address\r\n */\r\n public async GetAddress(device: Device, path: Array | string, showOnProkey: boolean = true): Promise {\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n // convert path to array of num\r\n let address_n: Array = this.GetAddressArray(path);\r\n\r\n let param : NEMGetAddress = {\r\n address_n: address_n,\r\n network: this.getNemNetworkId(),\r\n show_display: showOnProkey\r\n }\r\n\r\n return await device.SendMessage('NEMGetAddress', param, 'NEMAddress');\r\n }\r\n\r\n /**\r\n * Get a list of account addresses based on given paths\r\n * @param device Prokey device instance\r\n * @param paths List of BIP paths\r\n * @returns Array\r\n */\r\n public async GetAddresses(device: Device, paths: Array | string>): Promise> {\r\n let nemAddresses: Array = new Array();\r\n for (const path of paths) {\r\n nemAddresses.push(await this.GetAddress(device, path, false));\r\n }\r\n return nemAddresses;\r\n }\r\n\r\n /**\r\n * Get Coin Info\r\n */\r\n public GetCoinInfo(): NemCoinInfoModel {\r\n return this._coinInfo;\r\n }\r\n\r\n /**\r\n * Get Public key\r\n * @param device The prokey device\r\n * @param path BIP path\r\n * @param showOnProkey true means show the public key on prokey display\r\n */\r\n public async GetPublicKey(device: Device, path: Array | string, showOnProkey?: boolean): Promise {\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n let address_n: Array;\r\n try {\r\n address_n = this.GetAddressArray(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n let param = {\r\n address_n: address_n,\r\n show_display: showOnProkey,\r\n }\r\n\r\n return await device.SendMessage('GetPublicKey', param, 'PublicKey');\r\n }\r\n\r\n /**\r\n * Sign Message\r\n * @param device Prokey device instance\r\n * @param path array of BIP32/44 Path\r\n * @param message message to be signed\r\n * @param coinName coin name\r\n */\r\n public async SignMessage(device: Device, path: Array, message: Uint8Array, coinName?: string): Promise {\r\n let scriptType = PathUtil.GetScriptType(path);\r\n\r\n let res = await device.SendMessage('SignMessage', {\r\n address_n: path,\r\n message: message,\r\n coin_name: coinName || 'Nem',\r\n script_type: scriptType,\r\n }, 'MessageSignature');\r\n\r\n if (res.signature) {\r\n res.signature = Utility.ByteArrayToHexString(res.signature);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * Verify Message\r\n * @param device Prokey device instance\r\n * @param address address\r\n * @param message message\r\n * @param signature signature data\r\n * @param coinName coin name\r\n */\r\n public async VerifyMessage(device: Device, address: string, message: Uint8Array, signature: Uint8Array, coinName?: string): Promise {\r\n return await device.SendMessage('VerifyMessage', {\r\n address: address,\r\n signature: signature,\r\n message: message,\r\n coin_name: coinName || 'Nem',\r\n }, 'Success');\r\n }\r\n\r\n /**\r\n * sign transaction\r\n * @param device\r\n * @param transaction nem device transaction message request\r\n * @returns NEMSignedTx a model containing transaction data and signature\r\n */\r\n public async SignTransaction(device: Device, transaction: NEMSignTxMessage): Promise {\r\n var OnFailure = (reason: any) => {\r\n device.RemoveOnFailureCallBack(OnFailure);\r\n\r\n throw new Error(`Signing transaction failed: ${reason.message}`);\r\n };\r\n\r\n MyConsole.Info(\"NEMSignTxMessage\", transaction);\r\n\r\n if (!transaction) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"NemCommands::SignTransaction->parameter transaction cannot be null\",\r\n }\r\n\r\n throw e;\r\n }\r\n let transactionResponse = await device.SendMessage('NEMSignTx', transaction, 'NEMSignedTx');\r\n device.RemoveOnFailureCallBack(OnFailure);\r\n return transactionResponse;\r\n }\r\n\r\n private getNemNetworkId() {\r\n let networkId;\r\n if (this._coinInfo.test) {\r\n return 0x98;\r\n } else {\r\n return 0x68;\r\n }\r\n }\r\n\r\n /**\r\n * get byte array of path if its serialized\r\n * @param path\r\n * @returns Array account BIP path\r\n */\r\n public GetAddressArray(path: Array | string) : Array {\r\n if (typeof path == \"string\") {\r\n return PathUtil.getHDPath(path);\r\n } else {\r\n return path;\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * Ali Akbar Mohammadi\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { ICoinCommands } from './ICoinCommand';\r\nimport * as ProkeyResponses from '../models/Prokey';\r\nimport * as PathUtil from '../utils/pathUtils';\r\nimport * as Utility from '../utils/utils';\r\nimport { RippleCoinInfoModel } from '../models/CoinInfoModel';\r\nimport { CoinInfo, CoinBaseType } from '../coins/CoinInfo';\r\nimport { Device } from './Device';\r\nimport { GeneralResponse, GeneralErrors } from '../models/GeneralResponse';\r\nimport { RippleTransaction } from '../models/Responses-V6';\r\nimport { RippleAddress } from '../models/Prokey';\r\nimport { MyConsole } from '../utils/console';\r\nimport { validateParams } from '../utils/paramsValidator';\r\n\r\nexport class RippleCommands implements ICoinCommands {\r\n\r\n private _coinInfo: RippleCoinInfoModel;\r\n _failedSignHandler: any;\r\n\r\n constructor(coinName: string) {\r\n this._coinInfo = CoinInfo.Get(coinName, CoinBaseType.Ripple);\r\n if (this._coinInfo == null) {\r\n throw new Error(`Cannot load CoinInfo for ${coinName}`);\r\n }\r\n }\r\n\r\n /**\r\n * Get Bitcoin/Litecoin and etc address\r\n * @param device Prokey device instance\r\n * @param path BIP path \r\n * @param showOnProkey true means show the address on device display\r\n */\r\n public async GetAddress(device: Device, path: Array, showOnProkey?: boolean): Promise {\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n let param = {\r\n address_n: address_n,\r\n show_display: showDisplay,\r\n }\r\n\r\n return await device.SendMessage('RippleGetAddress', param, 'RippleAddress');\r\n }\r\n\r\n /**\r\n * Get List of addresses, This function is useful in account discovery\r\n * @param device the prokey device instance\r\n * @param paths list of paths to retrive the addresses\r\n */\r\n public async GetAddresses(device: Device, paths: Array>): Promise> {\r\n if (device == null || paths == null) {\r\n return Promise.reject({\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM\r\n });\r\n }\r\n\r\n let lstAddress = new Array();\r\n\r\n paths.forEach(async (path) => {\r\n let pn: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n pn = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n }\r\n else {\r\n pn = path;\r\n }\r\n\r\n let param = {\r\n address_n: pn,\r\n show_display: false,\r\n }\r\n\r\n try {\r\n let address = await device.SendMessage('RippleGetAddress', param, 'RippleAddress');\r\n lstAddress.push(address);\r\n } catch (e) {\r\n Promise.reject(e);\r\n }\r\n });\r\n\r\n return lstAddress;\r\n }\r\n\r\n /**\r\n * Get Public key\r\n * @param device The prokey device\r\n * @param path BIP path\r\n * @param showOnProkey true means show the public key on prokey display\r\n */\r\n public async GetPublicKey(device: Device,\r\n path: Array | string,\r\n showOnProkey?: boolean): Promise {\r\n\r\n if (device == null || path == null) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.INVALID_PARAM });\r\n }\r\n\r\n let showDisplay = (showOnProkey == null) ? true : showOnProkey;\r\n\r\n // convert path to array of num\r\n let address_n: Array;\r\n if (typeof path == \"string\") {\r\n try {\r\n address_n = PathUtil.getHDPath(path);\r\n }\r\n catch (e) {\r\n return Promise.reject({ success: false, errorCode: GeneralErrors.PATH_NOT_VALID });\r\n }\r\n\r\n } else {\r\n address_n = path;\r\n }\r\n\r\n let param = {\r\n address_n: address_n,\r\n show_display: showDisplay,\r\n }\r\n\r\n return await device.SendMessage('GetPublicKey', param, 'PublicKey');\r\n }\r\n\r\n /**\r\n * sign a transaction\r\n * @param device Prokey device instance\r\n * @param transaction transaction to be signed \r\n */\r\n public async SignTransaction(device: Device, transaction: RippleTransaction): Promise {\r\n MyConsole.Info(\"RippleSignTx\", transaction);\r\n if (!device) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"RippleCommands::SignTransaction->parameter Device cannot be null\",\r\n }\r\n\r\n throw e;\r\n }\r\n\r\n if (!transaction) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"RippleCommands::SignTransaction->parameter transaction cannot be null\",\r\n }\r\n\r\n throw e;\r\n }\r\n\r\n if (!transaction.payment) {\r\n let e: GeneralResponse = {\r\n success: false,\r\n errorCode: GeneralErrors.INVALID_PARAM,\r\n errorMessage: \"RippleCommands::SignTransaction->parameter transaction.payment cannot be null\",\r\n }\r\n\r\n throw e;\r\n }\r\n\r\n return new Promise(async (resolve, reject) => {\r\n this._failedSignHandler = (reason: any) => {\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n\r\n reject(`Signing transaction failed: ${reason.message}`);\r\n };\r\n\r\n // Validate the parameters\r\n try {\r\n validateParams(transaction, [\r\n { name: \"address_n\", type: \"array\", obligatory: true },\r\n { name: \"fee\", type: \"number\", obligatory: true },\r\n { name: \"flags\", type: \"number\" },\r\n { name: \"sequence\", type: \"number\", obligatory: true },\r\n { name: \"last_ledger_sequence\", type: \"number\" },\r\n ]);\r\n\r\n validateParams(transaction.payment, [\r\n { name: \"amount\", type: \"number\", obligatory: true },\r\n { name: \"destination\", type: \"string\", obligatory: true },\r\n { name: \"destination_tag\", type: \"number\" }\r\n ]);\r\n }\r\n catch (ex) {\r\n MyConsole.Info(ex);\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n return reject(ex);\r\n }\r\n\r\n device.AddOnFailureCallBack(this._failedSignHandler);\r\n let res = await device.SendMessage('RippleSignTx', transaction, 'RippleSignedTx');\r\n device.RemoveOnFailureCallBack(this._failedSignHandler);\r\n resolve(res);\r\n });\r\n }\r\n\r\n /**\r\n * Sign Message\r\n * @param device Prokey device instance\r\n * @param address_n array of BIP32/44 Path\r\n * @param message message to be signed\r\n * @param coin coin name\r\n */\r\n public async SignMessage(\r\n device: Device,\r\n address_n: Array,\r\n message: Uint8Array,\r\n coin?: string): Promise {\r\n\r\n let scriptType = PathUtil.GetScriptType(address_n);\r\n\r\n let res = await device.SendMessage('SignMessage', {\r\n address_n: address_n,\r\n message: message,\r\n coin_name: coin || 'Ripple',\r\n script_type: scriptType,\r\n }, 'MessageSignature');\r\n\r\n if (res.signature) {\r\n res.signature = Utility.ByteArrayToHexString(res.signature);\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * Verify Message\r\n * @param device Prokey device instance\r\n * @param address address\r\n * @param message message\r\n * @param signature signature data\r\n * @param coinName coin name\r\n */\r\n public async VerifyMessage(\r\n device: Device,\r\n address: string,\r\n message: Uint8Array,\r\n signature: Uint8Array,\r\n coinName: string): Promise {\r\n\r\n return await device.SendMessage('VerifyMessage', {\r\n address: address,\r\n signature: signature,\r\n message: message,\r\n coin_name: coinName || 'Ripple',\r\n }, 'Success');\r\n }\r\n\r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nexport enum GeneralErrors {\r\n NO_ERR = 0,\r\n\r\n //! Client Side Errors\r\n NO_RESPONSE_FROM_BRIDGE,\r\n NO_DEVICE,\r\n CAN_NOT_ACQUIRE_DEVICE,\r\n NO_RESPONSE_FROM_DEVICE,\r\n NOT_IN_BOOTLOADER,\r\n PROTO_ERR,\r\n ERR_CHG1,\r\n ERR_CHG2,\r\n ERR_CHG3,\r\n ERR_CHG4,\r\n DEVICE_RETURN_FIRMWARE_ERROR,\r\n NO_WEB_USB,\r\n NO_TRANSPORT,\r\n USER_DID_NOT_SELECT_A_DEVICE,\r\n CAN_NOT_OPEN_USB,\r\n\r\n INVALID_PARAM = 0x80,\r\n MISSING_PARAM,\r\n PATH_NOT_VALID,\r\n BUSY,\r\n SIGNING_FAILED,\r\n UNKNOWN,\r\n}\r\n\r\nexport interface GeneralResponse {\r\n success: boolean;\r\n errorCode?: GeneralErrors;\r\n errorMessage?: string;\r\n payload?: any;\r\n type?: string;\r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n *\r\n * Hadi Robati, hadi@prokey.io\r\n *\r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nexport type CipheredKeyValue = {\r\n value: string,\r\n}\r\n\r\nexport type Success = {\r\n message?: string,\r\n};\r\n\r\nexport type Features = {\r\n vendor: string,\r\n major_version: number,\r\n minor_version: number,\r\n patch_version: number,\r\n bootloader_mode: boolean,\r\n device_id: string,\r\n pin_protection: boolean,\r\n passphrase_protection: boolean,\r\n language: string,\r\n label: string,\r\n initialized: boolean,\r\n revision: string,\r\n bootloader_hash: string,\r\n imported: boolean,\r\n pin_cached: boolean,\r\n passphrase_cached: boolean,\r\n firmware_present: boolean,\r\n needs_backup: boolean,\r\n flags: number,\r\n model: string,\r\n fw_major: number,\r\n fw_minor: number,\r\n fw_patch: number,\r\n fw_vendor: string,\r\n fw_vendor_keys: string,\r\n unfinished_backup: boolean,\r\n no_backup: boolean,\r\n};\r\n\r\nexport type ResetDeviceSettings = {\r\n display_random?: boolean,\r\n strength?: number,\r\n passphrase_protection?: boolean,\r\n pin_protection?: boolean,\r\n language?: string,\r\n label?: string,\r\n u2f_counter?: number,\r\n skip_backup?: boolean,\r\n};\r\n\r\nexport type HDPrivNode = {\r\n depth: number,\r\n fingerprint: number,\r\n child_num: number,\r\n chain_code: string,\r\n private_key: string,\r\n};\r\n\r\nexport type HDPubNode = {\r\n depth: number,\r\n fingerprint: number,\r\n child_num: number,\r\n chain_code: string,\r\n public_key: string,\r\n};\r\n\r\nexport type HDNode = HDPubNode | HDPrivNode;\r\n\r\nexport type LoadDeviceSettings = {\r\n pin?: string,\r\n passphrase_protection?: boolean,\r\n language?: string,\r\n label?: string,\r\n skip_checksum?: boolean,\r\n mnemonics?: Array,\r\n mnemonic?: string,\r\n node?: HDNode,\r\n payload?: string, // will be converted\r\n\r\n u2f_counter?: number,\r\n};\r\n\r\nexport type RecoverDeviceSettings = {\r\n word_count?: number,\r\n passphrase_protection?: boolean,\r\n pin_protection?: boolean,\r\n language?: string,\r\n label?: string,\r\n enforce_wordlist?: boolean,\r\n type?: number,\r\n u2f_counter?: number,\r\n};\r\n\r\nexport type ApplySettings = {\r\n language?: string,\r\n label?: string,\r\n use_passphrase?: boolean,\r\n homescreen?: string,\r\n};\r\n\r\nexport type MessageSignature = {\r\n address: string,\r\n signature: string,\r\n}\r\n\r\nexport type MultisigRedeemScriptType = {\r\n pubkeys: Array<{ node: string | HDPubNode, address_n: Array }>,\r\n signatures: Array,\r\n m?: number,\r\n}\r\n\r\n//export type InputScriptType = 'SPENDADDRESS' | 'SPENDMULTISIG' | 'SPENDWITNESS' | 'SPENDP2SHWITNESS';\r\nexport enum EnumInputScriptType {\r\n SPENDADDRESS = 0, // standard P2PKH address\r\n SPENDMULTISIG = 1, // P2SH multisig address\r\n EXTERNAL = 2, // reserved for external inputs (coinjoin)\r\n SPENDWITNESS = 3, // native SegWit\r\n SPENDP2SHWITNESS = 4, // SegWit over P2SH (backward compatible\r\n}\r\n// transaction input, parameter of SignTx message, declared by user\r\nexport type TransactionInput = {\r\n address_n: Array,\r\n prev_hash: string,\r\n prev_index: number,\r\n script_type?: EnumInputScriptType,\r\n sequence?: number,\r\n amount?: string, // (segwit, bip143: true, zcash overwinter)\r\n multisig?: MultisigRedeemScriptType,\r\n};\r\n\r\n// transaction input, parameter of TxAck message, declared by user or downloaded from backend\r\nexport type RefTransactionInput = {\r\n prev_hash: string,\r\n prev_index: number,\r\n script_sig?: string,\r\n sequence: number,\r\n};\r\n\r\nexport enum EnumOutputScriptType {\r\n PAYTOADDRESS = 0, // used for all addresses (bitcoin, p2sh, witness)\r\n PAYTOSCRIPTHASH = 1, // p2sh address (deprecated; use PAYTOADDRESS)\r\n PAYTOMULTISIG = 2, // only for change output\r\n PAYTOOPRETURN = 3, // op_return\r\n PAYTOWITNESS = 4, // only for change output\r\n PAYTOP2SHWITNESS = 5, // only for change output\r\n}\r\n// transaction output, parameter of SignTx message, declared by user\r\nexport type TransactionOutput = {\r\n address: string,\r\n script_type: EnumOutputScriptType.PAYTOADDRESS,\r\n amount: string,\r\n multisig?: MultisigRedeemScriptType,\r\n} | {\r\n address_n: Array,\r\n script_type: EnumOutputScriptType.PAYTOADDRESS | EnumOutputScriptType.PAYTOWITNESS | EnumOutputScriptType.PAYTOP2SHWITNESS | EnumOutputScriptType.PAYTOMULTISIG,\r\n amount: string,\r\n multisig?: MultisigRedeemScriptType,\r\n} | {\r\n amount: '0',\r\n op_return_data: Array,\r\n script_type: EnumOutputScriptType.PAYTOOPRETURN,\r\n};\r\n\r\ntype TransactionBinOutput = {\r\n amount: string,\r\n script_pubkey: string,\r\n};\r\n\r\nexport type RefTransaction = {\r\n hash: string,\r\n version?: number,\r\n inputs: Array,\r\n bin_outputs: Array,\r\n lock_time?: number,\r\n extra_data?: string,\r\n timestamp?: number,\r\n version_group_id?: number,\r\n};\r\n\r\nexport type TransactionOptions = {\r\n lock_time?: number,\r\n timestamp?: number,\r\n version?: number,\r\n expiry?: number,\r\n overwintered?: boolean,\r\n version_group_id?: number,\r\n branch_id?: number,\r\n};\r\n\r\nexport type TxRequestDetails = {\r\n request_index: number,\r\n tx_hash?: string,\r\n extra_data_len?: number,\r\n extra_data_offset?: number,\r\n};\r\n\r\nexport type TxRequestSerialized = {\r\n signature_index?: number,\r\n signature?: string,\r\n serialized_tx?: string,\r\n};\r\n\r\nexport enum eRequestType {\r\n 'TXINPUT',\r\n 'TXOUTPUT',\r\n 'TXMETA',\r\n 'TXFINISHED',\r\n 'TXEXTRADATA'\r\n}\r\n\r\nexport type TxRequest = {\r\n request_type: eRequestType,\r\n details: TxRequestDetails,\r\n serialized: TxRequestSerialized,\r\n};\r\n\r\nexport type SignedTx = {\r\n signatures: Array,\r\n serialized_tx: string,\r\n txid?: string,\r\n};\r\n\r\nexport type EthereumTxRequest = {\r\n data_length?: number,\r\n signature_v?: number,\r\n signature_r?: string,\r\n signature_s?: string,\r\n};\r\n\r\nexport type EthereumAddress = {\r\n address: string,\r\n};\r\n\r\nexport type EthereumSignedTx = {\r\n // v: number,\r\n v: string,\r\n r: string,\r\n s: string,\r\n};\r\n\r\nexport type EthereumSignedTypedData = {\r\n address: string,\r\n signature: string,\r\n}\r\n\r\nexport type Identity = {\r\n proto?: string,\r\n user?: string,\r\n host?: string,\r\n port?: string,\r\n path?: string,\r\n index?: number,\r\n};\r\n\r\nexport type SignedIdentity = {\r\n address: string,\r\n public_key: string,\r\n signature: string,\r\n};\r\n\r\nexport type PublicKey = {\r\n node: HDPubNode,\r\n xpub: string,\r\n};\r\n\r\n// combined PublicKey and bitcoin.HDNode\r\nexport type HDNodeResponse = {\r\n path: Array,\r\n serializedPath: string,\r\n childNum: number,\r\n xpub: string,\r\n xpubSegwit?: string,\r\n chainCode: string,\r\n publicKey: string,\r\n fingerprint: number,\r\n depth: number,\r\n};\r\n\r\n// this is what Prokey asks for\r\nexport type SignTxInfo = {\r\n inputs: Array,\r\n} | {\r\n bin_outputs: Array,\r\n} | {\r\n outputs: Array,\r\n} | {\r\n extra_data: string,\r\n} | {\r\n version: number,\r\n lock_time: number,\r\n inputs_cnt: number,\r\n outputs_cnt: number,\r\n extra_data_len?: number,\r\n timestamp:number,\r\n version_group_id: number,\r\n};\r\n\r\n// NEM types\r\nexport interface NEMGetAddress {\r\n address_n: Array, // BIP-32 path to derive the key from master node\r\n network: number, // Network ID (0x68 = Mainnet, 0x98 = Testnet, 0x60 = Mijin)\r\n show_display: boolean // Optionally show on display before sending the result\r\n}\r\n\r\nexport type NEMAddress = {\r\n address: string,\r\n}\r\n\r\nexport type NEMSignedTx = {\r\n data: string,\r\n signature: string,\r\n}\r\n\r\nexport type NEMTransactionCommon = {\r\n address_n: Array,\r\n network: number,\r\n timestamp: number,\r\n fee: number,\r\n deadline?: number,\r\n signer?: string,\r\n}\r\n\r\nexport type NEMMosaic = {\r\n namespace: string,\r\n mosaic: string,\r\n quantity: number,\r\n}\r\n\r\nexport type NEMTransfer = {\r\n mosaics?: Array,\r\n public_key?: string,\r\n recipient: string,\r\n amount: number,\r\n payload?: string,\r\n}\r\n\r\nexport type NEMProvisionNamespace = {\r\n namespace: string,\r\n sink: string,\r\n fee: number,\r\n parent?: string,\r\n}\r\n\r\nexport type NEMMosaicLevyType = {\r\n id: 1,\r\n name: 'MosaicLevy_Absolute',\r\n} | {\r\n id: 2,\r\n name: 'MosaicLevy_Percentile',\r\n}\r\n\r\nexport type NEMSupplyChangeType = {\r\n id: 1,\r\n name: 'SupplyChange_Increase',\r\n} | {\r\n id: 2,\r\n name: 'SupplyChange_Decrease',\r\n}\r\n\r\nexport type NEMModificationType = {\r\n id: 1,\r\n name: 'CosignatoryModification_Add',\r\n} | {\r\n id: 2,\r\n name: 'CosignatoryModification_Delete',\r\n}\r\n\r\nexport type NEMImportanceTransferMode = {\r\n id: 1,\r\n name: 'ImportanceTransfer_Activate',\r\n} | {\r\n id: 2,\r\n name: 'ImportanceTransfer_Deactivate',\r\n}\r\n\r\nexport type NEMMosaicDefinition = {\r\n name?: string,\r\n ticker?: string,\r\n namespace?: string,\r\n mosaic?: string,\r\n divisibility?: number,\r\n fee?: number,\r\n levy?: NEMMosaicLevyType,\r\n levy_address?: string,\r\n levy_namespace?: string,\r\n levy_mosaic?: string,\r\n supply?: number,\r\n mutable_supply?: boolean,\r\n transferable?: boolean,\r\n description?: string,\r\n networks?: number,\r\n}\r\n\r\nexport type NEMMosaicCreation = {\r\n definition?: NEMMosaicDefinition,\r\n sink: string,\r\n fee: number,\r\n}\r\n\r\nexport type NEMMosaicSupplyChange = {\r\n namespace?: string,\r\n type?: NEMSupplyChangeType,\r\n mosaic?: string,\r\n delta?: number,\r\n}\r\n\r\nexport type NEMCosignatoryModification = {\r\n type?: NEMModificationType,\r\n public_key?: string,\r\n}\r\n\r\nexport type NEMAggregateModification = {\r\n modifications?: Array,\r\n relative_change: number, // TODO: \"sint32\"\r\n}\r\n\r\nexport type NEMImportanceTransfer = {\r\n mode?: NEMImportanceTransferMode,\r\n public_key?: string,\r\n}\r\n\r\nexport type NEMSignTxMessage = {\r\n transaction?: NEMTransactionCommon,\r\n cosigning?: boolean,\r\n multisig?: NEMTransactionCommon,\r\n transfer?: NEMTransfer,\r\n provision_namespace?: NEMProvisionNamespace,\r\n mosaic_creation?: NEMMosaicCreation,\r\n supply_change?: NEMMosaicSupplyChange,\r\n aggregate_modification?: NEMAggregateModification,\r\n importance_transfer?: NEMImportanceTransfer,\r\n}\r\n\r\n// Stellar types\r\n\r\nexport type StellarAddress = {\r\n address: string,\r\n}\r\n\r\nexport type StellarSignedTx = {\r\n public_key: string,\r\n signature: string,\r\n}\r\n\r\nexport type StellarPaymentOp = {\r\n type: \"StellarTxOpRequest\",\r\n message: {},\r\n}\r\n\r\nexport type StellarSignTxMessage = {\r\n address_n: Array,\r\n source_account: string,\r\n fee: number,\r\n sequence_number: string,\r\n network_passphrase: string,\r\n timebounds_start?: number,\r\n timebounds_end?: number,\r\n memo_type?: number,\r\n memo_text?: string | typeof undefined,\r\n memo_id?: string | typeof undefined,\r\n memo_hash?: string | Buffer | typeof undefined,\r\n num_operations: number,\r\n}\r\n\r\nexport type StellarAsset = {\r\n type: 0 | 1 | 2,\r\n code: string,\r\n issuer?: string,\r\n}\r\n\r\nexport type StellarOperationMessage = {\r\n type: 'StellarCreateAccountOp',\r\n source_account?: string,\r\n new_account: string,\r\n starting_balance: string,\r\n} | {\r\n type: 'StellarPaymentOp',\r\n source_account?: string,\r\n destination_account: string,\r\n asset: StellarAsset | typeof undefined,\r\n amount: string,\r\n} | {\r\n type: 'StellarPathPaymentOp',\r\n source_account?: string,\r\n send_asset: StellarAsset,\r\n send_max: string,\r\n destination_account: string,\r\n destination_asset: StellarAsset,\r\n destination_amount: string,\r\n paths?: Array | typeof undefined,\r\n} | {\r\n type: 'StellarManageOfferOp',\r\n source_account?: string,\r\n offer_id?: string,\r\n amount: string,\r\n buying_asset: StellarAsset,\r\n selling_asset: StellarAsset,\r\n price_n: number,\r\n price_d: number,\r\n} | {\r\n type: 'StellarCreatePassiveOfferOp',\r\n source_account?: string,\r\n offer_id?: string,\r\n amount: string,\r\n buying_asset: StellarAsset,\r\n selling_asset: StellarAsset,\r\n price_n: number,\r\n price_d: number,\r\n} | {\r\n type: 'StellarSetOptionsOp',\r\n source_account?: string,\r\n signer_type?: number | typeof undefined,\r\n signer_key?: string | Buffer | typeof undefined,\r\n signer_weight?: number | typeof undefined,\r\n clear_flags: number,\r\n set_flags: number,\r\n master_weight?: (number | string),\r\n low_threshold?: (number | string),\r\n medium_threshold?: (number | string),\r\n high_threshold?: (number | string),\r\n home_domain: string,\r\n inflation_destination_account: string,\r\n} | {\r\n type: 'StellarChangeTrustOp',\r\n source_account?: string,\r\n asset: StellarAsset,\r\n limit?: string,\r\n} | {\r\n type: 'StellarAllowTrustOp',\r\n source_account?: string,\r\n trusted_account: string,\r\n asset_type: number,\r\n asset_code: string,\r\n is_authorized: number,\r\n} | {\r\n type: 'StellarAccountMergeOp',\r\n source_account?: string,\r\n destination_account: string,\r\n} | {\r\n type: 'StellarManageDataOp',\r\n source_account?: string,\r\n key: string,\r\n value: string | Buffer | typeof undefined,\r\n} | {\r\n type: 'StellarBumpSequenceOp',\r\n source_account?: string,\r\n bump_to: number,\r\n}\r\n\r\n// Tezos types\r\nexport type TezosAddress = {\r\n address: string,\r\n};\r\n\r\nexport type TezosPublicKey = {\r\n public_key: string,\r\n};\r\n\r\ntype TezosContractID = {\r\n tag: number,\r\n hash: Uint8Array,\r\n};\r\n\r\nexport type TezosRevealOp = {\r\n source: Uint8Array,\r\n fee: number,\r\n counter: number,\r\n gas_limit: number,\r\n storage_limit: number,\r\n public_key: Uint8Array,\r\n};\r\n\r\nexport type TezosManagerTransfer = {\r\n amount: number,\r\n destination: TezosContractID,\r\n};\r\n\r\nexport type TezosParametersManager = {\r\n set_delegate?: Uint8Array,\r\n cancel_delegate?: boolean,\r\n transfer?: TezosManagerTransfer,\r\n};\r\n\r\nexport type TezosTransactionOp = {\r\n source: Uint8Array,\r\n destination: TezosContractID,\r\n amount: number,\r\n counter: number,\r\n fee: number,\r\n gas_limit: number,\r\n storage_limit: number,\r\n parameters?: Array,\r\n parameters_manager?: TezosParametersManager,\r\n};\r\n\r\nexport type TezosOriginationOp = {\r\n source: Uint8Array,\r\n balance: number,\r\n delegate?: Uint8Array,\r\n fee: number,\r\n counter: number,\r\n gas_limit: number,\r\n storage_limit: number,\r\n script: Array,\r\n};\r\n\r\nexport type TezosDelegationOp = {\r\n source: Uint8Array,\r\n delegate: Uint8Array,\r\n fee: number,\r\n counter: number,\r\n gas_limit: number,\r\n storage_limit: number,\r\n};\r\n\r\nexport type TezosTransaction = {\r\n address_n: Array,\r\n branch: Uint8Array,\r\n reveal?: TezosRevealOp,\r\n transaction?: TezosTransactionOp,\r\n origination?: TezosOriginationOp,\r\n delegation?: TezosDelegationOp,\r\n};\r\n\r\nexport type TezosSignedTx = {\r\n signature: string,\r\n sig_op_contents: string,\r\n operation_hash: string,\r\n};\r\n\r\n// Cardano types\r\nexport type CardanoAddress = {\r\n address: string,\r\n address_n?: Array,\r\n};\r\n\r\nexport type CardanoPublicKey = {\r\n xpub: string,\r\n node: HDPubNode,\r\n};\r\n\r\nexport type CardanoSignedTx = {\r\n tx_hash: string,\r\n tx_body: string,\r\n};\r\nexport type CardanoTxInput = {\r\n tx_hash: string,\r\n address_n: Array,\r\n output_index: number,\r\n type?: number,\r\n};\r\nexport type CardanoTxOutput = {\r\n address?: string,\r\n address_n?: Array,\r\n amount: string,\r\n};\r\n\r\nexport type CardanoTxRequest = {\r\n tx_index: number,\r\n tx_hash: string,\r\n tx_body: string,\r\n};\r\n\r\n// Lisk types\r\nexport type LiskAddress = {\r\n address: string,\r\n}\r\n\r\nexport type LiskPublicKey = {\r\n public_key: string,\r\n}\r\n\r\nexport type LiskMessageSignature = {\r\n public_key: string,\r\n signature: string,\r\n};\r\n\r\nexport type LiskAsset =\r\n { data: string } |\r\n { votes: Array } |\r\n { delegate: { username: string } } |\r\n { signature: { public_key: string } } |\r\n {\r\n multisignature: {\r\n min: number,\r\n life_time: number,\r\n keys_group: Array,\r\n },\r\n };\r\n\r\nexport type LiskTransaction = {\r\n type: number,\r\n fee: string,\r\n amount: string,\r\n timestamp: number,\r\n recipient_id?: string,\r\n sender_public_key?: string,\r\n requester_public_key?: string,\r\n signature?: string,\r\n asset?: LiskAsset,\r\n}\r\n\r\nexport type LiskSignedTx = {\r\n signature: string,\r\n}\r\n\r\n// Ripple types\r\nexport type RippleAddress = {\r\n address: string,\r\n}\r\n\r\nexport type RippleTransaction = {\r\n address_n: Array,\r\n fee?: number,\r\n flags?: number,\r\n sequence?: number,\r\n last_ledger_sequence?: number,\r\n payment: {\r\n amount: number,\r\n destination: string,\r\n destination_tag?: number\r\n },\r\n}\r\n\r\nexport type RippleSignedTx = {\r\n signature: string,\r\n serialized_tx: string,\r\n}\r\n\r\n// EOS types\r\nexport type EosPublicKey = {\r\n wif_public_key: string,\r\n raw_public_key: string,\r\n}\r\n\r\nexport type EosTxActionRequest = {\r\n data_size: number,\r\n}\r\n\r\nexport type EosTxHeader = {\r\n expiration: number,\r\n ref_block_num: number,\r\n ref_block_prefix: number,\r\n max_net_usage_words: number,\r\n max_cpu_usage_ms: number,\r\n delay_sec: number,\r\n}\r\n\r\nexport type EosSignTx = {\r\n address_n: Array,\r\n chain_id: string,\r\n header?: EosTxHeader,\r\n num_actions: number,\r\n}\r\n\r\nexport type EosAsset = {\r\n amount: string, // uint64 as string\r\n symbol: string, // uint64 as string\r\n}\r\n\r\nexport type EosPermissionLevel = {\r\n actor: string, // uint64 as string\r\n permission: string, // uint64 as string\r\n}\r\n\r\nexport type EosAuthorizationKey = {\r\n type: number,\r\n key: string,\r\n // address_n?: Array, // this field is not implemented in FW\r\n weight: number,\r\n}\r\n\r\nexport type EosAuthorization = {\r\n threshold: number,\r\n keys: Array,\r\n accounts: Array<{\r\n account: EosPermissionLevel,\r\n weight: number,\r\n }>,\r\n waits: Array<{\r\n wait_sec: number,\r\n weight: number,\r\n }>,\r\n}\r\n\r\nexport type EosActionCommon = {\r\n account: string, // uint64 as string\r\n name: string, // uint64 as string\r\n authorization: Array,\r\n}\r\n\r\nexport type EosActionTransfer = {\r\n sender: string, // uint64 as string\r\n receiver: string, // uint64 as string\r\n quantity: EosAsset,\r\n memo?: string,\r\n}\r\n\r\nexport type EosActionDelegate = {\r\n sender: string, // uint64 as string\r\n receiver: string, // uint64 as string\r\n net_quantity: EosAsset,\r\n cpu_quantity: EosAsset,\r\n transfer?: boolean,\r\n}\r\n\r\nexport type EosActionUndelegate = {\r\n sender: string, // uint64 as string\r\n receiver: string, // uint64 as string\r\n net_quantity: EosAsset,\r\n cpu_quantity: EosAsset,\r\n}\r\n\r\nexport type EosActionBuyRam = {\r\n payer: string, // uint64 as string\r\n receiver: string, // uint64 as string\r\n quantity: EosAsset,\r\n}\r\n\r\nexport type EosActionBuyRamBytes = {\r\n payer: string, // uint64 as string\r\n receiver: string, // uint64 as string\r\n bytes: number,\r\n}\r\n\r\nexport type EosActionSellRam = {\r\n account: string, // uint64 as string\r\n bytes: number,\r\n}\r\n\r\nexport type EosActionVoteProducer = {\r\n voter: string, // uint64 as string\r\n proxy: string, // uint64 as string\r\n producers: Array, // uint64[] as string\r\n}\r\n\r\nexport type EosActionRefund = {\r\n owner: string, // uint64 as string\r\n}\r\n\r\nexport type EosActionUpdateAuth = {\r\n account: string, // uint64 as string\r\n permission: string, // uint64 as string\r\n parent: string, // uint64 as string\r\n auth: EosAuthorization,\r\n}\r\n\r\nexport type EosActionDeleteAuth = {\r\n account: string, // uint64 as string\r\n permission: string, // uint64 as string\r\n}\r\n\r\nexport type EosActionLinkAuth = {\r\n account: string, // uint64 as string\r\n code: string, // uint64 as string\r\n type: string, // uint64 as string\r\n requirement: string, // uint64 as string\r\n}\r\n\r\nexport type EosActionUnlinkAuth = {\r\n account: string, // uint64 as string\r\n code: string, // uint64 as string\r\n type: string, // uint64 as string\r\n}\r\n\r\nexport type EosActionNewAccount = {\r\n creator: string, // uint64 as string\r\n name: string, // uint64 as string\r\n owner: EosAuthorization,\r\n active: EosAuthorization,\r\n}\r\n\r\nexport type EosActionUnknown = {\r\n data_size: number,\r\n data_chunk: string,\r\n}\r\n\r\nexport type EosTxActionAck = {\r\n common?: EosActionCommon,\r\n transfer?: EosActionTransfer,\r\n delegate?: EosActionDelegate,\r\n undelegate?: EosActionUndelegate,\r\n refund?: EosActionRefund,\r\n buy_ram?: EosActionBuyRam,\r\n buy_ram_bytes?: EosActionBuyRamBytes,\r\n sell_ram?: EosActionSellRam,\r\n vote_producer?: EosActionVoteProducer,\r\n update_auth?: EosActionUpdateAuth,\r\n delete_auth?: EosActionDeleteAuth,\r\n link_auth?: EosActionLinkAuth,\r\n unlink_auth?: EosActionUnlinkAuth,\r\n new_account?: EosActionNewAccount,\r\n unknown?: EosActionUnknown,\r\n}\r\n\r\nexport type EosSignedTx = {\r\n signature: string,\r\n}\r\n\r\n// Binance types\r\nexport type BinanceAddress = {\r\n address: string,\r\n}\r\n\r\nexport type BinancePublicKey = {\r\n public_key: string,\r\n}\r\n\r\nexport type BinanceSignTx = {\r\n address_n: Array,\r\n msg_count: number,\r\n chain_id: string,\r\n account_number: number,\r\n memo?: string,\r\n sequence: number,\r\n source: number,\r\n}\r\n\r\nexport type BinanceTxRequest = {\r\n\r\n}\r\n\r\nexport type BinanceInputOutput = {\r\n address: string,\r\n coins: {\r\n amount: number,\r\n denom: string,\r\n },\r\n}\r\n\r\nexport type BinanceTransferMsg = {\r\n inputs: BinanceInputOutput[],\r\n outputs: BinanceInputOutput[],\r\n}\r\n\r\nexport type BinanceOrderMsg = {\r\n id: string,\r\n ordertype: number, // 'OT_UNKNOWN' | 'MARKET' | 'LIMIT' | 'OT_RESERVED',\r\n price: number,\r\n quantity: number,\r\n sender: string,\r\n side: number, // 'SIDE_UNKNOWN' | 'BUY' | 'SELL',\r\n symbol: string,\r\n timeinforce: number, // 'TIF_UNKNOWN' | 'GTE' | 'TIF_RESERVED' | 'IOC',\r\n}\r\n\r\nexport type BinanceCancelMsg = {\r\n refid: string,\r\n sender: string,\r\n symbol: string,\r\n}\r\n\r\nexport type BinanceMessage = BinanceTransferMsg | BinanceOrderMsg | BinanceCancelMsg;\r\n\r\nexport type BinanceSignedTx = {\r\n signature: string,\r\n public_key: string,\r\n}\r\n\r\n// GetAddress response\r\nexport type AddressModel = {\r\n address: string,\r\n path: Array,\r\n}\r\n\r\n// Reset device flags\r\nexport type ResetDeviceFlags = {\r\n display_random?: boolean,\r\n strength?: number,\r\n passphrase_protection?: boolean,\r\n pin_protection?: boolean,\r\n language?: string,\r\n label?: string,\r\n u2f_counter?: number,\r\n skip_backup?: boolean,\r\n no_backup?: boolean,\r\n}\r\n\r\nexport type FirmwareErase = {\r\n length?: number,\r\n};\r\n\r\nexport type FirmwareUpload = {\r\n payload: Buffer,\r\n length: number,\r\n // hash?: string,\r\n}\r\n\r\nexport type ChangePin = {\r\n remove?: boolean,\r\n}\r\n\r\nexport type Flags = {\r\n flags: number,\r\n}\r\n\r\nexport type DebugLinkDecision = {\r\n yes_no?: boolean,\r\n up_down?: boolean,\r\n input?: string,\r\n}\r\n\r\nexport type DebugLinkState = {\r\n layout: string,\r\n pin: string,\r\n matrix: string,\r\n mnemonic: string,\r\n node: HDNode,\r\n passphrase_protection: boolean,\r\n reset_word: string,\r\n reset_entropy: string,\r\n recovery_fake_word: string,\r\n recovery_word_pos: number,\r\n reset_word_pos: number,\r\n}\r\n\r\nexport type LoadDeviceFlags = {\r\n mnemonics?: Array,\r\n mnemonic?: string,\r\n node?: HDNode,\r\n pin?: string,\r\n passphrase_protection?: boolean,\r\n language?: string,\r\n label?: string,\r\n skip_checksum?: boolean,\r\n u2f_counter?: number,\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { MyConsole } from './../utils/console';\r\nimport { Root, Type, IParseOptions, util, configure } from 'protobufjs';\r\nconst Long = require('./long');\r\n\r\nexport class Protobuf {\r\n private static _instance: Protobuf;\r\n private _pbroot: Root;\r\n private _isInited = false;\r\n\r\n private constructor() {\r\n this._pbroot = new Root();\r\n }\r\n\r\n public static get Instance() {\r\n if (this._instance === undefined) {\r\n this._instance = new Protobuf();\r\n\r\n // Force protobuf to use Long module for uint64\r\n util.Long = Long;\r\n configure();\r\n }\r\n\r\n return this._instance;\r\n }\r\n\r\n Init(callback?: (isSuccess: boolean) => void, protoPath?: string): void {\r\n let address = '/assets/data/protob/combined.proto.txt';\r\n if(protoPath != null){\r\n address = `${protoPath}/combined.proto.txt`;\r\n }\r\n\r\n const opt: IParseOptions = {\r\n keepCase: true,\r\n }\r\n\r\n this._pbroot.load(address, opt).then((root: Root) => {\r\n this._isInited = true;\r\n if (callback) {\r\n callback(true);\r\n }\r\n }).catch((reason) => {\r\n if (callback) {\r\n callback(false);\r\n }\r\n });\r\n }\r\n\r\n get IsInited() { return this._isInited; }\r\n\r\n GetMessageByName(name: string): Type | null {\r\n if (this._isInited === false) {\r\n MyConsole.Error('The protobuf is not inited yet');\r\n return null;\r\n }\r\n\r\n const msg = this._pbroot.lookupType(name);\r\n if (msg === null) {\r\n MyConsole.Error('Protobuf::GetMessageByName-> Cannot find message name ' + name);\r\n return null;\r\n }\r\n\r\n return msg;\r\n }\r\n\r\n GetMessageTypeById(id: number): string | null {\r\n try {\r\n const item = this._pbroot.lookupEnum('MessageType').valuesById[id];\r\n return item.substring(item.indexOf('_') + 1);\r\n } catch (e) {\r\n MyConsole.Exception('Protobuf::GetMessageTypeById->' + e);\r\n return null;\r\n }\r\n }\r\n\r\n GetMessageTypeIdByName(typeName: string): number | null {\r\n try {\r\n const item = this._pbroot.lookupEnum('MessageType').values['MessageType_' + typeName];\r\n return item;\r\n } catch (e) {\r\n MyConsole.Exception('Protobuf::GetMessageIdByType->' + e);\r\n return null;\r\n }\r\n }\r\n\r\n GetMessageById(id: number): Type | null {\r\n try {\r\n const item = this._pbroot.lookupEnum('MessageType').valuesById[id];\r\n const msgName = item.substring(item.indexOf('_') + 1);\r\n const msg = this._pbroot.lookupType(msgName);\r\n if (msg === null) {\r\n MyConsole.Error('Protobuf::GetMessageById-> Cannot find message id ' + id);\r\n return null;\r\n }\r\n\r\n return msg;\r\n\r\n } catch (e) {\r\n MyConsole.Exception('Protobuf::GetMessageById->' + e);\r\n return null;\r\n }\r\n\r\n }\r\n\r\n GetEnumNameByValue(enumName: string, id: number): string | null {\r\n try {\r\n const item = this._pbroot.lookupEnum(enumName);\r\n if (item) {\r\n return item.valuesById[id];\r\n } else {\r\n MyConsole.Error('Cannot find the enum name ' + enumName );\r\n return null;\r\n }\r\n } catch (e) {\r\n MyConsole.Exception('Protobuf::GetEnumNameByValue->' + e);\r\n return null;\r\n }\r\n }\r\n\r\n GetEnumValueByName(enumName: string, memberName: string): number | null {\r\n try {\r\n const item = this._pbroot.lookupEnum(enumName);\r\n if (item) {\r\n return item.values[memberName];\r\n } else {\r\n MyConsole.Error('Cannot find the enum name ' + enumName );\r\n return null;\r\n }\r\n } catch (e) {\r\n MyConsole.Error('Protobuf::GetEnumValueByName->' + e);\r\n return null;\r\n }\r\n }\r\n}\r\n","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { GeneralResponse } from '../models/GeneralResponse';\r\n\r\nexport enum TransportType\r\n{\r\n WebUsb,\r\n WebSocket\r\n}\r\n\r\nexport interface IMessagePayload {\r\n MsgId: number,\r\n Lenght: number,\r\n ProtoPayload: Uint8Array,\r\n}\r\n\r\nexport type ITransport = {\r\n onReceiveCallback: (msgPayload: IMessagePayload) => void;\r\n onDeviceDisconnect: () => void;\r\n Init(isDebug?: boolean, onReceiveCallback?: (msgPayload: IMessagePayload) => void): Promise;\r\n Open(path?: string): Promise;\r\n SendProtoMsg(msgId: number, data: Uint8Array): Promise;\r\n Close(): void;\r\n IsOpen(): boolean;\r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Ali Akbar Mohammadi\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\n\r\nimport { GeneralErrors, GeneralResponse } from \"../models/GeneralResponse\";\r\nimport { IMessagePayload, ITransport } from \"./ITransport\";\r\nimport { IMessageEvent, w3cwebsocket } from \"websocket\";\r\nimport { MyConsole } from \"../utils/console\";\r\n\r\nexport class WebSocketTransport implements ITransport {\r\n onReceiveCallback!: (msgPayload: IMessagePayload) => void;\r\n onDeviceDisconnect!: () => void;\r\n\r\n _ws: WebSocket;\r\n _isConnected: boolean = false;\r\n _msgBuffer: Array = new Array();\r\n _msgResolver: any;\r\n\r\n constructor()\r\n {\r\n this._ws = new WebSocket(\"ws://localhost:55500\");\r\n }\r\n\r\n public async Init(isDebug?: boolean, onReceiveCallback?: (msgPayload: IMessagePayload) => void): Promise {\r\n if (onReceiveCallback) {\r\n this.onReceiveCallback = onReceiveCallback;\r\n }\r\n return { success: true };\r\n }\r\n\r\n public async Open(path?: string): Promise {\r\n if (!this._isConnected) {\r\n this._ws.binaryType = 'arraybuffer';\r\n this._ws.onmessage = (message: IMessageEvent) => {\r\n console.debug(message);\r\n if (message.data instanceof ArrayBuffer)\r\n this._msgBuffer.push(new Uint8Array(message.data));\r\n if (this._msgResolver != null) {\r\n this._msgResolver();\r\n this._msgResolver = null;\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n this._ws.onopen = () => {\r\n this._isConnected = true;\r\n resolve({ success: true });\r\n };\r\n this._ws.onclose = (event) => {\r\n this._isConnected = false;\r\n if (this.onDeviceDisconnect != null)\r\n this.onDeviceDisconnect();\r\n resolve({ success: false, errorCode: GeneralErrors.NO_DEVICE });\r\n };\r\n this._ws.onerror = (err) => {\r\n console.error(err);\r\n resolve({ success: false, errorCode: GeneralErrors.NO_DEVICE });\r\n }\r\n });\r\n }\r\n return { success: true };\r\n }\r\n\r\n public async SendProtoMsg(msgId: number, data: Uint8Array): Promise {\r\n const bf = new Uint8Array(data.length + 6);\r\n let n = 0;\r\n\r\n // MsgType\r\n bf[n++] = msgId >> 8;\r\n bf[n++] = msgId & 0xFF;\r\n\r\n // Lenght of data\r\n bf[n++] = data.length >> 24;\r\n bf[n++] = data.length >> 16;\r\n bf[n++] = data.length >> 8;\r\n bf[n++] = data.length;\r\n\r\n // Data\r\n for (let i = 0; i < data.length; i++) {\r\n bf[n++] = data[i];\r\n }\r\n\r\n let res = await this.SendData(bf);\r\n if (res.success == false)\r\n return res;\r\n\r\n res = await this.ReceiveData();\r\n if (res.success) {\r\n if (this.onReceiveCallback != null) {\r\n this.onReceiveCallback(res.payload);\r\n }\r\n\r\n return res;\r\n }\r\n else if (res.errorCode == GeneralErrors.NO_DEVICE && this.onDeviceDisconnect != null) {\r\n this.onDeviceDisconnect();\r\n }\r\n\r\n return res;\r\n }\r\n\r\n public async SendData(bMsg: Uint8Array): Promise {\r\n if (!this._isConnected) {\r\n return { success: false, errorCode: GeneralErrors.NO_DEVICE };\r\n }\r\n\r\n let l = bMsg.length;\r\n let bDataToSend = new Uint8Array(64);\r\n var firstPacket = true;\r\n var n = 0;\r\n var msgOutIndex = 0;\r\n\r\n while (l > 0) {\r\n n = 0;\r\n if (firstPacket) {\r\n firstPacket = false;\r\n bDataToSend[n++] = 0x3F;\r\n bDataToSend[n++] = 0x23;\r\n bDataToSend[n++] = 0x23;\r\n }\r\n else {\r\n bDataToSend[n++] = 0x3F;\r\n }\r\n\r\n while (n < 64) {\r\n if (l > 0) {\r\n l--;\r\n bDataToSend[n++] = bMsg[msgOutIndex++];\r\n }\r\n else\r\n bDataToSend[n++] = 0x00; // Padding\r\n }\r\n\r\n this._ws.send(bDataToSend.buffer);\r\n }\r\n\r\n return { success: true };\r\n }\r\n\r\n private async WaitForData(): Promise {\r\n if (this._msgBuffer.length == 0) {\r\n if (!this._isConnected)\r\n return;\r\n return new Promise((res, rej) => {\r\n this._msgResolver = res;\r\n });\r\n }\r\n }\r\n\r\n public async ReceiveData(): Promise {\r\n let recData: Uint8Array = new Uint8Array();\r\n var msgLen = 0;\r\n let firstPacket = true;\r\n let msgId = 0;\r\n let n = 0;\r\n var tmpLen = 0;\r\n\r\n while (true) {\r\n await this.WaitForData();\r\n let res: Uint8Array;\r\n let f = this._msgBuffer.shift();\r\n if (f != undefined) {\r\n res = f;\r\n }\r\n else {\r\n return { success: false, errorCode: GeneralErrors.NO_RESPONSE_FROM_DEVICE };\r\n }\r\n\r\n if (firstPacket) {\r\n\r\n var buf = res;\r\n // Check start bytes\r\n if (buf[0] != 0x3F || buf[1] != 0x23 || buf[2] != 0x23) {\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.PROTO_ERR\r\n };\r\n }\r\n\r\n firstPacket = false;\r\n\r\n // message ID\r\n msgId = buf[3] << 8;\r\n msgId |= buf[4];\r\n\r\n // message data length\r\n msgLen = buf[5] << 24;\r\n msgLen |= buf[6] << 16;\r\n msgLen |= buf[7] << 8;\r\n msgLen |= buf[8];\r\n\r\n recData = new Uint8Array(msgLen);\r\n\r\n // Max data len here can be 55 bytes\r\n let l = (msgLen > 55) ? 55 : msgLen;\r\n tmpLen = msgLen - l;\r\n\r\n for (let i = 0; i < l; i++)\r\n recData[n++] = buf[i + 9];\r\n }\r\n else {\r\n var buf = res;\r\n\r\n // validate start byte\r\n if (buf[0] != 0x3F) {\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.PROTO_ERR\r\n };\r\n }\r\n\r\n // Max data len here can be 63 bytes\r\n let l = (tmpLen > 63) ? 63 : tmpLen;\r\n tmpLen -= l;\r\n\r\n for (let i = 0; i < l; i++)\r\n recData[n++] = buf[i + 1];\r\n }\r\n\r\n if (tmpLen > 0) //! still have more data\r\n continue;\r\n\r\n return {\r\n success: true,\r\n payload: {\r\n MsgId: msgId,\r\n Lenght: msgLen,\r\n ProtoPayload: recData,\r\n }\r\n };\r\n }\r\n }\r\n\r\n public IsOpen(): boolean {\r\n return this._isConnected;\r\n }\r\n\r\n Close(): void {\r\n this._ws.close();\r\n }\r\n}","/*\r\n * This is part of PROKEY HARDWARE WALLET project\r\n * Copyright (C) Prokey.io\r\n * \r\n * Hadi Robati, hadi@prokey.io\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n\r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see .\r\n*/\r\nimport { MyConsole } from '../utils/console';\r\nimport * as Utils from '../utils/utils';\r\nimport { IMessagePayload, ITransport } from './ITransport'\r\nimport { GeneralResponse, GeneralErrors } from '../models/GeneralResponse';\r\n\r\ndeclare global {\r\n interface Navigator {\r\n // @ts-ignore\r\n usb: {\r\n getDevices(): any[];\r\n }\r\n }\r\n}\r\n\r\nexport class WebUsb implements ITransport {\r\n onReceiveCallback!: (msgPayload: IMessagePayload) => void;\r\n onDeviceDisconnect!: () => void;\r\n\r\n _usb: any;\r\n _port: any;\r\n _intervalId: any = null;\r\n\r\n prokeyFilters = [\r\n { vendorId: 0x1209, productId: 0xAAAA },\r\n { vendorId: 0x1364, productId: 0x0001 }\r\n ];\r\n\r\n constructor() {\r\n this._usb = navigator.usb;\r\n }\r\n\r\n public async Init(isDebug?: boolean, onReceiveCallback?: (msgPayload: IMessagePayload) => void): Promise {\r\n if(onReceiveCallback) {\r\n this.onReceiveCallback = onReceiveCallback;\r\n }\r\n //! Get USB device instance\r\n return await this._enumerate();\r\n }\r\n\r\n public async Open(path?: string): Promise {\r\n\r\n //! Open USB device\r\n let res = await this._acquire();\r\n if(res.success == false){\r\n return res;\r\n }\r\n\r\n this._usb.addEventListener('disconnect', () => {\r\n if (this.onDeviceDisconnect != null) {\r\n this.onDeviceDisconnect();\r\n }\r\n })\r\n\r\n return res;\r\n }\r\n\r\n public async SendProtoMsg(msgId: number, data: Uint8Array): Promise {\r\n const bf = new Uint8Array(data.length + 6);\r\n let n = 0;\r\n\r\n // MsgType\r\n bf[n++] = msgId >> 8;\r\n bf[n++] = msgId & 0xFF;\r\n\r\n // Lenght of data\r\n bf[n++] = data.length >> 24;\r\n bf[n++] = data.length >> 16;\r\n bf[n++] = data.length >> 8;\r\n bf[n++] = data.length;\r\n\r\n // Data\r\n for(let i=0; i {\r\n if (this._port === undefined || this._port == null) {\r\n return { success: false, errorCode: GeneralErrors.USER_DID_NOT_SELECT_A_DEVICE };\r\n }\r\n\r\n var bMsg = Utils.HexStringToByteArray(data);\r\n this.SendData(bMsg);\r\n\r\n let recStr: string = \"\";\r\n var len = 0;\r\n let firstPacket = true;\r\n var isValid = true;\r\n\r\n while (true) {\r\n const res = await this._port.transferIn(1, 64);\r\n\r\n if (res.status == \"stall\") {\r\n this._port.clearHalt(\"in\", 1);\r\n continue;\r\n }\r\n\r\n // TODO: Handle babble status\r\n //if (res.status == \"babble\") //! still have more data\r\n //continue;\r\n\r\n if (firstPacket) {\r\n firstPacket = false;\r\n\r\n var uint8View = new Uint8Array(res.data.buffer);\r\n len = uint8View[5] << 24;\r\n len |= uint8View[6] << 16;\r\n len |= uint8View[7] << 8;\r\n len |= uint8View[8];\r\n\r\n var rawStr: string = Buffer.from(res.data.buffer).toString('hex');\r\n\r\n // validate start bytes\r\n if (rawStr.substring(0, 6).toLowerCase() != '3f2323')\r\n isValid = false; //! Can not return err right now because maybe there are some IN data in the USB buffer\r\n\r\n //! Remove '?##\" characters from data\r\n recStr = rawStr.substring(6);\r\n }\r\n else {\r\n var rawStr: string = Buffer.from(res.data.buffer).toString('hex');\r\n\r\n // validate start byte\r\n if (rawStr.substring(0, 2).toLowerCase() != '3f')\r\n isValid = false;\r\n\r\n //! Remove '?' characted from data\r\n recStr += rawStr.substring(2);\r\n }\r\n\r\n len -= 64;\r\n if (len > 0) //! still have more data\r\n continue;\r\n\r\n if (isValid)\r\n return { success: true, payload: recStr };\r\n else\r\n return { success: false, errorCode: GeneralErrors.PROTO_ERR };\r\n }\r\n }\r\n\r\n public async SendData(bMsg: Uint8Array): Promise {\r\n if (this._port === undefined || this._port == null) {\r\n return { success: false, errorCode: GeneralErrors.USER_DID_NOT_SELECT_A_DEVICE };\r\n }\r\n\r\n let l = bMsg.length;\r\n let bDataToSend = new Uint8Array(64);\r\n var firstPacket = true;\r\n var n = 0;\r\n var msgOutIndex = 0;\r\n\r\n while (l > 0) {\r\n n = 0;\r\n if (firstPacket) {\r\n firstPacket = false;\r\n bDataToSend[n++] = 0x3F;\r\n bDataToSend[n++] = 0x23;\r\n bDataToSend[n++] = 0x23;\r\n }\r\n else {\r\n bDataToSend[n++] = 0x3F;\r\n }\r\n\r\n while (n < 64) {\r\n if (l > 0) {\r\n l--;\r\n bDataToSend[n++] = bMsg[msgOutIndex++];\r\n }\r\n else\r\n bDataToSend[n++] = 0x00; // Padding\r\n }\r\n \r\n await this._port.transferOut(1, bDataToSend);\r\n }\r\n\r\n return { success: true };\r\n }\r\n\r\n public async ReceiveData(): Promise {\r\n let recData: Uint8Array = new Uint8Array();\r\n var msgLen = 0;\r\n let firstPacket = true;\r\n let msgId = 0;\r\n let n = 0;\r\n var tmpLen = 0;\r\n\r\n\r\n while (true) {\r\n let res;\r\n try {\r\n res = await this._port.transferIn(1, 64);\r\n }\r\n catch (e) {\r\n if (e instanceof Error) {\r\n MyConsole.Exception(\"WebUsb::ReceiveData\", e);\r\n if (e.name == \"NotFoundError\") {\r\n return {\r\n success: false,\r\n errorMessage: \"The device was disconnected\",\r\n errorCode: GeneralErrors.NO_DEVICE,\r\n };\r\n } else if(e.name == \"NetworkError\") {\r\n return {\r\n success: false,\r\n errorMessage: \"USB disconnect\",\r\n errorCode: GeneralErrors.NO_DEVICE,\r\n }\r\n }\r\n\r\n }\r\n return {\r\n success: false,\r\n errorCode: GeneralErrors.UNKNOWN,\r\n };\r\n }\r\n\r\n if (res.status == \"stall\") {\r\n this._port.clearHalt(\"in\", 1);\r\n continue;\r\n }\r\n\r\n if (firstPacket) {\r\n \r\n var buf = new Uint8Array(res.data.buffer);\r\n // Check start bytes\r\n if (buf[0] != 0x3F || buf[1] != 0x23 || buf[2] != 0x23) {\r\n return { \r\n success: false, \r\n errorCode: GeneralErrors.PROTO_ERR \r\n };\r\n }\r\n\r\n firstPacket = false;\r\n\r\n // message ID\r\n msgId = buf[3] << 8;\r\n msgId |= buf[4];\r\n\r\n // message data length\r\n msgLen = buf[5] << 24;\r\n msgLen |= buf[6] << 16;\r\n msgLen |= buf[7] << 8;\r\n msgLen |= buf[8];\r\n\r\n recData = new Uint8Array(msgLen);\r\n\r\n // Max data len here can be 55 bytes\r\n let l = (msgLen > 55) ? 55 : msgLen;\r\n tmpLen = msgLen - l;\r\n\r\n for (let i = 0; i < l; i++)\r\n recData[n++] = buf[i + 9];\r\n }\r\n else {\r\n var buf = new Uint8Array(res.data.buffer);\r\n\r\n // validate start byte\r\n if (buf[0] != 0x3F) {\r\n return { \r\n success: false, \r\n errorCode: GeneralErrors.PROTO_ERR \r\n };\r\n }\r\n\r\n // Max data len here can be 63 bytes\r\n let l = (tmpLen > 63) ? 63 : tmpLen;\r\n tmpLen -= l;\r\n\r\n for (let i = 0; i < l; i++)\r\n recData[n++] = buf[i + 1];\r\n }\r\n\r\n if (tmpLen > 0) //! still have more data\r\n continue;\r\n\r\n return {\r\n success: true, \r\n payload: {\r\n MsgId: msgId,\r\n Lenght: msgLen,\r\n ProtoPayload: recData,\r\n }\r\n };\r\n }\r\n }\r\n\r\n public IsOpen(): boolean {\r\n if(this._port == null || this.Open == null)\r\n return false;\r\n\r\n return this._port.opened;\r\n }\r\n\r\n async delay(ms: number): Promise {\r\n await new Promise(resolve => setTimeout(() => resolve(), ms)).then(() => console.log(\"fired\"));\r\n }\r\n\r\n Close(): void {\r\n\r\n }\r\n\r\n private async _enumerate(): Promise