@bitgo/account-lib 3.0.0-hotfix.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mocharc.js +1 -1
- package/CHANGELOG.md +203 -29
- package/README.md +5 -7
- package/dist/resources/README.md +0 -22
- package/dist/src/index.d.ts +34 -20
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +57 -40
- package/dist/tsconfig.tsbuildinfo +26050 -40851
- package/package.json +29 -77
- package/resources/README.md +0 -22
- package/dist/browser/bitgo-account-lib.js +0 -2
- package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
- package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
- package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
- package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
- package/dist/resources/hbar/protobuf/Duration.proto +0 -28
- package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
- package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
- package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
- package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
- package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
- package/dist/resources/hbar/protobuf/hedera.js +0 -12192
- package/dist/resources/trx/protobuf/Contract.proto +0 -256
- package/dist/resources/trx/protobuf/Discover.proto +0 -44
- package/dist/resources/trx/protobuf/tron.d.ts +0 -11024
- package/dist/resources/trx/protobuf/tron.js +0 -31510
- package/dist/resources/trx/protobuf/tron.proto +0 -677
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -42
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/assetTransferBuilder.js +0 -105
- package/dist/src/coin/algo/errors.d.ts +0 -11
- package/dist/src/coin/algo/errors.d.ts.map +0 -1
- package/dist/src/coin/algo/errors.js +0 -27
- package/dist/src/coin/algo/ifaces.d.ts +0 -46
- package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
- package/dist/src/coin/algo/ifaces.js +0 -3
- package/dist/src/coin/algo/index.d.ts +0 -13
- package/dist/src/coin/algo/index.d.ts.map +0 -1
- package/dist/src/coin/algo/index.js +0 -47
- package/dist/src/coin/algo/keyPair.d.ts +0 -25
- package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
- package/dist/src/coin/algo/keyPair.js +0 -77
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -239
- package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
- package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
- package/dist/src/coin/algo/seedEncoding.js +0 -97
- package/dist/src/coin/algo/transaction.d.ts +0 -75
- package/dist/src/coin/algo/transaction.d.ts.map +0 -1
- package/dist/src/coin/algo/transaction.js +0 -251
- package/dist/src/coin/algo/transactionBuilder.d.ts +0 -204
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilder.js +0 -373
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilderFactory.js +0 -52
- package/dist/src/coin/algo/transferBuilder.d.ts +0 -40
- package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transferBuilder.js +0 -89
- package/dist/src/coin/algo/txnSchema.d.ts +0 -7
- package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
- package/dist/src/coin/algo/txnSchema.js +0 -68
- package/dist/src/coin/algo/utils.d.ts +0 -249
- package/dist/src/coin/algo/utils.d.ts.map +0 -1
- package/dist/src/coin/algo/utils.js +0 -539
- package/dist/src/coin/avaxc/index.d.ts +0 -8
- package/dist/src/coin/avaxc/index.d.ts.map +0 -1
- package/dist/src/coin/avaxc/index.js +0 -35
- package/dist/src/coin/avaxc/keyPair.d.ts +0 -26
- package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
- package/dist/src/coin/avaxc/keyPair.js +0 -83
- package/dist/src/coin/avaxc/resources.d.ts +0 -12
- package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
- package/dist/src/coin/avaxc/resources.js +0 -27
- package/dist/src/coin/avaxc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +0 -45
- package/dist/src/coin/avaxc/transferBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transferBuilder.js +0 -25
- package/dist/src/coin/avaxc/utils.d.ts +0 -39
- package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
- package/dist/src/coin/avaxc/utils.js +0 -70
- package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
- package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/avaxc/walletUtil.js +0 -62
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
- package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
- package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
- package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
- package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseUtils.js +0 -3
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
- package/dist/src/coin/baseCoin/enum.d.ts +0 -43
- package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/enum.js +0 -70
- package/dist/src/coin/baseCoin/errors.d.ts +0 -65
- package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/errors.js +0 -156
- package/dist/src/coin/baseCoin/iface.d.ts +0 -162
- package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/iface.js +0 -38
- package/dist/src/coin/baseCoin/index.d.ts +0 -12
- package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/index.js +0 -41
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
- package/dist/src/coin/celo/index.d.ts +0 -8
- package/dist/src/coin/celo/index.d.ts.map +0 -1
- package/dist/src/coin/celo/index.js +0 -35
- package/dist/src/coin/celo/resources.d.ts +0 -10
- package/dist/src/coin/celo/resources.d.ts.map +0 -1
- package/dist/src/coin/celo/resources.js +0 -26
- package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingBuilder.js +0 -277
- package/dist/src/coin/celo/stakingCall.d.ts +0 -7
- package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingCall.js +0 -13
- package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
- package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingUtils.js +0 -98
- package/dist/src/coin/celo/transaction.d.ts +0 -10
- package/dist/src/coin/celo/transaction.d.ts.map +0 -1
- package/dist/src/coin/celo/transaction.js +0 -37
- package/dist/src/coin/celo/transactionBuilder.d.ts +0 -86
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transactionBuilder.js +0 -228
- package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
- package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transferBuilder.js +0 -27
- package/dist/src/coin/celo/types.d.ts +0 -52
- package/dist/src/coin/celo/types.d.ts.map +0 -1
- package/dist/src/coin/celo/types.js +0 -222
- package/dist/src/coin/celo/utils.d.ts +0 -18
- package/dist/src/coin/celo/utils.d.ts.map +0 -1
- package/dist/src/coin/celo/utils.js +0 -99
- package/dist/src/coin/cspr/constants.d.ts +0 -19
- package/dist/src/coin/cspr/constants.d.ts.map +0 -1
- package/dist/src/coin/cspr/constants.js +0 -28
- package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/delegateBuilder.js +0 -111
- package/dist/src/coin/cspr/ifaces.d.ts +0 -69
- package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
- package/dist/src/coin/cspr/ifaces.js +0 -3
- package/dist/src/coin/cspr/index.d.ts +0 -5
- package/dist/src/coin/cspr/index.d.ts.map +0 -1
- package/dist/src/coin/cspr/index.js +0 -29
- package/dist/src/coin/cspr/keyPair.d.ts +0 -18
- package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
- package/dist/src/coin/cspr/keyPair.js +0 -75
- package/dist/src/coin/cspr/transaction.d.ts +0 -55
- package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
- package/dist/src/coin/cspr/transaction.js +0 -227
- package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -124
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilder.js +0 -312
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -98
- package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
- package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transferBuilder.js +0 -106
- package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/undelegateBuilder.js +0 -111
- package/dist/src/coin/cspr/utils.d.ts +0 -188
- package/dist/src/coin/cspr/utils.d.ts.map +0 -1
- package/dist/src/coin/cspr/utils.js +0 -478
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -95
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
- package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
- package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/claimBuilder.js +0 -117
- package/dist/src/coin/dot/errors.d.ts +0 -8
- package/dist/src/coin/dot/errors.d.ts.map +0 -1
- package/dist/src/coin/dot/errors.js +0 -19
- package/dist/src/coin/dot/iface.d.ts +0 -194
- package/dist/src/coin/dot/iface.d.ts.map +0 -1
- package/dist/src/coin/dot/iface.js +0 -39
- package/dist/src/coin/dot/index.d.ts +0 -17
- package/dist/src/coin/dot/index.d.ts.map +0 -1
- package/dist/src/coin/dot/index.js +0 -53
- package/dist/src/coin/dot/keyPair.d.ts +0 -31
- package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
- package/dist/src/coin/dot/keyPair.js +0 -74
- package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
- package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
- package/dist/src/coin/dot/singletonRegistry.js +0 -20
- package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
- package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/stakingBuilder.js +0 -135
- package/dist/src/coin/dot/transaction.d.ts +0 -65
- package/dist/src/coin/dot/transaction.d.ts.map +0 -1
- package/dist/src/coin/dot/transaction.js +0 -396
- package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/transactionBuilder.js +0 -332
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
- package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
- package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/transferBuilder.js +0 -171
- package/dist/src/coin/dot/txnSchema.d.ts +0 -14
- package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
- package/dist/src/coin/dot/txnSchema.js +0 -104
- package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
- package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/unnominateBuilder.js +0 -50
- package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
- package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/unstakeBuilder.js +0 -89
- package/dist/src/coin/dot/utils.d.ts +0 -138
- package/dist/src/coin/dot/utils.d.ts.map +0 -1
- package/dist/src/coin/dot/utils.js +0 -269
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
- package/dist/src/coin/etc/index.d.ts +0 -8
- package/dist/src/coin/etc/index.d.ts.map +0 -1
- package/dist/src/coin/etc/index.js +0 -35
- package/dist/src/coin/etc/resources.d.ts +0 -10
- package/dist/src/coin/etc/resources.d.ts.map +0 -1
- package/dist/src/coin/etc/resources.js +0 -26
- package/dist/src/coin/etc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/etc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/etc/transactionBuilder.js +0 -45
- package/dist/src/coin/etc/transferBuilder.d.ts +0 -19
- package/dist/src/coin/etc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/etc/transferBuilder.js +0 -27
- package/dist/src/coin/etc/utils.d.ts +0 -18
- package/dist/src/coin/etc/utils.d.ts.map +0 -1
- package/dist/src/coin/etc/utils.js +0 -42
- package/dist/src/coin/eth/contractCall.d.ts +0 -8
- package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
- package/dist/src/coin/eth/contractCall.js +0 -17
- package/dist/src/coin/eth/iface.d.ts +0 -122
- package/dist/src/coin/eth/iface.d.ts.map +0 -1
- package/dist/src/coin/eth/iface.js +0 -8
- package/dist/src/coin/eth/index.d.ts +0 -10
- package/dist/src/coin/eth/index.d.ts.map +0 -1
- package/dist/src/coin/eth/index.js +0 -39
- package/dist/src/coin/eth/keyPair.d.ts +0 -26
- package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth/keyPair.js +0 -85
- package/dist/src/coin/eth/transaction.d.ts +0 -64
- package/dist/src/coin/eth/transaction.d.ts.map +0 -1
- package/dist/src/coin/eth/transaction.js +0 -137
- package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transactionBuilder.js +0 -624
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
- package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
- package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder.js +0 -197
- package/dist/src/coin/eth/types.d.ts +0 -39
- package/dist/src/coin/eth/types.d.ts.map +0 -1
- package/dist/src/coin/eth/types.js +0 -135
- package/dist/src/coin/eth/utils.d.ts +0 -202
- package/dist/src/coin/eth/utils.d.ts.map +0 -1
- package/dist/src/coin/eth/utils.js +0 -485
- package/dist/src/coin/eth/walletUtil.d.ts +0 -19
- package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/eth/walletUtil.js +0 -29
- package/dist/src/coin/eth2/index.d.ts +0 -2
- package/dist/src/coin/eth2/index.d.ts.map +0 -1
- package/dist/src/coin/eth2/index.js +0 -6
- package/dist/src/coin/eth2/keyPair.d.ts +0 -33
- package/dist/src/coin/eth2/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth2/keyPair.js +0 -65
- package/dist/src/coin/hbar/ifaces.d.ts +0 -26
- package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
- package/dist/src/coin/hbar/ifaces.js +0 -3
- package/dist/src/coin/hbar/index.d.ts +0 -6
- package/dist/src/coin/hbar/index.d.ts.map +0 -1
- package/dist/src/coin/hbar/index.js +0 -31
- package/dist/src/coin/hbar/keyPair.d.ts +0 -23
- package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
- package/dist/src/coin/hbar/keyPair.js +0 -70
- package/dist/src/coin/hbar/transaction.d.ts +0 -98
- package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
- package/dist/src/coin/hbar/transaction.js +0 -245
- package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -112
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/transactionBuilder.js +0 -264
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -37
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -77
- package/dist/src/coin/hbar/transferBuilder.d.ts +0 -44
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/transferBuilder.js +0 -130
- package/dist/src/coin/hbar/utils.d.ts +0 -139
- package/dist/src/coin/hbar/utils.d.ts.map +0 -1
- package/dist/src/coin/hbar/utils.js +0 -310
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -90
- package/dist/src/coin/near/constants.d.ts +0 -12
- package/dist/src/coin/near/constants.d.ts.map +0 -1
- package/dist/src/coin/near/constants.js +0 -15
- package/dist/src/coin/near/contractCallWrapper.d.ts +0 -33
- package/dist/src/coin/near/contractCallWrapper.d.ts.map +0 -1
- package/dist/src/coin/near/contractCallWrapper.js +0 -68
- package/dist/src/coin/near/errors.d.ts +0 -5
- package/dist/src/coin/near/errors.d.ts.map +0 -1
- package/dist/src/coin/near/errors.js +0 -12
- package/dist/src/coin/near/iface.d.ts +0 -40
- package/dist/src/coin/near/iface.d.ts.map +0 -1
- package/dist/src/coin/near/iface.js +0 -8
- package/dist/src/coin/near/index.d.ts +0 -11
- package/dist/src/coin/near/index.d.ts.map +0 -1
- package/dist/src/coin/near/index.js +0 -41
- package/dist/src/coin/near/keyPair.d.ts +0 -25
- package/dist/src/coin/near/keyPair.d.ts.map +0 -1
- package/dist/src/coin/near/keyPair.js +0 -73
- package/dist/src/coin/near/stakingActivateBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingActivateBuilder.js +0 -90
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.js +0 -89
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.js +0 -89
- package/dist/src/coin/near/transaction.d.ts +0 -90
- package/dist/src/coin/near/transaction.d.ts.map +0 -1
- package/dist/src/coin/near/transaction.js +0 -368
- package/dist/src/coin/near/transactionBuilder.d.ts +0 -89
- package/dist/src/coin/near/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/transactionBuilder.js +0 -216
- package/dist/src/coin/near/transactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/near/transactionBuilderFactory.js +0 -71
- package/dist/src/coin/near/transferBuilder.d.ts +0 -26
- package/dist/src/coin/near/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/transferBuilder.js +0 -72
- package/dist/src/coin/near/utils.d.ts +0 -42
- package/dist/src/coin/near/utils.d.ts.map +0 -1
- package/dist/src/coin/near/utils.js +0 -92
- package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -12
- package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/walletInitializationBuilder.js +0 -20
- package/dist/src/coin/rbtc/index.d.ts +0 -8
- package/dist/src/coin/rbtc/index.d.ts.map +0 -1
- package/dist/src/coin/rbtc/index.js +0 -35
- package/dist/src/coin/rbtc/resources.d.ts +0 -10
- package/dist/src/coin/rbtc/resources.d.ts.map +0 -1
- package/dist/src/coin/rbtc/resources.js +0 -25
- package/dist/src/coin/rbtc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/rbtc/transactionBuilder.js +0 -44
- package/dist/src/coin/rbtc/transferBuilder.d.ts +0 -19
- package/dist/src/coin/rbtc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/rbtc/transferBuilder.js +0 -27
- package/dist/src/coin/rbtc/utils.d.ts +0 -18
- package/dist/src/coin/rbtc/utils.d.ts.map +0 -1
- package/dist/src/coin/rbtc/utils.js +0 -42
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +0 -33
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +0 -93
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts +0 -14
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +0 -1
- package/dist/src/coin/sol/ataInitializationTransaction.js +0 -81
- package/dist/src/coin/sol/constants.d.ts +0 -58
- package/dist/src/coin/sol/constants.d.ts.map +0 -1
- package/dist/src/coin/sol/constants.js +0 -76
- package/dist/src/coin/sol/iface.d.ts +0 -99
- package/dist/src/coin/sol/iface.d.ts.map +0 -1
- package/dist/src/coin/sol/iface.js +0 -3
- package/dist/src/coin/sol/index.d.ts +0 -11
- package/dist/src/coin/sol/index.d.ts.map +0 -1
- package/dist/src/coin/sol/index.js +0 -41
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +0 -12
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/instructionParamsFactory.js +0 -260
- package/dist/src/coin/sol/keyPair.d.ts +0 -26
- package/dist/src/coin/sol/keyPair.d.ts.map +0 -1
- package/dist/src/coin/sol/keyPair.js +0 -63
- package/dist/src/coin/sol/solInstructionFactory.d.ts +0 -10
- package/dist/src/coin/sol/solInstructionFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/solInstructionFactory.js +0 -213
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts +0 -41
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingActivateBuilder.js +0 -94
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +0 -23
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.js +0 -62
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +0 -31
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.js +0 -78
- package/dist/src/coin/sol/tokenEncodeDecode.d.ts +0 -85
- package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +0 -1
- package/dist/src/coin/sol/tokenEncodeDecode.js +0 -133
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts +0 -27
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/tokenTransferBuilder.js +0 -73
- package/dist/src/coin/sol/transaction.d.ts +0 -61
- package/dist/src/coin/sol/transaction.d.ts.map +0 -1
- package/dist/src/coin/sol/transaction.js +0 -369
- package/dist/src/coin/sol/transactionBuilder.d.ts +0 -101
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/transactionBuilder.js +0 -261
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +0 -76
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +0 -136
- package/dist/src/coin/sol/transferBuilder.d.ts +0 -26
- package/dist/src/coin/sol/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/transferBuilder.js +0 -67
- package/dist/src/coin/sol/utils.d.ts +0 -146
- package/dist/src/coin/sol/utils.d.ts.map +0 -1
- package/dist/src/coin/sol/utils.js +0 -361
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +0 -26
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +0 -71
- package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
- package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
- package/dist/src/coin/stx/constants.d.ts +0 -8
- package/dist/src/coin/stx/constants.d.ts.map +0 -1
- package/dist/src/coin/stx/constants.js +0 -19
- package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
- package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/contractBuilder.js +0 -116
- package/dist/src/coin/stx/iface.d.ts +0 -48
- package/dist/src/coin/stx/iface.d.ts.map +0 -1
- package/dist/src/coin/stx/iface.js +0 -3
- package/dist/src/coin/stx/index.d.ts +0 -6
- package/dist/src/coin/stx/index.d.ts.map +0 -1
- package/dist/src/coin/stx/index.js +0 -32
- package/dist/src/coin/stx/keyPair.d.ts +0 -55
- package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/stx/keyPair.js +0 -140
- package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
- package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
- package/dist/src/coin/stx/transaction.d.ts +0 -49
- package/dist/src/coin/stx/transaction.d.ts.map +0 -1
- package/dist/src/coin/stx/transaction.js +0 -225
- package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilder.js +0 -263
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
- package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
- package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transferBuilder.js +0 -99
- package/dist/src/coin/stx/utils.d.ts +0 -207
- package/dist/src/coin/stx/utils.d.ts.map +0 -1
- package/dist/src/coin/stx/utils.js +0 -504
- package/dist/src/coin/trx/address.d.ts +0 -11
- package/dist/src/coin/trx/address.d.ts.map +0 -1
- package/dist/src/coin/trx/address.js +0 -13
- package/dist/src/coin/trx/contractCallBuilder.d.ts +0 -96
- package/dist/src/coin/trx/contractCallBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/contractCallBuilder.js +0 -281
- package/dist/src/coin/trx/enum.d.ts +0 -23
- package/dist/src/coin/trx/enum.d.ts.map +0 -1
- package/dist/src/coin/trx/enum.js +0 -28
- package/dist/src/coin/trx/iface.d.ts +0 -92
- package/dist/src/coin/trx/iface.d.ts.map +0 -1
- package/dist/src/coin/trx/iface.js +0 -3
- package/dist/src/coin/trx/index.d.ts +0 -10
- package/dist/src/coin/trx/index.d.ts.map +0 -1
- package/dist/src/coin/trx/index.js +0 -39
- package/dist/src/coin/trx/keyPair.d.ts +0 -44
- package/dist/src/coin/trx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/trx/keyPair.js +0 -121
- package/dist/src/coin/trx/transaction.d.ts +0 -74
- package/dist/src/coin/trx/transaction.d.ts.map +0 -1
- package/dist/src/coin/trx/transaction.js +0 -205
- package/dist/src/coin/trx/transactionBuilder.d.ts +0 -65
- package/dist/src/coin/trx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/transactionBuilder.js +0 -215
- package/dist/src/coin/trx/utils.d.ts +0 -127
- package/dist/src/coin/trx/utils.d.ts.map +0 -1
- package/dist/src/coin/trx/utils.js +0 -369
- package/dist/src/coin/trx/wrappedBuilder.d.ts +0 -52
- package/dist/src/coin/trx/wrappedBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/wrappedBuilder.js +0 -104
- package/dist/src/coin/xrp/index.d.ts +0 -5
- package/dist/src/coin/xrp/index.d.ts.map +0 -1
- package/dist/src/coin/xrp/index.js +0 -29
- package/dist/src/coin/xrp/keyPair.d.ts +0 -10
- package/dist/src/coin/xrp/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xrp/keyPair.js +0 -16
- package/dist/src/coin/xrp/transaction.d.ts +0 -10
- package/dist/src/coin/xrp/transaction.d.ts.map +0 -1
- package/dist/src/coin/xrp/transaction.js +0 -20
- package/dist/src/coin/xrp/transactionBuilder.d.ts +0 -27
- package/dist/src/coin/xrp/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/transactionBuilder.js +0 -46
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +0 -24
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.js +0 -38
- package/dist/src/coin/xrp/transferBuilder.d.ts +0 -14
- package/dist/src/coin/xrp/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/transferBuilder.js +0 -24
- package/dist/src/coin/xrp/utils.d.ts +0 -16
- package/dist/src/coin/xrp/utils.d.ts.map +0 -1
- package/dist/src/coin/xrp/utils.js +0 -32
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +0 -14
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.js +0 -24
- package/dist/src/coin/xtz/address.d.ts +0 -8
- package/dist/src/coin/xtz/address.d.ts.map +0 -1
- package/dist/src/coin/xtz/address.js +0 -10
- package/dist/src/coin/xtz/iface.d.ts +0 -81
- package/dist/src/coin/xtz/iface.d.ts.map +0 -1
- package/dist/src/coin/xtz/iface.js +0 -3
- package/dist/src/coin/xtz/index.d.ts +0 -8
- package/dist/src/coin/xtz/index.d.ts.map +0 -1
- package/dist/src/coin/xtz/index.js +0 -37
- package/dist/src/coin/xtz/keyPair.d.ts +0 -40
- package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xtz/keyPair.js +0 -136
- package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
- package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
- package/dist/src/coin/xtz/multisigUtils.js +0 -1180
- package/dist/src/coin/xtz/transaction.d.ts +0 -119
- package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
- package/dist/src/coin/xtz/transaction.js +0 -315
- package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transactionBuilder.js +0 -453
- package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
- package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transferBuilder.js +0 -64
- package/dist/src/coin/xtz/utils.d.ts +0 -265
- package/dist/src/coin/xtz/utils.d.ts.map +0 -1
- package/dist/src/coin/xtz/utils.js +0 -460
- package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
- package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
- package/dist/src/mpc/curves/baseCurve.js +0 -6
- package/dist/src/mpc/curves/ed25519.d.ts +0 -17
- package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
- package/dist/src/mpc/curves/ed25519.js +0 -48
- package/dist/src/mpc/curves/index.d.ts +0 -5
- package/dist/src/mpc/curves/index.d.ts.map +0 -1
- package/dist/src/mpc/curves/index.js +0 -6
- package/dist/src/mpc/curves/secp256k1.d.ts +0 -16
- package/dist/src/mpc/curves/secp256k1.d.ts.map +0 -1
- package/dist/src/mpc/curves/secp256k1.js +0 -66
- package/dist/src/mpc/hdTree.d.ts +0 -24
- package/dist/src/mpc/hdTree.d.ts.map +0 -1
- package/dist/src/mpc/hdTree.js +0 -94
- package/dist/src/mpc/shamir.d.ts +0 -26
- package/dist/src/mpc/shamir.d.ts.map +0 -1
- package/dist/src/mpc/shamir.js +0 -86
- package/dist/src/mpc/tss/eddsa/eddsa.d.ts +0 -29
- package/dist/src/mpc/tss/eddsa/eddsa.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/eddsa.js +0 -273
- package/dist/src/mpc/tss/eddsa/index.d.ts +0 -4
- package/dist/src/mpc/tss/eddsa/index.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/index.js +0 -30
- package/dist/src/mpc/tss/eddsa/types.d.ts +0 -70
- package/dist/src/mpc/tss/eddsa/types.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/types.js +0 -3
- package/dist/src/mpc/tss/index.d.ts +0 -5
- package/dist/src/mpc/tss/index.d.ts.map +0 -1
- package/dist/src/mpc/tss/index.js +0 -32
- package/dist/src/mpc/tss.d.ts +0 -98
- package/dist/src/mpc/tss.d.ts.map +0 -1
- package/dist/src/mpc/tss.js +0 -277
- package/dist/src/mpc/util.d.ts +0 -7
- package/dist/src/mpc/util.d.ts.map +0 -1
- package/dist/src/mpc/util.js +0 -38
- package/dist/src/utils/crypto.d.ts +0 -99
- package/dist/src/utils/crypto.d.ts.map +0 -1
- package/dist/src/utils/crypto.js +0 -260
- package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
- package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
- package/dist/src/utils/ed25519KeyDeriver.js +0 -92
- package/resources/hbar/protobuf/BasicTypes.proto +0 -424
- package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
- package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
- package/resources/hbar/protobuf/Duration.proto +0 -28
- package/resources/hbar/protobuf/Timestamp.proto +0 -34
- package/resources/hbar/protobuf/Transaction.proto +0 -35
- package/resources/hbar/protobuf/TransactionBody.proto +0 -24
- package/resources/hbar/protobuf/TransactionContents.proto +0 -33
- package/resources/hbar/protobuf/hedera.d.ts +0 -4612
- package/resources/hbar/protobuf/hedera.js +0 -12192
- package/resources/trx/protobuf/Contract.proto +0 -256
- package/resources/trx/protobuf/Discover.proto +0 -44
- package/resources/trx/protobuf/tron.d.ts +0 -11024
- package/resources/trx/protobuf/tron.js +0 -31510
- package/resources/trx/protobuf/tron.proto +0 -677
|
@@ -1,504 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.isSameBaseAddress = exports.getBaseAddress = exports.xpubToSTXPubkey = exports.getAddressVersion = exports.functionArgsToSendParams = exports.stringifyCv = exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.verifySignature = exports.signMessage = exports.getSTXAddressFromPubKeys = exports.unpadMemo = exports.isValidContractFunctionName = exports.isValidContractAddress = exports.isValidMemo = exports.isValidRawTransaction = exports.isValidPrivateKey = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = exports.isValidAmount = exports.getTxSenderAddress = exports.removeHexPrefix = exports.bufferToHexPrefixString = void 0;
|
|
26
|
-
const querystring = __importStar(require("querystring"));
|
|
27
|
-
const url = __importStar(require("url"));
|
|
28
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
29
|
-
const ethereumjs_utils_old_1 = require("ethereumjs-utils-old");
|
|
30
|
-
const transactions_1 = require("@stacks/transactions");
|
|
31
|
-
const elliptic_1 = require("elliptic");
|
|
32
|
-
const _ = __importStar(require("lodash"));
|
|
33
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
34
|
-
const _1 = require(".");
|
|
35
|
-
const constants_1 = require("./constants");
|
|
36
|
-
/**
|
|
37
|
-
* Encodes a buffer as a "0x" prefixed lower-case hex string.
|
|
38
|
-
*
|
|
39
|
-
* @param {Buffer} buff - a buffer with a hexadecimal string
|
|
40
|
-
* @returns {string} - the hexadecimal string prefixed with "0x"
|
|
41
|
-
*/
|
|
42
|
-
function bufferToHexPrefixString(buff) {
|
|
43
|
-
return ethereumjs_utils_old_1.bufferToHex(buff);
|
|
44
|
-
}
|
|
45
|
-
exports.bufferToHexPrefixString = bufferToHexPrefixString;
|
|
46
|
-
/**
|
|
47
|
-
* Remove the "0x" prefix from the given string, if present.
|
|
48
|
-
*
|
|
49
|
-
* @param {string} hex - a hexadecimal string
|
|
50
|
-
* @returns {string} - the hexadecimal string without a leading "0x"
|
|
51
|
-
*/
|
|
52
|
-
function removeHexPrefix(hex) {
|
|
53
|
-
return ethereumjs_utils_old_1.stripHexPrefix(hex);
|
|
54
|
-
}
|
|
55
|
-
exports.removeHexPrefix = removeHexPrefix;
|
|
56
|
-
/**
|
|
57
|
-
* Get stacks address from public key hash
|
|
58
|
-
*
|
|
59
|
-
* @param {Buffer} publicKeyHash - hash of public key
|
|
60
|
-
* @param {AddressHashMode} hashMode - hash mode
|
|
61
|
-
* @param {TransactionVersion} transactionVersion - tx version
|
|
62
|
-
* @returns {string} stacks address
|
|
63
|
-
*/
|
|
64
|
-
function getAddressFromPublicKeyHash(publicKeyHash, hashMode, transactionVersion) {
|
|
65
|
-
if (publicKeyHash.length !== 20) {
|
|
66
|
-
throw new Error('expected 20-byte pubkeyhash');
|
|
67
|
-
}
|
|
68
|
-
const addrVer = transactions_1.addressHashModeToVersion(hashMode, transactionVersion);
|
|
69
|
-
const addr = transactions_1.addressFromVersionHash(addrVer, publicKeyHash.toString('hex'));
|
|
70
|
-
const addrString = transactions_1.addressToString(addr);
|
|
71
|
-
return addrString;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @param tx
|
|
75
|
-
*/
|
|
76
|
-
function getTxSenderAddress(tx) {
|
|
77
|
-
if (tx.auth.spendingCondition !== null && tx.auth.spendingCondition !== undefined) {
|
|
78
|
-
const spendingCondition = tx.auth.spendingCondition;
|
|
79
|
-
const txSender = getAddressFromPublicKeyHash(Buffer.from(spendingCondition.signer, 'hex'), spendingCondition.hashMode, tx.version);
|
|
80
|
-
return txSender;
|
|
81
|
-
}
|
|
82
|
-
else
|
|
83
|
-
throw new Error('spendingCondition should not be null');
|
|
84
|
-
}
|
|
85
|
-
exports.getTxSenderAddress = getTxSenderAddress;
|
|
86
|
-
/**
|
|
87
|
-
* Returns whether or not the string is a valid amount number
|
|
88
|
-
*
|
|
89
|
-
* @param {string} amount - the string to validate
|
|
90
|
-
* @returns {boolean} - the validation result
|
|
91
|
-
*/
|
|
92
|
-
function isValidAmount(amount) {
|
|
93
|
-
const bigNumberAmount = new bignumber_js_1.default(amount);
|
|
94
|
-
return bigNumberAmount.isInteger() && bigNumberAmount.isGreaterThanOrEqualTo(0);
|
|
95
|
-
}
|
|
96
|
-
exports.isValidAmount = isValidAmount;
|
|
97
|
-
/**
|
|
98
|
-
* Returns whether or not the string is a valid protocol address
|
|
99
|
-
*
|
|
100
|
-
* @param {string} address - the address to be validated
|
|
101
|
-
* @returns {boolean} - the validation result
|
|
102
|
-
*/
|
|
103
|
-
function isValidAddress(address) {
|
|
104
|
-
return transactions_1.validateStacksAddress(address);
|
|
105
|
-
}
|
|
106
|
-
exports.isValidAddress = isValidAddress;
|
|
107
|
-
/**
|
|
108
|
-
* Returns whether or not the string is a valid protocol transaction id or not.
|
|
109
|
-
*
|
|
110
|
-
* A valid transaction id is a SHA-512/256 hash of a serialized transaction; see
|
|
111
|
-
* the txidFromData function in @stacks/transaction:
|
|
112
|
-
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/utils.ts#L97
|
|
113
|
-
*
|
|
114
|
-
* @param {string} txId - the transaction id to be validated
|
|
115
|
-
* @returns {boolean} - the validation result
|
|
116
|
-
*/
|
|
117
|
-
function isValidTransactionId(txId) {
|
|
118
|
-
if (txId.length !== 64 && txId.length !== 66)
|
|
119
|
-
return false;
|
|
120
|
-
const noPrefix = removeHexPrefix(txId);
|
|
121
|
-
if (noPrefix.length !== 64)
|
|
122
|
-
return false;
|
|
123
|
-
return allHexChars(noPrefix);
|
|
124
|
-
}
|
|
125
|
-
exports.isValidTransactionId = isValidTransactionId;
|
|
126
|
-
/**
|
|
127
|
-
* Returns whether or not the string is a valid protocol public key or
|
|
128
|
-
* extended public key.
|
|
129
|
-
*
|
|
130
|
-
* The key format is documented at
|
|
131
|
-
* https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-authorization
|
|
132
|
-
*
|
|
133
|
-
* @param {string} pub - the public key to be validated
|
|
134
|
-
* @returns {boolean} - the validation result
|
|
135
|
-
*/
|
|
136
|
-
function isValidPublicKey(pub) {
|
|
137
|
-
if (sdk_core_1.isValidXpub(pub))
|
|
138
|
-
return true;
|
|
139
|
-
if (pub.length !== 66 && pub.length !== 130)
|
|
140
|
-
return false;
|
|
141
|
-
const firstByte = pub.slice(0, 2);
|
|
142
|
-
// uncompressed public key
|
|
143
|
-
if (pub.length === 130 && firstByte !== '04')
|
|
144
|
-
return false;
|
|
145
|
-
// compressed public key
|
|
146
|
-
if (pub.length === 66 && firstByte !== '02' && firstByte !== '03')
|
|
147
|
-
return false;
|
|
148
|
-
if (!allHexChars(pub))
|
|
149
|
-
return false;
|
|
150
|
-
// validate the public key
|
|
151
|
-
const secp256k1 = new elliptic_1.ec('secp256k1');
|
|
152
|
-
try {
|
|
153
|
-
const keyPair = secp256k1.keyFromPublic(Buffer.from(pub, 'hex'));
|
|
154
|
-
const { result } = keyPair.validate();
|
|
155
|
-
return result;
|
|
156
|
-
}
|
|
157
|
-
catch (e) {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
exports.isValidPublicKey = isValidPublicKey;
|
|
162
|
-
/**
|
|
163
|
-
* Returns whether or not the string is a valid protocol private key, or extended
|
|
164
|
-
* private key.
|
|
165
|
-
*
|
|
166
|
-
* The protocol key format is described in the @stacks/transactions npm package, in the
|
|
167
|
-
* createStacksPrivateKey function:
|
|
168
|
-
* https://github.com/blockstack/stacks.js/blob/master/packages/transactions/src/keys.ts#L125
|
|
169
|
-
*
|
|
170
|
-
* @param {string} prv - the private key (or extended private key) to be validated
|
|
171
|
-
* @returns {boolean} - the validation result
|
|
172
|
-
*/
|
|
173
|
-
function isValidPrivateKey(prv) {
|
|
174
|
-
if (sdk_core_1.isValidXprv(prv))
|
|
175
|
-
return true;
|
|
176
|
-
if (prv.length !== 64 && prv.length !== 66)
|
|
177
|
-
return false;
|
|
178
|
-
if (prv.length === 66 && prv.slice(64) !== '01')
|
|
179
|
-
return false;
|
|
180
|
-
return allHexChars(prv);
|
|
181
|
-
}
|
|
182
|
-
exports.isValidPrivateKey = isValidPrivateKey;
|
|
183
|
-
/**
|
|
184
|
-
* Returns whether or not the string is a composed of hex chars only
|
|
185
|
-
*
|
|
186
|
-
* @param {string} maybe - the string to be validated
|
|
187
|
-
* @returns {boolean} - the validation result
|
|
188
|
-
*/
|
|
189
|
-
function allHexChars(maybe) {
|
|
190
|
-
return /^([0-9a-f])+$/i.test(maybe);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Checks if raw transaction can be deserialized
|
|
194
|
-
*
|
|
195
|
-
* @param {unknown} rawTransaction - transaction in raw hex format
|
|
196
|
-
* @returns {boolean} - the validation result
|
|
197
|
-
*/
|
|
198
|
-
function isValidRawTransaction(rawTransaction) {
|
|
199
|
-
try {
|
|
200
|
-
if (typeof rawTransaction === 'string') {
|
|
201
|
-
transactions_1.deserializeTransaction(transactions_1.BufferReader.fromBuffer(Buffer.from(removeHexPrefix(rawTransaction), 'hex')));
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
catch (e) {
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
return true;
|
|
211
|
-
}
|
|
212
|
-
exports.isValidRawTransaction = isValidRawTransaction;
|
|
213
|
-
/**
|
|
214
|
-
* Returns whether or not the memo string is valid
|
|
215
|
-
*
|
|
216
|
-
* @param {string} memo - the string to be validated
|
|
217
|
-
* @returns {boolean} - the validation result
|
|
218
|
-
*/
|
|
219
|
-
function isValidMemo(memo) {
|
|
220
|
-
try {
|
|
221
|
-
transactions_1.createMemoString(memo);
|
|
222
|
-
}
|
|
223
|
-
catch (e) {
|
|
224
|
-
return false;
|
|
225
|
-
}
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
exports.isValidMemo = isValidMemo;
|
|
229
|
-
/**
|
|
230
|
-
* Checks for valid contract address
|
|
231
|
-
*
|
|
232
|
-
* @param {string} addr - contract deployer address
|
|
233
|
-
* @param {BitgoStacksNetwork} network - network object
|
|
234
|
-
* @returns {boolean} - the validation result
|
|
235
|
-
*/
|
|
236
|
-
function isValidContractAddress(addr, network) {
|
|
237
|
-
return addr === network.stakingContractAddress || addr === network.sendmanymemoContractAddress;
|
|
238
|
-
}
|
|
239
|
-
exports.isValidContractAddress = isValidContractAddress;
|
|
240
|
-
/**
|
|
241
|
-
* Check if the name is one of valid contract names
|
|
242
|
-
*
|
|
243
|
-
* @param {string} name - function name
|
|
244
|
-
* @returns {boolean} - validation result
|
|
245
|
-
*/
|
|
246
|
-
function isValidContractFunctionName(name) {
|
|
247
|
-
return constants_1.VALID_CONTRACT_FUNCTION_NAMES.includes(name);
|
|
248
|
-
}
|
|
249
|
-
exports.isValidContractFunctionName = isValidContractFunctionName;
|
|
250
|
-
/**
|
|
251
|
-
* Unpads a memo string, so it removes nulls.
|
|
252
|
-
*
|
|
253
|
-
* Useful when memo is fill up the length. Result is becomes readable.
|
|
254
|
-
*
|
|
255
|
-
* @param {string} memo - the string to be validated
|
|
256
|
-
* @returns {boolean} - the validation result
|
|
257
|
-
*/
|
|
258
|
-
function unpadMemo(memo) {
|
|
259
|
-
const end = memo.indexOf('\u0000');
|
|
260
|
-
if (end < 0)
|
|
261
|
-
return memo;
|
|
262
|
-
return memo.slice(0, end);
|
|
263
|
-
}
|
|
264
|
-
exports.unpadMemo = unpadMemo;
|
|
265
|
-
/**
|
|
266
|
-
* Generate a multisig address from multiple STX public keys
|
|
267
|
-
*
|
|
268
|
-
* @param {string[]} pubKeys - list of public keys as strings
|
|
269
|
-
* @param {AddressVersion} addressVersion - MainnetMultiSig, TestnetMultiSig
|
|
270
|
-
* @param {AddressHashMode} addressHashMode - SerializeP2SH
|
|
271
|
-
* @param {number} [signaturesRequired] - number of signatures required, default value its 2
|
|
272
|
-
* @returns {address: string, hash160: string} - a multisig address
|
|
273
|
-
*/
|
|
274
|
-
function getSTXAddressFromPubKeys(pubKeys, addressVersion = transactions_1.AddressVersion.MainnetMultiSig, addressHashMode = transactions_1.AddressHashMode.SerializeP2SH, signaturesRequired = 2) {
|
|
275
|
-
if (pubKeys.length === 0) {
|
|
276
|
-
throw new Error('Invalid number of public keys');
|
|
277
|
-
}
|
|
278
|
-
if (!pubKeys.every(isValidPublicKey)) {
|
|
279
|
-
throw new Error('Invalid public keys');
|
|
280
|
-
}
|
|
281
|
-
if (signaturesRequired > pubKeys.length) {
|
|
282
|
-
throw new Error('Number of signatures required must be lower or equal to the number of Public Keys');
|
|
283
|
-
}
|
|
284
|
-
const stxPubKeys = pubKeys.map(transactions_1.createStacksPublicKey);
|
|
285
|
-
const address = transactions_1.addressFromPublicKeys(addressVersion, addressHashMode, signaturesRequired, stxPubKeys);
|
|
286
|
-
return { address: transactions_1.addressToString(address), hash160: address.hash160 };
|
|
287
|
-
}
|
|
288
|
-
exports.getSTXAddressFromPubKeys = getSTXAddressFromPubKeys;
|
|
289
|
-
/**
|
|
290
|
-
* signs a string message
|
|
291
|
-
*
|
|
292
|
-
* @param keyPair
|
|
293
|
-
* @param data - message to be signed
|
|
294
|
-
* @returns signed message string
|
|
295
|
-
*/
|
|
296
|
-
function signMessage(keyPair, data) {
|
|
297
|
-
const prv = keyPair.getKeys().prv;
|
|
298
|
-
if (prv) {
|
|
299
|
-
return transactions_1.signWithKey(transactions_1.createStacksPrivateKey(prv), data).data;
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
throw new sdk_core_1.SigningError('Missing private key');
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
exports.signMessage = signMessage;
|
|
306
|
-
/**
|
|
307
|
-
* Verifies a signed message
|
|
308
|
-
*
|
|
309
|
-
* The signature must be 130 bytes long -- see RECOVERABLE_ECDSA_SIG_LENGTH_BYTES
|
|
310
|
-
* in @stacks/transactions/src/constants.ts
|
|
311
|
-
*
|
|
312
|
-
* @param {string} message - message to verify the signature
|
|
313
|
-
* @param {string} signature - signature to verify
|
|
314
|
-
* @param {string} publicKey - public key as hex string used to verify the signature
|
|
315
|
-
* @returns {boolean} - verification result
|
|
316
|
-
*/
|
|
317
|
-
function verifySignature(message, signature, publicKey) {
|
|
318
|
-
if (!isValidPublicKey(publicKey))
|
|
319
|
-
return false;
|
|
320
|
-
if (signature.length !== 130)
|
|
321
|
-
return false;
|
|
322
|
-
if (!allHexChars(signature))
|
|
323
|
-
throw new sdk_core_1.UtilsError('Invalid signature input to verifySignature');
|
|
324
|
-
if (_.isEmpty(message))
|
|
325
|
-
throw new sdk_core_1.UtilsError('Cannot verify empty messages');
|
|
326
|
-
// provided publicKey can be compressed or uncompressed
|
|
327
|
-
const keyEncoding = publicKey.length === 66 ? transactions_1.PubKeyEncoding.Compressed : transactions_1.PubKeyEncoding.Uncompressed;
|
|
328
|
-
const messageSig = transactions_1.createMessageSignature(signature);
|
|
329
|
-
const foundKey = transactions_1.publicKeyFromSignature(message, messageSig, keyEncoding);
|
|
330
|
-
return foundKey === publicKey;
|
|
331
|
-
}
|
|
332
|
-
exports.verifySignature = verifySignature;
|
|
333
|
-
/**
|
|
334
|
-
* Process address into address and memo id
|
|
335
|
-
*
|
|
336
|
-
* @param {string} address the address to process
|
|
337
|
-
* @returns {Object} object containing address and memo id
|
|
338
|
-
*/
|
|
339
|
-
function getAddressDetails(address) {
|
|
340
|
-
const addressDetails = url.parse(address);
|
|
341
|
-
const queryDetails = addressDetails.query ? querystring.parse(addressDetails.query) : {};
|
|
342
|
-
const baseAddress = addressDetails.pathname;
|
|
343
|
-
if (!isValidAddress(baseAddress)) {
|
|
344
|
-
throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
|
|
345
|
-
}
|
|
346
|
-
// address doesn't have a memo id
|
|
347
|
-
if (baseAddress === address) {
|
|
348
|
-
return {
|
|
349
|
-
address: address,
|
|
350
|
-
memoId: undefined,
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
if (_.isUndefined(queryDetails.memoId)) {
|
|
354
|
-
// if there are more properties, the query details need to contain the memo id property
|
|
355
|
-
throw new sdk_core_1.UtilsError(`invalid address with memo id: ${address}`);
|
|
356
|
-
}
|
|
357
|
-
const memoId = queryDetails.memoId;
|
|
358
|
-
const intMemoId = parseInt(memoId, 10);
|
|
359
|
-
if (isNaN(intMemoId) || intMemoId < 0) {
|
|
360
|
-
throw new Error(`invalid memo id: ${memoId}`);
|
|
361
|
-
}
|
|
362
|
-
return {
|
|
363
|
-
address: baseAddress,
|
|
364
|
-
memoId,
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
exports.getAddressDetails = getAddressDetails;
|
|
368
|
-
/**
|
|
369
|
-
* Validate and return address with appended memo id
|
|
370
|
-
*
|
|
371
|
-
* @param {AddressDetails} addressDetails
|
|
372
|
-
* @returns {string} address with memo id
|
|
373
|
-
*/
|
|
374
|
-
function normalizeAddress({ address, memoId }) {
|
|
375
|
-
if (!isValidAddress(address)) {
|
|
376
|
-
throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
|
|
377
|
-
}
|
|
378
|
-
if (!_.isUndefined(memoId)) {
|
|
379
|
-
const intMemoId = parseInt(memoId, 10);
|
|
380
|
-
if (isNaN(intMemoId) || intMemoId < 0) {
|
|
381
|
-
throw new Error(`invalid memo id: ${memoId}`);
|
|
382
|
-
}
|
|
383
|
-
return `${address}?memoId=${memoId}`;
|
|
384
|
-
}
|
|
385
|
-
return address;
|
|
386
|
-
}
|
|
387
|
-
exports.normalizeAddress = normalizeAddress;
|
|
388
|
-
/**
|
|
389
|
-
* Return boolean indicating whether input is a valid address with memo id
|
|
390
|
-
*
|
|
391
|
-
* @param {string} address address in the form <address>?memoId=<memoId>
|
|
392
|
-
* @returns {boolean} true is input is a valid address
|
|
393
|
-
*/
|
|
394
|
-
function isValidAddressWithPaymentId(address) {
|
|
395
|
-
try {
|
|
396
|
-
const addressDetails = getAddressDetails(address);
|
|
397
|
-
return address === normalizeAddress(addressDetails);
|
|
398
|
-
}
|
|
399
|
-
catch (e) {
|
|
400
|
-
return false;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
|
|
404
|
-
/**
|
|
405
|
-
* Return string representation of clarity value input
|
|
406
|
-
*
|
|
407
|
-
* @param {ClarityValue} cv clarity value function argument
|
|
408
|
-
* @returns {String} stringified clarity value
|
|
409
|
-
*/
|
|
410
|
-
function stringifyCv(cv) {
|
|
411
|
-
switch (cv.type) {
|
|
412
|
-
case transactions_1.ClarityType.Int:
|
|
413
|
-
case transactions_1.ClarityType.UInt:
|
|
414
|
-
return { type: cv.type, value: cv.value.toString() };
|
|
415
|
-
case transactions_1.ClarityType.OptionalSome:
|
|
416
|
-
return { type: cv.type, value: stringifyCv(cv.value) };
|
|
417
|
-
case transactions_1.ClarityType.Tuple:
|
|
418
|
-
return {
|
|
419
|
-
type: cv.type,
|
|
420
|
-
data: _.mapValues(cv.data, (value) => stringifyCv(value)),
|
|
421
|
-
};
|
|
422
|
-
case transactions_1.ClarityType.List:
|
|
423
|
-
return {
|
|
424
|
-
type: cv.type,
|
|
425
|
-
list: cv.list.map(stringifyCv),
|
|
426
|
-
};
|
|
427
|
-
default:
|
|
428
|
-
return cv;
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
exports.stringifyCv = stringifyCv;
|
|
432
|
-
/**
|
|
433
|
-
* Parse functionArgs into send params for send-many-memo contract calls
|
|
434
|
-
*
|
|
435
|
-
* @param {ClarityValue[]} args functionArgs from a contract call payload
|
|
436
|
-
* @returns {SendParams[]} An array of sendParams
|
|
437
|
-
*/
|
|
438
|
-
function functionArgsToSendParams(args) {
|
|
439
|
-
if (args.length !== 1 || args[0].type !== transactions_1.ClarityType.List) {
|
|
440
|
-
throw new sdk_core_1.InvalidTransactionError("function args don't match send-many-memo type declaration");
|
|
441
|
-
}
|
|
442
|
-
return args[0].list.map((tuple) => {
|
|
443
|
-
var _a, _b, _c;
|
|
444
|
-
if (tuple.type !== transactions_1.ClarityType.Tuple ||
|
|
445
|
-
((_a = tuple.data.to) === null || _a === void 0 ? void 0 : _a.type) !== transactions_1.ClarityType.PrincipalStandard ||
|
|
446
|
-
((_b = tuple.data.ustx) === null || _b === void 0 ? void 0 : _b.type) !== transactions_1.ClarityType.UInt ||
|
|
447
|
-
((_c = tuple.data.memo) === null || _c === void 0 ? void 0 : _c.type) !== transactions_1.ClarityType.Buffer) {
|
|
448
|
-
throw new sdk_core_1.InvalidTransactionError("function args don't match send-many-memo type declaration");
|
|
449
|
-
}
|
|
450
|
-
return {
|
|
451
|
-
address: transactions_1.cvToString(tuple.data.to),
|
|
452
|
-
amount: transactions_1.cvToValue(tuple.data.ustx, true),
|
|
453
|
-
memo: tuple.data.memo.buffer.toString('ascii'),
|
|
454
|
-
};
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
exports.functionArgsToSendParams = functionArgsToSendParams;
|
|
458
|
-
/**
|
|
459
|
-
* Gets the version of an address
|
|
460
|
-
*
|
|
461
|
-
* @param {String} address the address with or without the memoId
|
|
462
|
-
* @returns {AddressVersion} A number that represent the Address Version
|
|
463
|
-
*/
|
|
464
|
-
function getAddressVersion(address) {
|
|
465
|
-
const baseAddress = getAddressDetails(address).address;
|
|
466
|
-
return transactions_1.createAddress(baseAddress).version;
|
|
467
|
-
}
|
|
468
|
-
exports.getAddressVersion = getAddressVersion;
|
|
469
|
-
/**
|
|
470
|
-
* Returns a STX pub key from an xpub
|
|
471
|
-
*
|
|
472
|
-
* @param {String} xpub an xpub
|
|
473
|
-
* @returns {String} a compressed STX pub key
|
|
474
|
-
*/
|
|
475
|
-
function xpubToSTXPubkey(xpub, compressed = true) {
|
|
476
|
-
return new _1.KeyPair({ pub: xpub }).getKeys(compressed).pub;
|
|
477
|
-
}
|
|
478
|
-
exports.xpubToSTXPubkey = xpubToSTXPubkey;
|
|
479
|
-
/**
|
|
480
|
-
* Returns the base address portion of an address
|
|
481
|
-
*
|
|
482
|
-
* @param {String} address - an address
|
|
483
|
-
* @returns {String} - the base address
|
|
484
|
-
*/
|
|
485
|
-
function getBaseAddress(address) {
|
|
486
|
-
const addressDetails = getAddressDetails(address);
|
|
487
|
-
return addressDetails.address;
|
|
488
|
-
}
|
|
489
|
-
exports.getBaseAddress = getBaseAddress;
|
|
490
|
-
/**
|
|
491
|
-
* Compares an address to the base address to check if matchs.
|
|
492
|
-
*
|
|
493
|
-
* @param {String} address - an address
|
|
494
|
-
* @param {String} baseAddress - a base address
|
|
495
|
-
* @returns {boolean}
|
|
496
|
-
*/
|
|
497
|
-
function isSameBaseAddress(address, baseAddress) {
|
|
498
|
-
if (!isValidAddressWithPaymentId(address)) {
|
|
499
|
-
throw new sdk_core_1.UtilsError(`invalid address: ${address}`);
|
|
500
|
-
}
|
|
501
|
-
return getBaseAddress(address) === getBaseAddress(baseAddress);
|
|
502
|
-
}
|
|
503
|
-
exports.isSameBaseAddress = isSameBaseAddress;
|
|
504
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zdHgvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUEyQztBQUMzQyx5Q0FBMkI7QUFDM0IsZ0VBQXFDO0FBQ3JDLCtEQUFtRTtBQUNuRSx1REF3QjhCO0FBQzlCLHVDQUE4QjtBQUM5QiwwQ0FBNEI7QUFDNUIsOENBQThHO0FBRTlHLHdCQUE0QjtBQUU1QiwyQ0FBNEQ7QUFFNUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFZO0lBQ2xELE9BQU8sa0NBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsMERBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8scUNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRkQsMENBRUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUywyQkFBMkIsQ0FDbEMsYUFBcUIsRUFDckIsUUFBeUIsRUFDekIsa0JBQXNDO0lBRXRDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBRUQsTUFBTSxPQUFPLEdBQUcsdUNBQXdCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDdkUsTUFBTSxJQUFJLEdBQUcscUNBQXNCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBRyw4QkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEVBQXFCO0lBQ3RE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O0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBWSxFQUFFLFVBQVUsR0FBRyxJQUFJO0lBQzdELE9BQU8sSUFBSSxVQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVELENBQUM7QUFGRCwwQ0FFQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDNUMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDO0FBQ2hDLENBQUM7QUFIRCx3Q0FHQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxXQUFtQjtJQUNwRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekMsTUFBTSxJQUFJLHFCQUFVLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUxELDhDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuaW1wb3J0ICogYXMgdXJsIGZyb20gJ3VybCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBidWZmZXJUb0hleCwgc3RyaXBIZXhQcmVmaXggfSBmcm9tICdldGhlcmV1bWpzLXV0aWxzLW9sZCc7XG5pbXBvcnQge1xuICBhZGRyZXNzRnJvbVB1YmxpY0tleXMsXG4gIGFkZHJlc3NGcm9tVmVyc2lvbkhhc2gsXG4gIEFkZHJlc3NIYXNoTW9kZSxcbiAgYWRkcmVzc0hhc2hNb2RlVG9WZXJzaW9uLFxuICBhZGRyZXNzVG9TdHJpbmcsXG4gIEFkZHJlc3NWZXJzaW9uLFxuICBCdWZmZXJSZWFkZXIsXG4gIENsYXJpdHlUeXBlLFxuICBDbGFyaXR5VmFsdWUsXG4gIGNyZWF0ZUFkZHJlc3MsXG4gIGNyZWF0ZU1lbW9TdHJpbmcsXG4gIGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUsXG4gIGNyZWF0ZVN0YWNrc1ByaXZhdGVLZXksXG4gIGNyZWF0ZVN0YWNrc1B1YmxpY0tleSxcbiAgY3ZUb1N0cmluZyxcbiAgY3ZUb1ZhbHVlLFxuICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLFxuICBQdWJLZXlFbmNvZGluZyxcbiAgcHVibGljS2V5RnJvbVNpZ25hdHVyZSxcbiAgc2lnbldpdGhLZXksXG4gIFN0YWNrc1RyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblZlcnNpb24sXG4gIHZhbGlkYXRlU3RhY2tzQWRkcmVzcyxcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgZWMgfSBmcm9tICdlbGxpcHRpYyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgaXNWYWxpZFhwcnYsIGlzVmFsaWRYcHViLCBTaWduaW5nRXJyb3IsIFV0aWxzRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWRkcmVzc0RldGFpbHMsIFNlbmRQYXJhbXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcbmltcG9ydCB7IFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVkFMSURfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogRW5jb2RlcyBhIGJ1ZmZlciBhcyBhIFwiMHhcIiBwcmVmaXhlZCBsb3dlci1jYXNlIGhleCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmYgLSBhIGJ1ZmZlciB3aXRoIGEgaGV4YWRlY2ltYWwgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcHJlZml4ZWQgd2l0aCBcIjB4XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclRvSGV4UHJlZml4U3RyaW5nKGJ1ZmY6IEJ1ZmZlcik6IHN0cmluZyB7XG4gIHJldHVybiBidWZmZXJUb0hleChidWZmKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIFwiMHhcIiBwcmVmaXggZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLCBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoZXggLSBhIGhleGFkZWNpbWFsIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nIHdpdGhvdXQgYSBsZWFkaW5nIFwiMHhcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSGV4UHJlZml4KGhleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cmlwSGV4UHJlZml4KGhleCk7XG59XG5cbi8qKlxuICogR2V0IHN0YWNrcyBhZGRyZXNzIGZyb20gcHVibGljIGtleSBoYXNoXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IHB1YmxpY0tleUhhc2ggLSBoYXNoIG9mIHB1YmxpYyBrZXlcbiAqIEBwYXJhbSB7QWRkcmVzc0hhc2hNb2RlfSBoYXNoTW9kZSAtIGhhc2ggbW9kZVxuICogQHBhcmFtIHtUcmFuc2FjdGlvblZlcnNpb259IHRyYW5zYWN0aW9uVmVyc2lvbiAtIHR4IHZlcnNpb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9IHN0YWNrcyBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGdldEFkZHJlc3NGcm9tUHVibGljS2V5SGFzaChcbiAgcHVibGljS2V5SGFzaDogQnVmZmVyLFxuICBoYXNoTW9kZTogQWRkcmVzc0hhc2hNb2RlLFxuICB0cmFuc2FjdGlvblZlcnNpb246IFRyYW5zYWN0aW9uVmVyc2lvbixcbik6IHN0cmluZyB7XG4gIGlmIChwdWJsaWNLZXlIYXNoLmxlbmd0aCAhPT0gMjApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIDIwLWJ5dGUgcHVia2V5aGFzaCcpO1xuICB9XG5cbiAgY29uc3QgYWRkclZlciA9IGFkZHJlc3NIYXNoTW9kZVRvVmVyc2lvbihoYXNoTW9kZSwgdHJhbnNhY3Rpb25WZXJzaW9uKTtcbiAgY29uc3QgYWRkciA9IGFkZHJlc3NGcm9tVmVyc2lvbkhhc2goYWRkclZlciwgcHVibGljS2V5SGFzaC50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBhZGRyU3RyaW5nID0gYWRkcmVzc1RvU3RyaW5nKGFkZHIpO1xuICByZXR1cm4gYWRkclN0cmluZztcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR4U2VuZGVyQWRkcmVzcyh0eDogU3RhY2tzVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICBpZiAodHguYXV0aC5zcGVuZGluZ0NvbmRpdGlvbiAhPT0gbnVsbCAmJiB0eC5hdXRoLnNwZW5kaW5nQ29uZGl0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBzcGVuZGluZ0NvbmRpdGlvbiA9IHR4LmF1dGguc3BlbmRpbmdDb25kaXRpb247XG4gICAgY29uc3QgdHhTZW5kZXIgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleUhhc2goXG4gICAgICBCdWZmZXIuZnJvbShzcGVuZGluZ0NvbmRpdGlvbi5zaWduZXIsICdoZXgnKSxcbiAgICAgIHNwZW5kaW5nQ29uZGl0aW9uLmhhc2hNb2RlIGFzIG51bWJlcixcbiAgICAgIHR4LnZlcnNpb24sXG4gICAgKTtcbiAgICByZXR1cm4gdHhTZW5kZXI7XG4gIH0gZWxzZSB0aHJvdyBuZXcgRXJyb3IoJ3NwZW5kaW5nQ29uZGl0aW9uIHNob3VsZCBub3QgYmUgbnVsbCcpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGFtb3VudCBudW1iZXJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gdGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQW1vdW50KGFtb3VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgcmV0dXJuIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJiBiaWdOdW1iZXJBbW91bnQuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygwKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBwcm90b2NvbCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSB0aGUgYWRkcmVzcyB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWxpZGF0ZVN0YWNrc0FkZHJlc3MoYWRkcmVzcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgdHJhbnNhY3Rpb24gaWQgb3Igbm90LlxuICpcbiAqIEEgdmFsaWQgdHJhbnNhY3Rpb24gaWQgaXMgYSBTSEEtNTEyLzI1NiBoYXNoIG9mIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvbjsgc2VlXG4gKiB0aGUgdHhpZEZyb21EYXRhIGZ1bmN0aW9uIGluIEBzdGFja3MvdHJhbnNhY3Rpb246XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmxvY2tzdGFjay9zdGFja3MuanMvYmxvYi9tYXN0ZXIvcGFja2FnZXMvdHJhbnNhY3Rpb25zL3NyYy91dGlscy50cyNMOTdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHhJZCAtIHRoZSB0cmFuc2FjdGlvbiBpZCB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh0eElkLmxlbmd0aCAhPT0gNjQgJiYgdHhJZC5sZW5ndGggIT09IDY2KSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IG5vUHJlZml4ID0gcmVtb3ZlSGV4UHJlZml4KHR4SWQpO1xuICBpZiAobm9QcmVmaXgubGVuZ3RoICE9PSA2NCkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBhbGxIZXhDaGFycyhub1ByZWZpeCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgcHJvdG9jb2wgcHVibGljIGtleSBvclxuICogZXh0ZW5kZWQgcHVibGljIGtleS5cbiAqXG4gKiBUaGUga2V5IGZvcm1hdCBpcyBkb2N1bWVudGVkIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3RhY2tzZ292L3NpcHMvYmxvYi9tYWluL3NpcHMvc2lwLTAwNS9zaXAtMDA1LWJsb2Nrcy1hbmQtdHJhbnNhY3Rpb25zLm1kI3RyYW5zYWN0aW9uLWF1dGhvcml6YXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHViIC0gdGhlICBwdWJsaWMga2V5IHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHVibGljS2V5KHB1Yjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpc1ZhbGlkWHB1YihwdWIpKSByZXR1cm4gdHJ1ZTtcblxuICBpZiAocHViLmxlbmd0aCAhPT0gNjYgJiYgcHViLmxlbmd0aCAhPT0gMTMwKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgZmlyc3RCeXRlID0gcHViLnNsaWNlKDAsIDIpO1xuXG4gIC8vIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gIGlmIChwdWIubGVuZ3RoID09PSAxMzAgJiYgZmlyc3RCeXRlICE9PSAnMDQnKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gIGlmIChwdWIubGVuZ3RoID09PSA2NiAmJiBmaXJzdEJ5dGUgIT09ICcwMicgJiYgZmlyc3RCeXRlICE9PSAnMDMnKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFhbGxIZXhDaGFycyhwdWIpKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gdmFsaWRhdGUgdGhlIHB1YmxpYyBrZXlcbiAgY29uc3Qgc2VjcDI1NmsxID0gbmV3IGVjKCdzZWNwMjU2azEnKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBrZXlQYWlyID0gc2VjcDI1NmsxLmtleUZyb21QdWJsaWMoQnVmZmVyLmZyb20ocHViLCAnaGV4JykpO1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBrZXlQYWlyLnZhbGlkYXRlKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIHByb3RvY29sIHByaXZhdGUga2V5LCBvciBleHRlbmRlZFxuICogcHJpdmF0ZSBrZXkuXG4gKlxuICogVGhlIHByb3RvY29sIGtleSBmb3JtYXQgaXMgZGVzY3JpYmVkIGluIHRoZSBAc3RhY2tzL3RyYW5zYWN0aW9ucyBucG0gcGFja2FnZSwgaW4gdGhlXG4gKiBjcmVhdGVTdGFja3NQcml2YXRlS2V5IGZ1bmN0aW9uOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2Jsb2Nrc3RhY2svc3RhY2tzLmpzL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3RyYW5zYWN0aW9ucy9zcmMva2V5cy50cyNMMTI1XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBydiAtIHRoZSBwcml2YXRlIGtleSAob3IgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkpIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShwcnY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoaXNWYWxpZFhwcnYocHJ2KSkgcmV0dXJuIHRydWU7XG5cbiAgaWYgKHBydi5sZW5ndGggIT09IDY0ICYmIHBydi5sZW5ndGggIT09IDY2KSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHBydi5sZW5ndGggPT09IDY2ICYmIHBydi5zbGljZSg2NCkgIT09ICcwMScpIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gYWxsSGV4Q2hhcnMocHJ2KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSBjb21wb3NlZCBvZiBoZXggY2hhcnMgb25seVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSAtIHRoZSAgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmZ1bmN0aW9uIGFsbEhleENoYXJzKG1heWJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eKFswLTlhLWZdKSskL2kudGVzdChtYXliZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHJhdyB0cmFuc2FjdGlvbiBjYW4gYmUgZGVzZXJpYWxpemVkXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSByYXdUcmFuc2FjdGlvbiAtIHRyYW5zYWN0aW9uIGluIHJhdyBoZXggZm9ybWF0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogdW5rbm93bik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGlmICh0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKEJ1ZmZlclJlYWRlci5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHJlbW92ZUhleFByZWZpeChyYXdUcmFuc2FjdGlvbiksICdoZXgnKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgbWVtbyBzdHJpbmcgaXMgdmFsaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtbyAtIHRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZW1vKG1lbW86IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNyZWF0ZU1lbW9TdHJpbmcobWVtbyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIHZhbGlkIGNvbnRyYWN0IGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkciAtIGNvbnRyYWN0IGRlcGxveWVyIGFkZHJlc3NcbiAqIEBwYXJhbSB7Qml0Z29TdGFja3NOZXR3b3JrfSBuZXR3b3JrIC0gbmV0d29yayBvYmplY3RcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZENvbnRyYWN0QWRkcmVzcyhhZGRyOiBzdHJpbmcsIG5ldHdvcms6IEJpdGdvU3RhY2tzTmV0d29yayk6IGJvb2xlYW4ge1xuICByZXR1cm4gYWRkciA9PT0gbmV0d29yay5zdGFraW5nQ29udHJhY3RBZGRyZXNzIHx8IGFkZHIgPT09IG5ldHdvcmsuc2VuZG1hbnltZW1vQ29udHJhY3RBZGRyZXNzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBuYW1lIGlzIG9uZSBvZiB2YWxpZCBjb250cmFjdCBuYW1lc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gZnVuY3Rpb24gbmFtZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRDb250cmFjdEZ1bmN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIFZBTElEX0NPTlRSQUNUX0ZVTkNUSU9OX05BTUVTLmluY2x1ZGVzKG5hbWUpO1xufVxuXG4vKipcbiAqIFVucGFkcyBhIG1lbW8gc3RyaW5nLCBzbyBpdCByZW1vdmVzIG51bGxzLlxuICpcbiAqIFVzZWZ1bCB3aGVuIG1lbW8gaXMgZmlsbCB1cCB0aGUgbGVuZ3RoLiBSZXN1bHQgaXMgYmVjb21lcyByZWFkYWJsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVtbyAtIHRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVucGFkTWVtbyhtZW1vOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBlbmQgPSBtZW1vLmluZGV4T2YoJ1xcdTAwMDAnKTtcbiAgaWYgKGVuZCA8IDApIHJldHVybiBtZW1vO1xuICByZXR1cm4gbWVtby5zbGljZSgwLCBlbmQpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgbXVsdGlzaWcgYWRkcmVzcyBmcm9tIG11bHRpcGxlIFNUWCBwdWJsaWMga2V5c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHB1YktleXMgLSBsaXN0IG9mIHB1YmxpYyBrZXlzIGFzIHN0cmluZ3NcbiAqIEBwYXJhbSB7QWRkcmVzc1ZlcnNpb259IGFkZHJlc3NWZXJzaW9uIC0gTWFpbm5ldE11bHRpU2lnLCBUZXN0bmV0TXVsdGlTaWdcbiAqIEBwYXJhbSB7QWRkcmVzc0hhc2hNb2RlfSBhZGRyZXNzSGFzaE1vZGUgLSBTZXJpYWxpemVQMlNIXG4gKiBAcGFyYW0ge251bWJlcn0gW3NpZ25hdHVyZXNSZXF1aXJlZF0gLSBudW1iZXIgb2Ygc2lnbmF0dXJlcyByZXF1aXJlZCwgZGVmYXVsdCB2YWx1ZSBpdHMgMlxuICogQHJldHVybnMge2FkZHJlc3M6IHN0cmluZywgaGFzaDE2MDogc3RyaW5nfSAtIGEgbXVsdGlzaWcgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U1RYQWRkcmVzc0Zyb21QdWJLZXlzKFxuICBwdWJLZXlzOiBzdHJpbmdbXSxcbiAgYWRkcmVzc1ZlcnNpb246IEFkZHJlc3NWZXJzaW9uID0gQWRkcmVzc1ZlcnNpb24uTWFpbm5ldE11bHRpU2lnLFxuICBhZGRyZXNzSGFzaE1vZGU6IEFkZHJlc3NIYXNoTW9kZSA9IEFkZHJlc3NIYXNoTW9kZS5TZXJpYWxpemVQMlNILFxuICBzaWduYXR1cmVzUmVxdWlyZWQgPSAyLFxuKTogeyBhZGRyZXNzOiBzdHJpbmc7IGhhc2gxNjA6IHN0cmluZyB9IHtcbiAgaWYgKHB1YktleXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG51bWJlciBvZiBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmICghcHViS2V5cy5ldmVyeShpc1ZhbGlkUHVibGljS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwdWJsaWMga2V5cycpO1xuICB9XG4gIGlmIChzaWduYXR1cmVzUmVxdWlyZWQgPiBwdWJLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTnVtYmVyIG9mIHNpZ25hdHVyZXMgcmVxdWlyZWQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIFB1YmxpYyBLZXlzJyk7XG4gIH1cblxuICBjb25zdCBzdHhQdWJLZXlzID0gcHViS2V5cy5tYXAoY3JlYXRlU3RhY2tzUHVibGljS2V5KTtcbiAgY29uc3QgYWRkcmVzcyA9IGFkZHJlc3NGcm9tUHVibGljS2V5cyhhZGRyZXNzVmVyc2lvbiwgYWRkcmVzc0hhc2hNb2RlLCBzaWduYXR1cmVzUmVxdWlyZWQsIHN0eFB1YktleXMpO1xuXG4gIHJldHVybiB7IGFkZHJlc3M6IGFkZHJlc3NUb1N0cmluZyhhZGRyZXNzKSwgaGFzaDE2MDogYWRkcmVzcy5oYXNoMTYwIH07XG59XG5cbi8qKlxuICogc2lnbnMgYSBzdHJpbmcgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBrZXlQYWlyXG4gKiBAcGFyYW0gZGF0YSAgLSBtZXNzYWdlIHRvIGJlIHNpZ25lZFxuICogQHJldHVybnMgc2lnbmVkIG1lc3NhZ2Ugc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduTWVzc2FnZShrZXlQYWlyOiBLZXlQYWlyLCBkYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwcnYgPSBrZXlQYWlyLmdldEtleXMoKS5wcnY7XG4gIGlmIChwcnYpIHtcbiAgICByZXR1cm4gc2lnbldpdGhLZXkoY3JlYXRlU3RhY2tzUHJpdmF0ZUtleShwcnYpLCBkYXRhKS5kYXRhO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWVzIGEgc2lnbmVkIG1lc3NhZ2VcbiAqXG4gKiBUaGUgc2lnbmF0dXJlIG11c3QgYmUgMTMwIGJ5dGVzIGxvbmcgLS0gc2VlIFJFQ09WRVJBQkxFX0VDRFNBX1NJR19MRU5HVEhfQllURVNcbiAqIGluIEBzdGFja3MvdHJhbnNhY3Rpb25zL3NyYy9jb25zdGFudHMudHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIG1lc3NhZ2UgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgLSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gKiBAcGFyYW0ge3N0cmluZ30gcHVibGljS2V5IC0gcHVibGljIGtleSBhcyBoZXggc3RyaW5nIHVzZWQgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHZlcmlmaWNhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRQdWJsaWNLZXkocHVibGljS2V5KSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoc2lnbmF0dXJlLmxlbmd0aCAhPT0gMTMwKSByZXR1cm4gZmFsc2U7XG4gIGlmICghYWxsSGV4Q2hhcnMoc2lnbmF0dXJlKSkgdGhyb3cgbmV3IFV0aWxzRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlIGlucHV0IHRvIHZlcmlmeVNpZ25hdHVyZScpO1xuICBpZiAoXy5pc0VtcHR5KG1lc3NhZ2UpKSB0aHJvdyBuZXcgVXRpbHNFcnJvcignQ2Fubm90IHZlcmlmeSBlbXB0eSBtZXNzYWdlcycpO1xuXG4gIC8vIHByb3ZpZGVkIHB1YmxpY0tleSBjYW4gYmUgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWRcbiAgY29uc3Qga2V5RW5jb2RpbmcgPSBwdWJsaWNLZXkubGVuZ3RoID09PSA2NiA/IFB1YktleUVuY29kaW5nLkNvbXByZXNzZWQgOiBQdWJLZXlFbmNvZGluZy5VbmNvbXByZXNzZWQ7XG5cbiAgY29uc3QgbWVzc2FnZVNpZyA9IGNyZWF0ZU1lc3NhZ2VTaWduYXR1cmUoc2lnbmF0dXJlKTtcblxuICBjb25zdCBmb3VuZEtleSA9IHB1YmxpY0tleUZyb21TaWduYXR1cmUobWVzc2FnZSwgbWVzc2FnZVNpZywga2V5RW5jb2RpbmcpO1xuXG4gIHJldHVybiBmb3VuZEtleSA9PT0gcHVibGljS2V5O1xufVxuXG4vKipcbiAqIFByb2Nlc3MgYWRkcmVzcyBpbnRvIGFkZHJlc3MgYW5kIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB0byBwcm9jZXNzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBvYmplY3QgY29udGFpbmluZyBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzRGV0YWlscyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gdXJsLnBhcnNlKGFkZHJlc3MpO1xuICBjb25zdCBxdWVyeURldGFpbHMgPSBhZGRyZXNzRGV0YWlscy5xdWVyeSA/IHF1ZXJ5c3RyaW5nLnBhcnNlKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHt9O1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IDxzdHJpbmc+YWRkcmVzc0RldGFpbHMucGF0aG5hbWU7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIC8vIGFkZHJlc3MgZG9lc24ndCBoYXZlIGEgbWVtbyBpZFxuICBpZiAoYmFzZUFkZHJlc3MgPT09IGFkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBpZiAoXy5pc1VuZGVmaW5lZChxdWVyeURldGFpbHMubWVtb0lkKSkge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBtb3JlIHByb3BlcnRpZXMsIHRoZSBxdWVyeSBkZXRhaWxzIG5lZWQgdG8gY29udGFpbiB0aGUgbWVtbyBpZCBwcm9wZXJ0eVxuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3Mgd2l0aCBtZW1vIGlkOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gPHN0cmluZz5xdWVyeURldGFpbHMubWVtb0lkO1xuICBjb25zdCBpbnRNZW1vSWQgPSBwYXJzZUludChtZW1vSWQsIDEwKTtcbiAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBtZW1vIGlkOiAke21lbW9JZH1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlsc1xuICogQHJldHVybnMge3N0cmluZ30gYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzLCBtZW1vSWQgfTogQWRkcmVzc0RldGFpbHMpOiBzdHJpbmcge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIGlmICghXy5pc1VuZGVmaW5lZChtZW1vSWQpKSB7XG4gICAgY29uc3QgaW50TWVtb0lkID0gcGFyc2VJbnQobWVtb0lkLCAxMCk7XG4gICAgaWYgKGlzTmFOKGludE1lbW9JZCkgfHwgaW50TWVtb0lkIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG1lbW8gaWQ6ICR7bWVtb0lkfWApO1xuICAgIH1cbiAgICByZXR1cm4gYCR7YWRkcmVzc30/bWVtb0lkPSR7bWVtb0lkfWA7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbi8qKlxuICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzcyB3aXRoIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBhZGRyZXNzIGluIHRoZSBmb3JtIDxhZGRyZXNzPj9tZW1vSWQ9PG1lbW9JZD5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlzIGlucHV0IGlzIGEgdmFsaWQgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gZ2V0QWRkcmVzc0RldGFpbHMoYWRkcmVzcyk7XG4gICAgcmV0dXJuIGFkZHJlc3MgPT09IG5vcm1hbGl6ZUFkZHJlc3MoYWRkcmVzc0RldGFpbHMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjbGFyaXR5IHZhbHVlIGlucHV0XG4gKlxuICogQHBhcmFtIHtDbGFyaXR5VmFsdWV9IGN2IGNsYXJpdHkgdmFsdWUgZnVuY3Rpb24gYXJndW1lbnRcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHN0cmluZ2lmaWVkIGNsYXJpdHkgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUN2KGN2OiBDbGFyaXR5VmFsdWUpOiBhbnkge1xuICBzd2l0Y2ggKGN2LnR5cGUpIHtcbiAgICBjYXNlIENsYXJpdHlUeXBlLkludDpcbiAgICBjYXNlIENsYXJpdHlUeXBlLlVJbnQ6XG4gICAgICByZXR1cm4geyB0eXBlOiBjdi50eXBlLCB2YWx1ZTogY3YudmFsdWUudG9TdHJpbmcoKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuT3B0aW9uYWxTb21lOlxuICAgICAgcmV0dXJuIHsgdHlwZTogY3YudHlwZSwgdmFsdWU6IHN0cmluZ2lmeUN2KGN2LnZhbHVlKSB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuVHVwbGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBjdi50eXBlLFxuICAgICAgICBkYXRhOiBfLm1hcFZhbHVlcyhjdi5kYXRhLCAodmFsdWUpID0+IHN0cmluZ2lmeUN2KHZhbHVlKSksXG4gICAgICB9O1xuICAgIGNhc2UgQ2xhcml0eVR5cGUuTGlzdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IGN2LnR5cGUsXG4gICAgICAgIGxpc3Q6IGN2Lmxpc3QubWFwKHN0cmluZ2lmeUN2KSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdjtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGZ1bmN0aW9uQXJncyBpbnRvIHNlbmQgcGFyYW1zIGZvciBzZW5kLW1hbnktbWVtbyBjb250cmFjdCBjYWxsc1xuICpcbiAqIEBwYXJhbSB7Q2xhcml0eVZhbHVlW119IGFyZ3MgZnVuY3Rpb25BcmdzIGZyb20gYSBjb250cmFjdCBjYWxsIHBheWxvYWRcbiAqIEByZXR1cm5zIHtTZW5kUGFyYW1zW119IEFuIGFycmF5IG9mIHNlbmRQYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZ1bmN0aW9uQXJnc1RvU2VuZFBhcmFtcyhhcmdzOiBDbGFyaXR5VmFsdWVbXSk6IFNlbmRQYXJhbXNbXSB7XG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdLnR5cGUgIT09IENsYXJpdHlUeXBlLkxpc3QpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIGFyZ3NbMF0ubGlzdC5tYXAoKHR1cGxlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdHVwbGUudHlwZSAhPT0gQ2xhcml0eVR5cGUuVHVwbGUgfHxcbiAgICAgIHR1cGxlLmRhdGEudG8/LnR5cGUgIT09IENsYXJpdHlUeXBlLlByaW5jaXBhbFN0YW5kYXJkIHx8XG4gICAgICB0dXBsZS5kYXRhLnVzdHg/LnR5cGUgIT09IENsYXJpdHlUeXBlLlVJbnQgfHxcbiAgICAgIHR1cGxlLmRhdGEubWVtbz8udHlwZSAhPT0gQ2xhcml0eVR5cGUuQnVmZmVyXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXCJmdW5jdGlvbiBhcmdzIGRvbid0IG1hdGNoIHNlbmQtbWFueS1tZW1vIHR5cGUgZGVjbGFyYXRpb25cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBjdlRvU3RyaW5nKHR1cGxlLmRhdGEudG8pLFxuICAgICAgYW1vdW50OiBjdlRvVmFsdWUodHVwbGUuZGF0YS51c3R4LCB0cnVlKSxcbiAgICAgIG1lbW86IHR1cGxlLmRhdGEubWVtby5idWZmZXIudG9TdHJpbmcoJ2FzY2lpJyksXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdmVyc2lvbiBvZiBhbiBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFkZHJlc3MgdGhlIGFkZHJlc3Mgd2l0aCBvciB3aXRob3V0IHRoZSBtZW1vSWRcbiAqIEByZXR1cm5zIHtBZGRyZXNzVmVyc2lvbn0gQSBudW1iZXIgdGhhdCByZXByZXNlbnQgdGhlIEFkZHJlc3MgVmVyc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1ZlcnNpb24oYWRkcmVzczogc3RyaW5nKTogQWRkcmVzc1ZlcnNpb24ge1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IGdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpLmFkZHJlc3M7XG4gIHJldHVybiBjcmVhdGVBZGRyZXNzKGJhc2VBZGRyZXNzKS52ZXJzaW9uO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBTVFggcHViIGtleSBmcm9tIGFuIHhwdWJcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30geHB1YiBhbiB4cHViXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBhIGNvbXByZXNzZWQgU1RYIHB1YiBrZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhwdWJUb1NUWFB1YmtleSh4cHViOiBzdHJpbmcsIGNvbXByZXNzZWQgPSB0cnVlKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHViOiB4cHViIH0pLmdldEtleXMoY29tcHJlc3NlZCkucHViO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGJhc2UgYWRkcmVzcyBwb3J0aW9uIG9mIGFuIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyAtIGFuIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogQ29tcGFyZXMgYW4gYWRkcmVzcyB0byB0aGUgYmFzZSBhZGRyZXNzIHRvIGNoZWNrIGlmIG1hdGNocy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyAtIGFuIGFkZHJlc3NcbiAqIEBwYXJhbSB7U3RyaW5nfSBiYXNlQWRkcmVzcyAtIGEgYmFzZSBhZGRyZXNzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUJhc2VBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgYmFzZUFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWlzVmFsaWRBZGRyZXNzV2l0aFBheW1lbnRJZChhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuICByZXR1cm4gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzcykgPT09IGdldEJhc2VBZGRyZXNzKGJhc2VBZGRyZXNzKTtcbn1cbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { BaseAddress } from '@bitgo/sdk-core';
|
|
2
|
-
/**
|
|
3
|
-
* Addresses can be encoded in three varieties:
|
|
4
|
-
* 1) ByteArray - this is a UIntArray8. Typically used for signing.
|
|
5
|
-
* 2) Hex - hex encoded string
|
|
6
|
-
* 3) Base58 - base58 encoded string. Typically used for display.
|
|
7
|
-
*/
|
|
8
|
-
export declare class Address implements BaseAddress {
|
|
9
|
-
address: string;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/coin/trx/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAEzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Address = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Addresses can be encoded in three varieties:
|
|
6
|
-
* 1) ByteArray - this is a UIntArray8. Typically used for signing.
|
|
7
|
-
* 2) Hex - hex encoded string
|
|
8
|
-
* 3) Base58 - base58 encoded string. Typically used for display.
|
|
9
|
-
*/
|
|
10
|
-
class Address {
|
|
11
|
-
}
|
|
12
|
-
exports.Address = Address;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3RyeC9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7OztHQUtHO0FBQ0gsTUFBYSxPQUFPO0NBR25CO0FBSEQsMEJBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQWRkcmVzcyB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbi8qKlxuICogQWRkcmVzc2VzIGNhbiBiZSBlbmNvZGVkIGluIHRocmVlIHZhcmlldGllczpcbiAqIDEpIEJ5dGVBcnJheSAtIHRoaXMgaXMgYSBVSW50QXJyYXk4LiBUeXBpY2FsbHkgdXNlZCBmb3Igc2lnbmluZy5cbiAqIDIpIEhleCAtIGhleCBlbmNvZGVkIHN0cmluZ1xuICogMykgQmFzZTU4IC0gYmFzZTU4IGVuY29kZWQgc3RyaW5nLiBUeXBpY2FsbHkgdXNlZCBmb3IgZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFkZHJlc3MgaW1wbGVtZW50cyBCYXNlQWRkcmVzcyB7XG4gIC8vIHRoZSBiYXNlNTggcmVwcmVzZW50YXRpb25cbiAgYWRkcmVzczogc3RyaW5nO1xufVxuIl19
|