@bitgo/account-lib 2.20.0-rc.2 → 2.20.0-rc.22
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/CHANGELOG.md +195 -0
- package/dist/resources/README.md +8 -2
- package/dist/resources/trx/protobuf/tron.js +5 -1
- package/dist/src/coin/avaxc/index.js +3 -3
- package/dist/src/coin/avaxc/keyPair.d.ts +1 -2
- package/dist/src/coin/avaxc/keyPair.d.ts.map +1 -1
- package/dist/src/coin/avaxc/keyPair.js +25 -44
- package/dist/src/coin/avaxc/resources.js +3 -3
- package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +22 -41
- package/dist/src/coin/avaxc/transferBuilder.js +8 -28
- package/dist/src/coin/avaxc/utils.js +14 -54
- package/dist/src/coin/celo/index.js +3 -3
- package/dist/src/coin/celo/resources.js +3 -3
- package/dist/src/coin/celo/stakingBuilder.d.ts +1 -1
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingBuilder.js +102 -104
- package/dist/src/coin/celo/stakingCall.js +8 -26
- package/dist/src/coin/celo/stakingUtils.d.ts +1 -1
- package/dist/src/coin/celo/stakingUtils.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingUtils.js +33 -34
- package/dist/src/coin/celo/transaction.js +10 -30
- package/dist/src/coin/celo/transactionBuilder.d.ts +1 -1
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transactionBuilder.js +96 -115
- package/dist/src/coin/celo/transferBuilder.js +8 -28
- package/dist/src/coin/celo/types.js +71 -125
- package/dist/src/coin/celo/utils.js +25 -25
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts +1 -2
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/addressInitializationBuilder.js +60 -83
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts +1 -1
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/batchTransactionBuilder.js +55 -78
- package/dist/src/coin/dot/claimBuilder.d.ts +1 -2
- package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/claimBuilder.js +46 -68
- package/dist/src/coin/dot/errors.d.ts +1 -1
- package/dist/src/coin/dot/errors.d.ts.map +1 -1
- package/dist/src/coin/dot/errors.js +12 -33
- package/dist/src/coin/dot/iface.d.ts +1 -2
- package/dist/src/coin/dot/iface.d.ts.map +1 -1
- package/dist/src/coin/dot/iface.js +1 -1
- package/dist/src/coin/dot/index.js +3 -3
- package/dist/src/coin/dot/keyPair.d.ts +1 -2
- package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
- package/dist/src/coin/dot/keyPair.js +34 -52
- package/dist/src/coin/dot/singletonRegistry.js +6 -9
- package/dist/src/coin/dot/stakingBuilder.d.ts +1 -2
- package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/stakingBuilder.js +49 -71
- package/dist/src/coin/dot/transaction.d.ts +1 -2
- package/dist/src/coin/dot/transaction.d.ts.map +1 -1
- package/dist/src/coin/dot/transaction.js +146 -162
- package/dist/src/coin/dot/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilder.js +132 -204
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +46 -65
- package/dist/src/coin/dot/transferBuilder.d.ts +1 -2
- package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transferBuilder.js +62 -85
- package/dist/src/coin/dot/txnSchema.js +17 -15
- package/dist/src/coin/dot/unnominateBuilder.d.ts +1 -1
- package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/unnominateBuilder.js +24 -46
- package/dist/src/coin/dot/unstakeBuilder.d.ts +1 -1
- package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/unstakeBuilder.js +38 -60
- package/dist/src/coin/dot/utils.d.ts +1 -2
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +97 -101
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +1 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.js +38 -60
- package/dist/src/coin/etc/index.js +3 -3
- package/dist/src/coin/etc/resources.js +3 -3
- package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/etc/transactionBuilder.js +22 -41
- package/dist/src/coin/etc/transferBuilder.js +8 -28
- package/dist/src/coin/etc/utils.js +10 -50
- package/dist/src/coin/eth/contractCall.js +8 -9
- package/dist/src/coin/eth/iface.d.ts +1 -1
- package/dist/src/coin/eth/iface.d.ts.map +1 -1
- package/dist/src/coin/eth/iface.js +1 -1
- package/dist/src/coin/eth/index.js +3 -3
- package/dist/src/coin/eth/keyPair.d.ts +1 -2
- package/dist/src/coin/eth/keyPair.d.ts.map +1 -1
- package/dist/src/coin/eth/keyPair.js +25 -44
- package/dist/src/coin/eth/transaction.d.ts +1 -2
- package/dist/src/coin/eth/transaction.d.ts.map +1 -1
- package/dist/src/coin/eth/transaction.js +48 -114
- package/dist/src/coin/eth/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/eth/transactionBuilder.js +232 -303
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +37 -38
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +36 -53
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +32 -49
- package/dist/src/coin/eth/transferBuilder.js +58 -59
- package/dist/src/coin/eth/types.js +52 -56
- package/dist/src/coin/eth/utils.d.ts +1 -1
- package/dist/src/coin/eth/utils.d.ts.map +1 -1
- package/dist/src/coin/eth/utils.js +100 -147
- package/dist/src/coin/eth/walletUtil.d.ts +2 -0
- package/dist/src/coin/eth/walletUtil.d.ts.map +1 -1
- package/dist/src/coin/eth/walletUtil.js +4 -2
- package/dist/src/coin/eth2/keyPair.d.ts +1 -2
- package/dist/src/coin/eth2/keyPair.d.ts.map +1 -1
- package/dist/src/coin/eth2/keyPair.js +19 -37
- package/dist/src/coin/hbar/index.js +2 -2
- package/dist/src/coin/hbar/keyPair.d.ts +1 -2
- package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
- package/dist/src/coin/hbar/keyPair.js +30 -49
- package/dist/src/coin/hbar/transaction.d.ts +1 -2
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +77 -146
- package/dist/src/coin/hbar/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +110 -193
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +27 -45
- package/dist/src/coin/hbar/transferBuilder.d.ts +1 -1
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +49 -113
- package/dist/src/coin/hbar/utils.d.ts +2 -15
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +38 -57
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +42 -107
- package/dist/src/coin/near/contractCallWrapper.js +46 -65
- package/dist/src/coin/near/errors.d.ts +1 -1
- package/dist/src/coin/near/errors.d.ts.map +1 -1
- package/dist/src/coin/near/errors.js +7 -25
- package/dist/src/coin/near/iface.d.ts +1 -2
- package/dist/src/coin/near/iface.d.ts.map +1 -1
- package/dist/src/coin/near/iface.js +1 -1
- package/dist/src/coin/near/index.d.ts +3 -0
- package/dist/src/coin/near/index.d.ts.map +1 -1
- package/dist/src/coin/near/index.js +9 -3
- package/dist/src/coin/near/keyPair.d.ts +1 -2
- package/dist/src/coin/near/keyPair.d.ts.map +1 -1
- package/dist/src/coin/near/keyPair.js +23 -40
- package/dist/src/coin/near/stakingActivateBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingActivateBuilder.js +36 -105
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.js +36 -105
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.js +36 -105
- package/dist/src/coin/near/transaction.d.ts +1 -2
- package/dist/src/coin/near/transaction.d.ts.map +1 -1
- package/dist/src/coin/near/transaction.js +125 -154
- package/dist/src/coin/near/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/transactionBuilder.js +81 -144
- package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/near/transactionBuilderFactory.js +33 -51
- package/dist/src/coin/near/transferBuilder.d.ts +1 -1
- package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/transferBuilder.js +27 -91
- package/dist/src/coin/near/utils.d.ts +1 -1
- package/dist/src/coin/near/utils.d.ts.map +1 -1
- package/dist/src/coin/near/utils.js +35 -45
- package/dist/src/coin/near/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/walletInitializationBuilder.js +13 -70
- package/dist/src/coin/polygon/index.d.ts +8 -0
- package/dist/src/coin/polygon/index.d.ts.map +1 -0
- package/dist/src/coin/polygon/index.js +35 -0
- package/dist/src/coin/polygon/resources.d.ts +10 -0
- package/dist/src/coin/polygon/resources.d.ts.map +1 -0
- package/dist/src/coin/polygon/resources.js +25 -0
- package/dist/src/coin/polygon/transactionBuilder.d.ts +17 -0
- package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/polygon/transactionBuilder.js +44 -0
- package/dist/src/coin/polygon/transferBuilder.d.ts +19 -0
- package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/polygon/transferBuilder.js +27 -0
- package/dist/src/coin/polygon/utils.d.ts +18 -0
- package/dist/src/coin/polygon/utils.d.ts.map +1 -0
- package/dist/src/coin/polygon/utils.js +42 -0
- package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
- package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
- package/dist/src/coin/polygon/walletUtil.js +632 -0
- package/dist/src/coin/rbtc/index.js +3 -3
- package/dist/src/coin/rbtc/resources.js +3 -3
- package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/rbtc/transactionBuilder.js +21 -40
- package/dist/src/coin/rbtc/transferBuilder.js +8 -28
- package/dist/src/coin/rbtc/utils.js +10 -50
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +52 -123
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationTransaction.js +34 -57
- package/dist/src/coin/sol/iface.d.ts +1 -1
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +1 -1
- package/dist/src/coin/sol/index.js +3 -3
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +1 -1
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/instructionParamsFactory.js +62 -67
- package/dist/src/coin/sol/keyPair.d.ts +1 -2
- package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
- package/dist/src/coin/sol/keyPair.js +24 -42
- package/dist/src/coin/sol/solInstructionFactory.js +33 -33
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingActivateBuilder.js +45 -113
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.js +36 -104
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.js +41 -109
- package/dist/src/coin/sol/tokenEncodeDecode.js +46 -75
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/tokenTransferBuilder.js +42 -115
- package/dist/src/coin/sol/transaction.d.ts +1 -2
- package/dist/src/coin/sol/transaction.d.ts.map +1 -1
- package/dist/src/coin/sol/transaction.js +130 -221
- package/dist/src/coin/sol/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilder.js +104 -171
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +46 -64
- package/dist/src/coin/sol/transferBuilder.d.ts +1 -1
- package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transferBuilder.js +37 -108
- package/dist/src/coin/sol/utils.d.ts +1 -1
- package/dist/src/coin/sol/utils.d.ts.map +1 -1
- package/dist/src/coin/sol/utils.js +49 -117
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +39 -107
- package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/abstractContractBuilder.js +34 -104
- package/dist/src/coin/stx/contractBuilder.js +38 -57
- package/dist/src/coin/stx/index.js +2 -2
- package/dist/src/coin/stx/keyPair.d.ts +1 -2
- package/dist/src/coin/stx/keyPair.d.ts.map +1 -1
- package/dist/src/coin/stx/keyPair.js +39 -62
- package/dist/src/coin/stx/sendmanyBuilder.js +43 -108
- package/dist/src/coin/stx/transaction.d.ts +1 -2
- package/dist/src/coin/stx/transaction.d.ts.map +1 -1
- package/dist/src/coin/stx/transaction.js +102 -183
- package/dist/src/coin/stx/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/transactionBuilder.js +121 -218
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/stx/transactionBuilderFactory.js +36 -54
- package/dist/src/coin/stx/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/transferBuilder.js +41 -111
- package/dist/src/coin/stx/utils.d.ts.map +1 -1
- package/dist/src/coin/stx/utils.js +58 -65
- package/dist/src/coin/trx/address.d.ts +1 -1
- package/dist/src/coin/trx/address.d.ts.map +1 -1
- package/dist/src/coin/trx/address.js +3 -6
- package/dist/src/coin/trx/contractCallBuilder.d.ts +1 -1
- package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/contractCallBuilder.js +100 -160
- package/dist/src/coin/trx/iface.d.ts +1 -1
- package/dist/src/coin/trx/iface.d.ts.map +1 -1
- package/dist/src/coin/trx/iface.js +1 -1
- package/dist/src/coin/trx/index.js +4 -4
- package/dist/src/coin/trx/keyPair.d.ts +1 -3
- package/dist/src/coin/trx/keyPair.d.ts.map +1 -1
- package/dist/src/coin/trx/keyPair.js +37 -57
- package/dist/src/coin/trx/transaction.d.ts +1 -3
- package/dist/src/coin/trx/transaction.d.ts.map +1 -1
- package/dist/src/coin/trx/transaction.js +84 -124
- package/dist/src/coin/trx/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/transactionBuilder.js +72 -134
- package/dist/src/coin/trx/utils.js +57 -59
- package/dist/src/coin/trx/wrappedBuilder.d.ts +1 -2
- package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/wrappedBuilder.js +43 -101
- package/dist/src/coin/xrp/index.js +2 -2
- package/dist/src/coin/xrp/keyPair.d.ts +1 -2
- package/dist/src/coin/xrp/keyPair.d.ts.map +1 -1
- package/dist/src/coin/xrp/keyPair.js +6 -23
- package/dist/src/coin/xrp/transaction.d.ts +1 -2
- package/dist/src/coin/xrp/transaction.d.ts.map +1 -1
- package/dist/src/coin/xrp/transaction.js +13 -34
- package/dist/src/coin/xrp/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/transactionBuilder.js +29 -51
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.js +17 -35
- package/dist/src/coin/xrp/transferBuilder.d.ts +1 -1
- package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/transferBuilder.js +16 -73
- package/dist/src/coin/xrp/utils.d.ts +1 -1
- package/dist/src/coin/xrp/utils.d.ts.map +1 -1
- package/dist/src/coin/xrp/utils.js +22 -25
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.js +16 -73
- package/dist/src/coin/xtz/address.d.ts +1 -1
- package/dist/src/coin/xtz/address.d.ts.map +1 -1
- package/dist/src/coin/xtz/address.js +3 -6
- package/dist/src/coin/xtz/iface.d.ts +1 -1
- package/dist/src/coin/xtz/iface.d.ts.map +1 -1
- package/dist/src/coin/xtz/iface.js +1 -1
- package/dist/src/coin/xtz/index.js +4 -4
- package/dist/src/coin/xtz/keyPair.d.ts +1 -2
- package/dist/src/coin/xtz/keyPair.d.ts.map +1 -1
- package/dist/src/coin/xtz/keyPair.js +39 -59
- package/dist/src/coin/xtz/multisigUtils.js +64 -77
- package/dist/src/coin/xtz/transaction.d.ts +1 -2
- package/dist/src/coin/xtz/transaction.d.ts.map +1 -1
- package/dist/src/coin/xtz/transaction.js +175 -345
- package/dist/src/coin/xtz/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/xtz/transactionBuilder.js +212 -347
- package/dist/src/coin/xtz/transferBuilder.js +25 -28
- package/dist/src/coin/xtz/utils.d.ts.map +1 -1
- package/dist/src/coin/xtz/utils.js +54 -125
- package/dist/src/index.d.ts +7 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +38 -44
- package/dist/src/keyPair/index.d.ts +1 -2
- package/dist/src/keyPair/index.d.ts.map +1 -1
- package/dist/src/keyPair/index.js +9 -9
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +9 -9
- package/dist/tsconfig.tsbuildinfo +21131 -16701
- package/package.json +21 -43
- package/resources/README.md +8 -2
- package/resources/trx/protobuf/tron.js +5 -1
- package/dist/browser/bitgo-account-lib.js +0 -2
- package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -43
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/assetTransferBuilder.js +0 -127
- 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 -51
- 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 -26
- package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
- package/dist/src/coin/algo/keyPair.js +0 -95
- 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 -262
- 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 -100
- package/dist/src/coin/algo/transaction.d.ts +0 -76
- package/dist/src/coin/algo/transaction.d.ts.map +0 -1
- package/dist/src/coin/algo/transaction.js +0 -287
- package/dist/src/coin/algo/transactionBuilder.d.ts +0 -205
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilder.js +0 -445
- 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 -70
- package/dist/src/coin/algo/transferBuilder.d.ts +0 -41
- package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transferBuilder.js +0 -111
- 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 -544
- 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/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 -175
- 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 -19
- package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
- package/dist/src/coin/cspr/keyPair.js +0 -94
- package/dist/src/coin/cspr/transaction.d.ts +0 -56
- package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
- package/dist/src/coin/cspr/transaction.js +0 -251
- package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -125
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilder.js +0 -383
- 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 -116
- 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 -169
- 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 -175
- package/dist/src/coin/cspr/utils.d.ts +0 -189
- package/dist/src/coin/cspr/utils.d.ts.map +0 -1
- package/dist/src/coin/cspr/utils.js +0 -483
- 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 -160
- 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 -96
- 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/hdTree.d.ts +0 -24
- package/dist/src/mpc/hdTree.d.ts.map +0 -1
- package/dist/src/mpc/hdTree.js +0 -143
- 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 -87
- 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 -346
- 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
|
@@ -1,100 +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.SeedEncoding = void 0;
|
|
26
|
-
var base32 = __importStar(require("hi-base32"));
|
|
27
|
-
var js_sha512_1 = __importDefault(require("js-sha512"));
|
|
28
|
-
var SEED_BYTES_LENGTH = 32;
|
|
29
|
-
var ALGORAND_SEED_BYTE_LENGTH = 36;
|
|
30
|
-
var ALGORAND_CHECKSUM_BYTE_LENGTH = 4;
|
|
31
|
-
var ALGORAND_SEED_LENGTH = 58;
|
|
32
|
-
var SeedEncoding = /** @class */ (function () {
|
|
33
|
-
function SeedEncoding() {
|
|
34
|
-
}
|
|
35
|
-
SeedEncoding.genericHash = function (arr) {
|
|
36
|
-
return js_sha512_1.default.sha512_256.array(arr);
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Checks if a seed is valid
|
|
40
|
-
* @param {String} seed - encoded Algorand seed
|
|
41
|
-
* @returns {Boolean} true if valid, false otherwise
|
|
42
|
-
*/
|
|
43
|
-
SeedEncoding.isValidSeed = function (seed) {
|
|
44
|
-
if (seed.length !== ALGORAND_SEED_LENGTH) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
// Try to decode
|
|
48
|
-
var decoded;
|
|
49
|
-
try {
|
|
50
|
-
decoded = SeedEncoding.decode(seed);
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
// Compute checksum
|
|
56
|
-
var checksum = SeedEncoding.genericHash(decoded.seed).slice(SEED_BYTES_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, SEED_BYTES_LENGTH);
|
|
57
|
-
// Check if the checksum and the seed are equal
|
|
58
|
-
if (checksum.length !== decoded.checksum.length) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
return checksum.every(function (val, i) { return val === decoded.checksum[i]; });
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Decode a seed
|
|
65
|
-
*
|
|
66
|
-
* @param seed
|
|
67
|
-
* @return {{checksum: Uint8Array, seed: Uint8Array}}
|
|
68
|
-
*/
|
|
69
|
-
SeedEncoding.decode = function (seed) {
|
|
70
|
-
// try to decode
|
|
71
|
-
var decoded = base32.decode.asBytes(seed);
|
|
72
|
-
// Sanity check
|
|
73
|
-
if (decoded.length !== ALGORAND_SEED_BYTE_LENGTH)
|
|
74
|
-
throw new Error('seed seems to be malformed');
|
|
75
|
-
return {
|
|
76
|
-
seed: new Uint8Array(decoded.slice(0, ALGORAND_SEED_BYTE_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH)),
|
|
77
|
-
checksum: new Uint8Array(decoded.slice(SEED_BYTES_LENGTH, ALGORAND_SEED_BYTE_LENGTH)),
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Encode a secret key into a seed
|
|
82
|
-
*
|
|
83
|
-
* @param secretKey
|
|
84
|
-
* @return {String} encoded seed
|
|
85
|
-
*/
|
|
86
|
-
SeedEncoding.encode = function (secretKey) {
|
|
87
|
-
// get seed
|
|
88
|
-
var seed = secretKey.slice(0, SEED_BYTES_LENGTH);
|
|
89
|
-
// compute checksum
|
|
90
|
-
var checksum = SeedEncoding.genericHash(seed).slice(SEED_BYTES_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, SEED_BYTES_LENGTH);
|
|
91
|
-
var arraySeed = new Uint8Array(seed.length + checksum.length);
|
|
92
|
-
arraySeed.set(seed);
|
|
93
|
-
arraySeed.set(checksum, seed.length);
|
|
94
|
-
var encodedSeed = base32.encode(arraySeed);
|
|
95
|
-
return encodedSeed.toString().slice(0, ALGORAND_SEED_LENGTH); // removing the extra '===='
|
|
96
|
-
};
|
|
97
|
-
return SeedEncoding;
|
|
98
|
-
}());
|
|
99
|
-
exports.SeedEncoding = SeedEncoding;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZEVuY29kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby9zZWVkRW5jb2RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFvQztBQUNwQyx3REFBK0I7QUFHL0IsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFDN0IsSUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckMsSUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFFaEM7SUFBQTtJQTRFQSxDQUFDO0lBM0VnQix3QkFBVyxHQUExQixVQUEyQixHQUFlO1FBQ3hDLE9BQU8sbUJBQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVcsR0FBbEIsVUFBbUIsSUFBWTtRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssb0JBQW9CLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELGdCQUFnQjtRQUNoQixJQUFJLE9BQWEsQ0FBQztRQUNsQixJQUFJO1lBQ0YsT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxtQkFBbUI7UUFDbkIsSUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUMzRCxpQkFBaUIsR0FBRyw2QkFBNkIsRUFDakQsaUJBQWlCLENBQ2xCLENBQUM7UUFFRiwrQ0FBK0M7UUFDL0MsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQy9DLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFLLE9BQUEsR0FBRyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQTNCLENBQTJCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxtQkFBTSxHQUFiLFVBQWMsSUFBWTtRQUN4QixnQkFBZ0I7UUFDaEIsSUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsZUFBZTtRQUNmLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyx5QkFBeUI7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFaEcsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSx5QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pHLFFBQVEsRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLHlCQUF5QixDQUFDLENBQUM7U0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1CQUFNLEdBQWIsVUFBYyxTQUFxQjtRQUNqQyxXQUFXO1FBQ1gsSUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxtQkFBbUI7UUFDbkIsSUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQ25ELGlCQUFpQixHQUFHLDZCQUE2QixFQUNqRCxpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLElBQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0MsT0FBTyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0lBQzVGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUE1RUQsSUE0RUM7QUE1RVksb0NBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlMzIgZnJvbSAnaGktYmFzZTMyJztcbmltcG9ydCBzaGE1MTIgZnJvbSAnanMtc2hhNTEyJztcbmltcG9ydCB7IFNlZWQgfSBmcm9tICcuL2lmYWNlcyc7XG5cbmNvbnN0IFNFRURfQllURVNfTEVOR1RIID0gMzI7XG5jb25zdCBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIID0gMzY7XG5jb25zdCBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCA9IDQ7XG5jb25zdCBBTEdPUkFORF9TRUVEX0xFTkdUSCA9IDU4O1xuXG5leHBvcnQgY2xhc3MgU2VlZEVuY29kaW5nIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZ2VuZXJpY0hhc2goYXJyOiBVaW50OEFycmF5KTogbnVtYmVyW10ge1xuICAgIHJldHVybiBzaGE1MTIuc2hhNTEyXzI1Ni5hcnJheShhcnIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHNlZWQgaXMgdmFsaWRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNlZWQgLSBlbmNvZGVkIEFsZ29yYW5kIHNlZWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59IHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTZWVkKHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChzZWVkLmxlbmd0aCAhPT0gQUxHT1JBTkRfU0VFRF9MRU5HVEgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUcnkgdG8gZGVjb2RlXG4gICAgbGV0IGRlY29kZWQ6IFNlZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSBTZWVkRW5jb2RpbmcuZGVjb2RlKHNlZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGNoZWNrc3VtXG4gICAgY29uc3QgY2hlY2tzdW0gPSBTZWVkRW5jb2RpbmcuZ2VuZXJpY0hhc2goZGVjb2RlZC5zZWVkKS5zbGljZShcbiAgICAgIFNFRURfQllURVNfTEVOR1RIIC0gQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEgsXG4gICAgICBTRUVEX0JZVEVTX0xFTkdUSCxcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGNoZWNrc3VtIGFuZCB0aGUgc2VlZCBhcmUgZXF1YWxcbiAgICBpZiAoY2hlY2tzdW0ubGVuZ3RoICE9PSBkZWNvZGVkLmNoZWNrc3VtLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gY2hlY2tzdW0uZXZlcnkoKHZhbCwgaSkgPT4gdmFsID09PSBkZWNvZGVkLmNoZWNrc3VtW2ldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGUgYSBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm4ge3tjaGVja3N1bTogVWludDhBcnJheSwgc2VlZDogVWludDhBcnJheX19XG4gICAqL1xuICBzdGF0aWMgZGVjb2RlKHNlZWQ6IHN0cmluZyk6IFNlZWQge1xuICAgIC8vIHRyeSB0byBkZWNvZGVcbiAgICBjb25zdCBkZWNvZGVkID0gYmFzZTMyLmRlY29kZS5hc0J5dGVzKHNlZWQpO1xuXG4gICAgLy8gU2FuaXR5IGNoZWNrXG4gICAgaWYgKGRlY29kZWQubGVuZ3RoICE9PSBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIKSB0aHJvdyBuZXcgRXJyb3IoJ3NlZWQgc2VlbXMgdG8gYmUgbWFsZm9ybWVkJyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogbmV3IFVpbnQ4QXJyYXkoZGVjb2RlZC5zbGljZSgwLCBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIIC0gQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEgpKSxcbiAgICAgIGNoZWNrc3VtOiBuZXcgVWludDhBcnJheShkZWNvZGVkLnNsaWNlKFNFRURfQllURVNfTEVOR1RILCBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIKSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgYSBzZWNyZXQga2V5IGludG8gYSBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSBzZWNyZXRLZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBlbmNvZGVkIHNlZWRcbiAgICovXG4gIHN0YXRpYyBlbmNvZGUoc2VjcmV0S2V5OiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICAvLyBnZXQgc2VlZFxuICAgIGNvbnN0IHNlZWQgPSBzZWNyZXRLZXkuc2xpY2UoMCwgU0VFRF9CWVRFU19MRU5HVEgpO1xuICAgIC8vIGNvbXB1dGUgY2hlY2tzdW1cbiAgICBjb25zdCBjaGVja3N1bSA9IFNlZWRFbmNvZGluZy5nZW5lcmljSGFzaChzZWVkKS5zbGljZShcbiAgICAgIFNFRURfQllURVNfTEVOR1RIIC0gQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEgsXG4gICAgICBTRUVEX0JZVEVTX0xFTkdUSCxcbiAgICApO1xuICAgIGNvbnN0IGFycmF5U2VlZCA9IG5ldyBVaW50OEFycmF5KHNlZWQubGVuZ3RoICsgY2hlY2tzdW0ubGVuZ3RoKTtcbiAgICBhcnJheVNlZWQuc2V0KHNlZWQpO1xuICAgIGFycmF5U2VlZC5zZXQoY2hlY2tzdW0sIHNlZWQubGVuZ3RoKTtcbiAgICBjb25zdCBlbmNvZGVkU2VlZCA9IGJhc2UzMi5lbmNvZGUoYXJyYXlTZWVkKTtcblxuICAgIHJldHVybiBlbmNvZGVkU2VlZC50b1N0cmluZygpLnNsaWNlKDAsIEFMR09SQU5EX1NFRURfTEVOR1RIKTsgLy8gcmVtb3ZpbmcgdGhlIGV4dHJhICc9PT09J1xuICB9XG59XG4iXX0=
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import algosdk from 'algosdk';
|
|
3
|
-
import { BaseTransaction, TransactionType } from '../baseCoin';
|
|
4
|
-
import { BaseKey } from '../baseCoin/iface';
|
|
5
|
-
import { KeyPair } from './keyPair';
|
|
6
|
-
import { TxData } from './ifaces';
|
|
7
|
-
export declare class Transaction extends BaseTransaction {
|
|
8
|
-
private _algoTransaction?;
|
|
9
|
-
private _signedTransaction?;
|
|
10
|
-
private _numberOfRequiredSigners;
|
|
11
|
-
private _sender;
|
|
12
|
-
private _signers;
|
|
13
|
-
private _signedBy;
|
|
14
|
-
constructor(coinConfig: Readonly<CoinConfig>);
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
canSign({ key }: BaseKey): boolean;
|
|
17
|
-
sender(address: string): void;
|
|
18
|
-
/**
|
|
19
|
-
* Signs transaction.
|
|
20
|
-
*
|
|
21
|
-
* @param {KeyPair} keyPair Signer keys.
|
|
22
|
-
*/
|
|
23
|
-
sign(keyPair: KeyPair[]): void;
|
|
24
|
-
/**
|
|
25
|
-
* Signs transaction.
|
|
26
|
-
*
|
|
27
|
-
* @param {KeyPair} keyPair Signer keys.
|
|
28
|
-
*/
|
|
29
|
-
private signSingle;
|
|
30
|
-
/**
|
|
31
|
-
* Signs multisig transaction.
|
|
32
|
-
*
|
|
33
|
-
* @param {KeyPair} keyPair Signers keys.
|
|
34
|
-
*/
|
|
35
|
-
private signMultiSig;
|
|
36
|
-
set signedTransaction(txn: Uint8Array);
|
|
37
|
-
get numberOfRequiredSigners(): number;
|
|
38
|
-
/**
|
|
39
|
-
* Sets the number of signers required for signing this transaction.
|
|
40
|
-
*
|
|
41
|
-
* @param {number} num Threshold number of signers.
|
|
42
|
-
*/
|
|
43
|
-
setNumberOfRequiredSigners(num: number): void;
|
|
44
|
-
set signers(addrs: string[]);
|
|
45
|
-
get signers(): string[];
|
|
46
|
-
set signedBy(signer: string[]);
|
|
47
|
-
get signedBy(): string[];
|
|
48
|
-
/**
|
|
49
|
-
* Sets algo transaction.
|
|
50
|
-
*
|
|
51
|
-
* @param {algosdk.Transaction} tx
|
|
52
|
-
*/
|
|
53
|
-
setAlgoTransaction(tx: algosdk.Transaction): void;
|
|
54
|
-
/**
|
|
55
|
-
* Get underlaying algo transaction.
|
|
56
|
-
*
|
|
57
|
-
* @returns {algosdk.Transaction}
|
|
58
|
-
*/
|
|
59
|
-
getAlgoTransaction(): algosdk.Transaction | undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Set the transaction type.
|
|
62
|
-
*
|
|
63
|
-
* @param {TransactionType} transactionType The transaction type to be set.
|
|
64
|
-
*/
|
|
65
|
-
setTransactionType(transactionType: TransactionType): void;
|
|
66
|
-
estimateSize(): number;
|
|
67
|
-
/** @inheritdoc */
|
|
68
|
-
toBroadcastFormat(): Uint8Array;
|
|
69
|
-
/** @inheritdoc */
|
|
70
|
-
toJson(): TxData;
|
|
71
|
-
/**
|
|
72
|
-
* Load the input and output data on this transaction.
|
|
73
|
-
*/
|
|
74
|
-
loadInputsAndOutputs(): void;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAW;gBAEhB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAiBlC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAW9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAYlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA+BpB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAEpC;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED;;;;OAIG;IACH,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAE1B;IAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAE5B;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED;;;;OAIG;IAEH,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;IAIjD;;;;OAIG;IAEH,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS;IAIrD;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,YAAY,IAAI,MAAM;IAQtB,kBAAkB;IAClB,iBAAiB,IAAI,UAAU;IAW/B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAoDhB;;OAEG;IACH,oBAAoB,IAAI,IAAI;CAsB7B"}
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.Transaction = void 0;
|
|
22
|
-
var algosdk_1 = __importDefault(require("algosdk"));
|
|
23
|
-
var baseCoin_1 = require("../baseCoin");
|
|
24
|
-
var errors_1 = require("../baseCoin/errors");
|
|
25
|
-
var utils_1 = __importDefault(require("./utils"));
|
|
26
|
-
var keyPair_1 = require("./keyPair");
|
|
27
|
-
var Transaction = /** @class */ (function (_super) {
|
|
28
|
-
__extends(Transaction, _super);
|
|
29
|
-
function Transaction(coinConfig) {
|
|
30
|
-
var _this = _super.call(this, coinConfig) || this;
|
|
31
|
-
_this._numberOfRequiredSigners = 0;
|
|
32
|
-
_this._signers = [];
|
|
33
|
-
return _this;
|
|
34
|
-
}
|
|
35
|
-
/** @inheritdoc */
|
|
36
|
-
Transaction.prototype.canSign = function (_a) {
|
|
37
|
-
var key = _a.key;
|
|
38
|
-
if (this._numberOfRequiredSigners === 0) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
if (this._numberOfRequiredSigners === 1) {
|
|
42
|
-
var kp = new keyPair_1.KeyPair({ prv: key });
|
|
43
|
-
var addr = kp.getAddress();
|
|
44
|
-
if (addr === this._sender) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
Transaction.prototype.sender = function (address) {
|
|
56
|
-
this._sender = address;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Signs transaction.
|
|
60
|
-
*
|
|
61
|
-
* @param {KeyPair} keyPair Signer keys.
|
|
62
|
-
*/
|
|
63
|
-
Transaction.prototype.sign = function (keyPair) {
|
|
64
|
-
if (!this._algoTransaction) {
|
|
65
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
66
|
-
}
|
|
67
|
-
if (this._numberOfRequiredSigners === 1) {
|
|
68
|
-
this.signSingle(keyPair[0]);
|
|
69
|
-
}
|
|
70
|
-
else if (this._numberOfRequiredSigners > 1) {
|
|
71
|
-
this.signMultiSig(keyPair);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Signs transaction.
|
|
76
|
-
*
|
|
77
|
-
* @param {KeyPair} keyPair Signer keys.
|
|
78
|
-
*/
|
|
79
|
-
Transaction.prototype.signSingle = function (keyPair) {
|
|
80
|
-
if (!this._algoTransaction) {
|
|
81
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
82
|
-
}
|
|
83
|
-
var signKey = Buffer.from(keyPair.getSigningKey()).toString('hex');
|
|
84
|
-
if (signKey) {
|
|
85
|
-
this._signedTransaction = algosdk_1.default.signTransaction(this._algoTransaction, utils_1.default.toUint8Array(signKey)).blob;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
throw new errors_1.InvalidKey('Private key undefined');
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Signs multisig transaction.
|
|
93
|
-
*
|
|
94
|
-
* @param {KeyPair} keyPair Signers keys.
|
|
95
|
-
*/
|
|
96
|
-
Transaction.prototype.signMultiSig = function (keyPair) {
|
|
97
|
-
if (!this._algoTransaction) {
|
|
98
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
99
|
-
}
|
|
100
|
-
if (this._signers.length === 0) {
|
|
101
|
-
throw new errors_1.SigningError('Signers not specified for multisig');
|
|
102
|
-
}
|
|
103
|
-
if (keyPair.length === 0) {
|
|
104
|
-
throw new errors_1.SigningError('Keypair not specified for multisig');
|
|
105
|
-
}
|
|
106
|
-
var multiSigOptions = {
|
|
107
|
-
version: 1,
|
|
108
|
-
threshold: this._numberOfRequiredSigners,
|
|
109
|
-
addrs: this._signers,
|
|
110
|
-
};
|
|
111
|
-
var msigAddress = algosdk_1.default.multisigAddress(multiSigOptions);
|
|
112
|
-
this._algoTransaction.from = algosdk_1.default.decodeAddress(msigAddress);
|
|
113
|
-
// Check if it is a signed or unsigned tx.
|
|
114
|
-
// If unsigned, sign it using first keypair and then append next signatures.
|
|
115
|
-
// If signed, appending next signatures.
|
|
116
|
-
var signedTx = this._signedTransaction
|
|
117
|
-
? this._signedTransaction
|
|
118
|
-
: algosdk_1.default.signMultisigTransaction(this._algoTransaction, multiSigOptions, keyPair.shift().getSigningKey()).blob;
|
|
119
|
-
keyPair.forEach(function (kp) {
|
|
120
|
-
signedTx = algosdk_1.default.appendSignMultisigTransaction(signedTx, multiSigOptions, kp.getSigningKey()).blob;
|
|
121
|
-
});
|
|
122
|
-
this._signedTransaction = signedTx;
|
|
123
|
-
};
|
|
124
|
-
Object.defineProperty(Transaction.prototype, "signedTransaction", {
|
|
125
|
-
set: function (txn) {
|
|
126
|
-
this._signedTransaction = txn;
|
|
127
|
-
},
|
|
128
|
-
enumerable: false,
|
|
129
|
-
configurable: true
|
|
130
|
-
});
|
|
131
|
-
Object.defineProperty(Transaction.prototype, "numberOfRequiredSigners", {
|
|
132
|
-
get: function () {
|
|
133
|
-
return this._numberOfRequiredSigners;
|
|
134
|
-
},
|
|
135
|
-
enumerable: false,
|
|
136
|
-
configurable: true
|
|
137
|
-
});
|
|
138
|
-
/**
|
|
139
|
-
* Sets the number of signers required for signing this transaction.
|
|
140
|
-
*
|
|
141
|
-
* @param {number} num Threshold number of signers.
|
|
142
|
-
*/
|
|
143
|
-
Transaction.prototype.setNumberOfRequiredSigners = function (num) {
|
|
144
|
-
this._numberOfRequiredSigners = num;
|
|
145
|
-
};
|
|
146
|
-
Object.defineProperty(Transaction.prototype, "signers", {
|
|
147
|
-
get: function () {
|
|
148
|
-
return this._signers;
|
|
149
|
-
},
|
|
150
|
-
set: function (addrs) {
|
|
151
|
-
this._signers = addrs;
|
|
152
|
-
},
|
|
153
|
-
enumerable: false,
|
|
154
|
-
configurable: true
|
|
155
|
-
});
|
|
156
|
-
Object.defineProperty(Transaction.prototype, "signedBy", {
|
|
157
|
-
get: function () {
|
|
158
|
-
return this._signedBy;
|
|
159
|
-
},
|
|
160
|
-
set: function (signer) {
|
|
161
|
-
this._signedBy = signer;
|
|
162
|
-
},
|
|
163
|
-
enumerable: false,
|
|
164
|
-
configurable: true
|
|
165
|
-
});
|
|
166
|
-
/**
|
|
167
|
-
* Sets algo transaction.
|
|
168
|
-
*
|
|
169
|
-
* @param {algosdk.Transaction} tx
|
|
170
|
-
*/
|
|
171
|
-
Transaction.prototype.setAlgoTransaction = function (tx) {
|
|
172
|
-
this._algoTransaction = tx;
|
|
173
|
-
};
|
|
174
|
-
/**
|
|
175
|
-
* Get underlaying algo transaction.
|
|
176
|
-
*
|
|
177
|
-
* @returns {algosdk.Transaction}
|
|
178
|
-
*/
|
|
179
|
-
Transaction.prototype.getAlgoTransaction = function () {
|
|
180
|
-
return this._algoTransaction;
|
|
181
|
-
};
|
|
182
|
-
/**
|
|
183
|
-
* Set the transaction type.
|
|
184
|
-
*
|
|
185
|
-
* @param {TransactionType} transactionType The transaction type to be set.
|
|
186
|
-
*/
|
|
187
|
-
Transaction.prototype.setTransactionType = function (transactionType) {
|
|
188
|
-
this._type = transactionType;
|
|
189
|
-
};
|
|
190
|
-
Transaction.prototype.estimateSize = function () {
|
|
191
|
-
if (!this._algoTransaction) {
|
|
192
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
193
|
-
}
|
|
194
|
-
return this._algoTransaction.estimateSize();
|
|
195
|
-
};
|
|
196
|
-
/** @inheritdoc */
|
|
197
|
-
Transaction.prototype.toBroadcastFormat = function () {
|
|
198
|
-
if (!this._algoTransaction) {
|
|
199
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
200
|
-
}
|
|
201
|
-
if (this._signedTransaction && this._signedTransaction.length > 0) {
|
|
202
|
-
return this._signedTransaction;
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
return algosdk_1.default.encodeUnsignedTransaction(this._algoTransaction);
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
/** @inheritdoc */
|
|
209
|
-
Transaction.prototype.toJson = function () {
|
|
210
|
-
var _a, _b;
|
|
211
|
-
if (!this._algoTransaction) {
|
|
212
|
-
throw new errors_1.InvalidTransactionError('Empty transaction');
|
|
213
|
-
}
|
|
214
|
-
var result = {
|
|
215
|
-
id: this._algoTransaction.txID(),
|
|
216
|
-
type: (_a = this._algoTransaction.type) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
217
|
-
from: algosdk_1.default.encodeAddress(this._algoTransaction.from.publicKey),
|
|
218
|
-
fee: this._algoTransaction.fee,
|
|
219
|
-
firstRound: this._algoTransaction.firstRound,
|
|
220
|
-
lastRound: this._algoTransaction.lastRound,
|
|
221
|
-
note: this._algoTransaction.note,
|
|
222
|
-
tokenId: (_b = this._algoTransaction) === null || _b === void 0 ? void 0 : _b.assetIndex,
|
|
223
|
-
genesisID: this._algoTransaction.genesisID,
|
|
224
|
-
genesisHash: this._algoTransaction.genesisHash.toString('base64'),
|
|
225
|
-
};
|
|
226
|
-
if (this._algoTransaction.closeRemainderTo) {
|
|
227
|
-
result.closeRemainderTo = algosdk_1.default.encodeAddress(this._algoTransaction.closeRemainderTo.publicKey);
|
|
228
|
-
}
|
|
229
|
-
if (this.type === baseCoin_1.TransactionType.Send) {
|
|
230
|
-
result.to = algosdk_1.default.encodeAddress(this._algoTransaction.to.publicKey);
|
|
231
|
-
result.amount = this._algoTransaction.amount.toString();
|
|
232
|
-
}
|
|
233
|
-
if (this.type === baseCoin_1.TransactionType.WalletInitialization) {
|
|
234
|
-
if (!this._algoTransaction.nonParticipation) {
|
|
235
|
-
if (this._algoTransaction.voteKey &&
|
|
236
|
-
this._algoTransaction.selectionKey &&
|
|
237
|
-
this._algoTransaction.voteFirst &&
|
|
238
|
-
this._algoTransaction.voteLast &&
|
|
239
|
-
this._algoTransaction.voteKeyDilution) {
|
|
240
|
-
result.voteKey = this._algoTransaction.voteKey.toString('base64');
|
|
241
|
-
result.selectionKey = this._algoTransaction.selectionKey.toString('base64');
|
|
242
|
-
result.voteFirst = this._algoTransaction.voteFirst;
|
|
243
|
-
result.voteLast = this._algoTransaction.voteLast;
|
|
244
|
-
result.voteKeyDilution = this._algoTransaction.voteKeyDilution;
|
|
245
|
-
if (this._algoTransaction.stateProofKey) {
|
|
246
|
-
result.stateProofKey = this._algoTransaction.stateProofKey.toString('base64');
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
result.nonParticipation = this._algoTransaction.nonParticipation;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (result.type === 'axfer' && result.to && result.amount) {
|
|
255
|
-
result.txType = utils_1.default.getTokenTxType(result.amount, result.from, result.to, result.closeRemainderTo);
|
|
256
|
-
result.tokenName = this._coinConfig.suffix;
|
|
257
|
-
}
|
|
258
|
-
return result;
|
|
259
|
-
};
|
|
260
|
-
/**
|
|
261
|
-
* Load the input and output data on this transaction.
|
|
262
|
-
*/
|
|
263
|
-
Transaction.prototype.loadInputsAndOutputs = function () {
|
|
264
|
-
if (!this._algoTransaction) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
if (this.type === baseCoin_1.TransactionType.Send) {
|
|
268
|
-
this._outputs = [
|
|
269
|
-
{
|
|
270
|
-
address: algosdk_1.default.encodeAddress(this._algoTransaction.to.publicKey),
|
|
271
|
-
value: this._algoTransaction.amount.toString(),
|
|
272
|
-
coin: this._coinConfig.name,
|
|
273
|
-
},
|
|
274
|
-
];
|
|
275
|
-
this._inputs = [
|
|
276
|
-
{
|
|
277
|
-
address: algosdk_1.default.encodeAddress(this._algoTransaction.from.publicKey),
|
|
278
|
-
value: this._algoTransaction.amount.toString(),
|
|
279
|
-
coin: this._coinConfig.name,
|
|
280
|
-
},
|
|
281
|
-
];
|
|
282
|
-
}
|
|
283
|
-
};
|
|
284
|
-
return Transaction;
|
|
285
|
-
}(baseCoin_1.BaseTransaction));
|
|
286
|
-
exports.Transaction = Transaction;
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9EQUE4QjtBQUM5Qix3Q0FBK0Q7QUFFL0QsNkNBQXVGO0FBQ3ZGLGtEQUE0QjtBQUM1QixxQ0FBb0M7QUFHcEM7SUFBaUMsK0JBQWU7SUFROUMscUJBQVksVUFBZ0M7UUFBNUMsWUFDRSxrQkFBTSxVQUFVLENBQUMsU0FHbEI7UUFGQyxLQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLEtBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDOztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDZCQUFPLEdBQVAsVUFBUSxFQUFnQjtZQUFkLEdBQUcsU0FBQTtRQUNYLElBQUksSUFBSSxDQUFDLHdCQUF3QixLQUFLLENBQUMsRUFBRTtZQUN2QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLElBQU0sRUFBRSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN6QixPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCw0QkFBTSxHQUFOLFVBQU8sT0FBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDBCQUFJLEdBQUos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QUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ2xFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDOUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUI7YUFDRixDQUFDO1lBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYjtvQkFDRSxPQUFPLEVBQUUsaUJBQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ3BFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDOUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUI7YUFDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBelFELENBQWlDLDBCQUFlLEdBeVEvQztBQXpRWSxrQ0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQmFzZUtleSB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkS2V5LCBTaWduaW5nRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBUeERhdGEgfSBmcm9tICcuL2lmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX2FsZ29UcmFuc2FjdGlvbj86IGFsZ29zZGsuVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25lZFRyYW5zYWN0aW9uPzogVWludDhBcnJheTtcbiAgcHJpdmF0ZSBfbnVtYmVyT2ZSZXF1aXJlZFNpZ25lcnM6IG51bWJlcjtcbiAgcHJpdmF0ZSBfc2VuZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpZ25lcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIF9zaWduZWRCeTogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl9udW1iZXJPZlJlcXVpcmVkU2lnbmVycyA9IDA7XG4gICAgdGhpcy5fc2lnbmVycyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oeyBrZXkgfTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9udW1iZXJPZlJlcXVpcmVkU2lnbmVycyA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbnVtYmVyT2ZSZXF1aXJlZFNpZ25lcnMgPT09IDEpIHtcbiAgICAgIGNvbnN0IGtwID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIGNvbnN0IGFkZHIgPSBrcC5nZXRBZGRyZXNzKCk7XG4gICAgICBpZiAoYWRkciA9PT0gdGhpcy5fc2VuZGVyKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZW5kZXIoYWRkcmVzczogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc2VuZGVyID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIFNpZ25lciBrZXlzLlxuICAgKi9cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FsZ29UcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbnVtYmVyT2ZSZXF1aXJlZFNpZ25lcnMgPT09IDEpIHtcbiAgICAgIHRoaXMuc2lnblNpbmdsZShrZXlQYWlyWzBdKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX251bWJlck9mUmVxdWlyZWRTaWduZXJzID4gMSkge1xuICAgICAgdGhpcy5zaWduTXVsdGlTaWcoa2V5UGFpcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgU2lnbmVyIGtleXMuXG4gICAqL1xuICBwcml2YXRlIHNpZ25TaW5nbGUoa2V5UGFpcjogS2V5UGFpcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWxnb1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ25LZXkgPSBCdWZmZXIuZnJvbShrZXlQYWlyLmdldFNpZ25pbmdLZXkoKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGlmIChzaWduS2V5KSB7XG4gICAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IGFsZ29zZGsuc2lnblRyYW5zYWN0aW9uKHRoaXMuX2FsZ29UcmFuc2FjdGlvbiwgdXRpbHMudG9VaW50OEFycmF5KHNpZ25LZXkpKS5ibG9iO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnUHJpdmF0ZSBrZXkgdW5kZWZpbmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIG11bHRpc2lnIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgU2lnbmVycyBrZXlzLlxuICAgKi9cbiAgcHJpdmF0ZSBzaWduTXVsdGlTaWcoa2V5UGFpcjogS2V5UGFpcltdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hbGdvVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdTaWduZXJzIG5vdCBzcGVjaWZpZWQgZm9yIG11bHRpc2lnJyk7XG4gICAgfVxuICAgIGlmIChrZXlQYWlyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignS2V5cGFpciBub3Qgc3BlY2lmaWVkIGZvciBtdWx0aXNpZycpO1xuICAgIH1cbiAgICBjb25zdCBtdWx0aVNpZ09wdGlvbnMgPSB7XG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgdGhyZXNob2xkOiB0aGlzLl9udW1iZXJPZlJlcXVpcmVkU2lnbmVycyxcbiAgICAgIGFkZHJzOiB0aGlzLl9zaWduZXJzLFxuICAgIH07XG4gICAgY29uc3QgbXNpZ0FkZHJlc3MgPSBhbGdvc2RrLm11bHRpc2lnQWRkcmVzcyhtdWx0aVNpZ09wdGlvbnMpO1xuICAgIHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5mcm9tID0gYWxnb3Nkay5kZWNvZGVBZGRyZXNzKG1zaWdBZGRyZXNzKTtcblxuICAgIC8vIENoZWNrIGlmIGl0IGlzIGEgc2lnbmVkIG9yIHVuc2lnbmVkIHR4LlxuICAgIC8vIElmIHVuc2lnbmVkLCBzaWduIGl0IHVzaW5nIGZpcnN0IGtleXBhaXIgYW5kIHRoZW4gYXBwZW5kIG5leHQgc2lnbmF0dXJlcy5cbiAgICAvLyBJZiBzaWduZWQsIGFwcGVuZGluZyBuZXh0IHNpZ25hdHVyZXMuXG4gICAgbGV0IHNpZ25lZFR4ID0gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb25cbiAgICAgID8gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb25cbiAgICAgIDogYWxnb3Nkay5zaWduTXVsdGlzaWdUcmFuc2FjdGlvbih0aGlzLl9hbGdvVHJhbnNhY3Rpb24sIG11bHRpU2lnT3B0aW9ucywga2V5UGFpci5zaGlmdCgpIS5nZXRTaWduaW5nS2V5KCkpLmJsb2I7XG5cbiAgICBrZXlQYWlyLmZvckVhY2goKGtwKSA9PiB7XG4gICAgICBzaWduZWRUeCA9IGFsZ29zZGsuYXBwZW5kU2lnbk11bHRpc2lnVHJhbnNhY3Rpb24oc2lnbmVkVHgsIG11bHRpU2lnT3B0aW9ucywga3AuZ2V0U2lnbmluZ0tleSgpKS5ibG9iO1xuICAgIH0pO1xuICAgIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uID0gc2lnbmVkVHg7XG4gIH1cblxuICBzZXQgc2lnbmVkVHJhbnNhY3Rpb24odHhuOiBVaW50OEFycmF5KSB7XG4gICAgdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb24gPSB0eG47XG4gIH1cblxuICBnZXQgbnVtYmVyT2ZSZXF1aXJlZFNpZ25lcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZSZXF1aXJlZFNpZ25lcnM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbnVtYmVyIG9mIHNpZ25lcnMgcmVxdWlyZWQgZm9yIHNpZ25pbmcgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bSBUaHJlc2hvbGQgbnVtYmVyIG9mIHNpZ25lcnMuXG4gICAqL1xuICBzZXROdW1iZXJPZlJlcXVpcmVkU2lnbmVycyhudW06IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX251bWJlck9mUmVxdWlyZWRTaWduZXJzID0gbnVtO1xuICB9XG5cbiAgc2V0IHNpZ25lcnMoYWRkcnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fc2lnbmVycyA9IGFkZHJzO1xuICB9XG5cbiAgZ2V0IHNpZ25lcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zaWduZXJzO1xuICB9XG5cbiAgc2V0IHNpZ25lZEJ5KHNpZ25lcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9zaWduZWRCeSA9IHNpZ25lcjtcbiAgfVxuXG4gIGdldCBzaWduZWRCeSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25lZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYWxnbyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHthbGdvc2RrLlRyYW5zYWN0aW9ufSB0eFxuICAgKi9cblxuICBzZXRBbGdvVHJhbnNhY3Rpb24odHg6IGFsZ29zZGsuVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9hbGdvVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdW5kZXJsYXlpbmcgYWxnbyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMge2FsZ29zZGsuVHJhbnNhY3Rpb259XG4gICAqL1xuXG4gIGdldEFsZ29UcmFuc2FjdGlvbigpOiBhbGdvc2RrLlRyYW5zYWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWxnb1RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXRUcmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgZXN0aW1hdGVTaXplKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLl9hbGdvVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYWxnb1RyYW5zYWN0aW9uLmVzdGltYXRlU2l6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICghdGhpcy5fYWxnb1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiAmJiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhbGdvc2RrLmVuY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24odGhpcy5fYWxnb1RyYW5zYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9hbGdvVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5fYWxnb1RyYW5zYWN0aW9uLnR4SUQoKSxcbiAgICAgIHR5cGU6IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi50eXBlPy50b1N0cmluZygpLFxuICAgICAgZnJvbTogYWxnb3Nkay5lbmNvZGVBZGRyZXNzKHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5mcm9tLnB1YmxpY0tleSksXG4gICAgICBmZWU6IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5mZWUsXG4gICAgICBmaXJzdFJvdW5kOiB0aGlzLl9hbGdvVHJhbnNhY3Rpb24uZmlyc3RSb3VuZCxcbiAgICAgIGxhc3RSb3VuZDogdGhpcy5fYWxnb1RyYW5zYWN0aW9uLmxhc3RSb3VuZCxcbiAgICAgIG5vdGU6IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5ub3RlLFxuICAgICAgdG9rZW5JZDogdGhpcy5fYWxnb1RyYW5zYWN0aW9uPy5hc3NldEluZGV4LFxuICAgICAgZ2VuZXNpc0lEOiB0aGlzLl9hbGdvVHJhbnNhY3Rpb24uZ2VuZXNpc0lELFxuICAgICAgZ2VuZXNpc0hhc2g6IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5nZW5lc2lzSGFzaC50b1N0cmluZygnYmFzZTY0JyksXG4gICAgfTtcbiAgICBpZiAodGhpcy5fYWxnb1RyYW5zYWN0aW9uLmNsb3NlUmVtYWluZGVyVG8pIHtcbiAgICAgIHJlc3VsdC5jbG9zZVJlbWFpbmRlclRvID0gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5jbG9zZVJlbWFpbmRlclRvLnB1YmxpY0tleSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kKSB7XG4gICAgICByZXN1bHQudG8gPSBhbGdvc2RrLmVuY29kZUFkZHJlc3ModGhpcy5fYWxnb1RyYW5zYWN0aW9uLnRvLnB1YmxpY0tleSk7XG4gICAgICByZXN1bHQuYW1vdW50ID0gdGhpcy5fYWxnb1RyYW5zYWN0aW9uLmFtb3VudC50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIGlmICghdGhpcy5fYWxnb1RyYW5zYWN0aW9uLm5vblBhcnRpY2lwYXRpb24pIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuX2FsZ29UcmFuc2FjdGlvbi52b3RlS2V5ICYmXG4gICAgICAgICAgdGhpcy5fYWxnb1RyYW5zYWN0aW9uLnNlbGVjdGlvbktleSAmJlxuICAgICAgICAgIHRoaXMuX2FsZ29UcmFuc2FjdGlvbi52b3RlRmlyc3QgJiZcbiAgICAgICAgICB0aGlzLl9hbGdvVHJhbnNhY3Rpb24udm90ZUxhc3QgJiZcbiAgICAgICAgICB0aGlzLl9hbGdvVHJhbnNhY3Rpb24udm90ZUtleURpbHV0aW9uXG4gICAgICAgICkge1xuICAgICAgICAgIHJlc3VsdC52b3RlS2V5ID0gdGhpcy5fYWxnb1RyYW5zYWN0aW9uLnZvdGVLZXkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICAgIHJlc3VsdC5zZWxlY3Rpb25LZXkgPSB0aGlzLl9hbGdvVHJhbnNhY3Rpb24uc2VsZWN0aW9uS2V5LnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgICByZXN1bHQudm90ZUZpcnN0ID0gdGhpcy5fYWxnb1RyYW5zYWN0aW9uLnZvdGVGaXJzdDtcbiAgICAgICAgICByZXN1bHQudm90ZUxhc3QgPSB0aGlzLl9hbGdvVHJhbnNhY3Rpb24udm90ZUxhc3Q7XG4gICAgICAgICAgcmVzdWx0LnZvdGVLZXlEaWx1dGlvbiA9IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi52b3RlS2V5RGlsdXRpb247XG4gICAgICAgICAgaWYgKHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5zdGF0ZVByb29mS2V5KSB7XG4gICAgICAgICAgICByZXN1bHQuc3RhdGVQcm9vZktleSA9IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5zdGF0ZVByb29mS2V5LnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5ub25QYXJ0aWNpcGF0aW9uID0gdGhpcy5fYWxnb1RyYW5zYWN0aW9uLm5vblBhcnRpY2lwYXRpb247XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZXN1bHQudHlwZSA9PT0gJ2F4ZmVyJyAmJiByZXN1bHQudG8gJiYgcmVzdWx0LmFtb3VudCkge1xuICAgICAgcmVzdWx0LnR4VHlwZSA9IHV0aWxzLmdldFRva2VuVHhUeXBlKHJlc3VsdC5hbW91bnQsIHJlc3VsdC5mcm9tLCByZXN1bHQudG8sIHJlc3VsdC5jbG9zZVJlbWFpbmRlclRvKTtcbiAgICAgIHJlc3VsdC50b2tlbk5hbWUgPSB0aGlzLl9jb2luQ29uZmlnLnN1ZmZpeDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWxnb1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kKSB7XG4gICAgICB0aGlzLl9vdXRwdXRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogYWxnb3Nkay5lbmNvZGVBZGRyZXNzKHRoaXMuX2FsZ29UcmFuc2FjdGlvbi50by5wdWJsaWNLZXkpLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLl9hbGdvVHJhbnNhY3Rpb24uYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogYWxnb3Nkay5lbmNvZGVBZGRyZXNzKHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5mcm9tLnB1YmxpY0tleSksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuX2FsZ29UcmFuc2FjdGlvbi5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgfVxufVxuIl19
|