@bitgo/account-lib 2.20.0-rc.3 → 2.20.0-rc.32
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 +311 -0
- package/dist/resources/README.md +8 -2
- package/dist/resources/trx/protobuf/tron.js +5 -1
- 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 +49 -69
- 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 +2 -3
- package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
- package/dist/src/coin/dot/keyPair.js +34 -56
- 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 +55 -73
- 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 +154 -170
- 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 +133 -205
- 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 +71 -88
- 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 +9 -3
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +112 -102
- 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.d.ts +2 -4
- package/dist/src/coin/etc/index.d.ts.map +1 -1
- package/dist/src/coin/etc/index.js +7 -9
- 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.d.ts +1 -1
- package/dist/src/coin/etc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/etc/transferBuilder.js +8 -28
- package/dist/src/coin/etc/utils.d.ts +1 -2
- package/dist/src/coin/etc/utils.d.ts.map +1 -1
- package/dist/src/coin/etc/utils.js +10 -50
- 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/coinTransferBuilder.d.ts +46 -0
- package/dist/src/coin/hbar/coinTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/coinTransferBuilder.js +143 -0
- package/dist/src/coin/hbar/constants.d.ts +8 -0
- package/dist/src/coin/hbar/constants.d.ts.map +1 -0
- package/dist/src/coin/hbar/constants.js +12 -0
- package/dist/src/coin/hbar/iface.d.ts +49 -0
- package/dist/src/coin/hbar/iface.d.ts.map +1 -0
- package/dist/src/coin/hbar/iface.js +3 -0
- package/dist/src/coin/hbar/index.d.ts +3 -0
- package/dist/src/coin/hbar/index.d.ts.map +1 -1
- package/dist/src/coin/hbar/index.js +9 -3
- package/dist/src/coin/hbar/keyPair.d.ts +2 -3
- package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
- package/dist/src/coin/hbar/keyPair.js +31 -50
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +38 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenAssociateBuilder.js +126 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts +25 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/hbar/tokenTransferBuilder.js +115 -0
- package/dist/src/coin/hbar/transaction.d.ts +30 -23
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +197 -193
- package/dist/src/coin/hbar/transactionBuilder.d.ts +23 -25
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +146 -223
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +14 -4
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +50 -57
- package/dist/src/coin/hbar/transferBuilder.d.ts +9 -29
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +37 -157
- package/dist/src/coin/hbar/utils.d.ts +99 -58
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +183 -105
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +5 -5
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +68 -113
- 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.js +2 -2
- 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 +6 -0
- package/dist/src/coin/polygon/index.d.ts.map +1 -0
- package/dist/src/coin/{celo → polygon}/index.js +7 -9
- 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/{avaxc → polygon}/transactionBuilder.d.ts +1 -1
- package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/polygon/transactionBuilder.js +44 -0
- package/dist/src/coin/{avaxc → polygon}/transferBuilder.d.ts +4 -2
- 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 +17 -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.d.ts +2 -4
- package/dist/src/coin/rbtc/index.d.ts.map +1 -1
- package/dist/src/coin/rbtc/index.js +7 -9
- 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.d.ts +1 -1
- package/dist/src/coin/rbtc/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/rbtc/transferBuilder.js +8 -28
- package/dist/src/coin/rbtc/utils.d.ts +1 -2
- package/dist/src/coin/rbtc/utils.d.ts.map +1 -1
- package/dist/src/coin/rbtc/utils.js +10 -50
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +12 -3
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +74 -126
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationTransaction.js +36 -59
- package/dist/src/coin/sol/iface.d.ts +2 -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 +72 -70
- 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/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/index.d.ts +24 -16
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +58 -50
- 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 +29398 -22560
- package/package.json +25 -58
- 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/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/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/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 -27
- package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
- package/dist/src/coin/avaxc/keyPair.js +0 -102
- 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.map +0 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +0 -64
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transferBuilder.js +0 -45
- 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 -110
- 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/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 -279
- 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 -31
- 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 -99
- 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 -57
- 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 -247
- 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 -47
- 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 -276
- 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 -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/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 -18
- 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 -27
- package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth/keyPair.js +0 -104
- package/dist/src/coin/eth/transaction.d.ts +0 -65
- package/dist/src/coin/eth/transaction.d.ts.map +0 -1
- package/dist/src/coin/eth/transaction.js +0 -203
- package/dist/src/coin/eth/transactionBuilder.d.ts +0 -195
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transactionBuilder.js +0 -695
- 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 -114
- 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 -100
- 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 -85
- 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 -198
- 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 -139
- package/dist/src/coin/eth/utils.d.ts +0 -201
- package/dist/src/coin/eth/utils.d.ts.map +0 -1
- package/dist/src/coin/eth/utils.js +0 -533
- 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/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/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 -140
- 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 -135
- 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 -56
- package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/stx/keyPair.js +0 -163
- 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 -140
- package/dist/src/coin/stx/transaction.d.ts +0 -50
- package/dist/src/coin/stx/transaction.d.ts.map +0 -1
- package/dist/src/coin/stx/transaction.js +0 -306
- package/dist/src/coin/stx/transactionBuilder.d.ts +0 -87
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilder.js +0 -360
- 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 -99
- 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 -169
- 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 -510
- 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 -13
- 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 -41
- package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xtz/keyPair.js +0 -156
- 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 -1193
- package/dist/src/coin/xtz/transaction.d.ts +0 -120
- package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
- package/dist/src/coin/xtz/transaction.js +0 -485
- package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -172
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transactionBuilder.js +0 -588
- 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 -67
- 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 -531
- 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
- 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
|
@@ -4,25 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Utils = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
7
|
+
const keyring_1 = require("@polkadot/keyring");
|
|
8
|
+
const decode_1 = require("@polkadot/keyring/pair/decode");
|
|
9
|
+
const Extrinsic_1 = require("@polkadot/types/extrinsic/v4/Extrinsic");
|
|
10
|
+
const util_1 = require("@polkadot/util");
|
|
11
|
+
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
12
|
+
const txwrapper_polkadot_1 = require("@substrate/txwrapper-polkadot");
|
|
13
|
+
const hi_base32_1 = __importDefault(require("hi-base32"));
|
|
14
|
+
const _1 = require(".");
|
|
15
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
16
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
17
|
+
const types_1 = require("@polkadot/types");
|
|
18
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
19
|
+
const PROXY_METHOD_ARG = 2;
|
|
20
|
+
// map to retrieve the address encoding format when the key is the asset name
|
|
21
|
+
const coinToAddressMap = new Map([
|
|
22
|
+
['dot', sdk_core_1.DotAddressFormat.polkadot],
|
|
23
|
+
['tdot', sdk_core_1.DotAddressFormat.substrate],
|
|
24
|
+
]);
|
|
25
|
+
class Utils {
|
|
24
26
|
/** @inheritdoc */
|
|
25
|
-
|
|
27
|
+
isValidAddress(address) {
|
|
26
28
|
try {
|
|
27
29
|
keyring_1.encodeAddress(util_1.isHex(address) ? util_1.hexToU8a(address) : keyring_1.decodeAddress(address));
|
|
28
30
|
return true;
|
|
@@ -30,37 +32,37 @@ var Utils = /** @class */ (function () {
|
|
|
30
32
|
catch (error) {
|
|
31
33
|
return false;
|
|
32
34
|
}
|
|
33
|
-
}
|
|
35
|
+
}
|
|
34
36
|
/** @inheritdoc */
|
|
35
|
-
|
|
37
|
+
isValidBlockId(hash) {
|
|
36
38
|
return util_1.isHex(hash, 256);
|
|
37
|
-
}
|
|
39
|
+
}
|
|
38
40
|
/** @inheritdoc */
|
|
39
|
-
|
|
41
|
+
isValidPrivateKey(key) {
|
|
40
42
|
try {
|
|
41
|
-
|
|
43
|
+
const decodedPrv = util_1.hexToU8a(key);
|
|
42
44
|
return decodedPrv.length === tweetnacl_1.default.sign.secretKeyLength / 2;
|
|
43
45
|
}
|
|
44
46
|
catch (e) {
|
|
45
47
|
return false;
|
|
46
48
|
}
|
|
47
|
-
}
|
|
49
|
+
}
|
|
48
50
|
/** @inheritdoc */
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
isValidPublicKey(key) {
|
|
52
|
+
let pubKey = key;
|
|
51
53
|
// convert base58 pub key to hex format
|
|
52
54
|
// tss common pub is in base58 format and decodes to length of 32
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
+
if (sdk_core_1.isBase58(pubKey, 32)) {
|
|
56
|
+
const base58Decode = bs58_1.default.decode(pubKey);
|
|
55
57
|
pubKey = base58Decode.toString('hex');
|
|
56
58
|
}
|
|
57
|
-
return
|
|
58
|
-
}
|
|
59
|
+
return sdk_core_1.isValidEd25519PublicKey(pubKey);
|
|
60
|
+
}
|
|
59
61
|
/** @inheritdoc */
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
isValidSignature(signature) {
|
|
63
|
+
const signatureU8a = util_1.u8aToU8a(signature);
|
|
62
64
|
return [64, 65, 66].includes(signatureU8a.length);
|
|
63
|
-
}
|
|
65
|
+
}
|
|
64
66
|
/**
|
|
65
67
|
* Verifies the signature on a given message
|
|
66
68
|
*
|
|
@@ -69,36 +71,36 @@ var Utils = /** @class */ (function () {
|
|
|
69
71
|
* @param {string} address the address of the signer
|
|
70
72
|
* @returns {boolean} whether the signature is valid or not
|
|
71
73
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
verifySignature(signedMessage, signature, address) {
|
|
75
|
+
const publicKey = keyring_1.decodeAddress(address);
|
|
76
|
+
const hexPublicKey = util_1.u8aToHex(publicKey);
|
|
75
77
|
return util_crypto_1.signatureVerify(signedMessage, signature, hexPublicKey).isValid;
|
|
76
|
-
}
|
|
78
|
+
}
|
|
77
79
|
/** @inheritdoc */
|
|
78
|
-
|
|
80
|
+
isValidTransactionId(txId) {
|
|
79
81
|
return util_1.isHex(txId, 256);
|
|
80
|
-
}
|
|
82
|
+
}
|
|
81
83
|
/**
|
|
82
84
|
* decodeSeed decodes a dot seed
|
|
83
85
|
*
|
|
84
86
|
* @param {string} seed - the seed to be validated.
|
|
85
87
|
* @returns {Seed} - the object Seed
|
|
86
88
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
decodeSeed(seed) {
|
|
90
|
+
const decoded = hi_base32_1.default.decode.asBytes(seed);
|
|
89
91
|
return {
|
|
90
92
|
seed: Buffer.from(decoded),
|
|
91
93
|
};
|
|
92
|
-
}
|
|
94
|
+
}
|
|
93
95
|
/**
|
|
94
96
|
* Helper function to capitalize the first letter of a string
|
|
95
97
|
*
|
|
96
98
|
* @param {string} val
|
|
97
99
|
* @returns {string}
|
|
98
100
|
*/
|
|
99
|
-
|
|
101
|
+
capitalizeFirstLetter(val) {
|
|
100
102
|
return val.charAt(0).toUpperCase() + val.slice(1);
|
|
101
|
-
}
|
|
103
|
+
}
|
|
102
104
|
/**
|
|
103
105
|
* Helper function to decode the internal method hex in case of a proxy transaction
|
|
104
106
|
*
|
|
@@ -106,12 +108,12 @@ var Utils = /** @class */ (function () {
|
|
|
106
108
|
* @param { metadataRpc: string; registry: TypeRegistry } options
|
|
107
109
|
* @returns {TransferArgs}
|
|
108
110
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
decodeCallMethod(tx, options) {
|
|
112
|
+
const { registry } = options;
|
|
113
|
+
let methodCall;
|
|
112
114
|
if (typeof tx === 'string') {
|
|
113
115
|
try {
|
|
114
|
-
|
|
116
|
+
const payload = types_1.createTypeUnsafe(registry, 'ExtrinsicPayload', [
|
|
115
117
|
tx,
|
|
116
118
|
{ version: Extrinsic_1.EXTRINSIC_VERSION },
|
|
117
119
|
]);
|
|
@@ -126,22 +128,22 @@ var Utils = /** @class */ (function () {
|
|
|
126
128
|
else {
|
|
127
129
|
methodCall = registry.createType('Call', tx.method);
|
|
128
130
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
+
const method = methodCall.args[PROXY_METHOD_ARG];
|
|
132
|
+
const decodedArgs = method.toJSON();
|
|
131
133
|
return decodedArgs.args;
|
|
132
|
-
}
|
|
134
|
+
}
|
|
133
135
|
/**
|
|
134
136
|
* keyPairFromSeed generates an object with secretKey and publicKey using the polkadot sdk
|
|
135
137
|
* @param seed 32 bytes long seed
|
|
136
138
|
* @returns KeyPair
|
|
137
139
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
keyPairFromSeed(seed) {
|
|
141
|
+
const keyring = new keyring_1.Keyring({ type: 'ed25519' });
|
|
142
|
+
const keyringPair = keyring.addFromSeed(seed);
|
|
143
|
+
const pairJson = keyringPair.toJson();
|
|
144
|
+
const decodedKeyPair = decode_1.decodePair('', util_crypto_1.base64Decode(pairJson.encoded), pairJson.encoding.type);
|
|
143
145
|
return new _1.KeyPair({ prv: Buffer.from(decodedKeyPair.secretKey).toString('hex') });
|
|
144
|
-
}
|
|
146
|
+
}
|
|
145
147
|
/**
|
|
146
148
|
* Signing function. Implement this on the OFFLINE signing device.
|
|
147
149
|
*
|
|
@@ -152,16 +154,16 @@ var Utils = /** @class */ (function () {
|
|
|
152
154
|
* @param {HexString} options.metadataRpc - metadata that is needed for dot to sign
|
|
153
155
|
* @param {TypeRegistry} options.registry - metadata that is needed for dot to sign
|
|
154
156
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
createSignedTx(pair, signingPayload, transaction, options) {
|
|
158
|
+
const { registry, metadataRpc } = options;
|
|
159
|
+
const { signature } = registry
|
|
158
160
|
.createType('ExtrinsicPayload', signingPayload, {
|
|
159
161
|
version: Extrinsic_1.EXTRINSIC_VERSION,
|
|
160
162
|
})
|
|
161
|
-
.sign(pair)
|
|
163
|
+
.sign(pair);
|
|
162
164
|
// Serialize a signed transaction.
|
|
163
165
|
return this.serializeSignedTransaction(transaction, signature, metadataRpc, registry);
|
|
164
|
-
}
|
|
166
|
+
}
|
|
165
167
|
/**
|
|
166
168
|
* Serializes the signed transaction
|
|
167
169
|
*
|
|
@@ -171,12 +173,12 @@ var Utils = /** @class */ (function () {
|
|
|
171
173
|
* @param registry Transaction registry
|
|
172
174
|
* @returns string Serialized transaction
|
|
173
175
|
*/
|
|
174
|
-
|
|
176
|
+
serializeSignedTransaction(transaction, signature, metadataRpc, registry) {
|
|
175
177
|
return txwrapper_polkadot_1.construct.signedTx(transaction, signature, {
|
|
176
|
-
metadataRpc
|
|
177
|
-
registry
|
|
178
|
+
metadataRpc,
|
|
179
|
+
registry,
|
|
178
180
|
});
|
|
179
|
-
}
|
|
181
|
+
}
|
|
180
182
|
/**
|
|
181
183
|
* Decodes the dot address from the given format
|
|
182
184
|
*
|
|
@@ -184,10 +186,10 @@ var Utils = /** @class */ (function () {
|
|
|
184
186
|
* @param {number} [ss58Format]
|
|
185
187
|
* @returns {string}
|
|
186
188
|
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
return keypair.getAddress();
|
|
190
|
-
}
|
|
189
|
+
decodeDotAddress(address, ss58Format) {
|
|
190
|
+
const keypair = new _1.KeyPair({ pub: Buffer.from(keyring_1.decodeAddress(address, undefined, ss58Format)).toString('hex') });
|
|
191
|
+
return keypair.getAddress(ss58Format);
|
|
192
|
+
}
|
|
191
193
|
/**
|
|
192
194
|
* Decodes the dot address from the given format
|
|
193
195
|
*
|
|
@@ -195,58 +197,58 @@ var Utils = /** @class */ (function () {
|
|
|
195
197
|
* @param {number} [ss58Format]
|
|
196
198
|
* @returns {string}
|
|
197
199
|
*/
|
|
198
|
-
|
|
200
|
+
encodeDotAddress(address, ss58Format) {
|
|
199
201
|
return keyring_1.encodeAddress(address, ss58Format);
|
|
200
|
-
}
|
|
202
|
+
}
|
|
201
203
|
/**
|
|
202
204
|
* Retrieves the txHash of a signed txHex
|
|
203
205
|
*
|
|
204
206
|
* @param txHex signed transaction hex
|
|
205
207
|
* @returns {string}
|
|
206
208
|
*/
|
|
207
|
-
|
|
209
|
+
getTxHash(txHex) {
|
|
208
210
|
return txwrapper_polkadot_1.construct.txHash(txHex);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
}
|
|
212
|
+
getMaterial(coinConfig) {
|
|
213
|
+
const networkConfig = coinConfig.network;
|
|
214
|
+
const { specName, specVersion, chainName, txVersion, genesisHash } = networkConfig;
|
|
213
215
|
return {
|
|
214
|
-
specName
|
|
215
|
-
specVersion
|
|
216
|
-
chainName
|
|
216
|
+
specName,
|
|
217
|
+
specVersion,
|
|
218
|
+
chainName,
|
|
217
219
|
metadata: networkConfig.metadataRpc,
|
|
218
|
-
txVersion
|
|
219
|
-
genesisHash
|
|
220
|
+
txVersion,
|
|
221
|
+
genesisHash,
|
|
220
222
|
};
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
+
}
|
|
224
|
+
isSigningPayload(payload) {
|
|
223
225
|
return payload.blockHash !== undefined;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
+
}
|
|
227
|
+
isProxyTransfer(arg) {
|
|
226
228
|
return arg.real !== undefined;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
+
}
|
|
230
|
+
isTransfer(arg) {
|
|
229
231
|
var _a;
|
|
230
232
|
return ((_a = arg.dest) === null || _a === void 0 ? void 0 : _a.id) !== undefined && arg.value !== undefined;
|
|
231
|
-
}
|
|
233
|
+
}
|
|
232
234
|
/**
|
|
233
235
|
* extracts and returns the signature in hex format given a raw signed transaction
|
|
234
236
|
*
|
|
235
237
|
* @param {string} rawTx signed raw transaction
|
|
236
238
|
* @param options registry dot registry used to retrieve the signature
|
|
237
239
|
*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
240
|
+
recoverSignatureFromRawTx(rawTx, options) {
|
|
241
|
+
const { registry } = options;
|
|
242
|
+
const methodCall = registry.createType('Extrinsic', rawTx, {
|
|
241
243
|
isSigned: true,
|
|
242
244
|
});
|
|
243
|
-
|
|
245
|
+
let signature = util_1.u8aToHex(methodCall.signature);
|
|
244
246
|
// remove 0x from the signature since this is how it's returned from TSS signing
|
|
245
247
|
if (signature.startsWith('0x')) {
|
|
246
248
|
signature = signature.substr(2);
|
|
247
249
|
}
|
|
248
250
|
return signature;
|
|
249
|
-
}
|
|
251
|
+
}
|
|
250
252
|
/**
|
|
251
253
|
* Decodes the dot address from the given format
|
|
252
254
|
*
|
|
@@ -254,20 +256,28 @@ var Utils = /** @class */ (function () {
|
|
|
254
256
|
* @param {number} [ss58Format]
|
|
255
257
|
* @returns {KeyPair}
|
|
256
258
|
*/
|
|
257
|
-
|
|
259
|
+
decodeDotAddressToKeyPair(address, ss58Format) {
|
|
258
260
|
return new _1.KeyPair({ pub: Buffer.from(keyring_1.decodeAddress(address, undefined, ss58Format)).toString('hex') });
|
|
259
|
-
}
|
|
261
|
+
}
|
|
260
262
|
/**
|
|
261
263
|
* Checks whether the given input is a hex string with with 0 value
|
|
262
264
|
* used to check whether a given transaction is immortal or mortal
|
|
263
265
|
* @param hexValue
|
|
264
266
|
*/
|
|
265
|
-
|
|
267
|
+
isZeroHex(hexValue) {
|
|
266
268
|
return hexValue === '0x00';
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Takes an asset name and returns the respective address to format to
|
|
272
|
+
* since polkadot addresses differ depending on the network
|
|
273
|
+
* ref: https://wiki.polkadot.network/docs/learn-accounts
|
|
274
|
+
* @param networkCoinName
|
|
275
|
+
*/
|
|
276
|
+
getAddressFormat(networkCoinName) {
|
|
277
|
+
return coinToAddressMap.get(networkCoinName);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
270
280
|
exports.Utils = Utils;
|
|
271
|
-
|
|
281
|
+
const utils = new Utils();
|
|
272
282
|
exports.default = utils;
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQTBFO0FBQzFFLHdEQUEyRDtBQUUzRCxvRUFBMkU7QUFDM0UsdUNBQXFFO0FBQ3JFLHFEQUFzRTtBQUN0RSw2Q0FBNkQ7QUFHN0Qsb0VBQTBEO0FBQzFELHdEQUErQjtBQUMvQixzQkFBNEI7QUFJNUIsd0RBQTZCO0FBRTdCLHlDQUEyRztBQUMzRyw4Q0FBd0I7QUFDeEIsK0NBQWdEO0FBRWhELElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCO0lBQUE7SUFvUkEsQ0FBQztJQW5SQyxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLE9BQWU7UUFDNUIsSUFBSTtZQUNGLHVCQUFhLENBQUMsWUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBYyxHQUFkLFVBQWUsSUFBWTtRQUN6QixPQUFPLFlBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQ0FBaUIsR0FBakIsVUFBa0IsR0FBVztRQUMzQixJQUFJO1lBQ0YsSUFBTSxVQUFVLEdBQUcsZUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sVUFBVSxDQUFDLE1BQU0sS0FBSyxtQkFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtB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VUFBbUI7UUFDNUQsT0FBTyxJQUFJLFVBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx5QkFBUyxHQUFULFVBQVUsUUFBZ0I7UUFDeEIsT0FBTyxRQUFRLEtBQUssTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQXBSRCxJQW9SQztBQXBSWSxzQkFBSztBQXNSbEIsSUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWNvZGVBZGRyZXNzLCBlbmNvZGVBZGRyZXNzLCBLZXlyaW5nIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgZGVjb2RlUGFpciB9IGZyb20gJ0Bwb2xrYWRvdC9rZXlyaW5nL3BhaXIvZGVjb2RlJztcbmltcG9ydCB7IEtleXJpbmdQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvdHlwZXMnO1xuaW1wb3J0IHsgRVhUUklOU0lDX1ZFUlNJT04gfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMvZXh0cmluc2ljL3Y0L0V4dHJpbnNpYyc7XG5pbXBvcnQgeyBoZXhUb1U4YSwgaXNIZXgsIHU4YVRvSGV4LCB1OGFUb1U4YSB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsJztcbmltcG9ydCB7IGJhc2U2NERlY29kZSwgc2lnbmF0dXJlVmVyaWZ5IH0gZnJvbSAnQHBvbGthZG90L3V0aWwtY3J5cHRvJztcbmltcG9ydCB7IGlzVmFsaWRFZDI1NTE5UHVibGljS2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3J5cHRvJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBjb25zdHJ1Y3QgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBCYXNlVXRpbHMgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBTZWVkIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgSGV4U3RyaW5nLCBNYXRlcmlhbCwgUHJveHlBcmdzLCBQcm94eUNhbGxBcmdzLCBUcmFuc2ZlckFyZ3MsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgRG90TmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVR5cGVVbnNhZmUsIEdlbmVyaWNDYWxsLCBHZW5lcmljRXh0cmluc2ljLCBHZW5lcmljRXh0cmluc2ljUGF5bG9hZCB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcyc7XG5pbXBvcnQgYnM1OCBmcm9tICdiczU4JztcbmltcG9ydCB7IGlzQmFzZTU4IH0gZnJvbSAnLi8uLi8uLi91dGlscy9jcnlwdG8nO1xuXG5jb25zdCBQUk9YWV9NRVRIT0RfQVJHID0gMjtcbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgZW5jb2RlQWRkcmVzcyhpc0hleChhZGRyZXNzKSA/IGhleFRvVThhKGFkZHJlc3MpIDogZGVjb2RlQWRkcmVzcyhhZGRyZXNzKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNIZXgoaGFzaCwgMjU2KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkUHJ2ID0gaGV4VG9VOGEoa2V5KTtcbiAgICAgIHJldHVybiBkZWNvZGVkUHJ2Lmxlbmd0aCA9PT0gbmFjbC5zaWduLnNlY3JldEtleUxlbmd0aCAvIDI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHB1YktleSA9IGtleTtcblxuICAgIC8vIGNvbnZlcnQgYmFzZTU4IHB1YiBrZXkgdG8gaGV4IGZvcm1hdFxuICAgIC8vIHRzcyBjb21tb24gcHViIGlzIGluIGJhc2U1OCBmb3JtYXQgYW5kIGRlY29kZXMgdG8gbGVuZ3RoIG9mIDMyXG4gICAgaWYgKGlzQmFzZTU4KHB1YktleSwgMzIpKSB7XG4gICAgICBjb25zdCBiYXNlNThEZWNvZGUgPSBiczU4LmRlY29kZShwdWJLZXkpO1xuICAgICAgcHViS2V5ID0gYmFzZTU4RGVjb2RlLnRvU3RyaW5nKCdoZXgnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkocHViS2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlVThhID0gdThhVG9VOGEoc2lnbmF0dXJlKTtcbiAgICByZXR1cm4gWzY0LCA2NSwgNjZdLmluY2x1ZGVzKHNpZ25hdHVyZVU4YS5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgb24gYSBnaXZlbiBtZXNzYWdlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRNZXNzYWdlIHRoZSBzaWduZWQgbWVzc2FnZSBmb3IgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHdoZXRoZXIgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCBvciBub3RcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShzaWduZWRNZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIGNvbnN0IGhleFB1YmxpY0tleSA9IHU4YVRvSGV4KHB1YmxpY0tleSk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmVyaWZ5KHNpZ25lZE1lc3NhZ2UsIHNpZ25hdHVyZSwgaGV4UHVibGljS2V5KS5pc1ZhbGlkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleCh0eElkLCAyNTYpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVNlZWQgZGVjb2RlcyBhIGRvdCBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gdGhlIHNlZWQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKiBAcmV0dXJucyB7U2VlZH0gLSB0aGUgb2JqZWN0IFNlZWRcbiAgICovXG4gIGRlY29kZVNlZWQoc2VlZDogc3RyaW5nKTogU2VlZCB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogQnVmZmVyLmZyb20oZGVjb2RlZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVjb2RlIHRoZSBpbnRlcm5hbCBtZXRob2QgaGV4IGluIGNhc2Ugb2YgYSBwcm94eSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFVuc2lnbmVkVHJhbnNhY3Rpb259IHR4XG4gICAqIEBwYXJhbSB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckFyZ3N9XG4gICAqL1xuICBkZWNvZGVDYWxsTWV0aG9kKFxuICAgIHR4OiBzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIG9wdGlvbnM6IHsgbWV0YWRhdGFScGM6IHN0cmluZzsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9LFxuICApOiBUcmFuc2ZlckFyZ3Mge1xuICAgIGNvbnN0IHsgcmVnaXN0cnkgfSA9IG9wdGlvbnM7XG4gICAgbGV0IG1ldGhvZENhbGw6IEdlbmVyaWNDYWxsIHwgR2VuZXJpY0V4dHJpbnNpYztcbiAgICBpZiAodHlwZW9mIHR4ID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGF5bG9hZDogR2VuZXJpY0V4dHJpbnNpY1BheWxvYWQgPSBjcmVhdGVUeXBlVW5zYWZlKHJlZ2lzdHJ5LCAnRXh0cmluc2ljUGF5bG9hZCcsIFtcbiAgICAgICAgICB0eCxcbiAgICAgICAgICB7IHZlcnNpb246IEVYVFJJTlNJQ19WRVJTSU9OIH0sXG4gICAgICAgIF0pO1xuICAgICAgICBtZXRob2RDYWxsID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0NhbGwnLCBbcGF5bG9hZC5tZXRob2RdKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpYycsIGhleFRvVThhKHR4KSwge1xuICAgICAgICAgIGlzU2lnbmVkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0NhbGwnLCB0eC5tZXRob2QpO1xuICAgIH1cbiAgICBjb25zdCBtZXRob2QgPSBtZXRob2RDYWxsLmFyZ3NbUFJPWFlfTUVUSE9EX0FSR107XG4gICAgY29uc3QgZGVjb2RlZEFyZ3MgPSBtZXRob2QudG9KU09OKCkgYXMgdW5rbm93biBhcyBQcm94eUNhbGxBcmdzO1xuICAgIHJldHVybiBkZWNvZGVkQXJncy5hcmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIGtleVBhaXJGcm9tU2VlZCBnZW5lcmF0ZXMgYW4gb2JqZWN0IHdpdGggc2VjcmV0S2V5IGFuZCBwdWJsaWNLZXkgdXNpbmcgdGhlIHBvbGthZG90IHNka1xuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgS2V5UGFpclxuICAgKi9cbiAga2V5UGFpckZyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBrZXlyaW5nID0gbmV3IEtleXJpbmcoeyB0eXBlOiAnZWQyNTUxOScgfSk7XG4gICAgY29uc3Qga2V5cmluZ1BhaXIgPSBrZXlyaW5nLmFkZEZyb21TZWVkKHNlZWQpO1xuICAgIGNvbnN0IHBhaXJKc29uID0ga2V5cmluZ1BhaXIudG9Kc29uKCk7XG4gICAgY29uc3QgZGVjb2RlZEtleVBhaXIgPSBkZWNvZGVQYWlyKCcnLCBiYXNlNjREZWNvZGUocGFpckpzb24uZW5jb2RlZCksIHBhaXJKc29uLmVuY29kaW5nLnR5cGUpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oZGVjb2RlZEtleVBhaXIuc2VjcmV0S2V5KS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbmluZyBmdW5jdGlvbi4gSW1wbGVtZW50IHRoaXMgb24gdGhlIE9GRkxJTkUgc2lnbmluZyBkZXZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5cmluZ1BhaXJ9IHBhaXIgLSBUaGUgc2lnbmluZyBwYWlyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmluZ1BheWxvYWQgLSBQYXlsb2FkIHRvIHNpZ24uXG4gICAqIEBwYXJhbSB7VW5zaWduZWRUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb24gLSByYXcgdHJhbnNhY3Rpb24gdG8gc2lnblxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge0hleFN0cmluZ30gb3B0aW9ucy5tZXRhZGF0YVJwYyAtIG1ldGFkYXRhIHRoYXQgaXMgbmVlZGVkIGZvciBkb3QgdG8gc2lnblxuICAgKiBAcGFyYW0ge1R5cGVSZWdpc3RyeX0gb3B0aW9ucy5yZWdpc3RyeSAtIG1ldGFkYXRhIHRoYXQgaXMgbmVlZGVkIGZvciBkb3QgdG8gc2lnblxuICAgKi9cbiAgY3JlYXRlU2lnbmVkVHgoXG4gICAgcGFpcjogS2V5cmluZ1BhaXIsXG4gICAgc2lnbmluZ1BheWxvYWQ6IHN0cmluZyxcbiAgICB0cmFuc2FjdGlvbjogVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBvcHRpb25zOiB7IG1ldGFkYXRhUnBjOiBIZXhTdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lzdHJ5LCBtZXRhZGF0YVJwYyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gcmVnaXN0cnlcbiAgICAgIC5jcmVhdGVUeXBlKCdFeHRyaW5zaWNQYXlsb2FkJywgc2lnbmluZ1BheWxvYWQsIHtcbiAgICAgICAgdmVyc2lvbjogRVhUUklOU0lDX1ZFUlNJT04sXG4gICAgICB9KVxuICAgICAgLnNpZ24ocGFpcik7XG5cbiAgICAvLyBTZXJpYWxpemUgYSBzaWduZWQgdHJhbnNhY3Rpb24uXG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24sIHNpZ25hdHVyZSwgbWV0YWRhdGFScGMsIHJlZ2lzdHJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIHRoZSBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIFRyYW5zYWN0aW9uIHRvIHNlcmlhbGl6ZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIFNpZ25hdHVyZSBvZiB0aGUgbWVzc2FnZVxuICAgKiBAcGFyYW0gbWV0YWRhdGFScGMgTmV0d29yayBtZXRhZGF0YVxuICAgKiBAcGFyYW0gcmVnaXN0cnkgVHJhbnNhY3Rpb24gcmVnaXN0cnlcbiAgICogQHJldHVybnMgc3RyaW5nIFNlcmlhbGl6ZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIG1ldGFkYXRhUnBjOiBgMHgke3N0cmluZ31gLCByZWdpc3RyeSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdC5zaWduZWRUeCh0cmFuc2FjdGlvbiwgc2lnbmF0dXJlLCB7XG4gICAgICBtZXRhZGF0YVJwYyxcbiAgICAgIHJlZ2lzdHJ5LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZXMgdGhlIGRvdCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW3NzNThGb3JtYXRdXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBkZWNvZGVEb3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgc3M1OEZvcm1hdD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGFkZHJlc3MsIHVuZGVmaW5lZCwgc3M1OEZvcm1hdCkpLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgICByZXR1cm4ga2V5cGFpci5nZXRBZGRyZXNzKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGVuY29kZURvdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZW5jb2RlQWRkcmVzcyhhZGRyZXNzLCBzczU4Rm9ybWF0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHR4SGFzaCBvZiBhIHNpZ25lZCB0eEhleFxuICAgKlxuICAgKiBAcGFyYW0gdHhIZXggc2lnbmVkIHRyYW5zYWN0aW9uIGhleFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0VHhIYXNoKHR4SGV4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb25zdHJ1Y3QudHhIYXNoKHR4SGV4KTtcbiAgfVxuXG4gIGdldE1hdGVyaWFsKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KTogTWF0ZXJpYWwge1xuICAgIGNvbnN0IG5ldHdvcmtDb25maWcgPSBjb2luQ29uZmlnLm5ldHdvcmsgYXMgRG90TmV0d29yaztcbiAgICBjb25zdCB7IHNwZWNOYW1lLCBzcGVjVmVyc2lvbiwgY2hhaW5OYW1lLCB0eFZlcnNpb24sIGdlbmVzaXNIYXNoIH0gPSBuZXR3b3JrQ29uZmlnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNwZWNOYW1lLFxuICAgICAgc3BlY1ZlcnNpb24sXG4gICAgICBjaGFpbk5hbWUsXG4gICAgICBtZXRhZGF0YTogbmV0d29ya0NvbmZpZy5tZXRhZGF0YVJwYyxcbiAgICAgIHR4VmVyc2lvbixcbiAgICAgIGdlbmVzaXNIYXNoLFxuICAgIH0gYXMgTWF0ZXJpYWw7XG4gIH1cblxuICBpc1NpZ25pbmdQYXlsb2FkKHBheWxvYWQ6IERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeCk6IHBheWxvYWQgaXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHtcbiAgICByZXR1cm4gKHBheWxvYWQgYXMgRGVjb2RlZFNpZ25pbmdQYXlsb2FkKS5ibG9ja0hhc2ggIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzUHJveHlUcmFuc2Zlcihhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgUHJveHlBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBQcm94eUFyZ3MpLnJlYWwgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzVHJhbnNmZXIoYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIFRyYW5zZmVyQXJncyB7XG4gICAgcmV0dXJuIChhcmcgYXMgVHJhbnNmZXJBcmdzKS5kZXN0Py5pZCAhPT0gdW5kZWZpbmVkICYmIChhcmcgYXMgVHJhbnNmZXJBcmdzKS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIGFuZCByZXR1cm5zIHRoZSBzaWduYXR1cmUgaW4gaGV4IGZvcm1hdCBnaXZlbiBhIHJhdyBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1R4IHNpZ25lZCByYXcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgcmVnaXN0cnkgZG90IHJlZ2lzdHJ5IHVzZWQgdG8gcmV0cmlldmUgdGhlIHNpZ25hdHVyZVxuICAgKi9cbiAgcmVjb3ZlclNpZ25hdHVyZUZyb21SYXdUeChyYXdUeDogc3RyaW5nLCBvcHRpb25zOiB7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBtZXRob2RDYWxsID0gcmVnaXN0cnkuY3JlYXRlVHlwZSgnRXh0cmluc2ljJywgcmF3VHgsIHtcbiAgICAgIGlzU2lnbmVkOiB0cnVlLFxuICAgIH0pO1xuICAgIGxldCBzaWduYXR1cmUgPSB1OGFUb0hleChtZXRob2RDYWxsLnNpZ25hdHVyZSkgYXMgc3RyaW5nO1xuXG4gICAgLy8gcmVtb3ZlIDB4IGZyb20gdGhlIHNpZ25hdHVyZSBzaW5jZSB0aGlzIGlzIGhvdyBpdCdzIHJldHVybmVkIGZyb20gVFNTIHNpZ25pbmdcbiAgICBpZiAoc2lnbmF0dXJlLnN0YXJ0c1dpdGgoJzB4JykpIHtcbiAgICAgIHNpZ25hdHVyZSA9IHNpZ25hdHVyZS5zdWJzdHIoMik7XG4gICAgfVxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge0tleVBhaXJ9XG4gICAqL1xuICBkZWNvZGVEb3RBZGRyZXNzVG9LZXlQYWlyKGFkZHJlc3M6IHN0cmluZywgc3M1OEZvcm1hdD86IG51bWJlcik6IEtleVBhaXIge1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHB1YjogQnVmZmVyLmZyb20oZGVjb2RlQWRkcmVzcyhhZGRyZXNzLCB1bmRlZmluZWQsIHNzNThGb3JtYXQpKS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGlucHV0IGlzIGEgaGV4IHN0cmluZyB3aXRoIHdpdGggMCB2YWx1ZVxuICAgKiB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgYSBnaXZlbiB0cmFuc2FjdGlvbiBpcyBpbW1vcnRhbCBvciBtb3J0YWxcbiAgICogQHBhcmFtIGhleFZhbHVlXG4gICAqL1xuICBpc1plcm9IZXgoaGV4VmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoZXhWYWx1ZSA9PT0gJzB4MDAnO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQTBFO0FBQzFFLDBEQUEyRDtBQUUzRCxzRUFBMkU7QUFDM0UseUNBQXFFO0FBQ3JFLHVEQUFzRTtBQUd0RSxzRUFBMEQ7QUFDMUQsMERBQStCO0FBQy9CLHdCQUE0QjtBQUM1Qiw4Q0FBc0g7QUFFdEgsMERBQTZCO0FBRTdCLDJDQUEyRztBQUMzRyxnREFBd0I7QUFFeEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDM0IsNkVBQTZFO0FBQzdFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQWtDO0lBQ2hFLENBQUMsS0FBSyxFQUFFLDJCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDLE1BQU0sRUFBRSwyQkFBZ0IsQ0FBQyxTQUFTLENBQUM7Q0FDckMsQ0FBQyxDQUFDO0FBRUgsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJO1lBQ0YsdUJBQWEsQ0FBQyxZQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sWUFBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLGVBQVEsQ0FBQyxHQUFHLENBQUMs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QUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsT0FBTyxRQUFRLEtBQUssTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGVBQThCO1FBQzdDLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBcUIsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUE5UkQsc0JBOFJDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWNvZGVBZGRyZXNzLCBlbmNvZGVBZGRyZXNzLCBLZXlyaW5nIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcnO1xuaW1wb3J0IHsgZGVjb2RlUGFpciB9IGZyb20gJ0Bwb2xrYWRvdC9rZXlyaW5nL3BhaXIvZGVjb2RlJztcbmltcG9ydCB7IEtleXJpbmdQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvdHlwZXMnO1xuaW1wb3J0IHsgRVhUUklOU0lDX1ZFUlNJT04gfSBmcm9tICdAcG9sa2Fkb3QvdHlwZXMvZXh0cmluc2ljL3Y0L0V4dHJpbnNpYyc7XG5pbXBvcnQgeyBoZXhUb1U4YSwgaXNIZXgsIHU4YVRvSGV4LCB1OGFUb1U4YSB9IGZyb20gJ0Bwb2xrYWRvdC91dGlsJztcbmltcG9ydCB7IGJhc2U2NERlY29kZSwgc2lnbmF0dXJlVmVyaWZ5IH0gZnJvbSAnQHBvbGthZG90L3V0aWwtY3J5cHRvJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBjb25zdHJ1Y3QgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBEb3RBc3NldFR5cGVzLCBCYXNlVXRpbHMsIERvdEFkZHJlc3NGb3JtYXQsIGlzQmFzZTU4LCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSwgU2VlZCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBIZXhTdHJpbmcsIE1hdGVyaWFsLCBQcm94eUFyZ3MsIFByb3h5Q2FsbEFyZ3MsIFRyYW5zZmVyQXJncywgVHhNZXRob2QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBEb3ROZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVVuc2FmZSwgR2VuZXJpY0NhbGwsIEdlbmVyaWNFeHRyaW5zaWMsIEdlbmVyaWNFeHRyaW5zaWNQYXlsb2FkIH0gZnJvbSAnQHBvbGthZG90L3R5cGVzJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuXG5jb25zdCBQUk9YWV9NRVRIT0RfQVJHID0gMjtcbi8vIG1hcCB0byByZXRyaWV2ZSB0aGUgYWRkcmVzcyBlbmNvZGluZyBmb3JtYXQgd2hlbiB0aGUga2V5IGlzIHRoZSBhc3NldCBuYW1lXG5jb25zdCBjb2luVG9BZGRyZXNzTWFwID0gbmV3IE1hcDxEb3RBc3NldFR5cGVzLCBEb3RBZGRyZXNzRm9ybWF0PihbXG4gIFsnZG90JywgRG90QWRkcmVzc0Zvcm1hdC5wb2xrYWRvdF0sXG4gIFsndGRvdCcsIERvdEFkZHJlc3NGb3JtYXQuc3Vic3RyYXRlXSxcbl0pO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGVuY29kZUFkZHJlc3MoaXNIZXgoYWRkcmVzcykgPyBoZXhUb1U4YShhZGRyZXNzKSA6IGRlY29kZUFkZHJlc3MoYWRkcmVzcykpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzSGV4KGhhc2gsIDI1Nik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFBydiA9IGhleFRvVThhKGtleSk7XG4gICAgICByZXR1cm4gZGVjb2RlZFBydi5sZW5ndGggPT09IG5hY2wuc2lnbi5zZWNyZXRLZXlMZW5ndGggLyAyO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBwdWJLZXkgPSBrZXk7XG5cbiAgICAvLyBjb252ZXJ0IGJhc2U1OCBwdWIga2V5IHRvIGhleCBmb3JtYXRcbiAgICAvLyB0c3MgY29tbW9uIHB1YiBpcyBpbiBiYXNlNTggZm9ybWF0IGFuZCBkZWNvZGVzIHRvIGxlbmd0aCBvZiAzMlxuICAgIGlmIChpc0Jhc2U1OChwdWJLZXksIDMyKSkge1xuICAgICAgY29uc3QgYmFzZTU4RGVjb2RlID0gYnM1OC5kZWNvZGUocHViS2V5KTtcbiAgICAgIHB1YktleSA9IGJhc2U1OERlY29kZS50b1N0cmluZygnaGV4Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHB1YktleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpZ25hdHVyZVU4YSA9IHU4YVRvVThhKHNpZ25hdHVyZSk7XG4gICAgcmV0dXJuIFs2NCwgNjUsIDY2XS5pbmNsdWRlcyhzaWduYXR1cmVVOGEubGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyB0aGUgc2lnbmF0dXJlIG9uIGEgZ2l2ZW4gbWVzc2FnZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmVkTWVzc2FnZSB0aGUgc2lnbmVkIG1lc3NhZ2UgZm9yIHRoZSBzaWduYXR1cmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyBvZiB0aGUgc2lnbmVyXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB3aGV0aGVyIHRoZSBzaWduYXR1cmUgaXMgdmFsaWQgb3Igbm90XG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUoc2lnbmVkTWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZywgYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHVibGljS2V5ID0gZGVjb2RlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICBjb25zdCBoZXhQdWJsaWNLZXkgPSB1OGFUb0hleChwdWJsaWNLZXkpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVZlcmlmeShzaWduZWRNZXNzYWdlLCBzaWduYXR1cmUsIGhleFB1YmxpY0tleSkuaXNWYWxpZDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNIZXgodHhJZCwgMjU2KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVTZWVkIGRlY29kZXMgYSBkb3Qgc2VlZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZC5cbiAgICogQHJldHVybnMge1NlZWR9IC0gdGhlIG9iamVjdCBTZWVkXG4gICAqL1xuICBkZWNvZGVTZWVkKHNlZWQ6IHN0cmluZyk6IFNlZWQge1xuICAgIGNvbnN0IGRlY29kZWQgPSBiYXNlMzIuZGVjb2RlLmFzQnl0ZXMoc2VlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlZWQ6IEJ1ZmZlci5mcm9tKGRlY29kZWQpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGNhcGl0YWxpemUgdGhlIGZpcnN0IGxldHRlciBvZiBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWwuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGRlY29kZSB0aGUgaW50ZXJuYWwgbWV0aG9kIGhleCBpbiBjYXNlIG9mIGEgcHJveHkgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9ufSB0eFxuICAgKiBAcGFyYW0geyBtZXRhZGF0YVJwYzogc3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJBcmdzfVxuICAgKi9cbiAgZGVjb2RlQ2FsbE1ldGhvZChcbiAgICB0eDogc3RyaW5nIHwgVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBvcHRpb25zOiB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSxcbiAgKTogVHJhbnNmZXJBcmdzIHtcbiAgICBjb25zdCB7IHJlZ2lzdHJ5IH0gPSBvcHRpb25zO1xuICAgIGxldCBtZXRob2RDYWxsOiBHZW5lcmljQ2FsbCB8IEdlbmVyaWNFeHRyaW5zaWM7XG4gICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IEdlbmVyaWNFeHRyaW5zaWNQYXlsb2FkID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0V4dHJpbnNpY1BheWxvYWQnLCBbXG4gICAgICAgICAgdHgsXG4gICAgICAgICAgeyB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTiB9LFxuICAgICAgICBdKTtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IGNyZWF0ZVR5cGVVbnNhZmUocmVnaXN0cnksICdDYWxsJywgW3BheWxvYWQubWV0aG9kXSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdFeHRyaW5zaWMnLCBoZXhUb1U4YSh0eCksIHtcbiAgICAgICAgICBpc1NpZ25lZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdDYWxsJywgdHgubWV0aG9kKTtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gbWV0aG9kQ2FsbC5hcmdzW1BST1hZX01FVEhPRF9BUkddO1xuICAgIGNvbnN0IGRlY29kZWRBcmdzID0gbWV0aG9kLnRvSlNPTigpIGFzIHVua25vd24gYXMgUHJveHlDYWxsQXJncztcbiAgICByZXR1cm4gZGVjb2RlZEFyZ3MuYXJncztcbiAgfVxuXG4gIC8qKlxuICAgKiBrZXlQYWlyRnJvbVNlZWQgZ2VuZXJhdGVzIGFuIG9iamVjdCB3aXRoIHNlY3JldEtleSBhbmQgcHVibGljS2V5IHVzaW5nIHRoZSBwb2xrYWRvdCBzZGtcbiAgICogQHBhcmFtIHNlZWQgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIGtleVBhaXJGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogS2V5UGFpciB7XG4gICAgY29uc3Qga2V5cmluZyA9IG5ldyBLZXlyaW5nKHsgdHlwZTogJ2VkMjU1MTknIH0pO1xuICAgIGNvbnN0IGtleXJpbmdQYWlyID0ga2V5cmluZy5hZGRGcm9tU2VlZChzZWVkKTtcbiAgICBjb25zdCBwYWlySnNvbiA9IGtleXJpbmdQYWlyLnRvSnNvbigpO1xuICAgIGNvbnN0IGRlY29kZWRLZXlQYWlyID0gZGVjb2RlUGFpcignJywgYmFzZTY0RGVjb2RlKHBhaXJKc29uLmVuY29kZWQpLCBwYWlySnNvbi5lbmNvZGluZy50eXBlKTtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwcnY6IEJ1ZmZlci5mcm9tKGRlY29kZWRLZXlQYWlyLnNlY3JldEtleSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25pbmcgZnVuY3Rpb24uIEltcGxlbWVudCB0aGlzIG9uIHRoZSBPRkZMSU5FIHNpZ25pbmcgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleXJpbmdQYWlyfSBwYWlyIC0gVGhlIHNpZ25pbmcgcGFpci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25pbmdQYXlsb2FkIC0gUGF5bG9hZCB0byBzaWduLlxuICAgKiBAcGFyYW0ge1Vuc2lnbmVkVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIC0gcmF3IHRyYW5zYWN0aW9uIHRvIHNpZ25cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtIZXhTdHJpbmd9IG9wdGlvbnMubWV0YWRhdGFScGMgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICogQHBhcmFtIHtUeXBlUmVnaXN0cnl9IG9wdGlvbnMucmVnaXN0cnkgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICovXG4gIGNyZWF0ZVNpZ25lZFR4KFxuICAgIHBhaXI6IEtleXJpbmdQYWlyLFxuICAgIHNpZ25pbmdQYXlsb2FkOiBzdHJpbmcsXG4gICAgdHJhbnNhY3Rpb246IFVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgb3B0aW9uczogeyBtZXRhZGF0YVJwYzogSGV4U3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSwgbWV0YWRhdGFScGMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgeyBzaWduYXR1cmUgfSA9IHJlZ2lzdHJ5XG4gICAgICAuY3JlYXRlVHlwZSgnRXh0cmluc2ljUGF5bG9hZCcsIHNpZ25pbmdQYXlsb2FkLCB7XG4gICAgICAgIHZlcnNpb246IEVYVFJJTlNJQ19WRVJTSU9OLFxuICAgICAgfSlcbiAgICAgIC5zaWduKHBhaXIpO1xuXG4gICAgLy8gU2VyaWFsaXplIGEgc2lnbmVkIHRyYW5zYWN0aW9uLlxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIG1ldGFkYXRhUnBjLCByZWdpc3RyeSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiB0byBzZXJpYWxpemVcbiAgICogQHBhcmFtIHNpZ25hdHVyZSBTaWduYXR1cmUgb2YgdGhlIG1lc3NhZ2VcbiAgICogQHBhcmFtIG1ldGFkYXRhUnBjIE5ldHdvcmsgbWV0YWRhdGFcbiAgICogQHBhcmFtIHJlZ2lzdHJ5IFRyYW5zYWN0aW9uIHJlZ2lzdHJ5XG4gICAqIEByZXR1cm5zIHN0cmluZyBTZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICBzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbiwgc2lnbmF0dXJlLCBtZXRhZGF0YVJwYzogYDB4JHtzdHJpbmd9YCwgcmVnaXN0cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb25zdHJ1Y3Quc2lnbmVkVHgodHJhbnNhY3Rpb24sIHNpZ25hdHVyZSwge1xuICAgICAgbWV0YWRhdGFScGMsXG4gICAgICByZWdpc3RyeSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZGVjb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShkZWNvZGVBZGRyZXNzKGFkZHJlc3MsIHVuZGVmaW5lZCwgc3M1OEZvcm1hdCkpLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgICByZXR1cm4ga2V5cGFpci5nZXRBZGRyZXNzKHNzNThGb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZXMgdGhlIGRvdCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW3NzNThGb3JtYXRdXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBlbmNvZGVEb3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgc3M1OEZvcm1hdD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVuY29kZUFkZHJlc3MoYWRkcmVzcywgc3M1OEZvcm1hdCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB0eEhhc2ggb2YgYSBzaWduZWQgdHhIZXhcbiAgICpcbiAgICogQHBhcmFtIHR4SGV4IHNpZ25lZCB0cmFuc2FjdGlvbiBoZXhcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdldFR4SGFzaCh0eEhleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29uc3RydWN0LnR4SGFzaCh0eEhleCk7XG4gIH1cblxuICBnZXRNYXRlcmlhbChjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPik6IE1hdGVyaWFsIHtcbiAgICBjb25zdCBuZXR3b3JrQ29uZmlnID0gY29pbkNvbmZpZy5uZXR3b3JrIGFzIERvdE5ldHdvcms7XG4gICAgY29uc3QgeyBzcGVjTmFtZSwgc3BlY1ZlcnNpb24sIGNoYWluTmFtZSwgdHhWZXJzaW9uLCBnZW5lc2lzSGFzaCB9ID0gbmV0d29ya0NvbmZpZztcblxuICAgIHJldHVybiB7XG4gICAgICBzcGVjTmFtZSxcbiAgICAgIHNwZWNWZXJzaW9uLFxuICAgICAgY2hhaW5OYW1lLFxuICAgICAgbWV0YWRhdGE6IG5ldHdvcmtDb25maWcubWV0YWRhdGFScGMsXG4gICAgICB0eFZlcnNpb24sXG4gICAgICBnZW5lc2lzSGFzaCxcbiAgICB9IGFzIE1hdGVyaWFsO1xuICB9XG5cbiAgaXNTaWduaW5nUGF5bG9hZChwYXlsb2FkOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiBwYXlsb2FkIGlzIERlY29kZWRTaWduaW5nUGF5bG9hZCB7XG4gICAgcmV0dXJuIChwYXlsb2FkIGFzIERlY29kZWRTaWduaW5nUGF5bG9hZCkuYmxvY2tIYXNoICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1Byb3h5VHJhbnNmZXIoYXJnOiBUeE1ldGhvZFsnYXJncyddKTogYXJnIGlzIFByb3h5QXJncyB7XG4gICAgcmV0dXJuIChhcmcgYXMgUHJveHlBcmdzKS5yZWFsICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1RyYW5zZmVyKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBUcmFuc2ZlckFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFRyYW5zZmVyQXJncykuZGVzdD8uaWQgIT09IHVuZGVmaW5lZCAmJiAoYXJnIGFzIFRyYW5zZmVyQXJncykudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgc2lnbmF0dXJlIGluIGhleCBmb3JtYXQgZ2l2ZW4gYSByYXcgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUeCBzaWduZWQgcmF3IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlZ2lzdHJ5IGRvdCByZWdpc3RyeSB1c2VkIHRvIHJldHJpZXZlIHRoZSBzaWduYXR1cmVcbiAgICovXG4gIHJlY292ZXJTaWduYXR1cmVGcm9tUmF3VHgocmF3VHg6IHN0cmluZywgb3B0aW9uczogeyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgcmVnaXN0cnkgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpYycsIHJhd1R4LCB7XG4gICAgICBpc1NpZ25lZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBsZXQgc2lnbmF0dXJlID0gdThhVG9IZXgobWV0aG9kQ2FsbC5zaWduYXR1cmUpIGFzIHN0cmluZztcblxuICAgIC8vIHJlbW92ZSAweCBmcm9tIHRoZSBzaWduYXR1cmUgc2luY2UgdGhpcyBpcyBob3cgaXQncyByZXR1cm5lZCBmcm9tIFRTUyBzaWduaW5nXG4gICAgaWYgKHNpZ25hdHVyZS5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmUuc3Vic3RyKDIpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZXMgdGhlIGRvdCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGZvcm1hdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc1xuICAgKiBAcGFyYW0ge251bWJlcn0gW3NzNThGb3JtYXRdXG4gICAqIEByZXR1cm5zIHtLZXlQYWlyfVxuICAgKi9cbiAgZGVjb2RlRG90QWRkcmVzc1RvS2V5UGFpcihhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ/OiBudW1iZXIpOiBLZXlQYWlyIHtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoYWRkcmVzcywgdW5kZWZpbmVkLCBzczU4Rm9ybWF0KSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBpbnB1dCBpcyBhIGhleCBzdHJpbmcgd2l0aCB3aXRoIDAgdmFsdWVcbiAgICogdXNlZCB0byBjaGVjayB3aGV0aGVyIGEgZ2l2ZW4gdHJhbnNhY3Rpb24gaXMgaW1tb3J0YWwgb3IgbW9ydGFsXG4gICAqIEBwYXJhbSBoZXhWYWx1ZVxuICAgKi9cbiAgaXNaZXJvSGV4KGhleFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGV4VmFsdWUgPT09ICcweDAwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhbiBhc3NldCBuYW1lIGFuZCByZXR1cm5zIHRoZSByZXNwZWN0aXZlIGFkZHJlc3MgdG8gZm9ybWF0IHRvXG4gICAqIHNpbmNlIHBvbGthZG90IGFkZHJlc3NlcyBkaWZmZXIgZGVwZW5kaW5nIG9uIHRoZSBuZXR3b3JrXG4gICAqIHJlZjogaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9sZWFybi1hY2NvdW50c1xuICAgKiBAcGFyYW0gbmV0d29ya0NvaW5OYW1lXG4gICAqL1xuICBnZXRBZGRyZXNzRm9ybWF0KG5ldHdvcmtDb2luTmFtZTogRG90QXNzZXRUeXBlcyk6IERvdEFkZHJlc3NGb3JtYXQge1xuICAgIHJldHVybiBjb2luVG9BZGRyZXNzTWFwLmdldChuZXR3b3JrQ29pbk5hbWUpIGFzIERvdEFkZHJlc3NGb3JtYXQ7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
2
|
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
3
|
-
import { TransactionType } from '
|
|
3
|
+
import { TransactionType } from '@bitgo/sdk-core';
|
|
4
4
|
import { Transaction } from './transaction';
|
|
5
5
|
import { TransactionBuilder } from './transactionBuilder';
|
|
6
6
|
export declare class WithdrawUnstakedBuilder extends TransactionBuilder {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawUnstakedBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/withdrawUnstakedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGxG,OAAO,
|
|
1
|
+
{"version":3,"file":"withdrawUnstakedBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/withdrawUnstakedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGxG,OAAO,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAYjD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAM1C,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAarF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAWjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;CAWvB"}
|