@bitgo/account-lib 3.0.0-hotfix.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mocharc.js +1 -1
- package/CHANGELOG.md +192 -30
- package/README.md +5 -7
- package/dist/resources/README.md +0 -22
- package/dist/src/index.d.ts +34 -20
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +57 -40
- package/dist/tsconfig.tsbuildinfo +25937 -40830
- package/package.json +29 -77
- package/resources/README.md +0 -22
- package/dist/browser/bitgo-account-lib.js +0 -2
- package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
- package/dist/resources/hbar/protobuf/BasicTypes.proto +0 -424
- package/dist/resources/hbar/protobuf/CryptoCreate.proto +0 -47
- package/dist/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
- package/dist/resources/hbar/protobuf/Duration.proto +0 -28
- package/dist/resources/hbar/protobuf/Timestamp.proto +0 -34
- package/dist/resources/hbar/protobuf/Transaction.proto +0 -35
- package/dist/resources/hbar/protobuf/TransactionBody.proto +0 -24
- package/dist/resources/hbar/protobuf/TransactionContents.proto +0 -33
- package/dist/resources/hbar/protobuf/hedera.d.ts +0 -4612
- package/dist/resources/hbar/protobuf/hedera.js +0 -12192
- package/dist/resources/trx/protobuf/Contract.proto +0 -256
- package/dist/resources/trx/protobuf/Discover.proto +0 -44
- package/dist/resources/trx/protobuf/tron.d.ts +0 -11024
- package/dist/resources/trx/protobuf/tron.js +0 -31510
- package/dist/resources/trx/protobuf/tron.proto +0 -677
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -42
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/assetTransferBuilder.js +0 -105
- package/dist/src/coin/algo/errors.d.ts +0 -11
- package/dist/src/coin/algo/errors.d.ts.map +0 -1
- package/dist/src/coin/algo/errors.js +0 -27
- package/dist/src/coin/algo/ifaces.d.ts +0 -46
- package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
- package/dist/src/coin/algo/ifaces.js +0 -3
- package/dist/src/coin/algo/index.d.ts +0 -13
- package/dist/src/coin/algo/index.d.ts.map +0 -1
- package/dist/src/coin/algo/index.js +0 -47
- package/dist/src/coin/algo/keyPair.d.ts +0 -25
- package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
- package/dist/src/coin/algo/keyPair.js +0 -77
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -239
- package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
- package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
- package/dist/src/coin/algo/seedEncoding.js +0 -97
- package/dist/src/coin/algo/transaction.d.ts +0 -75
- package/dist/src/coin/algo/transaction.d.ts.map +0 -1
- package/dist/src/coin/algo/transaction.js +0 -251
- package/dist/src/coin/algo/transactionBuilder.d.ts +0 -204
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilder.js +0 -373
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilderFactory.js +0 -52
- package/dist/src/coin/algo/transferBuilder.d.ts +0 -40
- package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transferBuilder.js +0 -89
- package/dist/src/coin/algo/txnSchema.d.ts +0 -7
- package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
- package/dist/src/coin/algo/txnSchema.js +0 -68
- package/dist/src/coin/algo/utils.d.ts +0 -249
- package/dist/src/coin/algo/utils.d.ts.map +0 -1
- package/dist/src/coin/algo/utils.js +0 -539
- package/dist/src/coin/avaxc/index.d.ts +0 -8
- package/dist/src/coin/avaxc/index.d.ts.map +0 -1
- package/dist/src/coin/avaxc/index.js +0 -35
- package/dist/src/coin/avaxc/keyPair.d.ts +0 -26
- package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
- package/dist/src/coin/avaxc/keyPair.js +0 -83
- package/dist/src/coin/avaxc/resources.d.ts +0 -12
- package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
- package/dist/src/coin/avaxc/resources.js +0 -27
- package/dist/src/coin/avaxc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +0 -45
- package/dist/src/coin/avaxc/transferBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transferBuilder.js +0 -25
- package/dist/src/coin/avaxc/utils.d.ts +0 -39
- package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
- package/dist/src/coin/avaxc/utils.js +0 -70
- package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
- package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/avaxc/walletUtil.js +0 -62
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
- package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
- package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
- package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
- package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseUtils.js +0 -3
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
- package/dist/src/coin/baseCoin/enum.d.ts +0 -43
- package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/enum.js +0 -70
- package/dist/src/coin/baseCoin/errors.d.ts +0 -65
- package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/errors.js +0 -156
- package/dist/src/coin/baseCoin/iface.d.ts +0 -162
- package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/iface.js +0 -38
- package/dist/src/coin/baseCoin/index.d.ts +0 -12
- package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/index.js +0 -41
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
- package/dist/src/coin/celo/index.d.ts +0 -8
- package/dist/src/coin/celo/index.d.ts.map +0 -1
- package/dist/src/coin/celo/index.js +0 -35
- package/dist/src/coin/celo/resources.d.ts +0 -10
- package/dist/src/coin/celo/resources.d.ts.map +0 -1
- package/dist/src/coin/celo/resources.js +0 -26
- package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingBuilder.js +0 -277
- package/dist/src/coin/celo/stakingCall.d.ts +0 -7
- package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingCall.js +0 -13
- package/dist/src/coin/celo/stakingUtils.d.ts +0 -15
- package/dist/src/coin/celo/stakingUtils.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingUtils.js +0 -98
- package/dist/src/coin/celo/transaction.d.ts +0 -10
- package/dist/src/coin/celo/transaction.d.ts.map +0 -1
- package/dist/src/coin/celo/transaction.js +0 -37
- package/dist/src/coin/celo/transactionBuilder.d.ts +0 -86
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transactionBuilder.js +0 -228
- package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
- package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transferBuilder.js +0 -27
- package/dist/src/coin/celo/types.d.ts +0 -52
- package/dist/src/coin/celo/types.d.ts.map +0 -1
- package/dist/src/coin/celo/types.js +0 -222
- package/dist/src/coin/celo/utils.d.ts +0 -18
- package/dist/src/coin/celo/utils.d.ts.map +0 -1
- package/dist/src/coin/celo/utils.js +0 -99
- package/dist/src/coin/cspr/constants.d.ts +0 -19
- package/dist/src/coin/cspr/constants.d.ts.map +0 -1
- package/dist/src/coin/cspr/constants.js +0 -28
- package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/delegateBuilder.js +0 -111
- package/dist/src/coin/cspr/ifaces.d.ts +0 -69
- package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
- package/dist/src/coin/cspr/ifaces.js +0 -3
- package/dist/src/coin/cspr/index.d.ts +0 -5
- package/dist/src/coin/cspr/index.d.ts.map +0 -1
- package/dist/src/coin/cspr/index.js +0 -29
- package/dist/src/coin/cspr/keyPair.d.ts +0 -18
- package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
- package/dist/src/coin/cspr/keyPair.js +0 -75
- package/dist/src/coin/cspr/transaction.d.ts +0 -55
- package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
- package/dist/src/coin/cspr/transaction.js +0 -227
- package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -124
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilder.js +0 -312
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -98
- package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
- package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transferBuilder.js +0 -106
- package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/undelegateBuilder.js +0 -111
- package/dist/src/coin/cspr/utils.d.ts +0 -188
- package/dist/src/coin/cspr/utils.d.ts.map +0 -1
- package/dist/src/coin/cspr/utils.js +0 -478
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -95
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts +0 -79
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/addressInitializationBuilder.js +0 -182
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts +0 -47
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/batchTransactionBuilder.js +0 -122
- package/dist/src/coin/dot/claimBuilder.d.ts +0 -58
- package/dist/src/coin/dot/claimBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/claimBuilder.js +0 -117
- package/dist/src/coin/dot/errors.d.ts +0 -8
- package/dist/src/coin/dot/errors.d.ts.map +0 -1
- package/dist/src/coin/dot/errors.js +0 -19
- package/dist/src/coin/dot/iface.d.ts +0 -194
- package/dist/src/coin/dot/iface.d.ts.map +0 -1
- package/dist/src/coin/dot/iface.js +0 -39
- package/dist/src/coin/dot/index.d.ts +0 -17
- package/dist/src/coin/dot/index.d.ts.map +0 -1
- package/dist/src/coin/dot/index.js +0 -53
- package/dist/src/coin/dot/keyPair.d.ts +0 -31
- package/dist/src/coin/dot/keyPair.d.ts.map +0 -1
- package/dist/src/coin/dot/keyPair.js +0 -74
- package/dist/src/coin/dot/singletonRegistry.d.ts +0 -7
- package/dist/src/coin/dot/singletonRegistry.d.ts.map +0 -1
- package/dist/src/coin/dot/singletonRegistry.js +0 -20
- package/dist/src/coin/dot/stakingBuilder.d.ts +0 -58
- package/dist/src/coin/dot/stakingBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/stakingBuilder.js +0 -135
- package/dist/src/coin/dot/transaction.d.ts +0 -65
- package/dist/src/coin/dot/transaction.d.ts.map +0 -1
- package/dist/src/coin/dot/transaction.js +0 -396
- package/dist/src/coin/dot/transactionBuilder.d.ts +0 -131
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/transactionBuilder.js +0 -332
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +0 -26
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +0 -93
- package/dist/src/coin/dot/transferBuilder.d.ts +0 -71
- package/dist/src/coin/dot/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/transferBuilder.js +0 -171
- package/dist/src/coin/dot/txnSchema.d.ts +0 -14
- package/dist/src/coin/dot/txnSchema.d.ts.map +0 -1
- package/dist/src/coin/dot/txnSchema.js +0 -104
- package/dist/src/coin/dot/unnominateBuilder.d.ts +0 -24
- package/dist/src/coin/dot/unnominateBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/unnominateBuilder.js +0 -50
- package/dist/src/coin/dot/unstakeBuilder.d.ts +0 -38
- package/dist/src/coin/dot/unstakeBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/unstakeBuilder.js +0 -89
- package/dist/src/coin/dot/utils.d.ts +0 -138
- package/dist/src/coin/dot/utils.d.ts.map +0 -1
- package/dist/src/coin/dot/utils.js +0 -269
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +0 -38
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +0 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.js +0 -90
- package/dist/src/coin/etc/index.d.ts +0 -8
- package/dist/src/coin/etc/index.d.ts.map +0 -1
- package/dist/src/coin/etc/index.js +0 -35
- package/dist/src/coin/etc/resources.d.ts +0 -10
- package/dist/src/coin/etc/resources.d.ts.map +0 -1
- package/dist/src/coin/etc/resources.js +0 -26
- package/dist/src/coin/etc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/etc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/etc/transactionBuilder.js +0 -45
- package/dist/src/coin/etc/transferBuilder.d.ts +0 -19
- package/dist/src/coin/etc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/etc/transferBuilder.js +0 -27
- package/dist/src/coin/etc/utils.d.ts +0 -18
- package/dist/src/coin/etc/utils.d.ts.map +0 -1
- package/dist/src/coin/etc/utils.js +0 -42
- package/dist/src/coin/eth/contractCall.d.ts +0 -8
- package/dist/src/coin/eth/contractCall.d.ts.map +0 -1
- package/dist/src/coin/eth/contractCall.js +0 -17
- package/dist/src/coin/eth/iface.d.ts +0 -122
- package/dist/src/coin/eth/iface.d.ts.map +0 -1
- package/dist/src/coin/eth/iface.js +0 -8
- package/dist/src/coin/eth/index.d.ts +0 -10
- package/dist/src/coin/eth/index.d.ts.map +0 -1
- package/dist/src/coin/eth/index.js +0 -39
- package/dist/src/coin/eth/keyPair.d.ts +0 -26
- package/dist/src/coin/eth/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth/keyPair.js +0 -85
- package/dist/src/coin/eth/transaction.d.ts +0 -64
- package/dist/src/coin/eth/transaction.d.ts.map +0 -1
- package/dist/src/coin/eth/transaction.js +0 -137
- package/dist/src/coin/eth/transactionBuilder.d.ts +0 -194
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transactionBuilder.js +0 -624
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts +0 -47
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +0 -113
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts +0 -14
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +0 -83
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts +0 -13
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +0 -68
- package/dist/src/coin/eth/transferBuilder.d.ts +0 -65
- package/dist/src/coin/eth/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/eth/transferBuilder.js +0 -197
- package/dist/src/coin/eth/types.d.ts +0 -39
- package/dist/src/coin/eth/types.d.ts.map +0 -1
- package/dist/src/coin/eth/types.js +0 -135
- package/dist/src/coin/eth/utils.d.ts +0 -202
- package/dist/src/coin/eth/utils.d.ts.map +0 -1
- package/dist/src/coin/eth/utils.js +0 -485
- package/dist/src/coin/eth/walletUtil.d.ts +0 -19
- package/dist/src/coin/eth/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/eth/walletUtil.js +0 -29
- package/dist/src/coin/eth2/index.d.ts +0 -2
- package/dist/src/coin/eth2/index.d.ts.map +0 -1
- package/dist/src/coin/eth2/index.js +0 -6
- package/dist/src/coin/eth2/keyPair.d.ts +0 -33
- package/dist/src/coin/eth2/keyPair.d.ts.map +0 -1
- package/dist/src/coin/eth2/keyPair.js +0 -65
- package/dist/src/coin/hbar/ifaces.d.ts +0 -26
- package/dist/src/coin/hbar/ifaces.d.ts.map +0 -1
- package/dist/src/coin/hbar/ifaces.js +0 -3
- package/dist/src/coin/hbar/index.d.ts +0 -6
- package/dist/src/coin/hbar/index.d.ts.map +0 -1
- package/dist/src/coin/hbar/index.js +0 -31
- package/dist/src/coin/hbar/keyPair.d.ts +0 -23
- package/dist/src/coin/hbar/keyPair.d.ts.map +0 -1
- package/dist/src/coin/hbar/keyPair.js +0 -70
- package/dist/src/coin/hbar/transaction.d.ts +0 -98
- package/dist/src/coin/hbar/transaction.d.ts.map +0 -1
- package/dist/src/coin/hbar/transaction.js +0 -245
- package/dist/src/coin/hbar/transactionBuilder.d.ts +0 -112
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/transactionBuilder.js +0 -264
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +0 -37
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +0 -77
- package/dist/src/coin/hbar/transferBuilder.d.ts +0 -44
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/transferBuilder.js +0 -130
- package/dist/src/coin/hbar/utils.d.ts +0 -139
- package/dist/src/coin/hbar/utils.d.ts.map +0 -1
- package/dist/src/coin/hbar/utils.js +0 -310
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +0 -28
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +0 -90
- package/dist/src/coin/near/constants.d.ts +0 -12
- package/dist/src/coin/near/constants.d.ts.map +0 -1
- package/dist/src/coin/near/constants.js +0 -15
- package/dist/src/coin/near/contractCallWrapper.d.ts +0 -33
- package/dist/src/coin/near/contractCallWrapper.d.ts.map +0 -1
- package/dist/src/coin/near/contractCallWrapper.js +0 -68
- package/dist/src/coin/near/errors.d.ts +0 -5
- package/dist/src/coin/near/errors.d.ts.map +0 -1
- package/dist/src/coin/near/errors.js +0 -12
- package/dist/src/coin/near/iface.d.ts +0 -40
- package/dist/src/coin/near/iface.d.ts.map +0 -1
- package/dist/src/coin/near/iface.js +0 -8
- package/dist/src/coin/near/index.d.ts +0 -11
- package/dist/src/coin/near/index.d.ts.map +0 -1
- package/dist/src/coin/near/index.js +0 -41
- package/dist/src/coin/near/keyPair.d.ts +0 -25
- package/dist/src/coin/near/keyPair.d.ts.map +0 -1
- package/dist/src/coin/near/keyPair.js +0 -73
- package/dist/src/coin/near/stakingActivateBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingActivateBuilder.js +0 -90
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.js +0 -89
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +0 -32
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.js +0 -89
- package/dist/src/coin/near/transaction.d.ts +0 -90
- package/dist/src/coin/near/transaction.d.ts.map +0 -1
- package/dist/src/coin/near/transaction.js +0 -368
- package/dist/src/coin/near/transactionBuilder.d.ts +0 -89
- package/dist/src/coin/near/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/transactionBuilder.js +0 -216
- package/dist/src/coin/near/transactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/near/transactionBuilderFactory.js +0 -71
- package/dist/src/coin/near/transferBuilder.d.ts +0 -26
- package/dist/src/coin/near/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/transferBuilder.js +0 -72
- package/dist/src/coin/near/utils.d.ts +0 -42
- package/dist/src/coin/near/utils.d.ts.map +0 -1
- package/dist/src/coin/near/utils.js +0 -92
- package/dist/src/coin/near/walletInitializationBuilder.d.ts +0 -12
- package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/near/walletInitializationBuilder.js +0 -20
- package/dist/src/coin/rbtc/index.d.ts +0 -8
- package/dist/src/coin/rbtc/index.d.ts.map +0 -1
- package/dist/src/coin/rbtc/index.js +0 -35
- package/dist/src/coin/rbtc/resources.d.ts +0 -10
- package/dist/src/coin/rbtc/resources.d.ts.map +0 -1
- package/dist/src/coin/rbtc/resources.js +0 -25
- package/dist/src/coin/rbtc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/rbtc/transactionBuilder.js +0 -44
- package/dist/src/coin/rbtc/transferBuilder.d.ts +0 -19
- package/dist/src/coin/rbtc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/rbtc/transferBuilder.js +0 -27
- package/dist/src/coin/rbtc/utils.d.ts +0 -18
- package/dist/src/coin/rbtc/utils.d.ts.map +0 -1
- package/dist/src/coin/rbtc/utils.js +0 -42
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +0 -33
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +0 -93
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts +0 -14
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +0 -1
- package/dist/src/coin/sol/ataInitializationTransaction.js +0 -81
- package/dist/src/coin/sol/constants.d.ts +0 -58
- package/dist/src/coin/sol/constants.d.ts.map +0 -1
- package/dist/src/coin/sol/constants.js +0 -76
- package/dist/src/coin/sol/iface.d.ts +0 -99
- package/dist/src/coin/sol/iface.d.ts.map +0 -1
- package/dist/src/coin/sol/iface.js +0 -3
- package/dist/src/coin/sol/index.d.ts +0 -11
- package/dist/src/coin/sol/index.d.ts.map +0 -1
- package/dist/src/coin/sol/index.js +0 -41
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +0 -12
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/instructionParamsFactory.js +0 -260
- package/dist/src/coin/sol/keyPair.d.ts +0 -26
- package/dist/src/coin/sol/keyPair.d.ts.map +0 -1
- package/dist/src/coin/sol/keyPair.js +0 -63
- package/dist/src/coin/sol/solInstructionFactory.d.ts +0 -10
- package/dist/src/coin/sol/solInstructionFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/solInstructionFactory.js +0 -213
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts +0 -41
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingActivateBuilder.js +0 -94
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +0 -23
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.js +0 -62
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +0 -31
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.js +0 -78
- package/dist/src/coin/sol/tokenEncodeDecode.d.ts +0 -85
- package/dist/src/coin/sol/tokenEncodeDecode.d.ts.map +0 -1
- package/dist/src/coin/sol/tokenEncodeDecode.js +0 -133
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts +0 -27
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/tokenTransferBuilder.js +0 -73
- package/dist/src/coin/sol/transaction.d.ts +0 -61
- package/dist/src/coin/sol/transaction.d.ts.map +0 -1
- package/dist/src/coin/sol/transaction.js +0 -369
- package/dist/src/coin/sol/transactionBuilder.d.ts +0 -101
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/transactionBuilder.js +0 -261
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +0 -76
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +0 -136
- package/dist/src/coin/sol/transferBuilder.d.ts +0 -26
- package/dist/src/coin/sol/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/transferBuilder.js +0 -67
- package/dist/src/coin/sol/utils.d.ts +0 -146
- package/dist/src/coin/sol/utils.d.ts.map +0 -1
- package/dist/src/coin/sol/utils.js +0 -361
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +0 -26
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +0 -71
- package/dist/src/coin/stx/abstractContractBuilder.d.ts +0 -19
- package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/abstractContractBuilder.js +0 -70
- package/dist/src/coin/stx/constants.d.ts +0 -8
- package/dist/src/coin/stx/constants.d.ts.map +0 -1
- package/dist/src/coin/stx/constants.js +0 -19
- package/dist/src/coin/stx/contractBuilder.d.ts +0 -33
- package/dist/src/coin/stx/contractBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/contractBuilder.js +0 -116
- package/dist/src/coin/stx/iface.d.ts +0 -48
- package/dist/src/coin/stx/iface.d.ts.map +0 -1
- package/dist/src/coin/stx/iface.js +0 -3
- package/dist/src/coin/stx/index.d.ts +0 -6
- package/dist/src/coin/stx/index.d.ts.map +0 -1
- package/dist/src/coin/stx/index.js +0 -32
- package/dist/src/coin/stx/keyPair.d.ts +0 -55
- package/dist/src/coin/stx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/stx/keyPair.js +0 -140
- package/dist/src/coin/stx/sendmanyBuilder.d.ts +0 -23
- package/dist/src/coin/stx/sendmanyBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/sendmanyBuilder.js +0 -75
- package/dist/src/coin/stx/transaction.d.ts +0 -49
- package/dist/src/coin/stx/transaction.d.ts.map +0 -1
- package/dist/src/coin/stx/transaction.js +0 -225
- package/dist/src/coin/stx/transactionBuilder.d.ts +0 -86
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilder.js +0 -263
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/stx/transactionBuilderFactory.js +0 -81
- package/dist/src/coin/stx/transferBuilder.d.ts +0 -30
- package/dist/src/coin/stx/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/stx/transferBuilder.js +0 -99
- package/dist/src/coin/stx/utils.d.ts +0 -207
- package/dist/src/coin/stx/utils.d.ts.map +0 -1
- package/dist/src/coin/stx/utils.js +0 -504
- package/dist/src/coin/trx/address.d.ts +0 -11
- package/dist/src/coin/trx/address.d.ts.map +0 -1
- package/dist/src/coin/trx/address.js +0 -13
- package/dist/src/coin/trx/contractCallBuilder.d.ts +0 -96
- package/dist/src/coin/trx/contractCallBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/contractCallBuilder.js +0 -281
- package/dist/src/coin/trx/enum.d.ts +0 -23
- package/dist/src/coin/trx/enum.d.ts.map +0 -1
- package/dist/src/coin/trx/enum.js +0 -28
- package/dist/src/coin/trx/iface.d.ts +0 -92
- package/dist/src/coin/trx/iface.d.ts.map +0 -1
- package/dist/src/coin/trx/iface.js +0 -3
- package/dist/src/coin/trx/index.d.ts +0 -10
- package/dist/src/coin/trx/index.d.ts.map +0 -1
- package/dist/src/coin/trx/index.js +0 -39
- package/dist/src/coin/trx/keyPair.d.ts +0 -44
- package/dist/src/coin/trx/keyPair.d.ts.map +0 -1
- package/dist/src/coin/trx/keyPair.js +0 -121
- package/dist/src/coin/trx/transaction.d.ts +0 -74
- package/dist/src/coin/trx/transaction.d.ts.map +0 -1
- package/dist/src/coin/trx/transaction.js +0 -205
- package/dist/src/coin/trx/transactionBuilder.d.ts +0 -65
- package/dist/src/coin/trx/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/transactionBuilder.js +0 -215
- package/dist/src/coin/trx/utils.d.ts +0 -127
- package/dist/src/coin/trx/utils.d.ts.map +0 -1
- package/dist/src/coin/trx/utils.js +0 -369
- package/dist/src/coin/trx/wrappedBuilder.d.ts +0 -52
- package/dist/src/coin/trx/wrappedBuilder.d.ts.map +0 -1
- package/dist/src/coin/trx/wrappedBuilder.js +0 -104
- package/dist/src/coin/xrp/index.d.ts +0 -5
- package/dist/src/coin/xrp/index.d.ts.map +0 -1
- package/dist/src/coin/xrp/index.js +0 -29
- package/dist/src/coin/xrp/keyPair.d.ts +0 -10
- package/dist/src/coin/xrp/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xrp/keyPair.js +0 -16
- package/dist/src/coin/xrp/transaction.d.ts +0 -10
- package/dist/src/coin/xrp/transaction.d.ts.map +0 -1
- package/dist/src/coin/xrp/transaction.js +0 -20
- package/dist/src/coin/xrp/transactionBuilder.d.ts +0 -27
- package/dist/src/coin/xrp/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/transactionBuilder.js +0 -46
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +0 -24
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.js +0 -38
- package/dist/src/coin/xrp/transferBuilder.d.ts +0 -14
- package/dist/src/coin/xrp/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/transferBuilder.js +0 -24
- package/dist/src/coin/xrp/utils.d.ts +0 -16
- package/dist/src/coin/xrp/utils.d.ts.map +0 -1
- package/dist/src/coin/xrp/utils.js +0 -32
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +0 -14
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.js +0 -24
- package/dist/src/coin/xtz/address.d.ts +0 -8
- package/dist/src/coin/xtz/address.d.ts.map +0 -1
- package/dist/src/coin/xtz/address.js +0 -10
- package/dist/src/coin/xtz/iface.d.ts +0 -81
- package/dist/src/coin/xtz/iface.d.ts.map +0 -1
- package/dist/src/coin/xtz/iface.js +0 -3
- package/dist/src/coin/xtz/index.d.ts +0 -8
- package/dist/src/coin/xtz/index.d.ts.map +0 -1
- package/dist/src/coin/xtz/index.js +0 -37
- package/dist/src/coin/xtz/keyPair.d.ts +0 -40
- package/dist/src/coin/xtz/keyPair.d.ts.map +0 -1
- package/dist/src/coin/xtz/keyPair.js +0 -136
- package/dist/src/coin/xtz/multisigUtils.d.ts +0 -134
- package/dist/src/coin/xtz/multisigUtils.d.ts.map +0 -1
- package/dist/src/coin/xtz/multisigUtils.js +0 -1180
- package/dist/src/coin/xtz/transaction.d.ts +0 -119
- package/dist/src/coin/xtz/transaction.d.ts.map +0 -1
- package/dist/src/coin/xtz/transaction.js +0 -315
- package/dist/src/coin/xtz/transactionBuilder.d.ts +0 -171
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transactionBuilder.js +0 -453
- package/dist/src/coin/xtz/transferBuilder.d.ts +0 -24
- package/dist/src/coin/xtz/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/xtz/transferBuilder.js +0 -64
- package/dist/src/coin/xtz/utils.d.ts +0 -265
- package/dist/src/coin/xtz/utils.d.ts.map +0 -1
- package/dist/src/coin/xtz/utils.js +0 -460
- package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
- package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
- package/dist/src/mpc/curves/baseCurve.js +0 -6
- package/dist/src/mpc/curves/ed25519.d.ts +0 -17
- package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
- package/dist/src/mpc/curves/ed25519.js +0 -48
- package/dist/src/mpc/curves/index.d.ts +0 -5
- package/dist/src/mpc/curves/index.d.ts.map +0 -1
- package/dist/src/mpc/curves/index.js +0 -6
- package/dist/src/mpc/curves/secp256k1.d.ts +0 -16
- package/dist/src/mpc/curves/secp256k1.d.ts.map +0 -1
- package/dist/src/mpc/curves/secp256k1.js +0 -66
- package/dist/src/mpc/hdTree.d.ts +0 -24
- package/dist/src/mpc/hdTree.d.ts.map +0 -1
- package/dist/src/mpc/hdTree.js +0 -94
- package/dist/src/mpc/shamir.d.ts +0 -26
- package/dist/src/mpc/shamir.d.ts.map +0 -1
- package/dist/src/mpc/shamir.js +0 -86
- package/dist/src/mpc/tss/eddsa/eddsa.d.ts +0 -29
- package/dist/src/mpc/tss/eddsa/eddsa.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/eddsa.js +0 -273
- package/dist/src/mpc/tss/eddsa/index.d.ts +0 -4
- package/dist/src/mpc/tss/eddsa/index.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/index.js +0 -30
- package/dist/src/mpc/tss/eddsa/types.d.ts +0 -70
- package/dist/src/mpc/tss/eddsa/types.d.ts.map +0 -1
- package/dist/src/mpc/tss/eddsa/types.js +0 -3
- package/dist/src/mpc/tss/index.d.ts +0 -5
- package/dist/src/mpc/tss/index.d.ts.map +0 -1
- package/dist/src/mpc/tss/index.js +0 -32
- package/dist/src/mpc/tss.d.ts +0 -98
- package/dist/src/mpc/tss.d.ts.map +0 -1
- package/dist/src/mpc/tss.js +0 -277
- package/dist/src/mpc/util.d.ts +0 -7
- package/dist/src/mpc/util.d.ts.map +0 -1
- package/dist/src/mpc/util.js +0 -38
- package/dist/src/utils/crypto.d.ts +0 -99
- package/dist/src/utils/crypto.d.ts.map +0 -1
- package/dist/src/utils/crypto.js +0 -260
- package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
- package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
- package/dist/src/utils/ed25519KeyDeriver.js +0 -92
- package/resources/hbar/protobuf/BasicTypes.proto +0 -424
- package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
- package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
- package/resources/hbar/protobuf/Duration.proto +0 -28
- package/resources/hbar/protobuf/Timestamp.proto +0 -34
- package/resources/hbar/protobuf/Transaction.proto +0 -35
- package/resources/hbar/protobuf/TransactionBody.proto +0 -24
- package/resources/hbar/protobuf/TransactionContents.proto +0 -33
- package/resources/hbar/protobuf/hedera.d.ts +0 -4612
- package/resources/hbar/protobuf/hedera.js +0 -12192
- package/resources/trx/protobuf/Contract.proto +0 -256
- package/resources/trx/protobuf/Discover.proto +0 -44
- package/resources/trx/protobuf/tron.d.ts +0 -11024
- package/resources/trx/protobuf/tron.js +0 -31510
- package/resources/trx/protobuf/tron.proto +0 -677
package/dist/src/mpc/tss.js
DELETED
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
/**
|
|
7
|
-
* Module provides functions for MPC using threshold signature scheme (TSS). It contains
|
|
8
|
-
* functions for key generation and message signing with EdDSA.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* ======================
|
|
12
|
-
* EdDSA Key Generation
|
|
13
|
-
* ======================
|
|
14
|
-
* 1. Each signer generates their own key share, which involves a private u-share and a public y-share.
|
|
15
|
-
* 2. Signers distribute their y-share to other signers.
|
|
16
|
-
* 3. After exchanging y-shares the next phase is to combine key shares. Each signer combines their u-share
|
|
17
|
-
* with the y-shares received from other signers in order to generate a p-share for themselves. We
|
|
18
|
-
* also save j-shares for other signers.
|
|
19
|
-
* 4. At this point the players do not distribute any shares and the first phase of the
|
|
20
|
-
* signing protocol is complete.
|
|
21
|
-
*
|
|
22
|
-
* ======================
|
|
23
|
-
* EdDSA Signing
|
|
24
|
-
* ======================
|
|
25
|
-
* 1. The parties from key generation decide they want to sign something. They begin the signing protocol
|
|
26
|
-
* by generating shares of an ephemeral key.
|
|
27
|
-
*
|
|
28
|
-
* a) Each signer uses his p-share and the j-shares stored for other players to generate his signing share.
|
|
29
|
-
* b) This results in each signer having a private x-share and public r-shares.
|
|
30
|
-
*
|
|
31
|
-
* 2. Signers distribute their r-shares to other signers.
|
|
32
|
-
* 3. After exchanging r-shares, each signer signs their share of the ephemeral key using their private
|
|
33
|
-
* x-share with the r-shares from other signers.
|
|
34
|
-
* 4. This results in each signer having a public g-share which they send to the other signers.
|
|
35
|
-
* 5. After the signers broadcast their g-shares, the final signature can be re-constructed independently.
|
|
36
|
-
*/
|
|
37
|
-
const assert = require('assert');
|
|
38
|
-
const crypto_1 = require("crypto");
|
|
39
|
-
const curves_1 = require("./curves");
|
|
40
|
-
const shamir_1 = __importDefault(require("./shamir"));
|
|
41
|
-
const util_1 = require("./util");
|
|
42
|
-
// 2^256
|
|
43
|
-
const base = BigInt('0x010000000000000000000000000000000000000000000000000000000000000000');
|
|
44
|
-
class Eddsa {
|
|
45
|
-
constructor(hdTree) {
|
|
46
|
-
this.hdTree = hdTree;
|
|
47
|
-
}
|
|
48
|
-
static async initialize(hdTree) {
|
|
49
|
-
if (!Eddsa.initialized) {
|
|
50
|
-
await curves_1.Ed25519Curve.initialize();
|
|
51
|
-
Eddsa.initialized = true;
|
|
52
|
-
}
|
|
53
|
-
return new Eddsa(hdTree);
|
|
54
|
-
}
|
|
55
|
-
keyShare(index, threshold, numShares, seed) {
|
|
56
|
-
assert(index > 0 && index <= numShares);
|
|
57
|
-
if (seed && seed.length != 64) {
|
|
58
|
-
throw new Error('Seed must have length 64');
|
|
59
|
-
}
|
|
60
|
-
const seedchain = seed !== null && seed !== void 0 ? seed : crypto_1.randomBytes(64);
|
|
61
|
-
const actualSeed = seedchain.slice(0, 32);
|
|
62
|
-
const chaincode = seedchain.slice(32);
|
|
63
|
-
const h = crypto_1.createHash('sha512').update(actualSeed).digest();
|
|
64
|
-
const u = util_1.clamp(util_1.bigIntFromBufferLE(h.slice(0, 32)));
|
|
65
|
-
const y = Eddsa.curve.basePointMult(u);
|
|
66
|
-
const split_u = Eddsa.shamir.split(u, threshold, numShares);
|
|
67
|
-
const P_i = {
|
|
68
|
-
i: index,
|
|
69
|
-
t: threshold,
|
|
70
|
-
n: numShares,
|
|
71
|
-
y: util_1.bigIntToBufferLE(y, 32).toString('hex'),
|
|
72
|
-
seed: actualSeed.toString('hex'),
|
|
73
|
-
chaincode: chaincode.toString('hex'),
|
|
74
|
-
};
|
|
75
|
-
const shares = {
|
|
76
|
-
uShare: P_i,
|
|
77
|
-
yShares: {},
|
|
78
|
-
};
|
|
79
|
-
for (const ind in split_u) {
|
|
80
|
-
const i = parseInt(ind, 10);
|
|
81
|
-
if (i === index) {
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
shares.yShares[i] = {
|
|
85
|
-
i,
|
|
86
|
-
j: P_i.i,
|
|
87
|
-
y: util_1.bigIntToBufferLE(y, 32).toString('hex'),
|
|
88
|
-
u: util_1.bigIntToBufferLE(split_u[ind], 32).toString('hex'),
|
|
89
|
-
chaincode: chaincode.toString('hex'),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return shares;
|
|
93
|
-
}
|
|
94
|
-
keyCombine(uShare, yShares) {
|
|
95
|
-
const h = crypto_1.createHash('sha512').update(Buffer.from(uShare.seed, 'hex')).digest();
|
|
96
|
-
const u = util_1.clamp(util_1.bigIntFromBufferLE(h.slice(0, 32)));
|
|
97
|
-
const yValues = [uShare, ...yShares].map((share) => util_1.bigIntFromBufferLE(Buffer.from(share.y, 'hex')));
|
|
98
|
-
const y = yValues.reduce((partial, share) => Eddsa.curve.pointAdd(partial, share));
|
|
99
|
-
const chaincodes = [uShare, ...yShares].map(({ chaincode }) => util_1.bigIntFromBufferBE(Buffer.from(chaincode, 'hex')));
|
|
100
|
-
const chaincode = chaincodes.reduce((acc, chaincode) => (acc + chaincode) % base);
|
|
101
|
-
const P_i = {
|
|
102
|
-
i: uShare.i,
|
|
103
|
-
t: uShare.t,
|
|
104
|
-
n: uShare.n,
|
|
105
|
-
y: util_1.bigIntToBufferLE(y, 32).toString('hex'),
|
|
106
|
-
u: util_1.bigIntToBufferLE(u, 32).toString('hex'),
|
|
107
|
-
prefix: h.slice(32).toString('hex'),
|
|
108
|
-
chaincode: util_1.bigIntToBufferBE(chaincode, 32).toString('hex'),
|
|
109
|
-
};
|
|
110
|
-
const players = {
|
|
111
|
-
pShare: P_i,
|
|
112
|
-
jShares: {},
|
|
113
|
-
};
|
|
114
|
-
for (let ind = 0; ind < yShares.length; ind++) {
|
|
115
|
-
const P_j = yShares[ind];
|
|
116
|
-
players.jShares[P_j.j] = {
|
|
117
|
-
i: P_j.j,
|
|
118
|
-
j: P_i.i,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
return players;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Derives a child common keychain from common keychain
|
|
125
|
-
*
|
|
126
|
-
* @param commonKeychain - common keychain as a hex string
|
|
127
|
-
* @param path - bip32 path
|
|
128
|
-
* @return {string} derived common keychain as a hex string
|
|
129
|
-
*/
|
|
130
|
-
deriveUnhardened(commonKeychain, path) {
|
|
131
|
-
if (this.hdTree === undefined) {
|
|
132
|
-
throw new Error("Can't derive key without HDTree implementation");
|
|
133
|
-
}
|
|
134
|
-
const keychain = Buffer.from(commonKeychain, 'hex');
|
|
135
|
-
const derivedPublicKeychain = this.hdTree.publicDerive({
|
|
136
|
-
pk: util_1.bigIntFromBufferLE(keychain.slice(0, 32)),
|
|
137
|
-
chaincode: util_1.bigIntFromBufferBE(keychain.slice(32)),
|
|
138
|
-
}, path);
|
|
139
|
-
const derivedPk = util_1.bigIntToBufferLE(derivedPublicKeychain.pk, 32).toString('hex');
|
|
140
|
-
const derivedChaincode = util_1.bigIntToBufferBE(derivedPublicKeychain.chaincode, 32).toString('hex');
|
|
141
|
-
return derivedPk + derivedChaincode;
|
|
142
|
-
}
|
|
143
|
-
keyDerive(uShare, yShares, path) {
|
|
144
|
-
if (this.hdTree === undefined) {
|
|
145
|
-
throw new Error("Can't derive key without HDTree implementation");
|
|
146
|
-
}
|
|
147
|
-
const h = crypto_1.createHash('sha512').update(Buffer.from(uShare.seed, 'hex')).digest();
|
|
148
|
-
const yValues = [uShare, ...yShares].map((share) => util_1.bigIntFromBufferLE(Buffer.from(share.y, 'hex')));
|
|
149
|
-
const y = yValues.reduce((partial, share) => Eddsa.curve.pointAdd(partial, share));
|
|
150
|
-
const u = util_1.clamp(util_1.bigIntFromBufferLE(h.slice(0, 32)));
|
|
151
|
-
const prefix = util_1.bigIntFromBufferBE(h.slice(32));
|
|
152
|
-
let contribChaincode = util_1.bigIntFromBufferBE(Buffer.from(uShare.chaincode, 'hex'));
|
|
153
|
-
const chaincodes = [
|
|
154
|
-
contribChaincode,
|
|
155
|
-
...yShares.map(({ chaincode }) => util_1.bigIntFromBufferBE(Buffer.from(chaincode, 'hex'))),
|
|
156
|
-
];
|
|
157
|
-
const chaincode = chaincodes.reduce((acc, chaincode) => (acc + chaincode) % base);
|
|
158
|
-
// Derive subkey.
|
|
159
|
-
const subkey = this.hdTree.privateDerive({ pk: y, sk: u, prefix, chaincode }, path);
|
|
160
|
-
// Calculate new public key contribution.
|
|
161
|
-
const contribY = Eddsa.curve.basePointMult(subkey.sk);
|
|
162
|
-
// Calculate new chaincode contribution.
|
|
163
|
-
const chaincodeDelta = (base + subkey.chaincode - chaincode) % base;
|
|
164
|
-
contribChaincode = (contribChaincode + chaincodeDelta) % base;
|
|
165
|
-
// Calculate new u values.
|
|
166
|
-
const split_u = Eddsa.shamir.split(subkey.sk, uShare.t, uShare.n);
|
|
167
|
-
const P_i = {
|
|
168
|
-
i: uShare.i,
|
|
169
|
-
t: uShare.t,
|
|
170
|
-
n: uShare.n,
|
|
171
|
-
y: util_1.bigIntToBufferLE(subkey.pk, 32).toString('hex'),
|
|
172
|
-
u: util_1.bigIntToBufferLE(subkey.sk, 32).toString('hex'),
|
|
173
|
-
prefix: util_1.bigIntToBufferBE(subkey.prefix, 32).toString('hex'),
|
|
174
|
-
chaincode: util_1.bigIntToBufferBE(subkey.chaincode, 32).toString('hex'),
|
|
175
|
-
};
|
|
176
|
-
const shares = {
|
|
177
|
-
pShare: P_i,
|
|
178
|
-
yShares: {},
|
|
179
|
-
};
|
|
180
|
-
for (let ind = 0; ind < yShares.length; ind++) {
|
|
181
|
-
const P_j = yShares[ind];
|
|
182
|
-
shares.yShares[P_j.j] = {
|
|
183
|
-
i: P_j.j,
|
|
184
|
-
j: P_i.i,
|
|
185
|
-
y: util_1.bigIntToBufferLE(contribY, 32).toString('hex'),
|
|
186
|
-
u: util_1.bigIntToBufferLE(split_u[P_j.j], 32).toString('hex'),
|
|
187
|
-
chaincode: util_1.bigIntToBufferBE(contribChaincode, 32).toString('hex'),
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
return shares;
|
|
191
|
-
}
|
|
192
|
-
signShare(message, pShare, jShares) {
|
|
193
|
-
const indices = [pShare, ...jShares].map(({ i }) => i);
|
|
194
|
-
const split_u = Eddsa.shamir.split(util_1.bigIntFromBufferLE(Buffer.from(pShare.u, 'hex')), pShare.t, pShare.n);
|
|
195
|
-
// Generate nonce contribution.
|
|
196
|
-
const prefix = Buffer.from(pShare.prefix, 'hex');
|
|
197
|
-
const randomBuffer = crypto_1.randomBytes(32);
|
|
198
|
-
const digest = crypto_1.createHash('sha512')
|
|
199
|
-
.update(Buffer.concat([prefix, message, randomBuffer]))
|
|
200
|
-
.digest();
|
|
201
|
-
const r = Eddsa.curve.scalarReduce(util_1.bigIntFromBufferLE(digest));
|
|
202
|
-
const R = Eddsa.curve.basePointMult(r);
|
|
203
|
-
const split_r = Eddsa.shamir.split(r, indices.length, indices.length, indices);
|
|
204
|
-
const P_i = {
|
|
205
|
-
i: pShare.i,
|
|
206
|
-
y: pShare.y,
|
|
207
|
-
u: util_1.bigIntToBufferLE(split_u[pShare.i], 32).toString('hex'),
|
|
208
|
-
r: util_1.bigIntToBufferLE(split_r[pShare.i], 32).toString('hex'),
|
|
209
|
-
R: util_1.bigIntToBufferLE(R, 32).toString('hex'),
|
|
210
|
-
};
|
|
211
|
-
const resultShares = {
|
|
212
|
-
xShare: P_i,
|
|
213
|
-
rShares: {},
|
|
214
|
-
};
|
|
215
|
-
for (let ind = 0; ind < jShares.length; ind++) {
|
|
216
|
-
const S_j = jShares[ind];
|
|
217
|
-
resultShares.rShares[S_j.i] = {
|
|
218
|
-
i: S_j.i,
|
|
219
|
-
j: pShare.i,
|
|
220
|
-
u: util_1.bigIntToBufferLE(split_u[S_j.i], 32).toString('hex'),
|
|
221
|
-
r: util_1.bigIntToBufferLE(split_r[S_j.i], 32).toString('hex'),
|
|
222
|
-
R: util_1.bigIntToBufferLE(R, 32).toString('hex'),
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
return resultShares;
|
|
226
|
-
}
|
|
227
|
-
sign(message, playerShare, rShares, yShares = []) {
|
|
228
|
-
const S_i = playerShare;
|
|
229
|
-
const uValues = [playerShare, ...rShares, ...yShares].map(({ u }) => util_1.bigIntFromBufferLE(Buffer.from(u, 'hex')));
|
|
230
|
-
const x = uValues.reduce((acc, u) => Eddsa.curve.scalarAdd(acc, u));
|
|
231
|
-
const RValues = [playerShare, ...rShares].map(({ R }) => util_1.bigIntFromBufferLE(Buffer.from(R, 'hex')));
|
|
232
|
-
const R = RValues.reduce((partial, share) => Eddsa.curve.pointAdd(partial, share));
|
|
233
|
-
const rValues = [playerShare, ...rShares].map(({ r }) => util_1.bigIntFromBufferLE(Buffer.from(r, 'hex')));
|
|
234
|
-
const r = rValues.reduce((partial, share) => Eddsa.curve.scalarAdd(partial, share));
|
|
235
|
-
const combinedBuffer = Buffer.concat([util_1.bigIntToBufferLE(R, 32), Buffer.from(S_i.y, 'hex'), message]);
|
|
236
|
-
const digest = crypto_1.createHash('sha512').update(combinedBuffer).digest();
|
|
237
|
-
const k = Eddsa.curve.scalarReduce(util_1.bigIntFromBufferLE(digest));
|
|
238
|
-
const gamma = Eddsa.curve.scalarAdd(r, Eddsa.curve.scalarMult(k, x));
|
|
239
|
-
const result = {
|
|
240
|
-
i: playerShare.i,
|
|
241
|
-
y: playerShare.y,
|
|
242
|
-
gamma: util_1.bigIntToBufferLE(gamma, 32).toString('hex'),
|
|
243
|
-
R: util_1.bigIntToBufferLE(R, 32).toString('hex'),
|
|
244
|
-
};
|
|
245
|
-
return result;
|
|
246
|
-
}
|
|
247
|
-
signCombine(shares) {
|
|
248
|
-
const y = shares[0].y;
|
|
249
|
-
const R = shares[0].R;
|
|
250
|
-
const resultShares = {};
|
|
251
|
-
for (const ind in shares) {
|
|
252
|
-
const S_i = shares[ind];
|
|
253
|
-
resultShares[S_i.i] = util_1.bigIntFromBufferLE(Buffer.from(S_i.gamma, 'hex'));
|
|
254
|
-
}
|
|
255
|
-
const sigma = Eddsa.shamir.combine(resultShares);
|
|
256
|
-
const result = {
|
|
257
|
-
y,
|
|
258
|
-
R,
|
|
259
|
-
sigma: util_1.bigIntToBufferLE(sigma, 32).toString('hex'),
|
|
260
|
-
};
|
|
261
|
-
return result;
|
|
262
|
-
}
|
|
263
|
-
verify(message, signature) {
|
|
264
|
-
const publicKey = util_1.bigIntFromBufferLE(Buffer.from(signature.y, 'hex'));
|
|
265
|
-
const signedMessage = Buffer.concat([
|
|
266
|
-
Buffer.from(signature.R, 'hex'),
|
|
267
|
-
Buffer.from(signature.sigma, 'hex'),
|
|
268
|
-
message,
|
|
269
|
-
]);
|
|
270
|
-
return Eddsa.curve.verify(publicKey, signedMessage);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
exports.default = Eddsa;
|
|
274
|
-
Eddsa.curve = new curves_1.Ed25519Curve();
|
|
275
|
-
Eddsa.shamir = new shamir_1.default(Eddsa.curve);
|
|
276
|
-
Eddsa.initialized = false;
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21wYy90c3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pDLG1DQUFpRDtBQUNqRCxxQ0FBd0M7QUFDeEMsc0RBQThCO0FBRTlCLGlDQUEyRztBQUUzRyxRQUFRO0FBQ1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLHNFQUFzRSxDQUFDLENBQUM7QUFtRjVGLE1BQXFCLEtBQUs7SUFnQnhCLFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBYkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBZTtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUN0QixNQUFNLHFCQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFRRCxRQUFRLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsU0FBaUIsRUFBRSxJQUFhO1FBQ3pFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxvQkFBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sVUFBVSxH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QztBQWxSUSxXQUFLLEdBQWlCLElBQUkscUJBQVksRUFBRSxDQUFDO0FBQ3pDLFlBQU0sR0FBVyxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLGlCQUFXLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBNUEMgdXNpbmcgdGhyZXNob2xkIHNpZ25hdHVyZSBzY2hlbWUgKFRTUykuIEl0IGNvbnRhaW5zXG4gKiBmdW5jdGlvbnMgZm9yIGtleSBnZW5lcmF0aW9uIGFuZCBtZXNzYWdlIHNpZ25pbmcgd2l0aCBFZERTQS5cbiAqXG4gKlxuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogRWREU0EgS2V5IEdlbmVyYXRpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIDEuIEVhY2ggc2lnbmVyIGdlbmVyYXRlcyB0aGVpciBvd24ga2V5IHNoYXJlLCB3aGljaCBpbnZvbHZlcyBhIHByaXZhdGUgdS1zaGFyZSBhbmQgYSBwdWJsaWMgeS1zaGFyZS5cbiAqIDIuIFNpZ25lcnMgZGlzdHJpYnV0ZSB0aGVpciB5LXNoYXJlIHRvIG90aGVyIHNpZ25lcnMuXG4gKiAzLiBBZnRlciBleGNoYW5naW5nIHktc2hhcmVzIHRoZSBuZXh0IHBoYXNlIGlzIHRvIGNvbWJpbmUga2V5IHNoYXJlcy4gRWFjaCBzaWduZXIgY29tYmluZXMgdGhlaXIgdS1zaGFyZVxuICogICAgd2l0aCB0aGUgeS1zaGFyZXMgcmVjZWl2ZWQgZnJvbSBvdGhlciBzaWduZXJzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgcC1zaGFyZSBmb3IgdGhlbXNlbHZlcy4gV2VcbiAqICAgIGFsc28gc2F2ZSBqLXNoYXJlcyBmb3Igb3RoZXIgc2lnbmVycy5cbiAqIDQuIEF0IHRoaXMgcG9pbnQgdGhlIHBsYXllcnMgZG8gbm90IGRpc3RyaWJ1dGUgYW55IHNoYXJlcyBhbmQgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZVxuICogICAgc2lnbmluZyBwcm90b2NvbCBpcyBjb21wbGV0ZS5cbiAqXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiBFZERTQSBTaWduaW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiAxLiBUaGUgcGFydGllcyBmcm9tIGtleSBnZW5lcmF0aW9uIGRlY2lkZSB0aGV5IHdhbnQgdG8gc2lnbiBzb21ldGhpbmcuIFRoZXkgYmVnaW4gdGhlIHNpZ25pbmcgcHJvdG9jb2xcbiAqICAgIGJ5IGdlbmVyYXRpbmcgc2hhcmVzIG9mIGFuIGVwaGVtZXJhbCBrZXkuXG4gKlxuICogICAgYSkgRWFjaCBzaWduZXIgdXNlcyBoaXMgcC1zaGFyZSBhbmQgdGhlIGotc2hhcmVzIHN0b3JlZCBmb3Igb3RoZXIgcGxheWVycyB0byBnZW5lcmF0ZSBoaXMgc2lnbmluZyBzaGFyZS5cbiAqICAgIGIpIFRoaXMgcmVzdWx0cyBpbiBlYWNoIHNpZ25lciBoYXZpbmcgYSBwcml2YXRlIHgtc2hhcmUgYW5kIHB1YmxpYyByLXNoYXJlcy5cbiAqXG4gKiAyLiBTaWduZXJzIGRpc3RyaWJ1dGUgdGhlaXIgci1zaGFyZXMgdG8gb3RoZXIgc2lnbmVycy5cbiAqIDMuIEFmdGVyIGV4Y2hhbmdpbmcgci1zaGFyZXMsIGVhY2ggc2lnbmVyIHNpZ25zIHRoZWlyIHNoYXJlIG9mIHRoZSBlcGhlbWVyYWwga2V5IHVzaW5nIHRoZWlyIHByaXZhdGVcbiAqICAgIHgtc2hhcmUgd2l0aCB0aGUgci1zaGFyZXMgZnJvbSBvdGhlciBzaWduZXJzLlxuICogNC4gVGhpcyByZXN1bHRzIGluIGVhY2ggc2lnbmVyIGhhdmluZyBhIHB1YmxpYyBnLXNoYXJlIHdoaWNoIHRoZXkgc2VuZCB0byB0aGUgb3RoZXIgc2lnbmVycy5cbiAqIDUuIEFmdGVyIHRoZSBzaWduZXJzIGJyb2FkY2FzdCB0aGVpciBnLXNoYXJlcywgdGhlIGZpbmFsIHNpZ25hdHVyZSBjYW4gYmUgcmUtY29uc3RydWN0ZWQgaW5kZXBlbmRlbnRseS5cbiAqL1xuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5pbXBvcnQgeyByYW5kb21CeXRlcywgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBFZDI1NTE5Q3VydmUgfSBmcm9tICcuL2N1cnZlcyc7XG5pbXBvcnQgU2hhbWlyIGZyb20gJy4vc2hhbWlyJztcbmltcG9ydCBIRFRyZWUgZnJvbSAnLi9oZFRyZWUnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckxFLCBiaWdJbnRUb0J1ZmZlckxFLCBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUsIGNsYW1wIH0gZnJvbSAnLi91dGlsJztcblxuLy8gMl4yNTZcbmNvbnN0IGJhc2UgPSBCaWdJbnQoJzB4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVNoYXJlIHtcbiAgaTogbnVtYmVyO1xuICB0OiBudW1iZXI7XG4gIG46IG51bWJlcjtcbiAgeTogc3RyaW5nO1xuICBzZWVkOiBzdHJpbmc7XG4gIGNoYWluY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFlTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgajogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5U2hhcmUge1xuICB1U2hhcmU6IFVTaGFyZTtcbiAgeVNoYXJlczogUmVjb3JkPG51bWJlciwgWVNoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHQ6IG51bWJlcjtcbiAgbjogbnVtYmVyO1xuICB5OiBzdHJpbmc7XG4gIHU6IHN0cmluZztcbiAgcHJlZml4OiBzdHJpbmc7XG4gIGNoYWluY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgajogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgS2V5Q29tYmluZSB7XG4gIHBTaGFyZTogUFNoYXJlO1xuICBqU2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBKU2hhcmU+O1xufVxuXG5pbnRlcmZhY2UgU3Via2V5U2hhcmUge1xuICBwU2hhcmU6IFBTaGFyZTtcbiAgeVNoYXJlczogUmVjb3JkPG51bWJlciwgWVNoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBYU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgdTogc3RyaW5nO1xuICByOiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIGo6IG51bWJlcjtcbiAgdTogc3RyaW5nO1xuICByOiBzdHJpbmc7XG4gIFI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduU2hhcmUge1xuICB4U2hhcmU6IFhTaGFyZTtcbiAgclNoYXJlczogUmVjb3JkPG51bWJlciwgUlNoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHU2hhcmUge1xuICBpOiBudW1iZXI7XG4gIHk6IHN0cmluZztcbiAgZ2FtbWE6IHN0cmluZztcbiAgUjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgeTogc3RyaW5nO1xuICBSOiBzdHJpbmc7XG4gIHNpZ21hOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkZHNhIHtcbiAgc3RhdGljIGN1cnZlOiBFZDI1NTE5Q3VydmUgPSBuZXcgRWQyNTUxOUN1cnZlKCk7XG4gIHN0YXRpYyBzaGFtaXI6IFNoYW1pciA9IG5ldyBTaGFtaXIoRWRkc2EuY3VydmUpO1xuICBzdGF0aWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZShoZFRyZWU/OiBIRFRyZWUpOiBQcm9taXNlPEVkZHNhPiB7XG4gICAgaWYgKCFFZGRzYS5pbml0aWFsaXplZCkge1xuICAgICAgYXdhaXQgRWQyNTUxOUN1cnZlLmluaXRpYWxpemUoKTtcbiAgICAgIEVkZHNhLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEVkZHNhKGhkVHJlZSk7XG4gIH1cblxuICBoZFRyZWU/OiBIRFRyZWU7XG5cbiAgY29uc3RydWN0b3IoaGRUcmVlPzogSERUcmVlKSB7XG4gICAgdGhpcy5oZFRyZWUgPSBoZFRyZWU7XG4gIH1cblxuICBrZXlTaGFyZShpbmRleDogbnVtYmVyLCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIsIHNlZWQ/OiBCdWZmZXIpOiBLZXlTaGFyZSB7XG4gICAgYXNzZXJ0KGluZGV4ID4gMCAmJiBpbmRleCA8PSBudW1TaGFyZXMpO1xuICAgIGlmIChzZWVkICYmIHNlZWQubGVuZ3RoICE9IDY0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlZWQgbXVzdCBoYXZlIGxlbmd0aCA2NCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlZWRjaGFpbiA9IHNlZWQgPz8gcmFuZG9tQnl0ZXMoNjQpO1xuICAgIGNvbnN0IGFjdHVhbFNlZWQgPSBzZWVkY2hhaW4uc2xpY2UoMCwgMzIpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IHNlZWRjaGFpbi5zbGljZSgzMik7XG4gICAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShhY3R1YWxTZWVkKS5kaWdlc3QoKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgeSA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgY29uc3Qgc3BsaXRfdSA9IEVkZHNhLnNoYW1pci5zcGxpdCh1LCB0aHJlc2hvbGQsIG51bVNoYXJlcyk7XG5cbiAgICBjb25zdCBQX2k6IFVTaGFyZSA9IHtcbiAgICAgIGk6IGluZGV4LFxuICAgICAgdDogdGhyZXNob2xkLFxuICAgICAgbjogbnVtU2hhcmVzLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRSh5LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2VlZDogYWN0dWFsU2VlZC50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBzaGFyZXM6IEtleVNoYXJlID0ge1xuICAgICAgdVNoYXJlOiBQX2ksXG4gICAgICB5U2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBpbmQgaW4gc3BsaXRfdSkge1xuICAgICAgY29uc3QgaSA9IHBhcnNlSW50KGluZCwgMTApO1xuICAgICAgaWYgKGkgPT09IGluZGV4KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2hhcmVzLnlTaGFyZXNbaV0gPSB7XG4gICAgICAgIGksXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtpbmRdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc2hhcmVzO1xuICB9XG5cbiAga2V5Q29tYmluZSh1U2hhcmU6IFVTaGFyZSwgeVNoYXJlczogWVNoYXJlW10pOiBLZXlDb21iaW5lIHtcbiAgICBjb25zdCBoID0gY3JlYXRlSGFzaCgnc2hhNTEyJykudXBkYXRlKEJ1ZmZlci5mcm9tKHVTaGFyZS5zZWVkLCAnaGV4JykpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IHUgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zbGljZSgwLCAzMikpKTtcbiAgICBjb25zdCB5VmFsdWVzID0gW3VTaGFyZSwgLi4ueVNoYXJlc10ubWFwKChzaGFyZSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnksICdoZXgnKSkpO1xuICAgIGNvbnN0IHkgPSB5VmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnBvaW50QWRkKHBhcnRpYWwsIHNoYXJlKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlcyA9IFt1U2hhcmUsIC4uLnlTaGFyZXNdLm1hcCgoeyBjaGFpbmNvZGUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlID0gY2hhaW5jb2Rlcy5yZWR1Y2UoKGFjYywgY2hhaW5jb2RlKSA9PiAoYWNjICsgY2hhaW5jb2RlKSAlIGJhc2UpO1xuXG4gICAgY29uc3QgUF9pOiBQU2hhcmUgPSB7XG4gICAgICBpOiB1U2hhcmUuaSxcbiAgICAgIHQ6IHVTaGFyZS50LFxuICAgICAgbjogdVNoYXJlLm4sXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcmVmaXg6IGguc2xpY2UoMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBwbGF5ZXJzOiBLZXlDb21iaW5lID0ge1xuICAgICAgcFNoYXJlOiBQX2ksXG4gICAgICBqU2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgeVNoYXJlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCBQX2ogPSB5U2hhcmVzW2luZF07XG4gICAgICBwbGF5ZXJzLmpTaGFyZXNbUF9qLmpdID0ge1xuICAgICAgICBpOiBQX2ouaixcbiAgICAgICAgajogUF9pLmksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcGxheWVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmVzIGEgY2hpbGQgY29tbW9uIGtleWNoYWluIGZyb20gY29tbW9uIGtleWNoYWluXG4gICAqXG4gICAqIEBwYXJhbSBjb21tb25LZXljaGFpbiAtIGNvbW1vbiBrZXljaGFpbiBhcyBhIGhleCBzdHJpbmdcbiAgICogQHBhcmFtIHBhdGggLSBiaXAzMiBwYXRoXG4gICAqIEByZXR1cm4ge3N0cmluZ30gZGVyaXZlZCBjb21tb24ga2V5Y2hhaW4gYXMgYSBoZXggc3RyaW5nXG4gICAqL1xuICBkZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGRUcmVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGRlcml2ZSBrZXkgd2l0aG91dCBIRFRyZWUgaW1wbGVtZW50YXRpb25cIik7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBCdWZmZXIuZnJvbShjb21tb25LZXljaGFpbiwgJ2hleCcpO1xuXG4gICAgY29uc3QgZGVyaXZlZFB1YmxpY0tleWNoYWluID0gdGhpcy5oZFRyZWUucHVibGljRGVyaXZlKFxuICAgICAge1xuICAgICAgICBwazogYmlnSW50RnJvbUJ1ZmZlckxFKGtleWNoYWluLnNsaWNlKDAsIDMyKSksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50RnJvbUJ1ZmZlckJFKGtleWNoYWluLnNsaWNlKDMyKSksXG4gICAgICB9LFxuICAgICAgcGF0aCxcbiAgICApO1xuXG4gICAgY29uc3QgZGVyaXZlZFBrID0gYmlnSW50VG9CdWZmZXJMRShkZXJpdmVkUHVibGljS2V5Y2hhaW4ucGssIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgZGVyaXZlZENoYWluY29kZSA9IGJpZ0ludFRvQnVmZmVyQkUoZGVyaXZlZFB1YmxpY0tleWNoYWluLmNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIHJldHVybiBkZXJpdmVkUGsgKyBkZXJpdmVkQ2hhaW5jb2RlO1xuICB9XG5cbiAga2V5RGVyaXZlKHVTaGFyZTogVVNoYXJlLCB5U2hhcmVzOiBZU2hhcmVbXSwgcGF0aDogc3RyaW5nKTogU3Via2V5U2hhcmUge1xuICAgIGlmICh0aGlzLmhkVHJlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBkZXJpdmUga2V5IHdpdGhvdXQgSERUcmVlIGltcGxlbWVudGF0aW9uXCIpO1xuICAgIH1cbiAgICBjb25zdCBoID0gY3JlYXRlSGFzaCgnc2hhNTEyJykudXBkYXRlKEJ1ZmZlci5mcm9tKHVTaGFyZS5zZWVkLCAnaGV4JykpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IHlWYWx1ZXMgPSBbdVNoYXJlLCAuLi55U2hhcmVzXS5tYXAoKHNoYXJlKSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeSA9IHlWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgcHJlZml4ID0gYmlnSW50RnJvbUJ1ZmZlckJFKGguc2xpY2UoMzIpKTtcbiAgICBsZXQgY29udHJpYkNoYWluY29kZSA9IGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbSh1U2hhcmUuY2hhaW5jb2RlLCAnaGV4JykpO1xuICAgIGNvbnN0IGNoYWluY29kZXMgPSBbXG4gICAgICBjb250cmliQ2hhaW5jb2RlLFxuICAgICAgLi4ueVNoYXJlcy5tYXAoKHsgY2hhaW5jb2RlIH0pID0+IGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbShjaGFpbmNvZGUsICdoZXgnKSkpLFxuICAgIF07XG4gICAgY29uc3QgY2hhaW5jb2RlID0gY2hhaW5jb2Rlcy5yZWR1Y2UoKGFjYywgY2hhaW5jb2RlKSA9PiAoYWNjICsgY2hhaW5jb2RlKSAlIGJhc2UpO1xuXG4gICAgLy8gRGVyaXZlIHN1YmtleS5cbiAgICBjb25zdCBzdWJrZXkgPSB0aGlzLmhkVHJlZS5wcml2YXRlRGVyaXZlKHsgcGs6IHksIHNrOiB1LCBwcmVmaXgsIGNoYWluY29kZSB9LCBwYXRoKTtcblxuICAgIC8vIENhbGN1bGF0ZSBuZXcgcHVibGljIGtleSBjb250cmlidXRpb24uXG4gICAgY29uc3QgY29udHJpYlkgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHN1YmtleS5zayk7XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IGNoYWluY29kZSBjb250cmlidXRpb24uXG4gICAgY29uc3QgY2hhaW5jb2RlRGVsdGEgPSAoYmFzZSArIHN1YmtleS5jaGFpbmNvZGUgLSBjaGFpbmNvZGUpICUgYmFzZTtcbiAgICBjb250cmliQ2hhaW5jb2RlID0gKGNvbnRyaWJDaGFpbmNvZGUgKyBjaGFpbmNvZGVEZWx0YSkgJSBiYXNlO1xuXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyB1IHZhbHVlcy5cbiAgICBjb25zdCBzcGxpdF91ID0gRWRkc2Euc2hhbWlyLnNwbGl0KHN1YmtleS5zaywgdVNoYXJlLnQsIHVTaGFyZS5uKTtcblxuICAgIGNvbnN0IFBfaTogUFNoYXJlID0ge1xuICAgICAgaTogdVNoYXJlLmksXG4gICAgICB0OiB1U2hhcmUudCxcbiAgICAgIG46IHVTaGFyZS5uLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRShzdWJrZXkucGssIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHN1YmtleS5zaywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHByZWZpeDogYmlnSW50VG9CdWZmZXJCRShzdWJrZXkucHJlZml4LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKHN1YmtleS5jaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlczogU3Via2V5U2hhcmUgPSB7XG4gICAgICBwU2hhcmU6IFBfaSxcbiAgICAgIHlTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB5U2hhcmVzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IFBfaiA9IHlTaGFyZXNbaW5kXTtcbiAgICAgIHNoYXJlcy55U2hhcmVzW1Bfai5qXSA9IHtcbiAgICAgICAgaTogUF9qLmosXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKGNvbnRyaWJZLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3VbUF9qLmpdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpZ0ludFRvQnVmZmVyQkUoY29udHJpYkNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlcztcbiAgfVxuXG4gIHNpZ25TaGFyZShtZXNzYWdlOiBCdWZmZXIsIHBTaGFyZTogUFNoYXJlLCBqU2hhcmVzOiBKU2hhcmVbXSk6IFNpZ25TaGFyZSB7XG4gICAgY29uc3QgaW5kaWNlcyA9IFtwU2hhcmUsIC4uLmpTaGFyZXNdLm1hcCgoeyBpIH0pID0+IGkpO1xuICAgIGNvbnN0IHNwbGl0X3UgPSBFZGRzYS5zaGFtaXIuc3BsaXQoYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHBTaGFyZS51LCAnaGV4JykpLCBwU2hhcmUudCwgcFNoYXJlLm4pO1xuXG4gICAgLy8gR2VuZXJhdGUgbm9uY2UgY29udHJpYnV0aW9uLlxuICAgIGNvbnN0IHByZWZpeCA9IEJ1ZmZlci5mcm9tKHBTaGFyZS5wcmVmaXgsICdoZXgnKTtcbiAgICBjb25zdCByYW5kb21CdWZmZXIgPSByYW5kb21CeXRlcygzMik7XG4gICAgY29uc3QgZGlnZXN0ID0gY3JlYXRlSGFzaCgnc2hhNTEyJylcbiAgICAgIC51cGRhdGUoQnVmZmVyLmNvbmNhdChbcHJlZml4LCBtZXNzYWdlLCByYW5kb21CdWZmZXJdKSlcbiAgICAgIC5kaWdlc3QoKTtcblxuICAgIGNvbnN0IHIgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYmlnSW50RnJvbUJ1ZmZlckxFKGRpZ2VzdCkpO1xuICAgIGNvbnN0IFIgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHIpO1xuICAgIGNvbnN0IHNwbGl0X3IgPSBFZGRzYS5zaGFtaXIuc3BsaXQociwgaW5kaWNlcy5sZW5ndGgsIGluZGljZXMubGVuZ3RoLCBpbmRpY2VzKTtcblxuICAgIGNvbnN0IFBfaTogWFNoYXJlID0ge1xuICAgICAgaTogcFNoYXJlLmksXG4gICAgICB5OiBwU2hhcmUueSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtwU2hhcmUuaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICByOiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3JbcFNoYXJlLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXM6IFNpZ25TaGFyZSA9IHtcbiAgICAgIHhTaGFyZTogUF9pLFxuICAgICAgclNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IGpTaGFyZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgU19qID0galNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzLnJTaGFyZXNbU19qLmldID0ge1xuICAgICAgICBpOiBTX2ouaSxcbiAgICAgICAgajogcFNoYXJlLmksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtTX2ouaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHI6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfcltTX2ouaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIFI6IGJpZ0ludFRvQnVmZmVyTEUoUiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRTaGFyZXM7XG4gIH1cblxuICBzaWduKG1lc3NhZ2U6IEJ1ZmZlciwgcGxheWVyU2hhcmU6IFhTaGFyZSwgclNoYXJlczogUlNoYXJlW10sIHlTaGFyZXM6IFlTaGFyZVtdID0gW10pOiBHU2hhcmUge1xuICAgIGNvbnN0IFNfaSA9IHBsYXllclNoYXJlO1xuXG4gICAgY29uc3QgdVZhbHVlcyA9IFtwbGF5ZXJTaGFyZSwgLi4uclNoYXJlcywgLi4ueVNoYXJlc10ubWFwKCh7IHUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHUsICdoZXgnKSkpO1xuICAgIGNvbnN0IHggPSB1VmFsdWVzLnJlZHVjZSgoYWNjLCB1KSA9PiBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQoYWNjLCB1KSk7XG5cbiAgICBjb25zdCBSVmFsdWVzID0gW3BsYXllclNoYXJlLCAuLi5yU2hhcmVzXS5tYXAoKHsgUiB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUiwgJ2hleCcpKSk7XG4gICAgY29uc3QgUiA9IFJWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcblxuICAgIGNvbnN0IHJWYWx1ZXMgPSBbcGxheWVyU2hhcmUsIC4uLnJTaGFyZXNdLm1hcCgoeyByIH0pID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShyLCAnaGV4JykpKTtcbiAgICBjb25zdCByID0gclZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQocGFydGlhbCwgc2hhcmUpKTtcblxuICAgIGNvbnN0IGNvbWJpbmVkQnVmZmVyID0gQnVmZmVyLmNvbmNhdChbYmlnSW50VG9CdWZmZXJMRShSLCAzMiksIEJ1ZmZlci5mcm9tKFNfaS55LCAnaGV4JyksIG1lc3NhZ2VdKTtcbiAgICBjb25zdCBkaWdlc3QgPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoY29tYmluZWRCdWZmZXIpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IGsgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYmlnSW50RnJvbUJ1ZmZlckxFKGRpZ2VzdCkpO1xuXG4gICAgY29uc3QgZ2FtbWEgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQociwgRWRkc2EuY3VydmUuc2NhbGFyTXVsdChrLCB4KSk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgaTogcGxheWVyU2hhcmUuaSxcbiAgICAgIHk6IHBsYXllclNoYXJlLnksXG4gICAgICBnYW1tYTogYmlnSW50VG9CdWZmZXJMRShnYW1tYSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIFI6IGJpZ0ludFRvQnVmZmVyTEUoUiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzaWduQ29tYmluZShzaGFyZXM6IEdTaGFyZVtdKTogU2lnbmF0dXJlIHtcbiAgICBjb25zdCB5ID0gc2hhcmVzWzBdLnk7XG4gICAgY29uc3QgUiA9IHNoYXJlc1swXS5SO1xuXG4gICAgY29uc3QgcmVzdWx0U2hhcmVzID0ge307XG4gICAgZm9yIChjb25zdCBpbmQgaW4gc2hhcmVzKSB7XG4gICAgICBjb25zdCBTX2kgPSBzaGFyZXNbaW5kXTtcbiAgICAgIHJlc3VsdFNoYXJlc1tTX2kuaV0gPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oU19pLmdhbW1hLCAnaGV4JykpO1xuICAgIH1cbiAgICBjb25zdCBzaWdtYTogYmlnaW50ID0gRWRkc2Euc2hhbWlyLmNvbWJpbmUocmVzdWx0U2hhcmVzKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICB5LFxuICAgICAgUixcbiAgICAgIHNpZ21hOiBiaWdJbnRUb0J1ZmZlckxFKHNpZ21hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZlcmlmeShtZXNzYWdlOiBCdWZmZXIsIHNpZ25hdHVyZTogU2lnbmF0dXJlKTogQnVmZmVyIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2lnbmF0dXJlLnksICdoZXgnKSk7XG4gICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgQnVmZmVyLmZyb20oc2lnbmF0dXJlLlIsICdoZXgnKSxcbiAgICAgIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zaWdtYSwgJ2hleCcpLFxuICAgICAgbWVzc2FnZSxcbiAgICBdKTtcbiAgICByZXR1cm4gRWRkc2EuY3VydmUudmVyaWZ5KHB1YmxpY0tleSwgc2lnbmVkTWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/mpc/util.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export declare function bigIntFromBufferLE(buf: Buffer): bigint;
|
|
3
|
-
export declare function bigIntToBufferLE(n: bigint, bytes?: number): Buffer;
|
|
4
|
-
export declare function bigIntFromBufferBE(buf: Buffer): bigint;
|
|
5
|
-
export declare function bigIntToBufferBE(n: bigint, bytes?: number): Buffer;
|
|
6
|
-
export declare function clamp(u: bigint): bigint;
|
|
7
|
-
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/mpc/util.ts"],"names":[],"mappings":";AAAA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvC"}
|
package/dist/src/mpc/util.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clamp = exports.bigIntToBufferBE = exports.bigIntFromBufferBE = exports.bigIntToBufferLE = exports.bigIntFromBufferLE = void 0;
|
|
4
|
-
function bigIntFromBufferLE(buf) {
|
|
5
|
-
return BigInt('0x' + Buffer.from(buf).reverse().toString('hex'));
|
|
6
|
-
}
|
|
7
|
-
exports.bigIntFromBufferLE = bigIntFromBufferLE;
|
|
8
|
-
function bigIntToBufferLE(n, bytes) {
|
|
9
|
-
let v = n.toString(16);
|
|
10
|
-
v = '0'.slice(0, v.length % 2) + v;
|
|
11
|
-
const buf = Buffer.from(v, 'hex').reverse();
|
|
12
|
-
if (bytes && buf.length < bytes) {
|
|
13
|
-
return Buffer.concat([buf, Buffer.alloc(bytes - buf.length)]);
|
|
14
|
-
}
|
|
15
|
-
return buf;
|
|
16
|
-
}
|
|
17
|
-
exports.bigIntToBufferLE = bigIntToBufferLE;
|
|
18
|
-
function bigIntFromBufferBE(buf) {
|
|
19
|
-
return BigInt('0x' + buf.toString('hex'));
|
|
20
|
-
}
|
|
21
|
-
exports.bigIntFromBufferBE = bigIntFromBufferBE;
|
|
22
|
-
function bigIntToBufferBE(n, bytes) {
|
|
23
|
-
let v = n.toString(16);
|
|
24
|
-
v = '0'.slice(0, v.length % 2) + v;
|
|
25
|
-
const buf = Buffer.from(v, 'hex');
|
|
26
|
-
if (bytes && buf.length < bytes) {
|
|
27
|
-
return Buffer.concat([Buffer.alloc(bytes - buf.length), buf]);
|
|
28
|
-
}
|
|
29
|
-
return buf;
|
|
30
|
-
}
|
|
31
|
-
exports.bigIntToBufferBE = bigIntToBufferBE;
|
|
32
|
-
function clamp(u) {
|
|
33
|
-
u &= BigInt('0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8');
|
|
34
|
-
u |= BigInt('0x4000000000000000000000000000000000000000000000000000000000000000');
|
|
35
|
-
return u;
|
|
36
|
-
}
|
|
37
|
-
exports.clamp = clamp;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tcGMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixrQkFBa0IsQ0FBQyxHQUFXO0lBQzVDLE9BQU8sTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFGRCxnREFFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLENBQVMsRUFBRSxLQUFjO0lBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLElBQUksS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFO1FBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9EO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBUkQsNENBUUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFXO0lBQzVDLE9BQU8sTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBUyxFQUFFLEtBQWM7SUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUU7UUFDL0IsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDL0Q7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFSRCw0Q0FRQztBQUVELFNBQWdCLEtBQUssQ0FBQyxDQUFTO0lBQzdCLENBQUMsSUFBSSxNQUFNLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUNsRixDQUFDLElBQUksTUFBTSxDQUFDLG9FQUFvRSxDQUFDLENBQUM7SUFDbEYsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBSkQsc0JBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYmlnSW50RnJvbUJ1ZmZlckxFKGJ1ZjogQnVmZmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludCgnMHgnICsgQnVmZmVyLmZyb20oYnVmKS5yZXZlcnNlKCkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludFRvQnVmZmVyTEUobjogYmlnaW50LCBieXRlcz86IG51bWJlcik6IEJ1ZmZlciB7XG4gIGxldCB2ID0gbi50b1N0cmluZygxNik7XG4gIHYgPSAnMCcuc2xpY2UoMCwgdi5sZW5ndGggJSAyKSArIHY7XG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKHYsICdoZXgnKS5yZXZlcnNlKCk7XG4gIGlmIChieXRlcyAmJiBidWYubGVuZ3RoIDwgYnl0ZXMpIHtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbYnVmLCBCdWZmZXIuYWxsb2MoYnl0ZXMgLSBidWYubGVuZ3RoKV0pO1xuICB9XG4gIHJldHVybiBidWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaWdJbnRGcm9tQnVmZmVyQkUoYnVmOiBCdWZmZXIpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KCcweCcgKyBidWYudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludFRvQnVmZmVyQkUobjogYmlnaW50LCBieXRlcz86IG51bWJlcik6IEJ1ZmZlciB7XG4gIGxldCB2ID0gbi50b1N0cmluZygxNik7XG4gIHYgPSAnMCcuc2xpY2UoMCwgdi5sZW5ndGggJSAyKSArIHY7XG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKHYsICdoZXgnKTtcbiAgaWYgKGJ5dGVzICYmIGJ1Zi5sZW5ndGggPCBieXRlcykge1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MoYnl0ZXMgLSBidWYubGVuZ3RoKSwgYnVmXSk7XG4gIH1cbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wKHU6IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHUgJj0gQmlnSW50KCcweDdmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjgnKTtcbiAgdSB8PSBCaWdJbnQoJzB4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICByZXR1cm4gdTtcbn1cbiJdfQ==
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { ExtendedKeys } from '../coin/baseCoin/iface';
|
|
3
|
-
/**
|
|
4
|
-
* @param {string} xpub - a base-58 encoded extended public key (BIP32)
|
|
5
|
-
* @returns {string} the uncompressed public key in hexadecimal
|
|
6
|
-
*/
|
|
7
|
-
export declare function xpubToUncompressedPub(xpub: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* @param {string} xprv - base58-encoded extended private key (BIP32)
|
|
10
|
-
* @returns {string} the hex-encoded raw private key
|
|
11
|
-
*/
|
|
12
|
-
export declare function xprvToRawPrv(xprv: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* @param {string} prv - Private key in hex format to get the extended keys for
|
|
15
|
-
* @returns {ExtendedKeys} xprv and xpub in string format
|
|
16
|
-
*/
|
|
17
|
-
export declare function rawPrvToExtendedKeys(prv: string): ExtendedKeys;
|
|
18
|
-
/**
|
|
19
|
-
* Whether the input is a valid BIP32 xpub or not
|
|
20
|
-
*
|
|
21
|
-
* @param xpub
|
|
22
|
-
*/
|
|
23
|
-
export declare function isValidXpub(xpub: string): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Whether the input is a valid BIP32 xprv or not
|
|
26
|
-
*
|
|
27
|
-
* @param xprv
|
|
28
|
-
*/
|
|
29
|
-
export declare function isValidXprv(xprv: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Whether the input is a valid secp256k1 public key
|
|
32
|
-
*
|
|
33
|
-
* @param pub
|
|
34
|
-
*/
|
|
35
|
-
export declare function isValidPub(pub: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Whether the input is a valid secp256k1 private key
|
|
38
|
-
*
|
|
39
|
-
* @param prv
|
|
40
|
-
*/
|
|
41
|
-
export declare function isValidPrv(prv: string): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Whether the input is a valid ed25519 private key
|
|
44
|
-
*
|
|
45
|
-
* @param {string} prv A hexadecimal private key to validate
|
|
46
|
-
* @returns {boolean} Whether the input is a valid public key or not
|
|
47
|
-
*/
|
|
48
|
-
export declare function isValidEd25519Seed(prv: string): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Whether the input is a valid ed25519 private key
|
|
51
|
-
*
|
|
52
|
-
* @param {string} prv A hexadecimal private key to validate
|
|
53
|
-
* @returns {boolean} Whether the input is a valid public key or not
|
|
54
|
-
*/
|
|
55
|
-
export declare function isValidEd25519SecretKey(prv: string): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Whether the input is a valid ed25519 public key
|
|
58
|
-
*
|
|
59
|
-
* @param {string} pub A hexadecimal public key to validate
|
|
60
|
-
* @returns {boolean} Whether the input is a valid public key or not
|
|
61
|
-
*/
|
|
62
|
-
export declare function isValidEd25519PublicKey(pub: string): boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Whether the input is a valid BLS private key
|
|
65
|
-
*
|
|
66
|
-
* @param {string} prv a private key to validate
|
|
67
|
-
* @returns {boolean} Whether the input is a valid private key or not
|
|
68
|
-
*/
|
|
69
|
-
export declare function isValidBLSPrivateKey(prv: string): boolean;
|
|
70
|
-
/**
|
|
71
|
-
* Whether input is a valid BLS public key
|
|
72
|
-
*
|
|
73
|
-
* @param {string} pub the public key to validate
|
|
74
|
-
* @returns {boolean} Whether input is a valid public key or not
|
|
75
|
-
*/
|
|
76
|
-
export declare function isValidBLSPublicKey(pub: string): boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Returns an hex string of the given buffer
|
|
79
|
-
*
|
|
80
|
-
* @param {Buffer | Uint8Array} buffer - the buffer to be converted to hex
|
|
81
|
-
* @returns {string} - the hex value
|
|
82
|
-
*/
|
|
83
|
-
export declare function toHex(buffer: Buffer | Uint8Array): string;
|
|
84
|
-
/**
|
|
85
|
-
* Returns an hex string of the given bigint
|
|
86
|
-
*
|
|
87
|
-
* @param {bigint} bigint - the bigint to be converted to hex
|
|
88
|
-
* @returns {string} - the hex value
|
|
89
|
-
*/
|
|
90
|
-
export declare function bigIntToHex(bigint: bigint): string;
|
|
91
|
-
/**
|
|
92
|
-
* Check if base58 decoded string is equale to length
|
|
93
|
-
*
|
|
94
|
-
* @param {string} value - string to be checked
|
|
95
|
-
* @param {number} length - expected decoded length
|
|
96
|
-
* @return {boolean} if the string can decoded as base58 and match the expected length
|
|
97
|
-
*/
|
|
98
|
-
export declare function isBase58(value: string, length: number): boolean;
|
|
99
|
-
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM/D"}
|