@bsv/sdk 1.3.13 → 1.3.15
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/dist/cjs/mod.js +15 -15
- package/dist/cjs/mod.js.map +1 -1
- package/dist/cjs/package.json +8 -3
- package/dist/cjs/src/auth/Peer.js +71 -61
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +10 -5
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/Certificate.js +33 -30
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +36 -36
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +9 -9
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +45 -29
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/certificates/index.js +5 -5
- package/dist/cjs/src/auth/certificates/index.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +65 -74
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/clients/index.js +1 -1
- package/dist/cjs/src/auth/clients/index.js.map +1 -1
- package/dist/cjs/src/auth/index.js +7 -7
- package/dist/cjs/src/auth/index.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +54 -62
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/auth/transports/index.js +1 -1
- package/dist/cjs/src/auth/transports/index.js.map +1 -1
- package/dist/cjs/src/auth/utils/createNonce.js +6 -5
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +2 -2
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/index.js +4 -4
- package/dist/cjs/src/auth/utils/index.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js +7 -4
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js +5 -4
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/compat/BSM.js +16 -26
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +50 -52
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +36 -46
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +30 -39
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/Utxo.js +5 -5
- package/dist/cjs/src/compat/Utxo.js.map +1 -1
- package/dist/cjs/src/compat/index.js +16 -26
- package/dist/cjs/src/compat/index.js.map +1 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +14 -14
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +21 -20
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/messages/index.js +9 -19
- package/dist/cjs/src/messages/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +44 -32
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +12 -12
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +11 -10
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/overlay-tools/index.js +8 -8
- package/dist/cjs/src/overlay-tools/index.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +6 -5
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BasePoint.js +2 -2
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +5 -4
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +70 -36
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js +6 -6
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +71 -55
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +115 -105
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +25 -15
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js +2 -2
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Mersenne.js +4 -4
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js +5 -5
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +114 -87
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/Polynomial.js +14 -14
- package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +48 -58
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +23 -23
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +2 -1
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +10 -10
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +8 -8
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +23 -23
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +38 -38
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/index.js +34 -44
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +38 -37
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/script/LockingScript.js +2 -2
- package/dist/cjs/src/script/LockingScript.js.map +1 -1
- package/dist/cjs/src/script/OP.js +3 -3
- package/dist/cjs/src/script/OP.js.map +1 -1
- package/dist/cjs/src/script/Script.js +47 -47
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +304 -311
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/UnlockingScript.js +2 -2
- package/dist/cjs/src/script/UnlockingScript.js.map +1 -1
- package/dist/cjs/src/script/index.js +11 -11
- package/dist/cjs/src/script/index.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +55 -47
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +57 -51
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +49 -48
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/script/templates/index.js +6 -6
- package/dist/cjs/src/script/templates/index.js.map +1 -1
- package/dist/cjs/src/totp/index.js +1 -1
- package/dist/cjs/src/totp/index.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +9 -8
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +78 -67
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +5 -5
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +39 -33
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/Broadcaster.js +3 -2
- package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +60 -38
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +127 -85
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/ARC.js +48 -43
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +4 -3
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +15 -15
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/index.js +6 -6
- package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +4 -3
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +11 -11
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/index.js +4 -4
- package/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +3 -3
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/index.js +2 -2
- package/dist/cjs/src/transaction/fee-models/index.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +12 -10
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js +2 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js +8 -8
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/index.js +6 -6
- package/dist/cjs/src/transaction/http/index.js.map +1 -1
- package/dist/cjs/src/transaction/index.js +12 -12
- package/dist/cjs/src/transaction/index.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +34 -11
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/KeyDeriver.js +10 -9
- package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +68 -31
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js +18 -14
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/WalletError.js +2 -2
- package/dist/cjs/src/wallet/WalletError.js.map +1 -1
- package/dist/cjs/src/wallet/index.js +12 -12
- package/dist/cjs/src/wallet/index.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +2 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +11 -11
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +239 -238
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +311 -300
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +9 -7
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/index.js +12 -12
- package/dist/cjs/src/wallet/substrates/index.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +32 -32
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/mod.js +15 -31
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/src/auth/Peer.js +64 -63
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +11 -10
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js +32 -34
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +36 -43
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +9 -16
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +46 -33
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/certificates/index.js +4 -25
- package/dist/esm/src/auth/certificates/index.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +66 -79
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/clients/index.js +1 -17
- package/dist/esm/src/auth/clients/index.js.map +1 -1
- package/dist/esm/src/auth/index.js +7 -23
- package/dist/esm/src/auth/index.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +55 -67
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/auth/transports/index.js +1 -17
- package/dist/esm/src/auth/transports/index.js.map +1 -1
- package/dist/esm/src/auth/types.js +1 -2
- package/dist/esm/src/auth/utils/createNonce.js +5 -8
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +3 -7
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/index.js +4 -20
- package/dist/esm/src/auth/utils/index.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js +8 -9
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js +4 -7
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/compat/BSM.js +14 -56
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +44 -75
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +30 -69
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +24 -62
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/Utxo.js +5 -11
- package/dist/esm/src/compat/Utxo.js.map +1 -1
- package/dist/esm/src/compat/bip-39-wordlist-en.js +1 -4
- package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
- package/dist/esm/src/compat/index.js +5 -48
- package/dist/esm/src/compat/index.js.map +1 -1
- package/dist/esm/src/messages/EncryptedMessage.js +16 -24
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +23 -30
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/messages/index.js +2 -38
- package/dist/esm/src/messages/index.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +46 -43
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +13 -19
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +13 -20
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/overlay-tools/index.js +5 -28
- package/dist/esm/src/overlay-tools/index.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +27 -39
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BasePoint.js +3 -9
- package/dist/esm/src/primitives/BasePoint.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +6 -8
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +70 -43
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js +7 -10
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +72 -65
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +131 -141
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +24 -21
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js +2 -8
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Mersenne.js +5 -11
- package/dist/esm/src/primitives/Mersenne.js.map +1 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js +5 -11
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +104 -93
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/Polynomial.js +16 -24
- package/dist/esm/src/primitives/Polynomial.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +42 -83
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +23 -29
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +4 -5
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +11 -17
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +9 -15
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +24 -30
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +13 -19
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +29 -60
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/index.js +14 -66
- package/dist/esm/src/primitives/index.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +55 -74
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/LockingScript.js +2 -8
- package/dist/esm/src/script/LockingScript.js.map +1 -1
- package/dist/esm/src/script/OP.js +4 -6
- package/dist/esm/src/script/OP.js.map +1 -1
- package/dist/esm/src/script/Script.js +48 -54
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/ScriptChunk.js +1 -2
- package/dist/esm/src/script/ScriptTemplate.js +1 -2
- package/dist/esm/src/script/Spend.js +297 -334
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/UnlockingScript.js +2 -8
- package/dist/esm/src/script/UnlockingScript.js.map +1 -1
- package/dist/esm/src/script/index.js +6 -31
- package/dist/esm/src/script/index.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +53 -51
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +54 -52
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +51 -55
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/script/templates/index.js +3 -12
- package/dist/esm/src/script/templates/index.js.map +1 -1
- package/dist/esm/src/totp/index.js +1 -17
- package/dist/esm/src/totp/index.js.map +1 -1
- package/dist/esm/src/totp/totp.js +10 -16
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +89 -86
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +6 -10
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +40 -40
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/Broadcaster.js +2 -6
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
- package/dist/esm/src/transaction/ChainTracker.js +1 -2
- package/dist/esm/src/transaction/FeeModel.js +1 -2
- package/dist/esm/src/transaction/MerklePath.js +58 -41
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +121 -92
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/TransactionInput.js +1 -2
- package/dist/esm/src/transaction/TransactionOutput.js +1 -2
- package/dist/esm/src/transaction/broadcasters/ARC.js +49 -50
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +3 -9
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +16 -19
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/index.js +3 -12
- package/dist/esm/src/transaction/broadcasters/index.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +3 -9
- package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +12 -15
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/index.js +2 -10
- package/dist/esm/src/transaction/chaintrackers/index.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +4 -7
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/index.js +1 -8
- package/dist/esm/src/transaction/fee-models/index.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +11 -13
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/FetchHttpClient.js +2 -6
- package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/HttpClient.js +1 -2
- package/dist/esm/src/transaction/http/NodejsHttpClient.js +9 -13
- package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/index.js +3 -9
- package/dist/esm/src/transaction/http/index.js.map +1 -1
- package/dist/esm/src/transaction/index.js +6 -32
- package/dist/esm/src/transaction/index.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +35 -15
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/KeyDeriver.js +11 -15
- package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +66 -37
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/Wallet.interfaces.js +2 -5
- package/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js +19 -21
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js +4 -8
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/index.js +8 -32
- package/dist/esm/src/wallet/index.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +3 -6
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +12 -18
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWire.js +1 -2
- package/dist/esm/src/wallet/substrates/WalletWireCalls.js +1 -3
- package/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +240 -245
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +305 -307
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +10 -11
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/index.js +7 -32
- package/dist/esm/src/wallet/substrates/index.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +33 -36
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/mod.d.ts +15 -15
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/src/auth/Peer.d.ts +4 -4
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +1 -1
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +6 -6
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +2 -2
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/index.d.ts +4 -4
- package/dist/types/src/auth/certificates/index.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts +9 -9
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/clients/index.d.ts +1 -1
- package/dist/types/src/auth/clients/index.d.ts.map +1 -1
- package/dist/types/src/auth/index.d.ts +7 -7
- package/dist/types/src/auth/index.d.ts.map +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
- package/dist/types/src/auth/transports/index.d.ts +1 -1
- package/dist/types/src/auth/transports/index.d.ts.map +1 -1
- package/dist/types/src/auth/types.d.ts +1 -1
- package/dist/types/src/auth/types.d.ts.map +1 -1
- package/dist/types/src/auth/utils/createNonce.d.ts +1 -1
- package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/index.d.ts +4 -4
- package/dist/types/src/auth/utils/index.d.ts.map +1 -1
- package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
- package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
- package/dist/types/src/compat/BSM.d.ts +4 -4
- package/dist/types/src/compat/BSM.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts +2 -2
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +2 -2
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
- package/dist/types/src/compat/Utxo.d.ts +3 -3
- package/dist/types/src/compat/Utxo.d.ts.map +1 -1
- package/dist/types/src/compat/index.d.ts +5 -5
- package/dist/types/src/compat/index.d.ts.map +1 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts +2 -2
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/SignedMessage.d.ts +2 -2
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/index.d.ts +2 -2
- package/dist/types/src/messages/index.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +4 -4
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +2 -2
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/index.d.ts +5 -5
- package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts +9 -9
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts +17 -10
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/DRBG.d.ts +1 -1
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +4 -4
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +11 -11
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts +3 -3
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/K256.d.ts +2 -2
- package/dist/types/src/primitives/K256.d.ts.map +1 -1
- package/dist/types/src/primitives/Mersenne.d.ts +1 -1
- package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
- package/dist/types/src/primitives/MontgomoryMethod.d.ts +2 -2
- package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +3 -3
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Polynomial.d.ts +2 -2
- package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +7 -7
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts +4 -4
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/src/primitives/ReductionContext.d.ts +2 -2
- package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +3 -3
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +3 -3
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +5 -5
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/index.d.ts +14 -14
- package/dist/types/src/primitives/index.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +4 -7
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/LockingScript.d.ts +1 -1
- package/dist/types/src/script/LockingScript.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +2 -2
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +5 -5
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts +4 -4
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/UnlockingScript.d.ts +1 -1
- package/dist/types/src/script/UnlockingScript.d.ts.map +1 -1
- package/dist/types/src/script/index.d.ts +7 -7
- package/dist/types/src/script/index.d.ts.map +1 -1
- package/dist/types/src/script/templates/P2PKH.d.ts +7 -7
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +6 -7
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts +9 -9
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/script/templates/index.d.ts +3 -3
- package/dist/types/src/script/templates/index.d.ts.map +1 -1
- package/dist/types/src/totp/index.d.ts +1 -1
- package/dist/types/src/totp/index.d.ts.map +1 -1
- package/dist/types/src/totp/totp.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +10 -10
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +4 -4
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/Broadcaster.d.ts +1 -1
- package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/FeeModel.d.ts +1 -1
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts +2 -2
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +7 -7
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionInput.d.ts +2 -2
- package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +4 -4
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +2 -2
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +4 -4
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/index.d.ts +4 -4
- package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +3 -3
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/index.d.ts +3 -3
- package/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +2 -2
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/index.d.ts +1 -1
- package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts +1 -1
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +1 -1
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/index.d.ts +6 -6
- package/dist/types/src/transaction/http/index.d.ts.map +1 -1
- package/dist/types/src/transaction/index.d.ts +10 -10
- package/dist/types/src/transaction/index.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts +3 -3
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +2 -2
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +12 -12
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +7 -8
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +6 -6
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/index.d.ts +8 -8
- package/dist/types/src/wallet/index.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +7 -7
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +2 -2
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +10 -10
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +2 -2
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/index.d.ts +7 -7
- package/dist/types/src/wallet/substrates/index.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +25 -25
- package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/auth.md +44 -38
- package/docs/primitives.md +97 -73
- package/docs/script.md +4 -4
- package/docs/swagger/dist/swagger-initializer.js +7 -7
- package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
- package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
- package/docs/swagger/dist/swagger-ui.js +2 -2
- package/docs/transaction.md +27 -27
- package/docs/wallet-substrates.md +13 -13
- package/docs/wallet.md +80 -82
- package/mod.ts +15 -15
- package/package.json +8 -3
- package/src/auth/Peer.ts +75 -70
- package/src/auth/SessionManager.ts +11 -6
- package/src/auth/__tests/Peer.test.ts +141 -114
- package/src/auth/__tests/SessionManager.test.ts +67 -19
- package/src/auth/__tests/build.test.ts +11 -0
- package/src/auth/certificates/Certificate.ts +15 -12
- package/src/auth/certificates/MasterCertificate.ts +24 -33
- package/src/auth/certificates/VerifiableCertificate.ts +6 -4
- package/src/auth/certificates/__tests/Certificate.test.ts +140 -139
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +88 -74
- package/src/auth/certificates/__tests/MasterCertificate.test.ts +7 -15
- package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +1 -6
- package/src/auth/certificates/index.ts +4 -4
- package/src/auth/clients/AuthFetch.ts +232 -316
- package/src/auth/clients/index.ts +1 -1
- package/src/auth/index.ts +7 -7
- package/src/auth/transports/SimplifiedFetchTransport.ts +126 -166
- package/src/auth/transports/index.ts +1 -1
- package/src/auth/types.ts +1 -1
- package/src/auth/utils/__tests/cryptononce.test.ts +7 -5
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +12 -12
- package/src/auth/utils/__tests/validateCertificates.test.ts +113 -103
- package/src/auth/utils/createNonce.ts +1 -1
- package/src/auth/utils/getVerifiableCertificates.ts +4 -4
- package/src/auth/utils/index.ts +4 -4
- package/src/auth/utils/validateCertificates.ts +9 -5
- package/src/auth/utils/verifyNonce.ts +1 -1
- package/src/compat/BSM.ts +7 -7
- package/src/compat/ECIES.ts +38 -30
- package/src/compat/HD.ts +12 -13
- package/src/compat/Mnemonic.ts +16 -14
- package/src/compat/Utxo.ts +4 -4
- package/src/compat/__tests/BSM.test.ts +5 -6
- package/src/compat/__tests/HD.test.ts +6 -4
- package/src/compat/__tests/Mnemonic.test.ts +144 -145
- package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
- package/src/compat/index.ts +5 -5
- package/src/messages/EncryptedMessage.ts +5 -5
- package/src/messages/SignedMessage.ts +7 -6
- package/src/messages/__tests/EncryptedMessage.test.ts +39 -39
- package/src/messages/__tests/SignedMessage.test.ts +49 -49
- package/src/messages/index.ts +2 -2
- package/src/overlay-tools/LookupResolver.ts +52 -32
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +9 -5
- package/src/overlay-tools/SHIPBroadcaster.ts +8 -7
- package/src/overlay-tools/index.ts +5 -5
- package/src/primitives/AESGCM.ts +2 -0
- package/src/primitives/BasePoint.ts +5 -5
- package/src/primitives/BigNumber.ts +8 -6
- package/src/primitives/Curve.ts +79 -27
- package/src/primitives/DRBG.ts +3 -3
- package/src/primitives/ECDSA.ts +62 -42
- package/src/primitives/Hash.ts +215 -163
- package/src/primitives/JacobianPoint.ts +19 -5
- package/src/primitives/K256.ts +2 -2
- package/src/primitives/Mersenne.ts +1 -1
- package/src/primitives/MontgomoryMethod.ts +2 -2
- package/src/primitives/Point.ts +98 -76
- package/src/primitives/Polynomial.ts +6 -6
- package/src/primitives/PrivateKey.ts +24 -24
- package/src/primitives/PublicKey.ts +8 -8
- package/src/primitives/Random.ts +7 -3
- package/src/primitives/ReductionContext.ts +3 -3
- package/src/primitives/Schnorr.ts +5 -5
- package/src/primitives/Signature.ts +14 -12
- package/src/primitives/SymmetricKey.ts +5 -5
- package/src/primitives/TransactionSignature.ts +26 -13
- package/src/primitives/__tests/AESGCM.test.ts +403 -403
- package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
- package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
- package/src/primitives/__tests/BigNumber.arithmatic.test.ts +563 -563
- package/src/primitives/__tests/BigNumber.binary.test.ts +211 -211
- package/src/primitives/__tests/BigNumber.constructor.test.ts +8 -4
- package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -15
- package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
- package/src/primitives/__tests/BigNumber.serializers.test.ts +169 -169
- package/src/primitives/__tests/BigNumber.utils.test.ts +328 -328
- package/src/primitives/__tests/Curve.unit.test.ts +152 -145
- package/src/primitives/__tests/DRBG.test.ts +13 -13
- package/src/primitives/__tests/DRBG.vectors.ts +45 -75
- package/src/primitives/__tests/ECDSA.test.ts +51 -51
- package/src/primitives/__tests/HMAC.test.ts +46 -46
- package/src/primitives/__tests/Hash.test.ts +83 -83
- package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
- package/src/primitives/__tests/PrivateKey.split.test.ts +6 -4
- package/src/primitives/__tests/PrivateKey.test.ts +53 -55
- package/src/primitives/__tests/PublicKey.test.ts +59 -57
- package/src/primitives/__tests/Random.test.ts +10 -10
- package/src/primitives/__tests/ReductionContext.test.ts +222 -222
- package/src/primitives/__tests/Schnorr.test.ts +150 -148
- package/src/primitives/__tests/SymmetricKey.test.ts +44 -44
- package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
- package/src/primitives/__tests/bug-31.test.ts +23 -29
- package/src/primitives/__tests/utils.test.ts +1 -1
- package/src/primitives/index.ts +14 -14
- package/src/primitives/utils.ts +25 -26
- package/src/script/LockingScript.ts +1 -1
- package/src/script/Script.ts +13 -11
- package/src/script/ScriptTemplate.ts +5 -5
- package/src/script/Spend.ts +27 -25
- package/src/script/UnlockingScript.ts +1 -1
- package/src/script/__tests/Script.test.ts +7 -3
- package/src/script/__tests/Spend.test.ts +23 -18
- package/src/script/__tests/SpendComplex.test.ts +27 -31
- package/src/script/__tests/script.invalid.vectors.ts +428 -1796
- package/src/script/__tests/script.valid.vectors.ts +1064 -1064
- package/src/script/index.ts +7 -7
- package/src/script/templates/P2PKH.ts +72 -61
- package/src/script/templates/PushDrop.ts +101 -95
- package/src/script/templates/RPuzzle.ts +65 -62
- package/src/script/templates/__tests/PushDrop.test.ts +2 -3
- package/src/script/templates/index.ts +3 -3
- package/src/totp/__tests/totp.test.ts +12 -11
- package/src/totp/index.ts +1 -1
- package/src/totp/totp.ts +5 -4
- package/src/transaction/Beef.ts +84 -59
- package/src/transaction/BeefParty.ts +9 -7
- package/src/transaction/BeefTx.ts +32 -26
- package/src/transaction/Broadcaster.ts +1 -1
- package/src/transaction/FeeModel.ts +1 -2
- package/src/transaction/MerklePath.ts +58 -37
- package/src/transaction/Transaction.ts +127 -103
- package/src/transaction/TransactionInput.ts +2 -2
- package/src/transaction/TransactionOutput.ts +1 -2
- package/src/transaction/__tests/Beef.test.ts +109 -68
- package/src/transaction/__tests/MerklePath.test.ts +132 -131
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +10 -13
- package/src/transaction/__tests/Transaction.test.ts +20 -31
- package/src/transaction/__tests/bigtx.vectors.ts +2 -1
- package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
- package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
- package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
- package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
- package/src/transaction/broadcasters/ARC.ts +117 -112
- package/src/transaction/broadcasters/DefaultBroadcaster.ts +4 -4
- package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +32 -32
- package/src/transaction/broadcasters/__tests/ARC.test.ts +63 -27
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +9 -8
- package/src/transaction/broadcasters/index.ts +4 -4
- package/src/transaction/chaintrackers/DefaultChainTracker.ts +3 -3
- package/src/transaction/chaintrackers/WhatsOnChain.ts +39 -38
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +99 -99
- package/src/transaction/chaintrackers/index.ts +3 -3
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +30 -31
- package/src/transaction/fee-models/index.ts +1 -1
- package/src/transaction/http/DefaultHttpClient.ts +14 -13
- package/src/transaction/http/FetchHttpClient.ts +3 -3
- package/src/transaction/http/HttpClient.ts +20 -20
- package/src/transaction/http/NodejsHttpClient.ts +27 -27
- package/src/transaction/http/index.ts +7 -7
- package/src/transaction/index.ts +10 -10
- package/src/wallet/CachedKeyDeriver.ts +39 -16
- package/src/wallet/KeyDeriver.ts +4 -4
- package/src/wallet/ProtoWallet.ts +77 -44
- package/src/wallet/Wallet.interfaces.ts +10 -8
- package/src/wallet/WalletClient.ts +21 -24
- package/src/wallet/WalletError.ts +2 -2
- package/src/wallet/__tests/CachedKeyDeriver.test.ts +15 -12
- package/src/wallet/__tests/KeyDeriver.test.ts +115 -115
- package/src/wallet/__tests/ProtoWallet.test.ts +320 -313
- package/src/wallet/index.ts +8 -8
- package/src/wallet/substrates/HTTPWalletJSON.ts +54 -40
- package/src/wallet/substrates/HTTPWalletWire.ts +27 -27
- package/src/wallet/substrates/WalletWire.ts +1 -1
- package/src/wallet/substrates/WalletWireCalls.ts +2 -2
- package/src/wallet/substrates/WalletWireProcessor.ts +966 -967
- package/src/wallet/substrates/WalletWireTransceiver.ts +1012 -1007
- package/src/wallet/substrates/XDM.ts +18 -19
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +6 -4
- package/src/wallet/substrates/__tests/XDM.test.ts +343 -341
- package/src/wallet/substrates/index.ts +7 -7
- package/src/wallet/substrates/window.CWI.ts +330 -330
- package/dist/cjs/src/auth/__tests/Peer.test.js +0 -446
- package/dist/cjs/src/auth/__tests/Peer.test.js.map +0 -1
- package/dist/cjs/src/auth/__tests/SessionManager.test.js +0 -69
- package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +0 -1
- package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +0 -182
- package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
- package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
- package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
- package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
- package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
- package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +0 -101
- package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
- package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
- package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
- package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +0 -111
- package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
- package/dist/cjs/src/compat/__tests/BSM.test.js +0 -69
- package/dist/cjs/src/compat/__tests/BSM.test.js.map +0 -1
- package/dist/cjs/src/compat/__tests/ECIES.test.js +0 -115
- package/dist/cjs/src/compat/__tests/ECIES.test.js.map +0 -1
- package/dist/cjs/src/compat/__tests/HD.test.js +0 -336
- package/dist/cjs/src/compat/__tests/HD.test.js.map +0 -1
- package/dist/cjs/src/compat/__tests/Mnemonic.test.js +0 -150
- package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +0 -1
- package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +0 -175
- package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
- package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +0 -57
- package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
- package/dist/cjs/src/messages/__tests/SignedMessage.test.js +0 -52
- package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +0 -1
- package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
- package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
- package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
- package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
- package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
- package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/AESGCM.test.js +0 -248
- package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +0 -36
- package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +0 -36
- package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
- package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +0 -185
- package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
- package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
- package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +0 -268
- package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
- package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +0 -322
- package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +0 -145
- package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/DRBG.test.js +0 -22
- package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +0 -170
- package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/ECDH.test.js +0 -34
- package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/ECDSA.test.js +0 -89
- package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/HMAC.test.js +0 -60
- package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Hash.test.js +0 -159
- package/dist/cjs/src/primitives/__tests/Hash.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +0 -122
- package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +0 -105
- package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +0 -90
- package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/PublicKey.test.js +0 -83
- package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Random.test.js +0 -19
- package/dist/cjs/src/primitives/__tests/Random.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Reader.test.js +0 -282
- package/dist/cjs/src/primitives/__tests/Reader.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +0 -224
- package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Schnorr.test.js +0 -213
- package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +0 -51
- package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
- package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/Writer.test.js +0 -176
- package/dist/cjs/src/primitives/__tests/Writer.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/bug-31.test.js +0 -32
- package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/sighash.vectors.js +0 -3506
- package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +0 -1
- package/dist/cjs/src/primitives/__tests/utils.test.js +0 -110
- package/dist/cjs/src/primitives/__tests/utils.test.js.map +0 -1
- package/dist/cjs/src/script/__tests/Script.test.js +0 -347
- package/dist/cjs/src/script/__tests/Script.test.js.map +0 -1
- package/dist/cjs/src/script/__tests/Spend.test.js +0 -282
- package/dist/cjs/src/script/__tests/Spend.test.js.map +0 -1
- package/dist/cjs/src/script/__tests/SpendComplex.test.js +0 -52
- package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +0 -1
- package/dist/cjs/src/script/__tests/script.invalid.vectors.js +0 -2370
- package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +0 -1
- package/dist/cjs/src/script/__tests/script.valid.vectors.js +0 -1181
- package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +0 -1
- package/dist/cjs/src/script/__tests/spend.valid.vectors.js +0 -2298
- package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +0 -1
- package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +0 -161
- package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +0 -1
- package/dist/cjs/src/totp/__tests/totp.test.js +0 -67
- package/dist/cjs/src/totp/__tests/totp.test.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/Beef.test.js +0 -393
- package/dist/cjs/src/transaction/__tests/Beef.test.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/MerklePath.test.js +0 -209
- package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
- package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/Transaction.test.js +0 -1073
- package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +0 -7
- package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +0 -11
- package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +0 -7
- package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +0 -230
- package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
- package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +0 -296
- package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
- package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
- package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
- package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
- package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
- package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
- package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
- package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
- package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
- package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +0 -114
- package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
- package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +0 -475
- package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
- package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
- package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
- package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +0 -579
- package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
- package/dist/esm/src/auth/__tests/Peer.test.js +0 -448
- package/dist/esm/src/auth/__tests/Peer.test.js.map +0 -1
- package/dist/esm/src/auth/__tests/SessionManager.test.js +0 -69
- package/dist/esm/src/auth/__tests/SessionManager.test.js.map +0 -1
- package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +0 -182
- package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
- package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
- package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
- package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
- package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
- package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +0 -101
- package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
- package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
- package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
- package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +0 -111
- package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
- package/dist/esm/src/compat/__tests/BSM.test.js +0 -69
- package/dist/esm/src/compat/__tests/BSM.test.js.map +0 -1
- package/dist/esm/src/compat/__tests/ECIES.test.js +0 -115
- package/dist/esm/src/compat/__tests/ECIES.test.js.map +0 -1
- package/dist/esm/src/compat/__tests/HD.test.js +0 -336
- package/dist/esm/src/compat/__tests/HD.test.js.map +0 -1
- package/dist/esm/src/compat/__tests/Mnemonic.test.js +0 -150
- package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +0 -1
- package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +0 -175
- package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
- package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +0 -57
- package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
- package/dist/esm/src/messages/__tests/SignedMessage.test.js +0 -52
- package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +0 -1
- package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
- package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
- package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
- package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
- package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
- package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/AESGCM.test.js +0 -248
- package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +0 -36
- package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +0 -36
- package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
- package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +0 -185
- package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
- package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
- package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +0 -268
- package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
- package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +0 -322
- package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Curve.unit.test.js +0 -145
- package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/DRBG.test.js +0 -22
- package/dist/esm/src/primitives/__tests/DRBG.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/DRBG.vectors.js +0 -170
- package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/ECDH.test.js +0 -34
- package/dist/esm/src/primitives/__tests/ECDH.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/ECDSA.test.js +0 -89
- package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/HMAC.test.js +0 -60
- package/dist/esm/src/primitives/__tests/HMAC.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Hash.test.js +0 -159
- package/dist/esm/src/primitives/__tests/Hash.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +0 -122
- package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +0 -105
- package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/PrivateKey.test.js +0 -90
- package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/PublicKey.test.js +0 -83
- package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Random.test.js +0 -19
- package/dist/esm/src/primitives/__tests/Random.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Reader.test.js +0 -282
- package/dist/esm/src/primitives/__tests/Reader.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/ReductionContext.test.js +0 -223
- package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Schnorr.test.js +0 -213
- package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +0 -51
- package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
- package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/Writer.test.js +0 -176
- package/dist/esm/src/primitives/__tests/Writer.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/bug-31.test.js +0 -32
- package/dist/esm/src/primitives/__tests/bug-31.test.js.map +0 -1
- package/dist/esm/src/primitives/__tests/sighash.vectors.js +0 -3506
- package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +0 -1
- package/dist/esm/src/primitives/__tests/utils.test.js +0 -110
- package/dist/esm/src/primitives/__tests/utils.test.js.map +0 -1
- package/dist/esm/src/script/__tests/Script.test.js +0 -347
- package/dist/esm/src/script/__tests/Script.test.js.map +0 -1
- package/dist/esm/src/script/__tests/Spend.test.js +0 -282
- package/dist/esm/src/script/__tests/Spend.test.js.map +0 -1
- package/dist/esm/src/script/__tests/SpendComplex.test.js +0 -51
- package/dist/esm/src/script/__tests/SpendComplex.test.js.map +0 -1
- package/dist/esm/src/script/__tests/script.invalid.vectors.js +0 -2370
- package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +0 -1
- package/dist/esm/src/script/__tests/script.valid.vectors.js +0 -1181
- package/dist/esm/src/script/__tests/script.valid.vectors.js.map +0 -1
- package/dist/esm/src/script/__tests/spend.valid.vectors.js +0 -2298
- package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +0 -1
- package/dist/esm/src/script/templates/__tests/PushDrop.test.js +0 -161
- package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +0 -1
- package/dist/esm/src/totp/__tests/totp.test.js +0 -67
- package/dist/esm/src/totp/__tests/totp.test.js.map +0 -1
- package/dist/esm/src/transaction/__tests/Beef.test.js +0 -393
- package/dist/esm/src/transaction/__tests/Beef.test.js.map +0 -1
- package/dist/esm/src/transaction/__tests/MerklePath.test.js +0 -209
- package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +0 -1
- package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
- package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
- package/dist/esm/src/transaction/__tests/Transaction.test.js +0 -1072
- package/dist/esm/src/transaction/__tests/Transaction.test.js.map +0 -1
- package/dist/esm/src/transaction/__tests/bigtx.vectors.js +0 -7
- package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +0 -1
- package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +0 -11
- package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
- package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +0 -7
- package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
- package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +0 -230
- package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
- package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +0 -296
- package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
- package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
- package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
- package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
- package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
- package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
- package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
- package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
- package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
- package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +0 -113
- package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
- package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +0 -475
- package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
- package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
- package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
- package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +0 -579
- package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
- package/dist/types/src/auth/__tests/Peer.test.d.ts +0 -2
- package/dist/types/src/auth/__tests/Peer.test.d.ts.map +0 -1
- package/dist/types/src/auth/__tests/SessionManager.test.d.ts +0 -2
- package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +0 -1
- package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +0 -2
- package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +0 -1
- package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +0 -2
- package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +0 -1
- package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +0 -2
- package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +0 -1
- package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +0 -2
- package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +0 -1
- package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +0 -2
- package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +0 -1
- package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +0 -2
- package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +0 -1
- package/dist/types/src/compat/__tests/BSM.test.d.ts +0 -2
- package/dist/types/src/compat/__tests/BSM.test.d.ts.map +0 -1
- package/dist/types/src/compat/__tests/ECIES.test.d.ts +0 -2
- package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +0 -1
- package/dist/types/src/compat/__tests/HD.test.d.ts +0 -2
- package/dist/types/src/compat/__tests/HD.test.d.ts.map +0 -1
- package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +0 -2
- package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +0 -1
- package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +0 -11
- package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +0 -1
- package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +0 -2
- package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +0 -1
- package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +0 -2
- package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +0 -1
- package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +0 -2
- package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +0 -1
- package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +0 -2
- package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +0 -1
- package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +0 -2
- package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +0 -8
- package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +0 -8
- package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +0 -15
- package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/DRBG.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +0 -10
- package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/ECDH.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/HMAC.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Hash.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +0 -68
- package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Random.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Random.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Reader.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +0 -20
- package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/Writer.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/bug-31.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +0 -3
- package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +0 -1
- package/dist/types/src/primitives/__tests/utils.test.d.ts +0 -2
- package/dist/types/src/primitives/__tests/utils.test.d.ts.map +0 -1
- package/dist/types/src/script/__tests/Script.test.d.ts +0 -2
- package/dist/types/src/script/__tests/Script.test.d.ts.map +0 -1
- package/dist/types/src/script/__tests/Spend.test.d.ts +0 -2
- package/dist/types/src/script/__tests/Spend.test.d.ts.map +0 -1
- package/dist/types/src/script/__tests/SpendComplex.test.d.ts +0 -2
- package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +0 -1
- package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +0 -3
- package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +0 -1
- package/dist/types/src/script/__tests/script.valid.vectors.d.ts +0 -3
- package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +0 -1
- package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +0 -3
- package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +0 -1
- package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +0 -2
- package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +0 -1
- package/dist/types/src/totp/__tests/totp.test.d.ts +0 -2
- package/dist/types/src/totp/__tests/totp.test.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/Beef.test.d.ts +0 -2
- package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +0 -2
- package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +0 -2
- package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/Transaction.test.d.ts +0 -2
- package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +0 -6
- package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +0 -6
- package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +0 -5
- package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +0 -3
- package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +0 -1
- package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +0 -3
- package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +0 -1
- package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +0 -2
- package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +0 -1
- package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +0 -2
- package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +0 -1
- package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +0 -2
- package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +0 -1
- package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +0 -2
- package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +0 -1
- package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +0 -2
- package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +0 -1
- package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +0 -2
- package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +0 -1
- package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +0 -2
- package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +0 -1
- package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +0 -5
- package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +0 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
|
|
1
2
|
import {
|
|
2
3
|
AcquireCertificateArgs,
|
|
3
4
|
AcquireCertificateResult,
|
|
4
5
|
SecurityLevel,
|
|
6
|
+
SecurityLevels,
|
|
5
7
|
Base64String,
|
|
6
8
|
BasketStringUnder300Bytes,
|
|
7
9
|
BEEF,
|
|
@@ -41,58 +43,58 @@ import {
|
|
|
41
43
|
SignActionResult,
|
|
42
44
|
TXIDHexString,
|
|
43
45
|
VersionString7To30Bytes,
|
|
44
|
-
WalletInterface
|
|
45
|
-
} from
|
|
46
|
-
import WalletWire from
|
|
47
|
-
import { Certificate } from
|
|
48
|
-
import { Utils } from
|
|
49
|
-
import calls, { CallType } from
|
|
50
|
-
import { WalletError } from
|
|
46
|
+
WalletInterface
|
|
47
|
+
} from '../Wallet.interfaces.js'
|
|
48
|
+
import WalletWire from './WalletWire.js'
|
|
49
|
+
import { Certificate } from '../../auth/index.js'
|
|
50
|
+
import { Utils } from '../../primitives/index.js'
|
|
51
|
+
import calls, { CallType } from './WalletWireCalls.js'
|
|
52
|
+
import { WalletError } from '../WalletError.js'
|
|
51
53
|
|
|
52
54
|
/**
|
|
53
55
|
* A way to make remote calls to a wallet over a wallet wire.
|
|
54
56
|
*/
|
|
55
57
|
export default class WalletWireTransceiver implements WalletInterface {
|
|
56
|
-
wire: WalletWire
|
|
58
|
+
wire: WalletWire
|
|
57
59
|
|
|
58
60
|
constructor(wire: WalletWire) {
|
|
59
|
-
this.wire = wire
|
|
61
|
+
this.wire = wire
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
private async transmit(
|
|
63
65
|
call: CallType,
|
|
64
|
-
originator: OriginatorDomainNameStringUnder250Bytes =
|
|
66
|
+
originator: OriginatorDomainNameStringUnder250Bytes = '',
|
|
65
67
|
params: number[] = []
|
|
66
68
|
): Promise<number[]> {
|
|
67
|
-
const frameWriter = new Utils.Writer()
|
|
68
|
-
frameWriter.writeUInt8(calls[call])
|
|
69
|
-
const originatorArray = Utils.toArray(originator,
|
|
70
|
-
frameWriter.writeUInt8(originatorArray.length)
|
|
71
|
-
frameWriter.write(originatorArray)
|
|
69
|
+
const frameWriter = new Utils.Writer()
|
|
70
|
+
frameWriter.writeUInt8(calls[call])
|
|
71
|
+
const originatorArray = Utils.toArray(originator, 'utf8')
|
|
72
|
+
frameWriter.writeUInt8(originatorArray.length)
|
|
73
|
+
frameWriter.write(originatorArray)
|
|
72
74
|
if (params.length > 0) {
|
|
73
|
-
frameWriter.write(params)
|
|
75
|
+
frameWriter.write(params)
|
|
74
76
|
}
|
|
75
|
-
const frame = frameWriter.toArray()
|
|
76
|
-
const result = await this.wire.transmitToWallet(frame)
|
|
77
|
-
const resultReader = new Utils.Reader(result)
|
|
78
|
-
const errorByte = resultReader.readUInt8()
|
|
77
|
+
const frame = frameWriter.toArray()
|
|
78
|
+
const result = await this.wire.transmitToWallet(frame)
|
|
79
|
+
const resultReader = new Utils.Reader(result)
|
|
80
|
+
const errorByte = resultReader.readUInt8()
|
|
79
81
|
if (errorByte === 0) {
|
|
80
|
-
const resultFrame = resultReader.read()
|
|
81
|
-
return resultFrame
|
|
82
|
+
const resultFrame = resultReader.read()
|
|
83
|
+
return resultFrame
|
|
82
84
|
} else {
|
|
83
85
|
// Deserialize the error message length
|
|
84
|
-
const errorMessageLength = resultReader.readVarIntNum()
|
|
85
|
-
const errorMessageBytes = resultReader.read(errorMessageLength)
|
|
86
|
-
const errorMessage = Utils.toUTF8(errorMessageBytes)
|
|
86
|
+
const errorMessageLength = resultReader.readVarIntNum()
|
|
87
|
+
const errorMessageBytes = resultReader.read(errorMessageLength)
|
|
88
|
+
const errorMessage = Utils.toUTF8(errorMessageBytes)
|
|
87
89
|
|
|
88
90
|
// Deserialize the stack trace length
|
|
89
|
-
const stackTraceLength = resultReader.readVarIntNum()
|
|
90
|
-
const stackTraceBytes = resultReader.read(stackTraceLength)
|
|
91
|
-
const stackTrace = Utils.toUTF8(stackTraceBytes)
|
|
91
|
+
const stackTraceLength = resultReader.readVarIntNum()
|
|
92
|
+
const stackTraceBytes = resultReader.read(stackTraceLength)
|
|
93
|
+
const stackTrace = Utils.toUTF8(stackTraceBytes)
|
|
92
94
|
|
|
93
95
|
// Construct a custom wallet error
|
|
94
|
-
const e = new WalletError(errorMessage, errorByte, stackTrace)
|
|
95
|
-
throw e
|
|
96
|
+
const e = new WalletError(errorMessage, errorByte, stackTrace)
|
|
97
|
+
throw e
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
|
|
@@ -100,419 +102,419 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
100
102
|
args: CreateActionArgs,
|
|
101
103
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
102
104
|
): Promise<CreateActionResult> {
|
|
103
|
-
const paramWriter = new Utils.Writer()
|
|
105
|
+
const paramWriter = new Utils.Writer()
|
|
104
106
|
|
|
105
107
|
// Serialize description
|
|
106
|
-
const descriptionBytes = Utils.toArray(args.description,
|
|
107
|
-
paramWriter.writeVarIntNum(descriptionBytes.length)
|
|
108
|
-
paramWriter.write(descriptionBytes)
|
|
108
|
+
const descriptionBytes = Utils.toArray(args.description, 'utf8')
|
|
109
|
+
paramWriter.writeVarIntNum(descriptionBytes.length)
|
|
110
|
+
paramWriter.write(descriptionBytes)
|
|
109
111
|
|
|
110
112
|
// input BEEF
|
|
111
|
-
if (args.inputBEEF) {
|
|
112
|
-
paramWriter.writeVarIntNum(args.inputBEEF.length)
|
|
113
|
-
paramWriter.write(args.inputBEEF)
|
|
113
|
+
if (args.inputBEEF != null) {
|
|
114
|
+
paramWriter.writeVarIntNum(args.inputBEEF.length)
|
|
115
|
+
paramWriter.write(args.inputBEEF)
|
|
114
116
|
} else {
|
|
115
|
-
paramWriter.writeVarIntNum(-1)
|
|
117
|
+
paramWriter.writeVarIntNum(-1)
|
|
116
118
|
}
|
|
117
119
|
|
|
118
120
|
// Serialize inputs
|
|
119
|
-
if (args.inputs) {
|
|
120
|
-
paramWriter.writeVarIntNum(args.inputs.length)
|
|
121
|
+
if (args.inputs != null) {
|
|
122
|
+
paramWriter.writeVarIntNum(args.inputs.length)
|
|
121
123
|
for (const input of args.inputs) {
|
|
122
124
|
// outpoint
|
|
123
|
-
paramWriter.write(this.encodeOutpoint(input.outpoint))
|
|
125
|
+
paramWriter.write(this.encodeOutpoint(input.outpoint))
|
|
124
126
|
|
|
125
127
|
// unlockingScript / unlockingScriptLength
|
|
126
|
-
if (input.unlockingScript) {
|
|
128
|
+
if (input.unlockingScript != null && input.unlockingScript !== '') {
|
|
127
129
|
const unlockingScriptBytes = Utils.toArray(
|
|
128
130
|
input.unlockingScript,
|
|
129
|
-
|
|
130
|
-
)
|
|
131
|
-
paramWriter.writeVarIntNum(unlockingScriptBytes.length)
|
|
132
|
-
paramWriter.write(unlockingScriptBytes)
|
|
131
|
+
'hex'
|
|
132
|
+
)
|
|
133
|
+
paramWriter.writeVarIntNum(unlockingScriptBytes.length)
|
|
134
|
+
paramWriter.write(unlockingScriptBytes)
|
|
133
135
|
} else {
|
|
134
|
-
paramWriter.writeVarIntNum(-1)
|
|
135
|
-
paramWriter.writeVarIntNum(input.unlockingScriptLength)
|
|
136
|
+
paramWriter.writeVarIntNum(-1)
|
|
137
|
+
paramWriter.writeVarIntNum(input.unlockingScriptLength ?? 0)
|
|
136
138
|
}
|
|
137
139
|
|
|
138
140
|
// inputDescription
|
|
139
141
|
const inputDescriptionBytes = Utils.toArray(
|
|
140
142
|
input.inputDescription,
|
|
141
|
-
|
|
142
|
-
)
|
|
143
|
-
paramWriter.writeVarIntNum(inputDescriptionBytes.length)
|
|
144
|
-
paramWriter.write(inputDescriptionBytes)
|
|
143
|
+
'utf8'
|
|
144
|
+
)
|
|
145
|
+
paramWriter.writeVarIntNum(inputDescriptionBytes.length)
|
|
146
|
+
paramWriter.write(inputDescriptionBytes)
|
|
145
147
|
|
|
146
148
|
// sequenceNumber
|
|
147
|
-
if (typeof input.sequenceNumber ===
|
|
148
|
-
paramWriter.writeVarIntNum(input.sequenceNumber)
|
|
149
|
+
if (typeof input.sequenceNumber === 'number') {
|
|
150
|
+
paramWriter.writeVarIntNum(input.sequenceNumber)
|
|
149
151
|
} else {
|
|
150
|
-
paramWriter.writeVarIntNum(-1)
|
|
152
|
+
paramWriter.writeVarIntNum(-1)
|
|
151
153
|
}
|
|
152
154
|
}
|
|
153
155
|
} else {
|
|
154
|
-
paramWriter.writeVarIntNum(-1)
|
|
156
|
+
paramWriter.writeVarIntNum(-1)
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
// Serialize outputs
|
|
158
|
-
if (args.outputs) {
|
|
159
|
-
paramWriter.writeVarIntNum(args.outputs.length)
|
|
160
|
+
if (args.outputs != null) {
|
|
161
|
+
paramWriter.writeVarIntNum(args.outputs.length)
|
|
160
162
|
for (const output of args.outputs) {
|
|
161
163
|
// lockingScript
|
|
162
|
-
const lockingScriptBytes = Utils.toArray(output.lockingScript,
|
|
163
|
-
paramWriter.writeVarIntNum(lockingScriptBytes.length)
|
|
164
|
-
paramWriter.write(lockingScriptBytes)
|
|
164
|
+
const lockingScriptBytes = Utils.toArray(output.lockingScript, 'hex')
|
|
165
|
+
paramWriter.writeVarIntNum(lockingScriptBytes.length)
|
|
166
|
+
paramWriter.write(lockingScriptBytes)
|
|
165
167
|
|
|
166
168
|
// satoshis
|
|
167
|
-
paramWriter.writeVarIntNum(output.satoshis)
|
|
169
|
+
paramWriter.writeVarIntNum(output.satoshis)
|
|
168
170
|
|
|
169
171
|
// outputDescription
|
|
170
172
|
const outputDescriptionBytes = Utils.toArray(
|
|
171
173
|
output.outputDescription,
|
|
172
|
-
|
|
173
|
-
)
|
|
174
|
-
paramWriter.writeVarIntNum(outputDescriptionBytes.length)
|
|
175
|
-
paramWriter.write(outputDescriptionBytes)
|
|
174
|
+
'utf8'
|
|
175
|
+
)
|
|
176
|
+
paramWriter.writeVarIntNum(outputDescriptionBytes.length)
|
|
177
|
+
paramWriter.write(outputDescriptionBytes)
|
|
176
178
|
|
|
177
179
|
// basket
|
|
178
|
-
if (output.basket) {
|
|
179
|
-
const basketBytes = Utils.toArray(output.basket,
|
|
180
|
-
paramWriter.writeVarIntNum(basketBytes.length)
|
|
181
|
-
paramWriter.write(basketBytes)
|
|
180
|
+
if (output.basket != null && output.basket !== '') {
|
|
181
|
+
const basketBytes = Utils.toArray(output.basket, 'utf8')
|
|
182
|
+
paramWriter.writeVarIntNum(basketBytes.length)
|
|
183
|
+
paramWriter.write(basketBytes)
|
|
182
184
|
} else {
|
|
183
|
-
paramWriter.writeVarIntNum(-1)
|
|
185
|
+
paramWriter.writeVarIntNum(-1)
|
|
184
186
|
}
|
|
185
187
|
|
|
186
188
|
// customInstructions
|
|
187
|
-
if (output.customInstructions) {
|
|
189
|
+
if (output.customInstructions != null && output.customInstructions !== '') {
|
|
188
190
|
const customInstructionsBytes = Utils.toArray(
|
|
189
191
|
output.customInstructions,
|
|
190
|
-
|
|
191
|
-
)
|
|
192
|
-
paramWriter.writeVarIntNum(customInstructionsBytes.length)
|
|
193
|
-
paramWriter.write(customInstructionsBytes)
|
|
192
|
+
'utf8'
|
|
193
|
+
)
|
|
194
|
+
paramWriter.writeVarIntNum(customInstructionsBytes.length)
|
|
195
|
+
paramWriter.write(customInstructionsBytes)
|
|
194
196
|
} else {
|
|
195
|
-
paramWriter.writeVarIntNum(-1)
|
|
197
|
+
paramWriter.writeVarIntNum(-1)
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
// tags
|
|
199
|
-
if (output.tags) {
|
|
200
|
-
paramWriter.writeVarIntNum(output.tags.length)
|
|
201
|
+
if (output.tags != null) {
|
|
202
|
+
paramWriter.writeVarIntNum(output.tags.length)
|
|
201
203
|
for (const tag of output.tags) {
|
|
202
|
-
const tagBytes = Utils.toArray(tag,
|
|
203
|
-
paramWriter.writeVarIntNum(tagBytes.length)
|
|
204
|
-
paramWriter.write(tagBytes)
|
|
204
|
+
const tagBytes = Utils.toArray(tag, 'utf8')
|
|
205
|
+
paramWriter.writeVarIntNum(tagBytes.length)
|
|
206
|
+
paramWriter.write(tagBytes)
|
|
205
207
|
}
|
|
206
208
|
} else {
|
|
207
|
-
paramWriter.writeVarIntNum(-1)
|
|
209
|
+
paramWriter.writeVarIntNum(-1)
|
|
208
210
|
}
|
|
209
211
|
}
|
|
210
212
|
} else {
|
|
211
|
-
paramWriter.writeVarIntNum(-1)
|
|
213
|
+
paramWriter.writeVarIntNum(-1)
|
|
212
214
|
}
|
|
213
215
|
|
|
214
216
|
// Serialize lockTime
|
|
215
|
-
if (typeof args.lockTime ===
|
|
216
|
-
paramWriter.writeVarIntNum(args.lockTime)
|
|
217
|
+
if (typeof args.lockTime === 'number') {
|
|
218
|
+
paramWriter.writeVarIntNum(args.lockTime)
|
|
217
219
|
} else {
|
|
218
|
-
paramWriter.writeVarIntNum(-1)
|
|
220
|
+
paramWriter.writeVarIntNum(-1)
|
|
219
221
|
}
|
|
220
222
|
|
|
221
223
|
// Serialize version
|
|
222
|
-
if (typeof args.version ===
|
|
223
|
-
paramWriter.writeVarIntNum(args.version)
|
|
224
|
+
if (typeof args.version === 'number') {
|
|
225
|
+
paramWriter.writeVarIntNum(args.version)
|
|
224
226
|
} else {
|
|
225
|
-
paramWriter.writeVarIntNum(-1)
|
|
227
|
+
paramWriter.writeVarIntNum(-1)
|
|
226
228
|
}
|
|
227
229
|
|
|
228
230
|
// Serialize labels
|
|
229
|
-
if (args.labels) {
|
|
230
|
-
paramWriter.writeVarIntNum(args.labels.length)
|
|
231
|
+
if (args.labels != null) {
|
|
232
|
+
paramWriter.writeVarIntNum(args.labels.length)
|
|
231
233
|
for (const label of args.labels) {
|
|
232
|
-
const labelBytes = Utils.toArray(label,
|
|
233
|
-
paramWriter.writeVarIntNum(labelBytes.length)
|
|
234
|
-
paramWriter.write(labelBytes)
|
|
234
|
+
const labelBytes = Utils.toArray(label, 'utf8')
|
|
235
|
+
paramWriter.writeVarIntNum(labelBytes.length)
|
|
236
|
+
paramWriter.write(labelBytes)
|
|
235
237
|
}
|
|
236
238
|
} else {
|
|
237
|
-
paramWriter.writeVarIntNum(-1)
|
|
239
|
+
paramWriter.writeVarIntNum(-1)
|
|
238
240
|
}
|
|
239
241
|
|
|
240
242
|
// Serialize options
|
|
241
|
-
if (args.options) {
|
|
242
|
-
paramWriter.writeInt8(1)
|
|
243
|
+
if (args.options != null) {
|
|
244
|
+
paramWriter.writeInt8(1) // options present
|
|
243
245
|
|
|
244
246
|
// signAndProcess
|
|
245
|
-
if (typeof args.options.signAndProcess ===
|
|
246
|
-
paramWriter.writeInt8(args.options.signAndProcess ? 1 : 0)
|
|
247
|
+
if (typeof args.options.signAndProcess === 'boolean') {
|
|
248
|
+
paramWriter.writeInt8(args.options.signAndProcess ? 1 : 0)
|
|
247
249
|
} else {
|
|
248
|
-
paramWriter.writeInt8(-1)
|
|
250
|
+
paramWriter.writeInt8(-1)
|
|
249
251
|
}
|
|
250
252
|
|
|
251
253
|
// acceptDelayedBroadcast
|
|
252
|
-
if (typeof args.options.acceptDelayedBroadcast ===
|
|
253
|
-
paramWriter.writeInt8(args.options.acceptDelayedBroadcast ? 1 : 0)
|
|
254
|
+
if (typeof args.options.acceptDelayedBroadcast === 'boolean') {
|
|
255
|
+
paramWriter.writeInt8(args.options.acceptDelayedBroadcast ? 1 : 0)
|
|
254
256
|
} else {
|
|
255
|
-
paramWriter.writeInt8(-1)
|
|
257
|
+
paramWriter.writeInt8(-1)
|
|
256
258
|
}
|
|
257
259
|
|
|
258
260
|
// trustSelf
|
|
259
|
-
if (args.options.trustSelf ===
|
|
260
|
-
paramWriter.writeInt8(1)
|
|
261
|
+
if (args.options.trustSelf === 'known') {
|
|
262
|
+
paramWriter.writeInt8(1)
|
|
261
263
|
} else {
|
|
262
|
-
paramWriter.writeInt8(-1)
|
|
264
|
+
paramWriter.writeInt8(-1)
|
|
263
265
|
}
|
|
264
266
|
|
|
265
267
|
// knownTxids
|
|
266
|
-
if (args.options.knownTxids) {
|
|
267
|
-
paramWriter.writeVarIntNum(args.options.knownTxids.length)
|
|
268
|
+
if (args.options.knownTxids != null) {
|
|
269
|
+
paramWriter.writeVarIntNum(args.options.knownTxids.length)
|
|
268
270
|
for (const txid of args.options.knownTxids) {
|
|
269
|
-
const txidBytes = Utils.toArray(txid,
|
|
270
|
-
paramWriter.write(txidBytes)
|
|
271
|
+
const txidBytes = Utils.toArray(txid, 'hex')
|
|
272
|
+
paramWriter.write(txidBytes)
|
|
271
273
|
}
|
|
272
274
|
} else {
|
|
273
|
-
paramWriter.writeVarIntNum(-1)
|
|
275
|
+
paramWriter.writeVarIntNum(-1)
|
|
274
276
|
}
|
|
275
277
|
|
|
276
278
|
// returnTXIDOnly
|
|
277
|
-
if (typeof args.options.returnTXIDOnly ===
|
|
278
|
-
paramWriter.writeInt8(args.options.returnTXIDOnly ? 1 : 0)
|
|
279
|
+
if (typeof args.options.returnTXIDOnly === 'boolean') {
|
|
280
|
+
paramWriter.writeInt8(args.options.returnTXIDOnly ? 1 : 0)
|
|
279
281
|
} else {
|
|
280
|
-
paramWriter.writeInt8(-1)
|
|
282
|
+
paramWriter.writeInt8(-1)
|
|
281
283
|
}
|
|
282
284
|
|
|
283
285
|
// noSend
|
|
284
|
-
if (typeof args.options.noSend ===
|
|
285
|
-
paramWriter.writeInt8(args.options.noSend ? 1 : 0)
|
|
286
|
+
if (typeof args.options.noSend === 'boolean') {
|
|
287
|
+
paramWriter.writeInt8(args.options.noSend ? 1 : 0)
|
|
286
288
|
} else {
|
|
287
|
-
paramWriter.writeInt8(-1)
|
|
289
|
+
paramWriter.writeInt8(-1)
|
|
288
290
|
}
|
|
289
291
|
|
|
290
292
|
// noSendChange
|
|
291
|
-
if (args.options.noSendChange) {
|
|
292
|
-
paramWriter.writeVarIntNum(args.options.noSendChange.length)
|
|
293
|
+
if (args.options.noSendChange != null) {
|
|
294
|
+
paramWriter.writeVarIntNum(args.options.noSendChange.length)
|
|
293
295
|
for (const outpoint of args.options.noSendChange) {
|
|
294
|
-
paramWriter.write(this.encodeOutpoint(outpoint))
|
|
296
|
+
paramWriter.write(this.encodeOutpoint(outpoint))
|
|
295
297
|
}
|
|
296
298
|
} else {
|
|
297
|
-
paramWriter.writeVarIntNum(-1)
|
|
299
|
+
paramWriter.writeVarIntNum(-1)
|
|
298
300
|
}
|
|
299
301
|
|
|
300
302
|
// sendWith
|
|
301
|
-
if (args.options.sendWith) {
|
|
302
|
-
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
303
|
+
if (args.options.sendWith != null) {
|
|
304
|
+
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
303
305
|
for (const txid of args.options.sendWith) {
|
|
304
|
-
const txidBytes = Utils.toArray(txid,
|
|
305
|
-
paramWriter.write(txidBytes)
|
|
306
|
+
const txidBytes = Utils.toArray(txid, 'hex')
|
|
307
|
+
paramWriter.write(txidBytes)
|
|
306
308
|
}
|
|
307
309
|
} else {
|
|
308
|
-
paramWriter.writeVarIntNum(-1)
|
|
310
|
+
paramWriter.writeVarIntNum(-1)
|
|
309
311
|
}
|
|
310
312
|
|
|
311
313
|
// randomizeOutputs
|
|
312
|
-
if (typeof args.options.randomizeOutputs ===
|
|
313
|
-
paramWriter.writeInt8(args.options.randomizeOutputs ? 1 : 0)
|
|
314
|
+
if (typeof args.options.randomizeOutputs === 'boolean') {
|
|
315
|
+
paramWriter.writeInt8(args.options.randomizeOutputs ? 1 : 0)
|
|
314
316
|
} else {
|
|
315
|
-
paramWriter.writeInt8(-1)
|
|
317
|
+
paramWriter.writeInt8(-1)
|
|
316
318
|
}
|
|
317
319
|
} else {
|
|
318
|
-
paramWriter.writeInt8(0)
|
|
320
|
+
paramWriter.writeInt8(0) // options not present
|
|
319
321
|
}
|
|
320
322
|
|
|
321
323
|
// Transmit and parse response
|
|
322
324
|
const result = await this.transmit(
|
|
323
|
-
|
|
325
|
+
'createAction',
|
|
324
326
|
originator,
|
|
325
327
|
paramWriter.toArray()
|
|
326
|
-
)
|
|
327
|
-
const resultReader = new Utils.Reader(result)
|
|
328
|
+
)
|
|
329
|
+
const resultReader = new Utils.Reader(result)
|
|
328
330
|
|
|
329
331
|
const response: {
|
|
330
|
-
txid?: TXIDHexString
|
|
331
|
-
tx?: BEEF
|
|
332
|
-
noSendChange?: OutpointString[]
|
|
332
|
+
txid?: TXIDHexString
|
|
333
|
+
tx?: BEEF
|
|
334
|
+
noSendChange?: OutpointString[]
|
|
333
335
|
sendWithResults?: Array<{
|
|
334
|
-
txid: TXIDHexString
|
|
335
|
-
status:
|
|
336
|
-
}
|
|
336
|
+
txid: TXIDHexString
|
|
337
|
+
status: 'unproven' | 'sending' | 'failed'
|
|
338
|
+
}>
|
|
337
339
|
signableTransaction?: {
|
|
338
|
-
tx: BEEF
|
|
339
|
-
reference: Base64String
|
|
340
|
-
}
|
|
341
|
-
} = {}
|
|
340
|
+
tx: BEEF
|
|
341
|
+
reference: Base64String
|
|
342
|
+
}
|
|
343
|
+
} = {}
|
|
342
344
|
|
|
343
345
|
// Parse txid
|
|
344
|
-
const txidFlag = resultReader.readInt8()
|
|
346
|
+
const txidFlag = resultReader.readInt8()
|
|
345
347
|
if (txidFlag === 1) {
|
|
346
|
-
const txidBytes = resultReader.read(32)
|
|
347
|
-
response.txid = Utils.toHex(txidBytes)
|
|
348
|
+
const txidBytes = resultReader.read(32)
|
|
349
|
+
response.txid = Utils.toHex(txidBytes)
|
|
348
350
|
}
|
|
349
351
|
|
|
350
352
|
// Parse tx
|
|
351
|
-
const txFlag = resultReader.readInt8()
|
|
353
|
+
const txFlag = resultReader.readInt8()
|
|
352
354
|
if (txFlag === 1) {
|
|
353
|
-
const txLength = resultReader.readVarIntNum()
|
|
354
|
-
response.tx = resultReader.read(txLength)
|
|
355
|
+
const txLength = resultReader.readVarIntNum()
|
|
356
|
+
response.tx = resultReader.read(txLength)
|
|
355
357
|
}
|
|
356
358
|
|
|
357
359
|
// Parse noSendChange
|
|
358
|
-
const noSendChangeLength = resultReader.readVarIntNum()
|
|
360
|
+
const noSendChangeLength = resultReader.readVarIntNum()
|
|
359
361
|
if (noSendChangeLength >= 0) {
|
|
360
|
-
response.noSendChange = []
|
|
362
|
+
response.noSendChange = []
|
|
361
363
|
for (let i = 0; i < noSendChangeLength; i++) {
|
|
362
|
-
const outpoint = this.readOutpoint(resultReader)
|
|
363
|
-
response.noSendChange.push(outpoint)
|
|
364
|
+
const outpoint = this.readOutpoint(resultReader)
|
|
365
|
+
response.noSendChange.push(outpoint)
|
|
364
366
|
}
|
|
365
367
|
}
|
|
366
368
|
|
|
367
369
|
// Parse sendWithResults
|
|
368
|
-
const sendWithResultsLength = resultReader.readVarIntNum()
|
|
370
|
+
const sendWithResultsLength = resultReader.readVarIntNum()
|
|
369
371
|
if (sendWithResultsLength >= 0) {
|
|
370
|
-
response.sendWithResults = []
|
|
372
|
+
response.sendWithResults = []
|
|
371
373
|
for (let i = 0; i < sendWithResultsLength; i++) {
|
|
372
|
-
const txidBytes = resultReader.read(32)
|
|
373
|
-
const txid = Utils.toHex(txidBytes)
|
|
374
|
-
const statusCode = resultReader.readInt8()
|
|
375
|
-
let status:
|
|
376
|
-
if (statusCode === 1) status =
|
|
377
|
-
else if (statusCode === 2) status =
|
|
378
|
-
else if (statusCode === 3) status =
|
|
379
|
-
response.sendWithResults.push({ txid, status })
|
|
374
|
+
const txidBytes = resultReader.read(32)
|
|
375
|
+
const txid = Utils.toHex(txidBytes)
|
|
376
|
+
const statusCode = resultReader.readInt8()
|
|
377
|
+
let status: 'unproven' | 'sending' | 'failed' = 'unproven'
|
|
378
|
+
if (statusCode === 1) status = 'unproven'
|
|
379
|
+
else if (statusCode === 2) status = 'sending'
|
|
380
|
+
else if (statusCode === 3) status = 'failed'
|
|
381
|
+
response.sendWithResults.push({ txid, status })
|
|
380
382
|
}
|
|
381
383
|
}
|
|
382
384
|
|
|
383
385
|
// Parse signableTransaction
|
|
384
|
-
const signableTransactionFlag = resultReader.readInt8()
|
|
386
|
+
const signableTransactionFlag = resultReader.readInt8()
|
|
385
387
|
if (signableTransactionFlag === 1) {
|
|
386
|
-
const txLength = resultReader.readVarIntNum()
|
|
387
|
-
const tx = resultReader.read(txLength)
|
|
388
|
-
const referenceLength = resultReader.readVarIntNum()
|
|
389
|
-
const referenceBytes = resultReader.read(referenceLength)
|
|
388
|
+
const txLength = resultReader.readVarIntNum()
|
|
389
|
+
const tx = resultReader.read(txLength)
|
|
390
|
+
const referenceLength = resultReader.readVarIntNum()
|
|
391
|
+
const referenceBytes = resultReader.read(referenceLength)
|
|
390
392
|
response.signableTransaction = {
|
|
391
393
|
tx,
|
|
392
|
-
reference: Utils.toBase64(referenceBytes)
|
|
393
|
-
}
|
|
394
|
+
reference: Utils.toBase64(referenceBytes)
|
|
395
|
+
}
|
|
394
396
|
}
|
|
395
397
|
|
|
396
|
-
return response
|
|
398
|
+
return response
|
|
397
399
|
}
|
|
398
400
|
|
|
399
401
|
async signAction(
|
|
400
402
|
args: SignActionArgs,
|
|
401
403
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
402
404
|
): Promise<SignActionResult> {
|
|
403
|
-
const paramWriter = new Utils.Writer()
|
|
405
|
+
const paramWriter = new Utils.Writer()
|
|
404
406
|
|
|
405
407
|
// Serialize spends
|
|
406
|
-
const spendIndexes = Object.keys(args.spends)
|
|
407
|
-
paramWriter.writeVarIntNum(spendIndexes.length)
|
|
408
|
+
const spendIndexes = Object.keys(args.spends)
|
|
409
|
+
paramWriter.writeVarIntNum(spendIndexes.length)
|
|
408
410
|
for (const index of spendIndexes) {
|
|
409
|
-
paramWriter.writeVarIntNum(Number(index))
|
|
410
|
-
const spend = args.spends[Number(index)]
|
|
411
|
+
paramWriter.writeVarIntNum(Number(index))
|
|
412
|
+
const spend = args.spends[Number(index)]
|
|
411
413
|
// unlockingScript
|
|
412
|
-
const unlockingScriptBytes = Utils.toArray(spend.unlockingScript,
|
|
413
|
-
paramWriter.writeVarIntNum(unlockingScriptBytes.length)
|
|
414
|
-
paramWriter.write(unlockingScriptBytes)
|
|
414
|
+
const unlockingScriptBytes = Utils.toArray(spend.unlockingScript, 'hex')
|
|
415
|
+
paramWriter.writeVarIntNum(unlockingScriptBytes.length)
|
|
416
|
+
paramWriter.write(unlockingScriptBytes)
|
|
415
417
|
// sequenceNumber
|
|
416
|
-
if (typeof spend.sequenceNumber ===
|
|
417
|
-
paramWriter.writeVarIntNum(spend.sequenceNumber)
|
|
418
|
+
if (typeof spend.sequenceNumber === 'number') {
|
|
419
|
+
paramWriter.writeVarIntNum(spend.sequenceNumber)
|
|
418
420
|
} else {
|
|
419
|
-
paramWriter.writeVarIntNum(-1)
|
|
421
|
+
paramWriter.writeVarIntNum(-1)
|
|
420
422
|
}
|
|
421
423
|
}
|
|
422
424
|
|
|
423
425
|
// Serialize reference
|
|
424
|
-
const referenceBytes = Utils.toArray(args.reference,
|
|
425
|
-
paramWriter.writeVarIntNum(referenceBytes.length)
|
|
426
|
-
paramWriter.write(referenceBytes)
|
|
426
|
+
const referenceBytes = Utils.toArray(args.reference, 'base64')
|
|
427
|
+
paramWriter.writeVarIntNum(referenceBytes.length)
|
|
428
|
+
paramWriter.write(referenceBytes)
|
|
427
429
|
|
|
428
430
|
// Serialize options
|
|
429
|
-
if (args.options) {
|
|
430
|
-
paramWriter.writeInt8(1)
|
|
431
|
+
if (args.options != null) {
|
|
432
|
+
paramWriter.writeInt8(1) // options present
|
|
431
433
|
|
|
432
434
|
// acceptDelayedBroadcast
|
|
433
|
-
if (typeof args.options.acceptDelayedBroadcast ===
|
|
434
|
-
paramWriter.writeInt8(args.options.acceptDelayedBroadcast ? 1 : 0)
|
|
435
|
+
if (typeof args.options.acceptDelayedBroadcast === 'boolean') {
|
|
436
|
+
paramWriter.writeInt8(args.options.acceptDelayedBroadcast ? 1 : 0)
|
|
435
437
|
} else {
|
|
436
|
-
paramWriter.writeInt8(-1)
|
|
438
|
+
paramWriter.writeInt8(-1)
|
|
437
439
|
}
|
|
438
440
|
|
|
439
441
|
// returnTXIDOnly
|
|
440
|
-
if (typeof args.options.returnTXIDOnly ===
|
|
441
|
-
paramWriter.writeInt8(args.options.returnTXIDOnly ? 1 : 0)
|
|
442
|
+
if (typeof args.options.returnTXIDOnly === 'boolean') {
|
|
443
|
+
paramWriter.writeInt8(args.options.returnTXIDOnly ? 1 : 0)
|
|
442
444
|
} else {
|
|
443
|
-
paramWriter.writeInt8(-1)
|
|
445
|
+
paramWriter.writeInt8(-1)
|
|
444
446
|
}
|
|
445
447
|
|
|
446
448
|
// noSend
|
|
447
|
-
if (typeof args.options.noSend ===
|
|
448
|
-
paramWriter.writeInt8(args.options.noSend ? 1 : 0)
|
|
449
|
+
if (typeof args.options.noSend === 'boolean') {
|
|
450
|
+
paramWriter.writeInt8(args.options.noSend ? 1 : 0)
|
|
449
451
|
} else {
|
|
450
|
-
paramWriter.writeInt8(-1)
|
|
452
|
+
paramWriter.writeInt8(-1)
|
|
451
453
|
}
|
|
452
454
|
|
|
453
455
|
// sendWith
|
|
454
|
-
if (args.options.sendWith) {
|
|
455
|
-
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
456
|
+
if (args.options.sendWith != null) {
|
|
457
|
+
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
456
458
|
for (const txid of args.options.sendWith) {
|
|
457
|
-
const txidBytes = Utils.toArray(txid,
|
|
458
|
-
paramWriter.write(txidBytes)
|
|
459
|
+
const txidBytes = Utils.toArray(txid, 'hex')
|
|
460
|
+
paramWriter.write(txidBytes)
|
|
459
461
|
}
|
|
460
462
|
} else {
|
|
461
|
-
paramWriter.writeVarIntNum(-1)
|
|
463
|
+
paramWriter.writeVarIntNum(-1)
|
|
462
464
|
}
|
|
463
465
|
} else {
|
|
464
|
-
paramWriter.writeInt8(0)
|
|
466
|
+
paramWriter.writeInt8(0) // options not present
|
|
465
467
|
}
|
|
466
468
|
|
|
467
469
|
// Transmit and parse response
|
|
468
470
|
const result = await this.transmit(
|
|
469
|
-
|
|
471
|
+
'signAction',
|
|
470
472
|
originator,
|
|
471
473
|
paramWriter.toArray()
|
|
472
|
-
)
|
|
473
|
-
const resultReader = new Utils.Reader(result)
|
|
474
|
+
)
|
|
475
|
+
const resultReader = new Utils.Reader(result)
|
|
474
476
|
|
|
475
477
|
const response: {
|
|
476
|
-
txid?: TXIDHexString
|
|
477
|
-
tx?: BEEF
|
|
478
|
-
noSendChange?: OutpointString[]
|
|
478
|
+
txid?: TXIDHexString
|
|
479
|
+
tx?: BEEF
|
|
480
|
+
noSendChange?: OutpointString[]
|
|
479
481
|
sendWithResults?: Array<{
|
|
480
|
-
txid: TXIDHexString
|
|
481
|
-
status:
|
|
482
|
-
}
|
|
483
|
-
} = {}
|
|
482
|
+
txid: TXIDHexString
|
|
483
|
+
status: 'unproven' | 'sending' | 'failed'
|
|
484
|
+
}>
|
|
485
|
+
} = {}
|
|
484
486
|
|
|
485
487
|
// Parse txid
|
|
486
|
-
const txidFlag = resultReader.readInt8()
|
|
488
|
+
const txidFlag = resultReader.readInt8()
|
|
487
489
|
if (txidFlag === 1) {
|
|
488
|
-
const txidBytes = resultReader.read(32)
|
|
489
|
-
response.txid = Utils.toHex(txidBytes)
|
|
490
|
+
const txidBytes = resultReader.read(32)
|
|
491
|
+
response.txid = Utils.toHex(txidBytes)
|
|
490
492
|
}
|
|
491
493
|
|
|
492
494
|
// Parse tx
|
|
493
|
-
const txFlag = resultReader.readInt8()
|
|
495
|
+
const txFlag = resultReader.readInt8()
|
|
494
496
|
if (txFlag === 1) {
|
|
495
|
-
const txLength = resultReader.readVarIntNum()
|
|
496
|
-
response.tx = resultReader.read(txLength)
|
|
497
|
+
const txLength = resultReader.readVarIntNum()
|
|
498
|
+
response.tx = resultReader.read(txLength)
|
|
497
499
|
}
|
|
498
500
|
|
|
499
501
|
// Parse sendWithResults
|
|
500
|
-
const sendWithResultsLength = resultReader.readVarIntNum()
|
|
502
|
+
const sendWithResultsLength = resultReader.readVarIntNum()
|
|
501
503
|
if (sendWithResultsLength >= 0) {
|
|
502
|
-
response.sendWithResults = []
|
|
504
|
+
response.sendWithResults = []
|
|
503
505
|
for (let i = 0; i < sendWithResultsLength; i++) {
|
|
504
|
-
const txidBytes = resultReader.read(32)
|
|
505
|
-
const txid = Utils.toHex(txidBytes)
|
|
506
|
-
const statusCode = resultReader.readInt8()
|
|
507
|
-
let status:
|
|
508
|
-
if (statusCode === 1) status =
|
|
509
|
-
else if (statusCode === 2) status =
|
|
510
|
-
else if (statusCode === 3) status =
|
|
511
|
-
response.sendWithResults.push({ txid, status })
|
|
506
|
+
const txidBytes = resultReader.read(32)
|
|
507
|
+
const txid = Utils.toHex(txidBytes)
|
|
508
|
+
const statusCode = resultReader.readInt8()
|
|
509
|
+
let status: 'unproven' | 'sending' | 'failed' = 'unproven'
|
|
510
|
+
if (statusCode === 1) status = 'unproven'
|
|
511
|
+
else if (statusCode === 2) status = 'sending'
|
|
512
|
+
else if (statusCode === 3) status = 'failed'
|
|
513
|
+
response.sendWithResults.push({ txid, status })
|
|
512
514
|
}
|
|
513
515
|
}
|
|
514
516
|
|
|
515
|
-
return response
|
|
517
|
+
return response
|
|
516
518
|
}
|
|
517
519
|
|
|
518
520
|
async abortAction(
|
|
@@ -520,34 +522,34 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
520
522
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
521
523
|
): Promise<{ aborted: true }> {
|
|
522
524
|
await this.transmit(
|
|
523
|
-
|
|
525
|
+
'abortAction',
|
|
524
526
|
originator,
|
|
525
|
-
Utils.toArray(args.reference,
|
|
526
|
-
)
|
|
527
|
-
return { aborted: true }
|
|
527
|
+
Utils.toArray(args.reference, 'base64')
|
|
528
|
+
)
|
|
529
|
+
return { aborted: true }
|
|
528
530
|
}
|
|
529
531
|
|
|
530
532
|
async listActions(
|
|
531
533
|
args: ListActionsArgs,
|
|
532
534
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
533
535
|
): Promise<ListActionsResult> {
|
|
534
|
-
const paramWriter = new Utils.Writer()
|
|
536
|
+
const paramWriter = new Utils.Writer()
|
|
535
537
|
|
|
536
538
|
// Serialize labels
|
|
537
|
-
paramWriter.writeVarIntNum(args.labels.length)
|
|
539
|
+
paramWriter.writeVarIntNum(args.labels.length)
|
|
538
540
|
for (const label of args.labels) {
|
|
539
|
-
const labelBytes = Utils.toArray(label,
|
|
540
|
-
paramWriter.writeVarIntNum(labelBytes.length)
|
|
541
|
-
paramWriter.write(labelBytes)
|
|
541
|
+
const labelBytes = Utils.toArray(label, 'utf8')
|
|
542
|
+
paramWriter.writeVarIntNum(labelBytes.length)
|
|
543
|
+
paramWriter.write(labelBytes)
|
|
542
544
|
}
|
|
543
545
|
|
|
544
546
|
// Serialize labelQueryMode
|
|
545
|
-
if (args.labelQueryMode ===
|
|
546
|
-
paramWriter.writeInt8(1)
|
|
547
|
-
} else if (args.labelQueryMode ===
|
|
548
|
-
paramWriter.writeInt8(2)
|
|
547
|
+
if (args.labelQueryMode === 'any') {
|
|
548
|
+
paramWriter.writeInt8(1)
|
|
549
|
+
} else if (args.labelQueryMode === 'all') {
|
|
550
|
+
paramWriter.writeInt8(2)
|
|
549
551
|
} else {
|
|
550
|
-
paramWriter.writeInt8(-1)
|
|
552
|
+
paramWriter.writeInt8(-1)
|
|
551
553
|
}
|
|
552
554
|
|
|
553
555
|
// Serialize include options
|
|
@@ -557,129 +559,129 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
557
559
|
args.includeInputSourceLockingScripts,
|
|
558
560
|
args.includeInputUnlockingScripts,
|
|
559
561
|
args.includeOutputs,
|
|
560
|
-
args.includeOutputLockingScripts
|
|
561
|
-
]
|
|
562
|
+
args.includeOutputLockingScripts
|
|
563
|
+
]
|
|
562
564
|
for (const option of includeOptions) {
|
|
563
|
-
if (typeof option ===
|
|
564
|
-
paramWriter.writeInt8(option ? 1 : 0)
|
|
565
|
+
if (typeof option === 'boolean') {
|
|
566
|
+
paramWriter.writeInt8(option ? 1 : 0)
|
|
565
567
|
} else {
|
|
566
|
-
paramWriter.writeInt8(-1)
|
|
568
|
+
paramWriter.writeInt8(-1)
|
|
567
569
|
}
|
|
568
570
|
}
|
|
569
571
|
|
|
570
572
|
// Serialize limit and offset
|
|
571
|
-
if (typeof args.limit ===
|
|
572
|
-
paramWriter.writeVarIntNum(args.limit)
|
|
573
|
+
if (typeof args.limit === 'number') {
|
|
574
|
+
paramWriter.writeVarIntNum(args.limit)
|
|
573
575
|
} else {
|
|
574
|
-
paramWriter.writeVarIntNum(-1)
|
|
576
|
+
paramWriter.writeVarIntNum(-1)
|
|
575
577
|
}
|
|
576
|
-
if (typeof args.offset ===
|
|
577
|
-
paramWriter.writeVarIntNum(args.offset)
|
|
578
|
+
if (typeof args.offset === 'number') {
|
|
579
|
+
paramWriter.writeVarIntNum(args.offset)
|
|
578
580
|
} else {
|
|
579
|
-
paramWriter.writeVarIntNum(-1)
|
|
581
|
+
paramWriter.writeVarIntNum(-1)
|
|
580
582
|
}
|
|
581
583
|
|
|
582
584
|
// Serialize seekPermission
|
|
583
585
|
paramWriter.writeInt8(
|
|
584
|
-
typeof args.seekPermission ===
|
|
586
|
+
typeof args.seekPermission === 'boolean'
|
|
585
587
|
? args.seekPermission
|
|
586
588
|
? 1
|
|
587
589
|
: 0
|
|
588
590
|
: -1
|
|
589
|
-
)
|
|
591
|
+
)
|
|
590
592
|
|
|
591
593
|
// Transmit and parse response
|
|
592
594
|
const result = await this.transmit(
|
|
593
|
-
|
|
595
|
+
'listActions',
|
|
594
596
|
originator,
|
|
595
597
|
paramWriter.toArray()
|
|
596
|
-
)
|
|
597
|
-
const resultReader = new Utils.Reader(result)
|
|
598
|
+
)
|
|
599
|
+
const resultReader = new Utils.Reader(result)
|
|
598
600
|
|
|
599
|
-
const totalActions = resultReader.readVarIntNum()
|
|
601
|
+
const totalActions = resultReader.readVarIntNum()
|
|
600
602
|
const actions: Array<{
|
|
601
|
-
txid: TXIDHexString
|
|
602
|
-
satoshis: SatoshiValue
|
|
603
|
+
txid: TXIDHexString
|
|
604
|
+
satoshis: SatoshiValue
|
|
603
605
|
status:
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
isOutgoing: boolean
|
|
612
|
-
description: DescriptionString5to50Bytes
|
|
613
|
-
labels?: LabelStringUnder300Bytes[]
|
|
614
|
-
version: PositiveIntegerOrZero
|
|
615
|
-
lockTime: PositiveIntegerOrZero
|
|
606
|
+
| 'completed'
|
|
607
|
+
| 'unprocessed'
|
|
608
|
+
| 'sending'
|
|
609
|
+
| 'unproven'
|
|
610
|
+
| 'unsigned'
|
|
611
|
+
| 'nosend'
|
|
612
|
+
| 'nonfinal'
|
|
613
|
+
isOutgoing: boolean
|
|
614
|
+
description: DescriptionString5to50Bytes
|
|
615
|
+
labels?: LabelStringUnder300Bytes[]
|
|
616
|
+
version: PositiveIntegerOrZero
|
|
617
|
+
lockTime: PositiveIntegerOrZero
|
|
616
618
|
inputs?: Array<{
|
|
617
|
-
sourceOutpoint: OutpointString
|
|
618
|
-
sourceSatoshis: SatoshiValue
|
|
619
|
-
sourceLockingScript?: HexString
|
|
620
|
-
unlockingScript?: HexString
|
|
621
|
-
inputDescription: DescriptionString5to50Bytes
|
|
622
|
-
sequenceNumber: PositiveIntegerOrZero
|
|
623
|
-
}
|
|
619
|
+
sourceOutpoint: OutpointString
|
|
620
|
+
sourceSatoshis: SatoshiValue
|
|
621
|
+
sourceLockingScript?: HexString
|
|
622
|
+
unlockingScript?: HexString
|
|
623
|
+
inputDescription: DescriptionString5to50Bytes
|
|
624
|
+
sequenceNumber: PositiveIntegerOrZero
|
|
625
|
+
}>
|
|
624
626
|
outputs?: Array<{
|
|
625
|
-
outputIndex: PositiveIntegerOrZero
|
|
626
|
-
satoshis: SatoshiValue
|
|
627
|
-
lockingScript?: HexString
|
|
628
|
-
spendable: boolean
|
|
629
|
-
outputDescription: DescriptionString5to50Bytes
|
|
630
|
-
basket: BasketStringUnder300Bytes
|
|
631
|
-
tags: OutputTagStringUnder300Bytes[]
|
|
632
|
-
customInstructions?: string
|
|
633
|
-
}
|
|
634
|
-
}> = []
|
|
627
|
+
outputIndex: PositiveIntegerOrZero
|
|
628
|
+
satoshis: SatoshiValue
|
|
629
|
+
lockingScript?: HexString
|
|
630
|
+
spendable: boolean
|
|
631
|
+
outputDescription: DescriptionString5to50Bytes
|
|
632
|
+
basket: BasketStringUnder300Bytes
|
|
633
|
+
tags: OutputTagStringUnder300Bytes[]
|
|
634
|
+
customInstructions?: string
|
|
635
|
+
}>
|
|
636
|
+
}> = []
|
|
635
637
|
|
|
636
638
|
for (let i = 0; i < totalActions; i++) {
|
|
637
639
|
// Parse action fields
|
|
638
|
-
const txidBytes = resultReader.read(32)
|
|
639
|
-
const txid = Utils.toHex(txidBytes)
|
|
640
|
+
const txidBytes = resultReader.read(32)
|
|
641
|
+
const txid = Utils.toHex(txidBytes)
|
|
640
642
|
|
|
641
|
-
const satoshis = resultReader.readVarIntNum()
|
|
643
|
+
const satoshis = resultReader.readVarIntNum()
|
|
642
644
|
|
|
643
|
-
const statusCode = resultReader.readInt8()
|
|
645
|
+
const statusCode = resultReader.readInt8()
|
|
644
646
|
let status:
|
|
645
|
-
|
|
|
646
|
-
|
|
|
647
|
-
|
|
|
648
|
-
|
|
|
649
|
-
|
|
|
650
|
-
|
|
|
651
|
-
|
|
|
647
|
+
| 'completed'
|
|
648
|
+
| 'unprocessed'
|
|
649
|
+
| 'sending'
|
|
650
|
+
| 'unproven'
|
|
651
|
+
| 'unsigned'
|
|
652
|
+
| 'nosend'
|
|
653
|
+
| 'nonfinal'
|
|
652
654
|
switch (statusCode) {
|
|
653
655
|
case 1:
|
|
654
|
-
status =
|
|
655
|
-
break
|
|
656
|
+
status = 'completed'
|
|
657
|
+
break
|
|
656
658
|
case 2:
|
|
657
|
-
status =
|
|
658
|
-
break
|
|
659
|
+
status = 'unprocessed'
|
|
660
|
+
break
|
|
659
661
|
case 3:
|
|
660
|
-
status =
|
|
661
|
-
break
|
|
662
|
+
status = 'sending'
|
|
663
|
+
break
|
|
662
664
|
case 4:
|
|
663
|
-
status =
|
|
664
|
-
break
|
|
665
|
+
status = 'unproven'
|
|
666
|
+
break
|
|
665
667
|
case 5:
|
|
666
|
-
status =
|
|
667
|
-
break
|
|
668
|
+
status = 'unsigned'
|
|
669
|
+
break
|
|
668
670
|
case 6:
|
|
669
|
-
status =
|
|
670
|
-
break
|
|
671
|
+
status = 'nosend'
|
|
672
|
+
break
|
|
671
673
|
case 7:
|
|
672
|
-
status =
|
|
673
|
-
break
|
|
674
|
+
status = 'nonfinal'
|
|
675
|
+
break
|
|
674
676
|
default:
|
|
675
|
-
throw new Error(`Unknown status code: ${statusCode}`)
|
|
677
|
+
throw new Error(`Unknown status code: ${statusCode}`)
|
|
676
678
|
}
|
|
677
679
|
|
|
678
|
-
const isOutgoing = resultReader.readInt8() === 1
|
|
680
|
+
const isOutgoing = resultReader.readInt8() === 1
|
|
679
681
|
|
|
680
|
-
const descriptionLength = resultReader.readVarIntNum()
|
|
681
|
-
const descriptionBytes = resultReader.read(descriptionLength)
|
|
682
|
-
const description = Utils.toUTF8(descriptionBytes)
|
|
682
|
+
const descriptionLength = resultReader.readVarIntNum()
|
|
683
|
+
const descriptionBytes = resultReader.read(descriptionLength)
|
|
684
|
+
const description = Utils.toUTF8(descriptionBytes)
|
|
683
685
|
|
|
684
686
|
const action: any = {
|
|
685
687
|
txid,
|
|
@@ -688,61 +690,61 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
688
690
|
isOutgoing,
|
|
689
691
|
description,
|
|
690
692
|
version: 0,
|
|
691
|
-
lockTime: 0
|
|
692
|
-
}
|
|
693
|
+
lockTime: 0
|
|
694
|
+
}
|
|
693
695
|
|
|
694
696
|
// Parse labels
|
|
695
|
-
const labelsLength = resultReader.readVarIntNum()
|
|
697
|
+
const labelsLength = resultReader.readVarIntNum()
|
|
696
698
|
if (labelsLength >= 0) {
|
|
697
|
-
action.labels = []
|
|
699
|
+
action.labels = []
|
|
698
700
|
for (let j = 0; j < labelsLength; j++) {
|
|
699
|
-
const labelLength = resultReader.readVarIntNum()
|
|
700
|
-
const labelBytes = resultReader.read(labelLength)
|
|
701
|
-
action.labels.push(Utils.toUTF8(labelBytes))
|
|
701
|
+
const labelLength = resultReader.readVarIntNum()
|
|
702
|
+
const labelBytes = resultReader.read(labelLength)
|
|
703
|
+
action.labels.push(Utils.toUTF8(labelBytes))
|
|
702
704
|
}
|
|
703
705
|
}
|
|
704
706
|
|
|
705
707
|
// Parse version and lockTime
|
|
706
|
-
action.version = resultReader.readVarIntNum()
|
|
707
|
-
action.lockTime = resultReader.readVarIntNum()
|
|
708
|
+
action.version = resultReader.readVarIntNum()
|
|
709
|
+
action.lockTime = resultReader.readVarIntNum()
|
|
708
710
|
|
|
709
711
|
// Parse inputs
|
|
710
|
-
const inputsLength = resultReader.readVarIntNum()
|
|
712
|
+
const inputsLength = resultReader.readVarIntNum()
|
|
711
713
|
if (inputsLength >= 0) {
|
|
712
|
-
action.inputs = []
|
|
714
|
+
action.inputs = []
|
|
713
715
|
for (let k = 0; k < inputsLength; k++) {
|
|
714
|
-
const sourceOutpoint = this.readOutpoint(resultReader)
|
|
715
|
-
const sourceSatoshis = resultReader.readVarIntNum()
|
|
716
|
+
const sourceOutpoint = this.readOutpoint(resultReader)
|
|
717
|
+
const sourceSatoshis = resultReader.readVarIntNum()
|
|
716
718
|
|
|
717
719
|
// sourceLockingScript
|
|
718
|
-
const sourceLockingScriptLength = resultReader.readVarIntNum()
|
|
719
|
-
let sourceLockingScript: string | undefined
|
|
720
|
+
const sourceLockingScriptLength = resultReader.readVarIntNum()
|
|
721
|
+
let sourceLockingScript: string | undefined
|
|
720
722
|
if (sourceLockingScriptLength >= 0) {
|
|
721
723
|
const sourceLockingScriptBytes = resultReader.read(
|
|
722
724
|
sourceLockingScriptLength
|
|
723
|
-
)
|
|
724
|
-
sourceLockingScript = Utils.toHex(sourceLockingScriptBytes)
|
|
725
|
+
)
|
|
726
|
+
sourceLockingScript = Utils.toHex(sourceLockingScriptBytes)
|
|
725
727
|
}
|
|
726
728
|
|
|
727
729
|
// unlockingScript
|
|
728
|
-
const unlockingScriptLength = resultReader.readVarIntNum()
|
|
729
|
-
let unlockingScript: string | undefined
|
|
730
|
+
const unlockingScriptLength = resultReader.readVarIntNum()
|
|
731
|
+
let unlockingScript: string | undefined
|
|
730
732
|
if (unlockingScriptLength >= 0) {
|
|
731
733
|
const unlockingScriptBytes = resultReader.read(
|
|
732
734
|
unlockingScriptLength
|
|
733
|
-
)
|
|
734
|
-
unlockingScript = Utils.toHex(unlockingScriptBytes)
|
|
735
|
+
)
|
|
736
|
+
unlockingScript = Utils.toHex(unlockingScriptBytes)
|
|
735
737
|
}
|
|
736
738
|
|
|
737
739
|
// inputDescription
|
|
738
|
-
const inputDescriptionLength = resultReader.readVarIntNum()
|
|
740
|
+
const inputDescriptionLength = resultReader.readVarIntNum()
|
|
739
741
|
const inputDescriptionBytes = resultReader.read(
|
|
740
742
|
inputDescriptionLength
|
|
741
|
-
)
|
|
742
|
-
const inputDescription = Utils.toUTF8(inputDescriptionBytes)
|
|
743
|
+
)
|
|
744
|
+
const inputDescription = Utils.toUTF8(inputDescriptionBytes)
|
|
743
745
|
|
|
744
746
|
// sequenceNumber
|
|
745
|
-
const sequenceNumber = resultReader.readVarIntNum()
|
|
747
|
+
const sequenceNumber = resultReader.readVarIntNum()
|
|
746
748
|
|
|
747
749
|
action.inputs.push({
|
|
748
750
|
sourceOutpoint,
|
|
@@ -750,63 +752,63 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
750
752
|
sourceLockingScript,
|
|
751
753
|
unlockingScript,
|
|
752
754
|
inputDescription,
|
|
753
|
-
sequenceNumber
|
|
754
|
-
})
|
|
755
|
+
sequenceNumber
|
|
756
|
+
})
|
|
755
757
|
}
|
|
756
758
|
}
|
|
757
759
|
|
|
758
760
|
// Parse outputs
|
|
759
|
-
const outputsLength = resultReader.readVarIntNum()
|
|
761
|
+
const outputsLength = resultReader.readVarIntNum()
|
|
760
762
|
if (outputsLength >= 0) {
|
|
761
|
-
action.outputs = []
|
|
763
|
+
action.outputs = []
|
|
762
764
|
for (let l = 0; l < outputsLength; l++) {
|
|
763
|
-
const outputIndex = resultReader.readVarIntNum()
|
|
764
|
-
const satoshis = resultReader.readVarIntNum()
|
|
765
|
+
const outputIndex = resultReader.readVarIntNum()
|
|
766
|
+
const satoshis = resultReader.readVarIntNum()
|
|
765
767
|
|
|
766
768
|
// lockingScript
|
|
767
|
-
const lockingScriptLength = resultReader.readVarIntNum()
|
|
768
|
-
let lockingScript: string | undefined
|
|
769
|
+
const lockingScriptLength = resultReader.readVarIntNum()
|
|
770
|
+
let lockingScript: string | undefined
|
|
769
771
|
if (lockingScriptLength >= 0) {
|
|
770
|
-
const lockingScriptBytes = resultReader.read(lockingScriptLength)
|
|
771
|
-
lockingScript = Utils.toHex(lockingScriptBytes)
|
|
772
|
+
const lockingScriptBytes = resultReader.read(lockingScriptLength)
|
|
773
|
+
lockingScript = Utils.toHex(lockingScriptBytes)
|
|
772
774
|
}
|
|
773
775
|
|
|
774
|
-
const spendable = resultReader.readInt8() === 1
|
|
776
|
+
const spendable = resultReader.readInt8() === 1
|
|
775
777
|
|
|
776
778
|
// outputDescription
|
|
777
|
-
const outputDescriptionLength = resultReader.readVarIntNum()
|
|
779
|
+
const outputDescriptionLength = resultReader.readVarIntNum()
|
|
778
780
|
const outputDescriptionBytes = resultReader.read(
|
|
779
781
|
outputDescriptionLength
|
|
780
|
-
)
|
|
781
|
-
const outputDescription = Utils.toUTF8(outputDescriptionBytes)
|
|
782
|
+
)
|
|
783
|
+
const outputDescription = Utils.toUTF8(outputDescriptionBytes)
|
|
782
784
|
|
|
783
785
|
// basket
|
|
784
|
-
const basketLength = resultReader.readVarIntNum()
|
|
785
|
-
let basket: string | undefined
|
|
786
|
+
const basketLength = resultReader.readVarIntNum()
|
|
787
|
+
let basket: string | undefined
|
|
786
788
|
if (basketLength >= 0) {
|
|
787
|
-
const basketBytes = resultReader.read(basketLength)
|
|
788
|
-
basket = Utils.toUTF8(basketBytes)
|
|
789
|
+
const basketBytes = resultReader.read(basketLength)
|
|
790
|
+
basket = Utils.toUTF8(basketBytes)
|
|
789
791
|
}
|
|
790
792
|
|
|
791
793
|
// tags
|
|
792
|
-
const tagsLength = resultReader.readVarIntNum()
|
|
793
|
-
const tags: string[] = []
|
|
794
|
+
const tagsLength = resultReader.readVarIntNum()
|
|
795
|
+
const tags: string[] = []
|
|
794
796
|
if (tagsLength >= 0) {
|
|
795
797
|
for (let m = 0; m < tagsLength; m++) {
|
|
796
|
-
const tagLength = resultReader.readVarIntNum()
|
|
797
|
-
const tagBytes = resultReader.read(tagLength)
|
|
798
|
-
tags.push(Utils.toUTF8(tagBytes))
|
|
798
|
+
const tagLength = resultReader.readVarIntNum()
|
|
799
|
+
const tagBytes = resultReader.read(tagLength)
|
|
800
|
+
tags.push(Utils.toUTF8(tagBytes))
|
|
799
801
|
}
|
|
800
802
|
}
|
|
801
803
|
|
|
802
804
|
// customInstructions
|
|
803
|
-
const customInstructionsLength = resultReader.readVarIntNum()
|
|
804
|
-
let customInstructions: string | undefined
|
|
805
|
+
const customInstructionsLength = resultReader.readVarIntNum()
|
|
806
|
+
let customInstructions: string | undefined
|
|
805
807
|
if (customInstructionsLength >= 0) {
|
|
806
808
|
const customInstructionsBytes = resultReader.read(
|
|
807
809
|
customInstructionsLength
|
|
808
|
-
)
|
|
809
|
-
customInstructions = Utils.toUTF8(customInstructionsBytes)
|
|
810
|
+
)
|
|
811
|
+
customInstructions = Utils.toUTF8(customInstructionsBytes)
|
|
810
812
|
}
|
|
811
813
|
|
|
812
814
|
action.outputs.push({
|
|
@@ -817,401 +819,404 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
817
819
|
outputDescription,
|
|
818
820
|
basket,
|
|
819
821
|
tags,
|
|
820
|
-
customInstructions
|
|
821
|
-
})
|
|
822
|
+
customInstructions
|
|
823
|
+
})
|
|
822
824
|
}
|
|
823
825
|
}
|
|
824
826
|
|
|
825
|
-
actions.push(action)
|
|
827
|
+
actions.push(action)
|
|
826
828
|
}
|
|
827
829
|
|
|
828
830
|
return {
|
|
829
831
|
totalActions,
|
|
830
|
-
actions
|
|
831
|
-
}
|
|
832
|
+
actions
|
|
833
|
+
}
|
|
832
834
|
}
|
|
833
835
|
|
|
834
836
|
async internalizeAction(
|
|
835
837
|
args: InternalizeActionArgs,
|
|
836
838
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
837
839
|
): Promise<{ accepted: true }> {
|
|
838
|
-
const paramWriter = new Utils.Writer()
|
|
839
|
-
paramWriter.writeVarIntNum(args.tx.length)
|
|
840
|
-
paramWriter.write(args.tx)
|
|
841
|
-
paramWriter.writeVarIntNum(args.outputs.length)
|
|
840
|
+
const paramWriter = new Utils.Writer()
|
|
841
|
+
paramWriter.writeVarIntNum(args.tx.length)
|
|
842
|
+
paramWriter.write(args.tx)
|
|
843
|
+
paramWriter.writeVarIntNum(args.outputs.length)
|
|
842
844
|
for (const out of args.outputs) {
|
|
843
|
-
paramWriter.writeVarIntNum(out.outputIndex)
|
|
844
|
-
if (out.protocol ===
|
|
845
|
-
|
|
845
|
+
paramWriter.writeVarIntNum(out.outputIndex)
|
|
846
|
+
if (out.protocol === 'wallet payment') {
|
|
847
|
+
if (out.paymentRemittance == null) {
|
|
848
|
+
throw new Error('Payment remittance is required for wallet payment')
|
|
849
|
+
}
|
|
850
|
+
paramWriter.writeUInt8(1)
|
|
846
851
|
paramWriter.write(
|
|
847
|
-
Utils.toArray(out.paymentRemittance.senderIdentityKey,
|
|
848
|
-
)
|
|
852
|
+
Utils.toArray(out.paymentRemittance.senderIdentityKey, 'hex')
|
|
853
|
+
)
|
|
849
854
|
const derivationPrefixAsArray = Utils.toArray(
|
|
850
855
|
out.paymentRemittance.derivationPrefix,
|
|
851
|
-
|
|
852
|
-
)
|
|
853
|
-
paramWriter.writeVarIntNum(derivationPrefixAsArray.length)
|
|
854
|
-
paramWriter.write(derivationPrefixAsArray)
|
|
856
|
+
'base64'
|
|
857
|
+
)
|
|
858
|
+
paramWriter.writeVarIntNum(derivationPrefixAsArray.length)
|
|
859
|
+
paramWriter.write(derivationPrefixAsArray)
|
|
855
860
|
const derivationSuffixAsArray = Utils.toArray(
|
|
856
861
|
out.paymentRemittance.derivationSuffix,
|
|
857
|
-
|
|
858
|
-
)
|
|
859
|
-
paramWriter.writeVarIntNum(derivationSuffixAsArray.length)
|
|
860
|
-
paramWriter.write(derivationSuffixAsArray)
|
|
862
|
+
'base64'
|
|
863
|
+
)
|
|
864
|
+
paramWriter.writeVarIntNum(derivationSuffixAsArray.length)
|
|
865
|
+
paramWriter.write(derivationSuffixAsArray)
|
|
861
866
|
} else {
|
|
862
|
-
paramWriter.writeUInt8(2)
|
|
867
|
+
paramWriter.writeUInt8(2)
|
|
863
868
|
const basketAsArray = Utils.toArray(
|
|
864
|
-
out.insertionRemittance
|
|
865
|
-
|
|
866
|
-
)
|
|
867
|
-
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
868
|
-
paramWriter.write(basketAsArray)
|
|
869
|
-
if (typeof out.insertionRemittance.customInstructions) {
|
|
869
|
+
out.insertionRemittance?.basket,
|
|
870
|
+
'utf8'
|
|
871
|
+
)
|
|
872
|
+
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
873
|
+
paramWriter.write(basketAsArray)
|
|
874
|
+
if (typeof out.insertionRemittance?.customInstructions === 'string' && out.insertionRemittance.customInstructions !== '') {
|
|
870
875
|
const customInstructionsAsArray = Utils.toArray(
|
|
871
876
|
out.insertionRemittance.customInstructions,
|
|
872
|
-
|
|
873
|
-
)
|
|
874
|
-
paramWriter.writeVarIntNum(customInstructionsAsArray.length)
|
|
875
|
-
paramWriter.write(customInstructionsAsArray)
|
|
877
|
+
'utf8'
|
|
878
|
+
)
|
|
879
|
+
paramWriter.writeVarIntNum(customInstructionsAsArray.length)
|
|
880
|
+
paramWriter.write(customInstructionsAsArray)
|
|
876
881
|
} else {
|
|
877
|
-
paramWriter.writeVarIntNum(-1)
|
|
882
|
+
paramWriter.writeVarIntNum(-1)
|
|
878
883
|
}
|
|
879
|
-
if (typeof out.insertionRemittance
|
|
880
|
-
paramWriter.writeVarIntNum(out.insertionRemittance.tags.length)
|
|
884
|
+
if (typeof out.insertionRemittance?.tags === 'object') {
|
|
885
|
+
paramWriter.writeVarIntNum(out.insertionRemittance.tags.length)
|
|
881
886
|
for (const tag of out.insertionRemittance.tags) {
|
|
882
|
-
const tagAsArray = Utils.toArray(tag,
|
|
883
|
-
paramWriter.writeVarIntNum(tagAsArray.length)
|
|
884
|
-
paramWriter.write(tagAsArray)
|
|
887
|
+
const tagAsArray = Utils.toArray(tag, 'utf8')
|
|
888
|
+
paramWriter.writeVarIntNum(tagAsArray.length)
|
|
889
|
+
paramWriter.write(tagAsArray)
|
|
885
890
|
}
|
|
886
891
|
} else {
|
|
887
|
-
paramWriter.writeVarIntNum(0)
|
|
892
|
+
paramWriter.writeVarIntNum(0)
|
|
888
893
|
}
|
|
889
894
|
}
|
|
890
895
|
}
|
|
891
|
-
if (typeof args.labels ===
|
|
892
|
-
paramWriter.writeVarIntNum(args.labels.length)
|
|
896
|
+
if (typeof args.labels === 'object') {
|
|
897
|
+
paramWriter.writeVarIntNum(args.labels.length)
|
|
893
898
|
for (const l of args.labels) {
|
|
894
|
-
const labelAsArray = Utils.toArray(l,
|
|
895
|
-
paramWriter.writeVarIntNum(labelAsArray.length)
|
|
896
|
-
paramWriter.write(labelAsArray)
|
|
899
|
+
const labelAsArray = Utils.toArray(l, 'utf8')
|
|
900
|
+
paramWriter.writeVarIntNum(labelAsArray.length)
|
|
901
|
+
paramWriter.write(labelAsArray)
|
|
897
902
|
}
|
|
898
903
|
} else {
|
|
899
|
-
paramWriter.writeVarIntNum(-1)
|
|
904
|
+
paramWriter.writeVarIntNum(-1)
|
|
900
905
|
}
|
|
901
|
-
const descriptionAsArray = Utils.toArray(args.description)
|
|
902
|
-
paramWriter.writeVarIntNum(descriptionAsArray.length)
|
|
903
|
-
paramWriter.write(descriptionAsArray)
|
|
906
|
+
const descriptionAsArray = Utils.toArray(args.description)
|
|
907
|
+
paramWriter.writeVarIntNum(descriptionAsArray.length)
|
|
908
|
+
paramWriter.write(descriptionAsArray)
|
|
904
909
|
|
|
905
910
|
// Serialize seekPermission
|
|
906
911
|
paramWriter.writeInt8(
|
|
907
|
-
typeof args.seekPermission ===
|
|
912
|
+
typeof args.seekPermission === 'boolean'
|
|
908
913
|
? args.seekPermission
|
|
909
914
|
? 1
|
|
910
915
|
: 0
|
|
911
916
|
: -1
|
|
912
|
-
)
|
|
917
|
+
)
|
|
913
918
|
|
|
914
|
-
await this.transmit(
|
|
915
|
-
return { accepted: true }
|
|
919
|
+
await this.transmit('internalizeAction', originator, paramWriter.toArray())
|
|
920
|
+
return { accepted: true }
|
|
916
921
|
}
|
|
917
922
|
|
|
918
923
|
async listOutputs(
|
|
919
924
|
args: ListOutputsArgs,
|
|
920
925
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
921
926
|
): Promise<ListOutputsResult> {
|
|
922
|
-
const paramWriter = new Utils.Writer()
|
|
923
|
-
const basketAsArray = Utils.toArray(args.basket,
|
|
924
|
-
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
925
|
-
paramWriter.write(basketAsArray)
|
|
926
|
-
if (typeof args.tags ===
|
|
927
|
-
paramWriter.writeVarIntNum(args.tags.length)
|
|
927
|
+
const paramWriter = new Utils.Writer()
|
|
928
|
+
const basketAsArray = Utils.toArray(args.basket, 'utf8')
|
|
929
|
+
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
930
|
+
paramWriter.write(basketAsArray)
|
|
931
|
+
if (typeof args.tags === 'object') {
|
|
932
|
+
paramWriter.writeVarIntNum(args.tags.length)
|
|
928
933
|
for (const tag of args.tags) {
|
|
929
|
-
const tagAsArray = Utils.toArray(tag,
|
|
930
|
-
paramWriter.writeVarIntNum(tagAsArray.length)
|
|
931
|
-
paramWriter.write(tagAsArray)
|
|
934
|
+
const tagAsArray = Utils.toArray(tag, 'utf8')
|
|
935
|
+
paramWriter.writeVarIntNum(tagAsArray.length)
|
|
936
|
+
paramWriter.write(tagAsArray)
|
|
932
937
|
}
|
|
933
938
|
} else {
|
|
934
|
-
paramWriter.writeVarIntNum(0)
|
|
939
|
+
paramWriter.writeVarIntNum(0)
|
|
935
940
|
}
|
|
936
|
-
if (args.tagQueryMode ===
|
|
937
|
-
paramWriter.writeInt8(1)
|
|
938
|
-
} else if (args.tagQueryMode ===
|
|
939
|
-
paramWriter.writeInt8(2)
|
|
941
|
+
if (args.tagQueryMode === 'all') {
|
|
942
|
+
paramWriter.writeInt8(1)
|
|
943
|
+
} else if (args.tagQueryMode === 'any') {
|
|
944
|
+
paramWriter.writeInt8(2)
|
|
940
945
|
} else {
|
|
941
|
-
paramWriter.writeInt8(-1)
|
|
946
|
+
paramWriter.writeInt8(-1)
|
|
942
947
|
}
|
|
943
|
-
if (args.include ===
|
|
944
|
-
paramWriter.writeInt8(1)
|
|
945
|
-
} else if (args.include ===
|
|
946
|
-
paramWriter.writeInt8(2)
|
|
948
|
+
if (args.include === 'locking scripts') {
|
|
949
|
+
paramWriter.writeInt8(1)
|
|
950
|
+
} else if (args.include === 'entire transactions') {
|
|
951
|
+
paramWriter.writeInt8(2)
|
|
947
952
|
} else {
|
|
948
|
-
paramWriter.writeInt8(-1)
|
|
953
|
+
paramWriter.writeInt8(-1)
|
|
949
954
|
}
|
|
950
|
-
if (typeof args.includeCustomInstructions ===
|
|
951
|
-
paramWriter.writeInt8(args.includeCustomInstructions ? 1 : 0)
|
|
955
|
+
if (typeof args.includeCustomInstructions === 'boolean') {
|
|
956
|
+
paramWriter.writeInt8(args.includeCustomInstructions ? 1 : 0)
|
|
952
957
|
} else {
|
|
953
|
-
paramWriter.writeInt8(-1)
|
|
958
|
+
paramWriter.writeInt8(-1)
|
|
954
959
|
}
|
|
955
|
-
if (typeof args.includeTags ===
|
|
956
|
-
paramWriter.writeInt8(args.includeTags ? 1 : 0)
|
|
960
|
+
if (typeof args.includeTags === 'boolean') {
|
|
961
|
+
paramWriter.writeInt8(args.includeTags ? 1 : 0)
|
|
957
962
|
} else {
|
|
958
|
-
paramWriter.writeInt8(-1)
|
|
963
|
+
paramWriter.writeInt8(-1)
|
|
959
964
|
}
|
|
960
|
-
if (typeof args.includeLabels ===
|
|
961
|
-
paramWriter.writeInt8(args.includeLabels ? 1 : 0)
|
|
965
|
+
if (typeof args.includeLabels === 'boolean') {
|
|
966
|
+
paramWriter.writeInt8(args.includeLabels ? 1 : 0)
|
|
962
967
|
} else {
|
|
963
|
-
paramWriter.writeInt8(-1)
|
|
968
|
+
paramWriter.writeInt8(-1)
|
|
964
969
|
}
|
|
965
|
-
if (typeof args.limit ===
|
|
966
|
-
paramWriter.writeVarIntNum(args.limit)
|
|
970
|
+
if (typeof args.limit === 'number') {
|
|
971
|
+
paramWriter.writeVarIntNum(args.limit)
|
|
967
972
|
} else {
|
|
968
|
-
paramWriter.writeVarIntNum(-1)
|
|
973
|
+
paramWriter.writeVarIntNum(-1)
|
|
969
974
|
}
|
|
970
|
-
if (typeof args.offset ===
|
|
971
|
-
paramWriter.writeVarIntNum(args.offset)
|
|
975
|
+
if (typeof args.offset === 'number') {
|
|
976
|
+
paramWriter.writeVarIntNum(args.offset)
|
|
972
977
|
} else {
|
|
973
|
-
paramWriter.writeVarIntNum(-1)
|
|
978
|
+
paramWriter.writeVarIntNum(-1)
|
|
974
979
|
}
|
|
975
980
|
|
|
976
981
|
// Serialize seekPermission
|
|
977
982
|
paramWriter.writeInt8(
|
|
978
|
-
typeof args.seekPermission ===
|
|
983
|
+
typeof args.seekPermission === 'boolean'
|
|
979
984
|
? args.seekPermission
|
|
980
985
|
? 1
|
|
981
986
|
: 0
|
|
982
987
|
: -1
|
|
983
|
-
)
|
|
988
|
+
)
|
|
984
989
|
|
|
985
990
|
const result = await this.transmit(
|
|
986
|
-
|
|
991
|
+
'listOutputs',
|
|
987
992
|
originator,
|
|
988
993
|
paramWriter.toArray()
|
|
989
|
-
)
|
|
990
|
-
const resultReader = new Utils.Reader(result)
|
|
991
|
-
const totalOutputs = resultReader.readVarIntNum()
|
|
992
|
-
const beefLength = resultReader.readVarIntNum()
|
|
993
|
-
let BEEF
|
|
994
|
+
)
|
|
995
|
+
const resultReader = new Utils.Reader(result)
|
|
996
|
+
const totalOutputs = resultReader.readVarIntNum()
|
|
997
|
+
const beefLength = resultReader.readVarIntNum()
|
|
998
|
+
let BEEF
|
|
994
999
|
if (beefLength >= 0) {
|
|
995
|
-
BEEF = resultReader.read(beefLength)
|
|
1000
|
+
BEEF = resultReader.read(beefLength)
|
|
996
1001
|
}
|
|
997
1002
|
const outputs: Array<{
|
|
998
|
-
outpoint: OutpointString
|
|
999
|
-
satoshis: SatoshiValue
|
|
1000
|
-
lockingScript?: HexString
|
|
1001
|
-
tx?: BEEF
|
|
1002
|
-
spendable: true
|
|
1003
|
-
customInstructions?: string
|
|
1004
|
-
tags?: OutputTagStringUnder300Bytes[]
|
|
1005
|
-
labels?: LabelStringUnder300Bytes[]
|
|
1006
|
-
}> = []
|
|
1003
|
+
outpoint: OutpointString
|
|
1004
|
+
satoshis: SatoshiValue
|
|
1005
|
+
lockingScript?: HexString
|
|
1006
|
+
tx?: BEEF
|
|
1007
|
+
spendable: true
|
|
1008
|
+
customInstructions?: string
|
|
1009
|
+
tags?: OutputTagStringUnder300Bytes[]
|
|
1010
|
+
labels?: LabelStringUnder300Bytes[]
|
|
1011
|
+
}> = []
|
|
1007
1012
|
for (let i = 0; i < totalOutputs; i++) {
|
|
1008
|
-
const outpoint = this.readOutpoint(resultReader)
|
|
1009
|
-
const satoshis = resultReader.readVarIntNum()
|
|
1013
|
+
const outpoint = this.readOutpoint(resultReader)
|
|
1014
|
+
const satoshis = resultReader.readVarIntNum()
|
|
1010
1015
|
const output: {
|
|
1011
|
-
outpoint: OutpointString
|
|
1012
|
-
satoshis: SatoshiValue
|
|
1013
|
-
lockingScript?: HexString
|
|
1014
|
-
tx?: BEEF
|
|
1015
|
-
spendable: true
|
|
1016
|
-
customInstructions?: string
|
|
1017
|
-
tags?: OutputTagStringUnder300Bytes[]
|
|
1018
|
-
labels?: LabelStringUnder300Bytes[]
|
|
1016
|
+
outpoint: OutpointString
|
|
1017
|
+
satoshis: SatoshiValue
|
|
1018
|
+
lockingScript?: HexString
|
|
1019
|
+
tx?: BEEF
|
|
1020
|
+
spendable: true
|
|
1021
|
+
customInstructions?: string
|
|
1022
|
+
tags?: OutputTagStringUnder300Bytes[]
|
|
1023
|
+
labels?: LabelStringUnder300Bytes[]
|
|
1019
1024
|
} = {
|
|
1020
1025
|
spendable: true,
|
|
1021
1026
|
outpoint,
|
|
1022
|
-
satoshis
|
|
1023
|
-
}
|
|
1024
|
-
const scriptLength = resultReader.readVarIntNum()
|
|
1027
|
+
satoshis
|
|
1028
|
+
}
|
|
1029
|
+
const scriptLength = resultReader.readVarIntNum()
|
|
1025
1030
|
if (scriptLength >= 0) {
|
|
1026
|
-
output.lockingScript = Utils.toHex(resultReader.read(scriptLength))
|
|
1031
|
+
output.lockingScript = Utils.toHex(resultReader.read(scriptLength))
|
|
1027
1032
|
}
|
|
1028
|
-
const customInstructionsLength = resultReader.readVarIntNum()
|
|
1033
|
+
const customInstructionsLength = resultReader.readVarIntNum()
|
|
1029
1034
|
if (customInstructionsLength >= 0) {
|
|
1030
1035
|
output.customInstructions = Utils.toUTF8(
|
|
1031
1036
|
resultReader.read(customInstructionsLength)
|
|
1032
|
-
)
|
|
1037
|
+
)
|
|
1033
1038
|
}
|
|
1034
|
-
const tagsLength = resultReader.readVarIntNum()
|
|
1039
|
+
const tagsLength = resultReader.readVarIntNum()
|
|
1035
1040
|
if (tagsLength !== -1) {
|
|
1036
|
-
const tags: OutputTagStringUnder300Bytes[] = []
|
|
1041
|
+
const tags: OutputTagStringUnder300Bytes[] = []
|
|
1037
1042
|
for (let i = 0; i < tagsLength; i++) {
|
|
1038
|
-
const tagLength = resultReader.readVarIntNum()
|
|
1039
|
-
tags.push(Utils.toUTF8(resultReader.read(tagLength)))
|
|
1043
|
+
const tagLength = resultReader.readVarIntNum()
|
|
1044
|
+
tags.push(Utils.toUTF8(resultReader.read(tagLength)))
|
|
1040
1045
|
}
|
|
1041
|
-
output.tags = tags
|
|
1046
|
+
output.tags = tags
|
|
1042
1047
|
}
|
|
1043
|
-
const labelsLength = resultReader.readVarIntNum()
|
|
1048
|
+
const labelsLength = resultReader.readVarIntNum()
|
|
1044
1049
|
if (labelsLength !== -1) {
|
|
1045
|
-
const labels: LabelStringUnder300Bytes[] = []
|
|
1050
|
+
const labels: LabelStringUnder300Bytes[] = []
|
|
1046
1051
|
for (let i = 0; i < labelsLength; i++) {
|
|
1047
|
-
const labelLength = resultReader.readVarIntNum()
|
|
1048
|
-
labels.push(Utils.toUTF8(resultReader.read(labelLength)))
|
|
1052
|
+
const labelLength = resultReader.readVarIntNum()
|
|
1053
|
+
labels.push(Utils.toUTF8(resultReader.read(labelLength)))
|
|
1049
1054
|
}
|
|
1050
|
-
output.labels = labels
|
|
1055
|
+
output.labels = labels
|
|
1051
1056
|
}
|
|
1052
|
-
outputs.push(output)
|
|
1057
|
+
outputs.push(output)
|
|
1053
1058
|
}
|
|
1054
1059
|
return {
|
|
1055
1060
|
totalOutputs,
|
|
1056
1061
|
BEEF,
|
|
1057
|
-
outputs
|
|
1058
|
-
}
|
|
1062
|
+
outputs
|
|
1063
|
+
}
|
|
1059
1064
|
}
|
|
1060
1065
|
|
|
1061
1066
|
async relinquishOutput(
|
|
1062
|
-
args: { basket: BasketStringUnder300Bytes
|
|
1067
|
+
args: { basket: BasketStringUnder300Bytes, output: OutpointString },
|
|
1063
1068
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1064
1069
|
): Promise<{ relinquished: true }> {
|
|
1065
|
-
const paramWriter = new Utils.Writer()
|
|
1066
|
-
const basketAsArray = Utils.toArray(args.basket,
|
|
1067
|
-
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
1068
|
-
paramWriter.write(basketAsArray)
|
|
1069
|
-
paramWriter.write(this.encodeOutpoint(args.output))
|
|
1070
|
-
await this.transmit(
|
|
1071
|
-
return { relinquished: true }
|
|
1070
|
+
const paramWriter = new Utils.Writer()
|
|
1071
|
+
const basketAsArray = Utils.toArray(args.basket, 'utf8')
|
|
1072
|
+
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
1073
|
+
paramWriter.write(basketAsArray)
|
|
1074
|
+
paramWriter.write(this.encodeOutpoint(args.output))
|
|
1075
|
+
await this.transmit('relinquishOutput', originator, paramWriter.toArray())
|
|
1076
|
+
return { relinquished: true }
|
|
1072
1077
|
}
|
|
1073
1078
|
|
|
1074
1079
|
private encodeOutpoint(outpoint: OutpointString): number[] {
|
|
1075
|
-
const writer = new Utils.Writer()
|
|
1076
|
-
const [txid, index] = outpoint.split(
|
|
1077
|
-
writer.write(Utils.toArray(txid,
|
|
1078
|
-
writer.writeVarIntNum(Number(index))
|
|
1079
|
-
return writer.toArray()
|
|
1080
|
+
const writer = new Utils.Writer()
|
|
1081
|
+
const [txid, index] = outpoint.split('.')
|
|
1082
|
+
writer.write(Utils.toArray(txid, 'hex'))
|
|
1083
|
+
writer.writeVarIntNum(Number(index))
|
|
1084
|
+
return writer.toArray()
|
|
1080
1085
|
}
|
|
1081
1086
|
|
|
1082
1087
|
private readOutpoint(reader: Utils.Reader): OutpointString {
|
|
1083
|
-
const txid = Utils.toHex(reader.read(32))
|
|
1084
|
-
const index = reader.readVarIntNum()
|
|
1085
|
-
return `${txid}.${index}
|
|
1088
|
+
const txid = Utils.toHex(reader.read(32))
|
|
1089
|
+
const index = reader.readVarIntNum()
|
|
1090
|
+
return `${txid}.${index}`
|
|
1086
1091
|
}
|
|
1087
1092
|
|
|
1088
1093
|
async getPublicKey(
|
|
1089
1094
|
args: {
|
|
1090
|
-
seekPermission?: BooleanDefaultTrue
|
|
1091
|
-
identityKey?: true
|
|
1092
|
-
protocolID?: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1093
|
-
keyID?: KeyIDStringUnder800Bytes
|
|
1094
|
-
privileged?: BooleanDefaultFalse
|
|
1095
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1096
|
-
counterparty?: PubKeyHex |
|
|
1097
|
-
forSelf?: BooleanDefaultFalse
|
|
1095
|
+
seekPermission?: BooleanDefaultTrue
|
|
1096
|
+
identityKey?: true
|
|
1097
|
+
protocolID?: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1098
|
+
keyID?: KeyIDStringUnder800Bytes
|
|
1099
|
+
privileged?: BooleanDefaultFalse
|
|
1100
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1101
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1102
|
+
forSelf?: BooleanDefaultFalse
|
|
1098
1103
|
},
|
|
1099
1104
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1100
1105
|
): Promise<{ publicKey: PubKeyHex }> {
|
|
1101
|
-
const paramWriter = new Utils.Writer()
|
|
1102
|
-
paramWriter.writeUInt8(args.identityKey ? 1 : 0)
|
|
1106
|
+
const paramWriter = new Utils.Writer()
|
|
1107
|
+
paramWriter.writeUInt8(args.identityKey ? 1 : 0)
|
|
1103
1108
|
if (!args.identityKey) {
|
|
1104
1109
|
paramWriter.write(
|
|
1105
1110
|
this.encodeKeyRelatedParams(
|
|
1106
|
-
args.protocolID,
|
|
1107
|
-
args.keyID,
|
|
1111
|
+
args.protocolID ??= [SecurityLevels.Silent, 'default'],
|
|
1112
|
+
args.keyID ??= '',
|
|
1108
1113
|
args.counterparty,
|
|
1109
1114
|
args.privileged,
|
|
1110
1115
|
args.privilegedReason
|
|
1111
1116
|
)
|
|
1112
|
-
)
|
|
1113
|
-
if (typeof args.forSelf ===
|
|
1114
|
-
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
1117
|
+
)
|
|
1118
|
+
if (typeof args.forSelf === 'boolean') {
|
|
1119
|
+
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
1115
1120
|
} else {
|
|
1116
|
-
paramWriter.writeInt8(-1)
|
|
1121
|
+
paramWriter.writeInt8(-1)
|
|
1117
1122
|
}
|
|
1118
1123
|
} else {
|
|
1119
1124
|
paramWriter.write(
|
|
1120
1125
|
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1121
|
-
)
|
|
1126
|
+
)
|
|
1122
1127
|
}
|
|
1123
1128
|
|
|
1124
1129
|
// Serialize seekPermission
|
|
1125
1130
|
paramWriter.writeInt8(
|
|
1126
|
-
typeof args.seekPermission ===
|
|
1131
|
+
typeof args.seekPermission === 'boolean'
|
|
1127
1132
|
? args.seekPermission
|
|
1128
1133
|
? 1
|
|
1129
1134
|
: 0
|
|
1130
1135
|
: -1
|
|
1131
|
-
)
|
|
1136
|
+
)
|
|
1132
1137
|
|
|
1133
1138
|
const result = await this.transmit(
|
|
1134
|
-
|
|
1139
|
+
'getPublicKey',
|
|
1135
1140
|
originator,
|
|
1136
1141
|
paramWriter.toArray()
|
|
1137
|
-
)
|
|
1142
|
+
)
|
|
1138
1143
|
return {
|
|
1139
|
-
publicKey: Utils.toHex(result)
|
|
1140
|
-
}
|
|
1144
|
+
publicKey: Utils.toHex(result)
|
|
1145
|
+
}
|
|
1141
1146
|
}
|
|
1142
1147
|
|
|
1143
1148
|
async revealCounterpartyKeyLinkage(
|
|
1144
1149
|
args: {
|
|
1145
|
-
counterparty: PubKeyHex
|
|
1146
|
-
verifier: PubKeyHex
|
|
1147
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1148
|
-
privileged?: BooleanDefaultFalse
|
|
1150
|
+
counterparty: PubKeyHex
|
|
1151
|
+
verifier: PubKeyHex
|
|
1152
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1153
|
+
privileged?: BooleanDefaultFalse
|
|
1149
1154
|
},
|
|
1150
1155
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1151
1156
|
): Promise<{
|
|
1152
|
-
prover: PubKeyHex
|
|
1153
|
-
verifier: PubKeyHex
|
|
1154
|
-
counterparty: PubKeyHex
|
|
1155
|
-
revelationTime: ISOTimestampString
|
|
1156
|
-
encryptedLinkage: Byte[]
|
|
1157
|
-
encryptedLinkageProof: number[]
|
|
1157
|
+
prover: PubKeyHex
|
|
1158
|
+
verifier: PubKeyHex
|
|
1159
|
+
counterparty: PubKeyHex
|
|
1160
|
+
revelationTime: ISOTimestampString
|
|
1161
|
+
encryptedLinkage: Byte[]
|
|
1162
|
+
encryptedLinkageProof: number[]
|
|
1158
1163
|
}> {
|
|
1159
|
-
const paramWriter = new Utils.Writer()
|
|
1164
|
+
const paramWriter = new Utils.Writer()
|
|
1160
1165
|
paramWriter.write(
|
|
1161
1166
|
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1162
|
-
)
|
|
1163
|
-
paramWriter.write(Utils.toArray(args.counterparty,
|
|
1164
|
-
paramWriter.write(Utils.toArray(args.verifier,
|
|
1167
|
+
)
|
|
1168
|
+
paramWriter.write(Utils.toArray(args.counterparty, 'hex'))
|
|
1169
|
+
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
1165
1170
|
const result = await this.transmit(
|
|
1166
|
-
|
|
1171
|
+
'revealCounterpartyKeyLinkage',
|
|
1167
1172
|
originator,
|
|
1168
1173
|
paramWriter.toArray()
|
|
1169
|
-
)
|
|
1170
|
-
const resultReader = new Utils.Reader(result)
|
|
1171
|
-
const prover = Utils.toHex(resultReader.read(33))
|
|
1172
|
-
const verifier = Utils.toHex(resultReader.read(33))
|
|
1173
|
-
const counterparty = Utils.toHex(resultReader.read(33))
|
|
1174
|
-
const revelationTimeLength = resultReader.readVarIntNum()
|
|
1174
|
+
)
|
|
1175
|
+
const resultReader = new Utils.Reader(result)
|
|
1176
|
+
const prover = Utils.toHex(resultReader.read(33))
|
|
1177
|
+
const verifier = Utils.toHex(resultReader.read(33))
|
|
1178
|
+
const counterparty = Utils.toHex(resultReader.read(33))
|
|
1179
|
+
const revelationTimeLength = resultReader.readVarIntNum()
|
|
1175
1180
|
const revelationTime = Utils.toUTF8(
|
|
1176
1181
|
resultReader.read(revelationTimeLength)
|
|
1177
|
-
)
|
|
1178
|
-
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
1179
|
-
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
1180
|
-
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
1182
|
+
)
|
|
1183
|
+
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
1184
|
+
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
1185
|
+
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
1181
1186
|
const encryptedLinkageProof = resultReader.read(
|
|
1182
1187
|
encryptedLinkageProofLength
|
|
1183
|
-
)
|
|
1188
|
+
)
|
|
1184
1189
|
return {
|
|
1185
1190
|
prover,
|
|
1186
1191
|
verifier,
|
|
1187
1192
|
counterparty,
|
|
1188
1193
|
revelationTime,
|
|
1189
1194
|
encryptedLinkage,
|
|
1190
|
-
encryptedLinkageProof
|
|
1191
|
-
}
|
|
1195
|
+
encryptedLinkageProof
|
|
1196
|
+
}
|
|
1192
1197
|
}
|
|
1193
1198
|
|
|
1194
1199
|
async revealSpecificKeyLinkage(
|
|
1195
1200
|
args: {
|
|
1196
|
-
counterparty: PubKeyHex
|
|
1197
|
-
verifier: PubKeyHex
|
|
1198
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1199
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1200
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1201
|
-
privileged?: BooleanDefaultFalse
|
|
1201
|
+
counterparty: PubKeyHex
|
|
1202
|
+
verifier: PubKeyHex
|
|
1203
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1204
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1205
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1206
|
+
privileged?: BooleanDefaultFalse
|
|
1202
1207
|
},
|
|
1203
1208
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1204
1209
|
): Promise<{
|
|
1205
|
-
prover: PubKeyHex
|
|
1206
|
-
verifier: PubKeyHex
|
|
1207
|
-
counterparty: PubKeyHex
|
|
1208
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1209
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1210
|
-
encryptedLinkage: Byte[]
|
|
1211
|
-
encryptedLinkageProof: Byte[]
|
|
1212
|
-
proofType: Byte
|
|
1210
|
+
prover: PubKeyHex
|
|
1211
|
+
verifier: PubKeyHex
|
|
1212
|
+
counterparty: PubKeyHex
|
|
1213
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1214
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1215
|
+
encryptedLinkage: Byte[]
|
|
1216
|
+
encryptedLinkageProof: Byte[]
|
|
1217
|
+
proofType: Byte
|
|
1213
1218
|
}> {
|
|
1214
|
-
const paramWriter = new Utils.Writer()
|
|
1219
|
+
const paramWriter = new Utils.Writer()
|
|
1215
1220
|
paramWriter.write(
|
|
1216
1221
|
this.encodeKeyRelatedParams(
|
|
1217
1222
|
args.protocolID,
|
|
@@ -1220,29 +1225,29 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1220
1225
|
args.privileged,
|
|
1221
1226
|
args.privilegedReason
|
|
1222
1227
|
)
|
|
1223
|
-
)
|
|
1224
|
-
paramWriter.write(Utils.toArray(args.verifier,
|
|
1228
|
+
)
|
|
1229
|
+
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
1225
1230
|
const result = await this.transmit(
|
|
1226
|
-
|
|
1231
|
+
'revealSpecificKeyLinkage',
|
|
1227
1232
|
originator,
|
|
1228
1233
|
paramWriter.toArray()
|
|
1229
|
-
)
|
|
1230
|
-
const resultReader = new Utils.Reader(result)
|
|
1231
|
-
const prover = Utils.toHex(resultReader.read(33))
|
|
1232
|
-
const verifier = Utils.toHex(resultReader.read(33))
|
|
1233
|
-
const counterparty = Utils.toHex(resultReader.read(33))
|
|
1234
|
-
const securityLevel = resultReader.readUInt8()
|
|
1235
|
-
const protocolLength = resultReader.readVarIntNum()
|
|
1236
|
-
const protocol = Utils.toUTF8(resultReader.read(protocolLength))
|
|
1237
|
-
const keyIDLength = resultReader.readVarIntNum()
|
|
1238
|
-
const keyID = Utils.toUTF8(resultReader.read(keyIDLength))
|
|
1239
|
-
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
1240
|
-
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
1241
|
-
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
1234
|
+
)
|
|
1235
|
+
const resultReader = new Utils.Reader(result)
|
|
1236
|
+
const prover = Utils.toHex(resultReader.read(33))
|
|
1237
|
+
const verifier = Utils.toHex(resultReader.read(33))
|
|
1238
|
+
const counterparty = Utils.toHex(resultReader.read(33))
|
|
1239
|
+
const securityLevel = resultReader.readUInt8()
|
|
1240
|
+
const protocolLength = resultReader.readVarIntNum()
|
|
1241
|
+
const protocol = Utils.toUTF8(resultReader.read(protocolLength))
|
|
1242
|
+
const keyIDLength = resultReader.readVarIntNum()
|
|
1243
|
+
const keyID = Utils.toUTF8(resultReader.read(keyIDLength))
|
|
1244
|
+
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
1245
|
+
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
1246
|
+
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
1242
1247
|
const encryptedLinkageProof = resultReader.read(
|
|
1243
1248
|
encryptedLinkageProofLength
|
|
1244
|
-
)
|
|
1245
|
-
const proofType = resultReader.readUInt8()
|
|
1249
|
+
)
|
|
1250
|
+
const proofType = resultReader.readUInt8()
|
|
1246
1251
|
return {
|
|
1247
1252
|
prover,
|
|
1248
1253
|
verifier,
|
|
@@ -1251,23 +1256,23 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1251
1256
|
keyID,
|
|
1252
1257
|
encryptedLinkage,
|
|
1253
1258
|
encryptedLinkageProof,
|
|
1254
|
-
proofType
|
|
1255
|
-
}
|
|
1259
|
+
proofType
|
|
1260
|
+
}
|
|
1256
1261
|
}
|
|
1257
1262
|
|
|
1258
1263
|
async encrypt(
|
|
1259
1264
|
args: {
|
|
1260
|
-
seekPermission?: BooleanDefaultTrue
|
|
1261
|
-
plaintext: Byte[]
|
|
1262
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1263
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1264
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1265
|
-
counterparty?: PubKeyHex |
|
|
1266
|
-
privileged?: BooleanDefaultFalse
|
|
1265
|
+
seekPermission?: BooleanDefaultTrue
|
|
1266
|
+
plaintext: Byte[]
|
|
1267
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1268
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1269
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1270
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1271
|
+
privileged?: BooleanDefaultFalse
|
|
1267
1272
|
},
|
|
1268
1273
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1269
1274
|
): Promise<{ ciphertext: Byte[] }> {
|
|
1270
|
-
const paramWriter = new Utils.Writer()
|
|
1275
|
+
const paramWriter = new Utils.Writer()
|
|
1271
1276
|
paramWriter.write(
|
|
1272
1277
|
this.encodeKeyRelatedParams(
|
|
1273
1278
|
args.protocolID,
|
|
@@ -1276,39 +1281,39 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1276
1281
|
args.privileged,
|
|
1277
1282
|
args.privilegedReason
|
|
1278
1283
|
)
|
|
1279
|
-
)
|
|
1280
|
-
paramWriter.writeVarIntNum(args.plaintext.length)
|
|
1281
|
-
paramWriter.write(args.plaintext)
|
|
1284
|
+
)
|
|
1285
|
+
paramWriter.writeVarIntNum(args.plaintext.length)
|
|
1286
|
+
paramWriter.write(args.plaintext)
|
|
1282
1287
|
// Serialize seekPermission
|
|
1283
1288
|
paramWriter.writeInt8(
|
|
1284
|
-
typeof args.seekPermission ===
|
|
1289
|
+
typeof args.seekPermission === 'boolean'
|
|
1285
1290
|
? args.seekPermission
|
|
1286
1291
|
? 1
|
|
1287
1292
|
: 0
|
|
1288
1293
|
: -1
|
|
1289
|
-
)
|
|
1294
|
+
)
|
|
1290
1295
|
return {
|
|
1291
1296
|
ciphertext: await this.transmit(
|
|
1292
|
-
|
|
1297
|
+
'encrypt',
|
|
1293
1298
|
originator,
|
|
1294
1299
|
paramWriter.toArray()
|
|
1295
|
-
)
|
|
1296
|
-
}
|
|
1300
|
+
)
|
|
1301
|
+
}
|
|
1297
1302
|
}
|
|
1298
1303
|
|
|
1299
1304
|
async decrypt(
|
|
1300
1305
|
args: {
|
|
1301
|
-
seekPermission?: BooleanDefaultTrue
|
|
1302
|
-
ciphertext: Byte[]
|
|
1303
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1304
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1305
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1306
|
-
counterparty?: PubKeyHex |
|
|
1307
|
-
privileged?: BooleanDefaultFalse
|
|
1306
|
+
seekPermission?: BooleanDefaultTrue
|
|
1307
|
+
ciphertext: Byte[]
|
|
1308
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1309
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1310
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1311
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1312
|
+
privileged?: BooleanDefaultFalse
|
|
1308
1313
|
},
|
|
1309
1314
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1310
1315
|
): Promise<{ plaintext: Byte[] }> {
|
|
1311
|
-
const paramWriter = new Utils.Writer()
|
|
1316
|
+
const paramWriter = new Utils.Writer()
|
|
1312
1317
|
paramWriter.write(
|
|
1313
1318
|
this.encodeKeyRelatedParams(
|
|
1314
1319
|
args.protocolID,
|
|
@@ -1317,39 +1322,39 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1317
1322
|
args.privileged,
|
|
1318
1323
|
args.privilegedReason
|
|
1319
1324
|
)
|
|
1320
|
-
)
|
|
1321
|
-
paramWriter.writeVarIntNum(args.ciphertext.length)
|
|
1322
|
-
paramWriter.write(args.ciphertext)
|
|
1325
|
+
)
|
|
1326
|
+
paramWriter.writeVarIntNum(args.ciphertext.length)
|
|
1327
|
+
paramWriter.write(args.ciphertext)
|
|
1323
1328
|
// Serialize seekPermission
|
|
1324
1329
|
paramWriter.writeInt8(
|
|
1325
|
-
typeof args.seekPermission ===
|
|
1330
|
+
typeof args.seekPermission === 'boolean'
|
|
1326
1331
|
? args.seekPermission
|
|
1327
1332
|
? 1
|
|
1328
1333
|
: 0
|
|
1329
1334
|
: -1
|
|
1330
|
-
)
|
|
1335
|
+
)
|
|
1331
1336
|
return {
|
|
1332
1337
|
plaintext: await this.transmit(
|
|
1333
|
-
|
|
1338
|
+
'decrypt',
|
|
1334
1339
|
originator,
|
|
1335
1340
|
paramWriter.toArray()
|
|
1336
|
-
)
|
|
1337
|
-
}
|
|
1341
|
+
)
|
|
1342
|
+
}
|
|
1338
1343
|
}
|
|
1339
1344
|
|
|
1340
1345
|
async createHmac(
|
|
1341
1346
|
args: {
|
|
1342
|
-
seekPermission?: BooleanDefaultTrue
|
|
1343
|
-
data: Byte[]
|
|
1344
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1345
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1346
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1347
|
-
counterparty?: PubKeyHex |
|
|
1348
|
-
privileged?: BooleanDefaultFalse
|
|
1347
|
+
seekPermission?: BooleanDefaultTrue
|
|
1348
|
+
data: Byte[]
|
|
1349
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1350
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1351
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1352
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1353
|
+
privileged?: BooleanDefaultFalse
|
|
1349
1354
|
},
|
|
1350
1355
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1351
1356
|
): Promise<{ hmac: Byte[] }> {
|
|
1352
|
-
const paramWriter = new Utils.Writer()
|
|
1357
|
+
const paramWriter = new Utils.Writer()
|
|
1353
1358
|
paramWriter.write(
|
|
1354
1359
|
this.encodeKeyRelatedParams(
|
|
1355
1360
|
args.protocolID,
|
|
@@ -1358,40 +1363,40 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1358
1363
|
args.privileged,
|
|
1359
1364
|
args.privilegedReason
|
|
1360
1365
|
)
|
|
1361
|
-
)
|
|
1362
|
-
paramWriter.writeVarIntNum(args.data.length)
|
|
1363
|
-
paramWriter.write(args.data)
|
|
1366
|
+
)
|
|
1367
|
+
paramWriter.writeVarIntNum(args.data.length)
|
|
1368
|
+
paramWriter.write(args.data)
|
|
1364
1369
|
// Serialize seekPermission
|
|
1365
1370
|
paramWriter.writeInt8(
|
|
1366
|
-
typeof args.seekPermission ===
|
|
1371
|
+
typeof args.seekPermission === 'boolean'
|
|
1367
1372
|
? args.seekPermission
|
|
1368
1373
|
? 1
|
|
1369
1374
|
: 0
|
|
1370
1375
|
: -1
|
|
1371
|
-
)
|
|
1376
|
+
)
|
|
1372
1377
|
return {
|
|
1373
1378
|
hmac: await this.transmit(
|
|
1374
|
-
|
|
1379
|
+
'createHmac',
|
|
1375
1380
|
originator,
|
|
1376
1381
|
paramWriter.toArray()
|
|
1377
|
-
)
|
|
1378
|
-
}
|
|
1382
|
+
)
|
|
1383
|
+
}
|
|
1379
1384
|
}
|
|
1380
1385
|
|
|
1381
1386
|
async verifyHmac(
|
|
1382
1387
|
args: {
|
|
1383
|
-
seekPermission?: BooleanDefaultTrue
|
|
1384
|
-
data: Byte[]
|
|
1385
|
-
hmac: Byte[]
|
|
1386
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1387
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1388
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1389
|
-
counterparty?: PubKeyHex |
|
|
1390
|
-
privileged?: BooleanDefaultFalse
|
|
1388
|
+
seekPermission?: BooleanDefaultTrue
|
|
1389
|
+
data: Byte[]
|
|
1390
|
+
hmac: Byte[]
|
|
1391
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1392
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1393
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1394
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1395
|
+
privileged?: BooleanDefaultFalse
|
|
1391
1396
|
},
|
|
1392
1397
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1393
1398
|
): Promise<{ valid: true }> {
|
|
1394
|
-
const paramWriter = new Utils.Writer()
|
|
1399
|
+
const paramWriter = new Utils.Writer()
|
|
1395
1400
|
paramWriter.write(
|
|
1396
1401
|
this.encodeKeyRelatedParams(
|
|
1397
1402
|
args.protocolID,
|
|
@@ -1400,36 +1405,36 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1400
1405
|
args.privileged,
|
|
1401
1406
|
args.privilegedReason
|
|
1402
1407
|
)
|
|
1403
|
-
)
|
|
1404
|
-
paramWriter.write(args.hmac)
|
|
1405
|
-
paramWriter.writeVarIntNum(args.data.length)
|
|
1406
|
-
paramWriter.write(args.data)
|
|
1408
|
+
)
|
|
1409
|
+
paramWriter.write(args.hmac)
|
|
1410
|
+
paramWriter.writeVarIntNum(args.data.length)
|
|
1411
|
+
paramWriter.write(args.data)
|
|
1407
1412
|
// Serialize seekPermission
|
|
1408
1413
|
paramWriter.writeInt8(
|
|
1409
|
-
typeof args.seekPermission ===
|
|
1414
|
+
typeof args.seekPermission === 'boolean'
|
|
1410
1415
|
? args.seekPermission
|
|
1411
1416
|
? 1
|
|
1412
1417
|
: 0
|
|
1413
1418
|
: -1
|
|
1414
|
-
)
|
|
1415
|
-
await this.transmit(
|
|
1416
|
-
return { valid: true }
|
|
1419
|
+
)
|
|
1420
|
+
await this.transmit('verifyHmac', originator, paramWriter.toArray())
|
|
1421
|
+
return { valid: true }
|
|
1417
1422
|
}
|
|
1418
1423
|
|
|
1419
1424
|
async createSignature(
|
|
1420
1425
|
args: {
|
|
1421
|
-
seekPermission?: BooleanDefaultTrue
|
|
1422
|
-
data?: Byte[]
|
|
1423
|
-
hashToDirectlySign?: Byte[]
|
|
1424
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1425
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1426
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1427
|
-
counterparty?: PubKeyHex |
|
|
1428
|
-
privileged?: BooleanDefaultFalse
|
|
1426
|
+
seekPermission?: BooleanDefaultTrue
|
|
1427
|
+
data?: Byte[]
|
|
1428
|
+
hashToDirectlySign?: Byte[]
|
|
1429
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1430
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1431
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1432
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1433
|
+
privileged?: BooleanDefaultFalse
|
|
1429
1434
|
},
|
|
1430
1435
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1431
1436
|
): Promise<{ signature: Byte[] }> {
|
|
1432
|
-
const paramWriter = new Utils.Writer()
|
|
1437
|
+
const paramWriter = new Utils.Writer()
|
|
1433
1438
|
paramWriter.write(
|
|
1434
1439
|
this.encodeKeyRelatedParams(
|
|
1435
1440
|
args.protocolID,
|
|
@@ -1438,48 +1443,48 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1438
1443
|
args.privileged,
|
|
1439
1444
|
args.privilegedReason
|
|
1440
1445
|
)
|
|
1441
|
-
)
|
|
1442
|
-
if (typeof args.data ===
|
|
1443
|
-
paramWriter.writeUInt8(1)
|
|
1444
|
-
paramWriter.writeVarIntNum(args.data.length)
|
|
1445
|
-
paramWriter.write(args.data)
|
|
1446
|
+
)
|
|
1447
|
+
if (typeof args.data === 'object') {
|
|
1448
|
+
paramWriter.writeUInt8(1)
|
|
1449
|
+
paramWriter.writeVarIntNum(args.data.length)
|
|
1450
|
+
paramWriter.write(args.data)
|
|
1446
1451
|
} else {
|
|
1447
|
-
paramWriter.writeUInt8(2)
|
|
1448
|
-
paramWriter.write(args.hashToDirectlySign)
|
|
1452
|
+
paramWriter.writeUInt8(2)
|
|
1453
|
+
paramWriter.write(args.hashToDirectlySign ??= [])
|
|
1449
1454
|
}
|
|
1450
1455
|
// Serialize seekPermission
|
|
1451
1456
|
paramWriter.writeInt8(
|
|
1452
|
-
typeof args.seekPermission ===
|
|
1457
|
+
typeof args.seekPermission === 'boolean'
|
|
1453
1458
|
? args.seekPermission
|
|
1454
1459
|
? 1
|
|
1455
1460
|
: 0
|
|
1456
1461
|
: -1
|
|
1457
|
-
)
|
|
1462
|
+
)
|
|
1458
1463
|
return {
|
|
1459
1464
|
signature: await this.transmit(
|
|
1460
|
-
|
|
1465
|
+
'createSignature',
|
|
1461
1466
|
originator,
|
|
1462
1467
|
paramWriter.toArray()
|
|
1463
|
-
)
|
|
1464
|
-
}
|
|
1468
|
+
)
|
|
1469
|
+
}
|
|
1465
1470
|
}
|
|
1466
1471
|
|
|
1467
1472
|
async verifySignature(
|
|
1468
1473
|
args: {
|
|
1469
|
-
seekPermission?: BooleanDefaultTrue
|
|
1470
|
-
data?: Byte[]
|
|
1471
|
-
hashToDirectlyVerify?: Byte[]
|
|
1472
|
-
signature: Byte[]
|
|
1473
|
-
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1474
|
-
keyID: KeyIDStringUnder800Bytes
|
|
1475
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1476
|
-
counterparty?: PubKeyHex |
|
|
1477
|
-
forSelf?: BooleanDefaultFalse
|
|
1478
|
-
privileged?: BooleanDefaultFalse
|
|
1474
|
+
seekPermission?: BooleanDefaultTrue
|
|
1475
|
+
data?: Byte[]
|
|
1476
|
+
hashToDirectlyVerify?: Byte[]
|
|
1477
|
+
signature: Byte[]
|
|
1478
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1479
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1480
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1481
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1482
|
+
forSelf?: BooleanDefaultFalse
|
|
1483
|
+
privileged?: BooleanDefaultFalse
|
|
1479
1484
|
},
|
|
1480
1485
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1481
1486
|
): Promise<{ valid: true }> {
|
|
1482
|
-
const paramWriter = new Utils.Writer()
|
|
1487
|
+
const paramWriter = new Utils.Writer()
|
|
1483
1488
|
paramWriter.write(
|
|
1484
1489
|
this.encodeKeyRelatedParams(
|
|
1485
1490
|
args.protocolID,
|
|
@@ -1488,538 +1493,538 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1488
1493
|
args.privileged,
|
|
1489
1494
|
args.privilegedReason
|
|
1490
1495
|
)
|
|
1491
|
-
)
|
|
1492
|
-
if (typeof args.forSelf ===
|
|
1493
|
-
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
1496
|
+
)
|
|
1497
|
+
if (typeof args.forSelf === 'boolean') {
|
|
1498
|
+
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
1494
1499
|
} else {
|
|
1495
|
-
paramWriter.writeInt8(-1)
|
|
1496
|
-
}
|
|
1497
|
-
paramWriter.writeVarIntNum(args.signature.length)
|
|
1498
|
-
paramWriter.write(args.signature)
|
|
1499
|
-
if (typeof args.data ===
|
|
1500
|
-
paramWriter.writeUInt8(1)
|
|
1501
|
-
paramWriter.writeVarIntNum(args.data.length)
|
|
1502
|
-
paramWriter.write(args.data)
|
|
1500
|
+
paramWriter.writeInt8(-1)
|
|
1501
|
+
}
|
|
1502
|
+
paramWriter.writeVarIntNum(args.signature.length)
|
|
1503
|
+
paramWriter.write(args.signature)
|
|
1504
|
+
if (typeof args.data === 'object') {
|
|
1505
|
+
paramWriter.writeUInt8(1)
|
|
1506
|
+
paramWriter.writeVarIntNum(args.data.length)
|
|
1507
|
+
paramWriter.write(args.data)
|
|
1503
1508
|
} else {
|
|
1504
|
-
paramWriter.writeUInt8(2)
|
|
1505
|
-
paramWriter.write(args.hashToDirectlyVerify)
|
|
1509
|
+
paramWriter.writeUInt8(2)
|
|
1510
|
+
paramWriter.write(args.hashToDirectlyVerify ?? [])
|
|
1506
1511
|
}
|
|
1507
1512
|
// Serialize seekPermission
|
|
1508
1513
|
paramWriter.writeInt8(
|
|
1509
|
-
typeof args.seekPermission ===
|
|
1514
|
+
typeof args.seekPermission === 'boolean'
|
|
1510
1515
|
? args.seekPermission
|
|
1511
1516
|
? 1
|
|
1512
1517
|
: 0
|
|
1513
1518
|
: -1
|
|
1514
|
-
)
|
|
1515
|
-
await this.transmit(
|
|
1516
|
-
return { valid: true }
|
|
1519
|
+
)
|
|
1520
|
+
await this.transmit('verifySignature', originator, paramWriter.toArray())
|
|
1521
|
+
return { valid: true }
|
|
1517
1522
|
}
|
|
1518
1523
|
|
|
1519
1524
|
private encodeKeyRelatedParams(
|
|
1520
1525
|
protocolID: [SecurityLevel, ProtocolString5To400Bytes],
|
|
1521
1526
|
keyID: KeyIDStringUnder800Bytes,
|
|
1522
|
-
counterparty?: PubKeyHex |
|
|
1527
|
+
counterparty?: PubKeyHex | 'self' | 'anyone',
|
|
1523
1528
|
privileged?: boolean,
|
|
1524
1529
|
privilegedReason?: string
|
|
1525
1530
|
): number[] {
|
|
1526
|
-
const paramWriter = new Utils.Writer()
|
|
1527
|
-
paramWriter.writeUInt8(protocolID[0])
|
|
1528
|
-
const protocolAsArray = Utils.toArray(protocolID[1],
|
|
1529
|
-
paramWriter.writeVarIntNum(protocolAsArray.length)
|
|
1530
|
-
paramWriter.write(protocolAsArray)
|
|
1531
|
-
const keyIDAsArray = Utils.toArray(keyID,
|
|
1532
|
-
paramWriter.writeVarIntNum(keyIDAsArray.length)
|
|
1533
|
-
paramWriter.write(keyIDAsArray)
|
|
1534
|
-
if (typeof counterparty !==
|
|
1535
|
-
paramWriter.writeUInt8(0)
|
|
1536
|
-
} else if (counterparty ===
|
|
1537
|
-
paramWriter.writeUInt8(11)
|
|
1538
|
-
} else if (counterparty ===
|
|
1539
|
-
paramWriter.writeUInt8(12)
|
|
1531
|
+
const paramWriter = new Utils.Writer()
|
|
1532
|
+
paramWriter.writeUInt8(protocolID[0])
|
|
1533
|
+
const protocolAsArray = Utils.toArray(protocolID[1], 'utf8')
|
|
1534
|
+
paramWriter.writeVarIntNum(protocolAsArray.length)
|
|
1535
|
+
paramWriter.write(protocolAsArray)
|
|
1536
|
+
const keyIDAsArray = Utils.toArray(keyID, 'utf8')
|
|
1537
|
+
paramWriter.writeVarIntNum(keyIDAsArray.length)
|
|
1538
|
+
paramWriter.write(keyIDAsArray)
|
|
1539
|
+
if (typeof counterparty !== 'string') {
|
|
1540
|
+
paramWriter.writeUInt8(0)
|
|
1541
|
+
} else if (counterparty === 'self') {
|
|
1542
|
+
paramWriter.writeUInt8(11)
|
|
1543
|
+
} else if (counterparty === 'anyone') {
|
|
1544
|
+
paramWriter.writeUInt8(12)
|
|
1540
1545
|
} else {
|
|
1541
|
-
paramWriter.write(Utils.toArray(counterparty,
|
|
1546
|
+
paramWriter.write(Utils.toArray(counterparty, 'hex'))
|
|
1542
1547
|
}
|
|
1543
1548
|
paramWriter.write(
|
|
1544
1549
|
this.encodePrivilegedParams(privileged, privilegedReason)
|
|
1545
|
-
)
|
|
1546
|
-
return paramWriter.toArray()
|
|
1550
|
+
)
|
|
1551
|
+
return paramWriter.toArray()
|
|
1547
1552
|
}
|
|
1548
1553
|
|
|
1549
1554
|
async acquireCertificate(
|
|
1550
1555
|
args: AcquireCertificateArgs,
|
|
1551
1556
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1552
1557
|
): Promise<AcquireCertificateResult> {
|
|
1553
|
-
const paramWriter = new Utils.Writer()
|
|
1554
|
-
paramWriter.write(Utils.toArray(args.type,
|
|
1555
|
-
paramWriter.write(Utils.toArray(args.certifier,
|
|
1558
|
+
const paramWriter = new Utils.Writer()
|
|
1559
|
+
paramWriter.write(Utils.toArray(args.type, 'base64'))
|
|
1560
|
+
paramWriter.write(Utils.toArray(args.certifier, 'hex'))
|
|
1556
1561
|
|
|
1557
|
-
const fieldEntries = Object.entries(args.fields)
|
|
1558
|
-
paramWriter.writeVarIntNum(fieldEntries.length)
|
|
1562
|
+
const fieldEntries = Object.entries(args.fields)
|
|
1563
|
+
paramWriter.writeVarIntNum(fieldEntries.length)
|
|
1559
1564
|
for (const [key, value] of fieldEntries) {
|
|
1560
|
-
const keyAsArray = Utils.toArray(key,
|
|
1561
|
-
const valueAsArray = Utils.toArray(value,
|
|
1565
|
+
const keyAsArray = Utils.toArray(key, 'utf8')
|
|
1566
|
+
const valueAsArray = Utils.toArray(value, 'utf8')
|
|
1562
1567
|
|
|
1563
|
-
paramWriter.writeVarIntNum(keyAsArray.length)
|
|
1564
|
-
paramWriter.write(keyAsArray)
|
|
1568
|
+
paramWriter.writeVarIntNum(keyAsArray.length)
|
|
1569
|
+
paramWriter.write(keyAsArray)
|
|
1565
1570
|
|
|
1566
|
-
paramWriter.writeVarIntNum(valueAsArray.length)
|
|
1567
|
-
paramWriter.write(valueAsArray)
|
|
1571
|
+
paramWriter.writeVarIntNum(valueAsArray.length)
|
|
1572
|
+
paramWriter.write(valueAsArray)
|
|
1568
1573
|
}
|
|
1569
1574
|
|
|
1570
1575
|
paramWriter.write(
|
|
1571
1576
|
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1572
|
-
)
|
|
1573
|
-
paramWriter.writeUInt8(args.acquisitionProtocol ===
|
|
1577
|
+
)
|
|
1578
|
+
paramWriter.writeUInt8(args.acquisitionProtocol === 'direct' ? 1 : 2)
|
|
1574
1579
|
|
|
1575
|
-
if (args.acquisitionProtocol ===
|
|
1576
|
-
paramWriter.write(Utils.toArray(args.serialNumber,
|
|
1577
|
-
paramWriter.write(this.encodeOutpoint(args.revocationOutpoint))
|
|
1578
|
-
const signatureAsArray = Utils.toArray(args.signature,
|
|
1579
|
-
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1580
|
-
paramWriter.write(signatureAsArray)
|
|
1580
|
+
if (args.acquisitionProtocol === 'direct') {
|
|
1581
|
+
paramWriter.write(Utils.toArray(args.serialNumber, 'base64'))
|
|
1582
|
+
paramWriter.write(this.encodeOutpoint(args.revocationOutpoint ?? ''))
|
|
1583
|
+
const signatureAsArray = Utils.toArray(args.signature, 'hex')
|
|
1584
|
+
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1585
|
+
paramWriter.write(signatureAsArray)
|
|
1581
1586
|
|
|
1582
1587
|
const keyringRevealerAsArray =
|
|
1583
|
-
args.keyringRevealer !==
|
|
1584
|
-
? Utils.toArray(args.keyringRevealer,
|
|
1585
|
-
: [11]
|
|
1586
|
-
paramWriter.write(keyringRevealerAsArray)
|
|
1588
|
+
args.keyringRevealer !== 'certifier'
|
|
1589
|
+
? Utils.toArray(args.keyringRevealer, 'hex')
|
|
1590
|
+
: [11]
|
|
1591
|
+
paramWriter.write(keyringRevealerAsArray)
|
|
1587
1592
|
|
|
1588
|
-
const keyringKeys = Object.keys(args.keyringForSubject)
|
|
1589
|
-
paramWriter.writeVarIntNum(keyringKeys.length)
|
|
1593
|
+
const keyringKeys = Object.keys(args.keyringForSubject ?? {})
|
|
1594
|
+
paramWriter.writeVarIntNum(keyringKeys.length)
|
|
1590
1595
|
for (let i = 0; i < keyringKeys.length; i++) {
|
|
1591
|
-
const keyringKeysAsArray = Utils.toArray(keyringKeys[i],
|
|
1592
|
-
paramWriter.writeVarIntNum(keyringKeysAsArray.length)
|
|
1593
|
-
paramWriter.write(keyringKeysAsArray)
|
|
1596
|
+
const keyringKeysAsArray = Utils.toArray(keyringKeys[i], 'utf8')
|
|
1597
|
+
paramWriter.writeVarIntNum(keyringKeysAsArray.length)
|
|
1598
|
+
paramWriter.write(keyringKeysAsArray)
|
|
1594
1599
|
const keyringForSubjectAsArray = Utils.toArray(
|
|
1595
|
-
args.keyringForSubject[keyringKeys[i]],
|
|
1596
|
-
|
|
1597
|
-
)
|
|
1598
|
-
paramWriter.writeVarIntNum(keyringForSubjectAsArray.length)
|
|
1599
|
-
paramWriter.write(keyringForSubjectAsArray)
|
|
1600
|
+
args.keyringForSubject?.[keyringKeys[i]],
|
|
1601
|
+
'base64'
|
|
1602
|
+
)
|
|
1603
|
+
paramWriter.writeVarIntNum(keyringForSubjectAsArray.length)
|
|
1604
|
+
paramWriter.write(keyringForSubjectAsArray)
|
|
1600
1605
|
}
|
|
1601
1606
|
} else {
|
|
1602
|
-
const certifierUrlAsArray = Utils.toArray(args.certifierUrl,
|
|
1603
|
-
paramWriter.writeVarIntNum(certifierUrlAsArray.length)
|
|
1604
|
-
paramWriter.write(certifierUrlAsArray)
|
|
1607
|
+
const certifierUrlAsArray = Utils.toArray(args.certifierUrl, 'utf8')
|
|
1608
|
+
paramWriter.writeVarIntNum(certifierUrlAsArray.length)
|
|
1609
|
+
paramWriter.write(certifierUrlAsArray)
|
|
1605
1610
|
}
|
|
1606
1611
|
|
|
1607
1612
|
const result = await this.transmit(
|
|
1608
|
-
|
|
1613
|
+
'acquireCertificate',
|
|
1609
1614
|
originator,
|
|
1610
1615
|
paramWriter.toArray()
|
|
1611
|
-
)
|
|
1612
|
-
const cert = Certificate.fromBinary(result)
|
|
1616
|
+
)
|
|
1617
|
+
const cert = Certificate.fromBinary(result)
|
|
1613
1618
|
return {
|
|
1614
1619
|
...cert,
|
|
1615
|
-
signature: cert.signature as string
|
|
1616
|
-
}
|
|
1620
|
+
signature: cert.signature as string
|
|
1621
|
+
}
|
|
1617
1622
|
}
|
|
1618
1623
|
|
|
1619
1624
|
private encodePrivilegedParams(
|
|
1620
1625
|
privileged?: boolean,
|
|
1621
1626
|
privilegedReason?: string
|
|
1622
1627
|
): number[] {
|
|
1623
|
-
const paramWriter = new Utils.Writer()
|
|
1624
|
-
if (typeof privileged ===
|
|
1625
|
-
paramWriter.writeInt8(privileged ? 1 : 0)
|
|
1628
|
+
const paramWriter = new Utils.Writer()
|
|
1629
|
+
if (typeof privileged === 'boolean') {
|
|
1630
|
+
paramWriter.writeInt8(privileged ? 1 : 0)
|
|
1626
1631
|
} else {
|
|
1627
|
-
paramWriter.writeInt8(-1)
|
|
1632
|
+
paramWriter.writeInt8(-1)
|
|
1628
1633
|
}
|
|
1629
|
-
if (typeof privilegedReason ===
|
|
1630
|
-
const privilegedReasonAsArray = Utils.toArray(privilegedReason,
|
|
1631
|
-
paramWriter.writeInt8(privilegedReasonAsArray.length)
|
|
1632
|
-
paramWriter.write(privilegedReasonAsArray)
|
|
1634
|
+
if (typeof privilegedReason === 'string') {
|
|
1635
|
+
const privilegedReasonAsArray = Utils.toArray(privilegedReason, 'utf8')
|
|
1636
|
+
paramWriter.writeInt8(privilegedReasonAsArray.length)
|
|
1637
|
+
paramWriter.write(privilegedReasonAsArray)
|
|
1633
1638
|
} else {
|
|
1634
|
-
paramWriter.writeInt8(-1)
|
|
1639
|
+
paramWriter.writeInt8(-1)
|
|
1635
1640
|
}
|
|
1636
|
-
return paramWriter.toArray()
|
|
1641
|
+
return paramWriter.toArray()
|
|
1637
1642
|
}
|
|
1638
1643
|
|
|
1639
1644
|
async listCertificates(
|
|
1640
1645
|
args: {
|
|
1641
|
-
certifiers: PubKeyHex[]
|
|
1642
|
-
types: Base64String[]
|
|
1643
|
-
limit?: PositiveIntegerDefault10Max10000
|
|
1644
|
-
offset?: PositiveIntegerOrZero
|
|
1645
|
-
privileged?: BooleanDefaultFalse
|
|
1646
|
-
privilegedReason?: DescriptionString5to50Bytes
|
|
1646
|
+
certifiers: PubKeyHex[]
|
|
1647
|
+
types: Base64String[]
|
|
1648
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1649
|
+
offset?: PositiveIntegerOrZero
|
|
1650
|
+
privileged?: BooleanDefaultFalse
|
|
1651
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1647
1652
|
},
|
|
1648
1653
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1649
1654
|
): Promise<ListCertificatesResult> {
|
|
1650
|
-
const paramWriter = new Utils.Writer()
|
|
1651
|
-
paramWriter.writeVarIntNum(args.certifiers.length)
|
|
1655
|
+
const paramWriter = new Utils.Writer()
|
|
1656
|
+
paramWriter.writeVarIntNum(args.certifiers.length)
|
|
1652
1657
|
for (let i = 0; i < args.certifiers.length; i++) {
|
|
1653
|
-
paramWriter.write(Utils.toArray(args.certifiers[i],
|
|
1658
|
+
paramWriter.write(Utils.toArray(args.certifiers[i], 'hex'))
|
|
1654
1659
|
}
|
|
1655
1660
|
|
|
1656
|
-
paramWriter.writeVarIntNum(args.types.length)
|
|
1661
|
+
paramWriter.writeVarIntNum(args.types.length)
|
|
1657
1662
|
for (let i = 0; i < args.types.length; i++) {
|
|
1658
|
-
paramWriter.write(Utils.toArray(args.types[i],
|
|
1663
|
+
paramWriter.write(Utils.toArray(args.types[i], 'base64'))
|
|
1659
1664
|
}
|
|
1660
|
-
if (typeof args.limit ===
|
|
1661
|
-
paramWriter.writeVarIntNum(args.limit)
|
|
1665
|
+
if (typeof args.limit === 'number') {
|
|
1666
|
+
paramWriter.writeVarIntNum(args.limit)
|
|
1662
1667
|
} else {
|
|
1663
|
-
paramWriter.writeVarIntNum(-1)
|
|
1668
|
+
paramWriter.writeVarIntNum(-1)
|
|
1664
1669
|
}
|
|
1665
|
-
if (typeof args.offset ===
|
|
1666
|
-
paramWriter.writeVarIntNum(args.offset)
|
|
1670
|
+
if (typeof args.offset === 'number') {
|
|
1671
|
+
paramWriter.writeVarIntNum(args.offset)
|
|
1667
1672
|
} else {
|
|
1668
|
-
paramWriter.writeVarIntNum(-1)
|
|
1673
|
+
paramWriter.writeVarIntNum(-1)
|
|
1669
1674
|
}
|
|
1670
1675
|
paramWriter.write(
|
|
1671
1676
|
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1672
|
-
)
|
|
1677
|
+
)
|
|
1673
1678
|
const result = await this.transmit(
|
|
1674
|
-
|
|
1679
|
+
'listCertificates',
|
|
1675
1680
|
originator,
|
|
1676
1681
|
paramWriter.toArray()
|
|
1677
|
-
)
|
|
1678
|
-
const resultReader = new Utils.Reader(result)
|
|
1679
|
-
const totalCertificates = resultReader.readVarIntNum()
|
|
1682
|
+
)
|
|
1683
|
+
const resultReader = new Utils.Reader(result)
|
|
1684
|
+
const totalCertificates = resultReader.readVarIntNum()
|
|
1680
1685
|
const certificates: Array<{
|
|
1681
|
-
type: Base64String
|
|
1682
|
-
subject: PubKeyHex
|
|
1683
|
-
serialNumber: Base64String
|
|
1684
|
-
certifier: PubKeyHex
|
|
1685
|
-
revocationOutpoint: OutpointString
|
|
1686
|
-
signature: HexString
|
|
1687
|
-
fields: Record<CertificateFieldNameUnder50Bytes, Base64String
|
|
1688
|
-
}> = []
|
|
1686
|
+
type: Base64String
|
|
1687
|
+
subject: PubKeyHex
|
|
1688
|
+
serialNumber: Base64String
|
|
1689
|
+
certifier: PubKeyHex
|
|
1690
|
+
revocationOutpoint: OutpointString
|
|
1691
|
+
signature: HexString
|
|
1692
|
+
fields: Record<CertificateFieldNameUnder50Bytes, Base64String>
|
|
1693
|
+
}> = []
|
|
1689
1694
|
for (let i = 0; i < totalCertificates; i++) {
|
|
1690
|
-
const certificateLength = resultReader.readVarIntNum()
|
|
1691
|
-
const certificateBin = resultReader.read(certificateLength)
|
|
1692
|
-
const cert = Certificate.fromBinary(certificateBin)
|
|
1695
|
+
const certificateLength = resultReader.readVarIntNum()
|
|
1696
|
+
const certificateBin = resultReader.read(certificateLength)
|
|
1697
|
+
const cert = Certificate.fromBinary(certificateBin)
|
|
1693
1698
|
certificates.push({
|
|
1694
1699
|
...cert,
|
|
1695
|
-
signature: cert.signature as string
|
|
1696
|
-
})
|
|
1700
|
+
signature: cert.signature as string
|
|
1701
|
+
})
|
|
1697
1702
|
}
|
|
1698
1703
|
return {
|
|
1699
1704
|
totalCertificates,
|
|
1700
|
-
certificates
|
|
1701
|
-
}
|
|
1705
|
+
certificates
|
|
1706
|
+
}
|
|
1702
1707
|
}
|
|
1703
1708
|
|
|
1704
1709
|
async proveCertificate(
|
|
1705
1710
|
args: ProveCertificateArgs,
|
|
1706
1711
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1707
1712
|
): Promise<ProveCertificateResult> {
|
|
1708
|
-
const paramWriter = new Utils.Writer()
|
|
1709
|
-
const typeAsArray = Utils.toArray(args.certificate.type,
|
|
1710
|
-
paramWriter.write(typeAsArray)
|
|
1711
|
-
const subjectAsArray = Utils.toArray(args.certificate.subject,
|
|
1712
|
-
paramWriter.write(subjectAsArray)
|
|
1713
|
+
const paramWriter = new Utils.Writer()
|
|
1714
|
+
const typeAsArray = Utils.toArray(args.certificate.type, 'base64')
|
|
1715
|
+
paramWriter.write(typeAsArray)
|
|
1716
|
+
const subjectAsArray = Utils.toArray(args.certificate.subject, 'hex')
|
|
1717
|
+
paramWriter.write(subjectAsArray)
|
|
1713
1718
|
const serialNumberAsArray = Utils.toArray(
|
|
1714
1719
|
args.certificate.serialNumber,
|
|
1715
|
-
|
|
1716
|
-
)
|
|
1717
|
-
paramWriter.write(serialNumberAsArray)
|
|
1718
|
-
const certifierAsArray = Utils.toArray(args.certificate.certifier,
|
|
1719
|
-
paramWriter.write(certifierAsArray)
|
|
1720
|
+
'base64'
|
|
1721
|
+
)
|
|
1722
|
+
paramWriter.write(serialNumberAsArray)
|
|
1723
|
+
const certifierAsArray = Utils.toArray(args.certificate.certifier, 'hex')
|
|
1724
|
+
paramWriter.write(certifierAsArray)
|
|
1720
1725
|
const revocationOutpointAsArray = this.encodeOutpoint(
|
|
1721
|
-
args.certificate.revocationOutpoint
|
|
1722
|
-
)
|
|
1723
|
-
paramWriter.write(revocationOutpointAsArray)
|
|
1724
|
-
const signatureAsArray = Utils.toArray(args.certificate.signature,
|
|
1725
|
-
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1726
|
-
paramWriter.write(signatureAsArray)
|
|
1727
|
-
const fieldEntries = Object.entries(args.certificate.fields)
|
|
1728
|
-
paramWriter.writeVarIntNum(fieldEntries.length)
|
|
1726
|
+
args.certificate.revocationOutpoint ?? ''
|
|
1727
|
+
)
|
|
1728
|
+
paramWriter.write(revocationOutpointAsArray)
|
|
1729
|
+
const signatureAsArray = Utils.toArray(args.certificate.signature, 'hex')
|
|
1730
|
+
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1731
|
+
paramWriter.write(signatureAsArray)
|
|
1732
|
+
const fieldEntries = Object.entries(args.certificate.fields ?? {})
|
|
1733
|
+
paramWriter.writeVarIntNum(fieldEntries.length)
|
|
1729
1734
|
for (const [key, value] of fieldEntries) {
|
|
1730
|
-
const keyAsArray = Utils.toArray(key,
|
|
1731
|
-
const valueAsArray = Utils.toArray(value,
|
|
1732
|
-
paramWriter.writeVarIntNum(keyAsArray.length)
|
|
1733
|
-
paramWriter.write(keyAsArray)
|
|
1734
|
-
paramWriter.writeVarIntNum(valueAsArray.length)
|
|
1735
|
-
paramWriter.write(valueAsArray)
|
|
1736
|
-
}
|
|
1737
|
-
paramWriter.writeVarIntNum(args.fieldsToReveal.length)
|
|
1735
|
+
const keyAsArray = Utils.toArray(key, 'utf8')
|
|
1736
|
+
const valueAsArray = Utils.toArray(value, 'utf8')
|
|
1737
|
+
paramWriter.writeVarIntNum(keyAsArray.length)
|
|
1738
|
+
paramWriter.write(keyAsArray)
|
|
1739
|
+
paramWriter.writeVarIntNum(valueAsArray.length)
|
|
1740
|
+
paramWriter.write(valueAsArray)
|
|
1741
|
+
}
|
|
1742
|
+
paramWriter.writeVarIntNum(args.fieldsToReveal.length)
|
|
1738
1743
|
for (const field of args.fieldsToReveal) {
|
|
1739
|
-
const fieldAsArray = Utils.toArray(field,
|
|
1740
|
-
paramWriter.writeVarIntNum(fieldAsArray.length)
|
|
1741
|
-
paramWriter.write(fieldAsArray)
|
|
1744
|
+
const fieldAsArray = Utils.toArray(field, 'utf8')
|
|
1745
|
+
paramWriter.writeVarIntNum(fieldAsArray.length)
|
|
1746
|
+
paramWriter.write(fieldAsArray)
|
|
1742
1747
|
}
|
|
1743
|
-
paramWriter.write(Utils.toArray(args.verifier,
|
|
1748
|
+
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
1744
1749
|
paramWriter.write(
|
|
1745
1750
|
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1746
|
-
)
|
|
1751
|
+
)
|
|
1747
1752
|
const result = await this.transmit(
|
|
1748
|
-
|
|
1753
|
+
'proveCertificate',
|
|
1749
1754
|
originator,
|
|
1750
1755
|
paramWriter.toArray()
|
|
1751
|
-
)
|
|
1752
|
-
const resultReader = new Utils.Reader(result)
|
|
1753
|
-
const numFields = resultReader.readVarIntNum()
|
|
1754
|
-
const keyringForVerifier: Record<string, string> = {}
|
|
1756
|
+
)
|
|
1757
|
+
const resultReader = new Utils.Reader(result)
|
|
1758
|
+
const numFields = resultReader.readVarIntNum()
|
|
1759
|
+
const keyringForVerifier: Record<string, string> = {}
|
|
1755
1760
|
for (let i = 0; i < numFields; i++) {
|
|
1756
|
-
const fieldKeyLength = resultReader.readVarIntNum()
|
|
1757
|
-
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLength))
|
|
1758
|
-
const fieldValueLength = resultReader.readVarIntNum()
|
|
1761
|
+
const fieldKeyLength = resultReader.readVarIntNum()
|
|
1762
|
+
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLength))
|
|
1763
|
+
const fieldValueLength = resultReader.readVarIntNum()
|
|
1759
1764
|
keyringForVerifier[fieldKey] = Utils.toBase64(
|
|
1760
1765
|
resultReader.read(fieldValueLength)
|
|
1761
|
-
)
|
|
1766
|
+
)
|
|
1762
1767
|
}
|
|
1763
1768
|
return {
|
|
1764
|
-
keyringForVerifier
|
|
1765
|
-
}
|
|
1769
|
+
keyringForVerifier
|
|
1770
|
+
}
|
|
1766
1771
|
}
|
|
1767
1772
|
|
|
1768
1773
|
async relinquishCertificate(
|
|
1769
1774
|
args: {
|
|
1770
|
-
type: Base64String
|
|
1771
|
-
serialNumber: Base64String
|
|
1772
|
-
certifier: PubKeyHex
|
|
1775
|
+
type: Base64String
|
|
1776
|
+
serialNumber: Base64String
|
|
1777
|
+
certifier: PubKeyHex
|
|
1773
1778
|
},
|
|
1774
1779
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1775
1780
|
): Promise<{ relinquished: true }> {
|
|
1776
|
-
const paramWriter = new Utils.Writer()
|
|
1777
|
-
const typeAsArray = Utils.toArray(args.type,
|
|
1778
|
-
paramWriter.write(typeAsArray)
|
|
1779
|
-
const serialNumberAsArray = Utils.toArray(args.serialNumber,
|
|
1780
|
-
paramWriter.write(serialNumberAsArray)
|
|
1781
|
-
const certifierAsArray = Utils.toArray(args.certifier,
|
|
1782
|
-
paramWriter.write(certifierAsArray)
|
|
1781
|
+
const paramWriter = new Utils.Writer()
|
|
1782
|
+
const typeAsArray = Utils.toArray(args.type, 'base64')
|
|
1783
|
+
paramWriter.write(typeAsArray)
|
|
1784
|
+
const serialNumberAsArray = Utils.toArray(args.serialNumber, 'base64')
|
|
1785
|
+
paramWriter.write(serialNumberAsArray)
|
|
1786
|
+
const certifierAsArray = Utils.toArray(args.certifier, 'hex')
|
|
1787
|
+
paramWriter.write(certifierAsArray)
|
|
1783
1788
|
await this.transmit(
|
|
1784
|
-
|
|
1789
|
+
'relinquishCertificate',
|
|
1785
1790
|
originator,
|
|
1786
1791
|
paramWriter.toArray()
|
|
1787
|
-
)
|
|
1788
|
-
return { relinquished: true }
|
|
1792
|
+
)
|
|
1793
|
+
return { relinquished: true }
|
|
1789
1794
|
}
|
|
1790
1795
|
|
|
1791
1796
|
private parseDiscoveryResult(result: number[]): {
|
|
1792
|
-
totalCertificates: number
|
|
1797
|
+
totalCertificates: number
|
|
1793
1798
|
certificates: Array<{
|
|
1794
|
-
type: Base64String
|
|
1795
|
-
subject: PubKeyHex
|
|
1796
|
-
serialNumber: Base64String
|
|
1797
|
-
certifier: PubKeyHex
|
|
1798
|
-
revocationOutpoint: OutpointString
|
|
1799
|
-
signature: HexString
|
|
1800
|
-
fields: Record<CertificateFieldNameUnder50Bytes, Base64String
|
|
1799
|
+
type: Base64String
|
|
1800
|
+
subject: PubKeyHex
|
|
1801
|
+
serialNumber: Base64String
|
|
1802
|
+
certifier: PubKeyHex
|
|
1803
|
+
revocationOutpoint: OutpointString
|
|
1804
|
+
signature: HexString
|
|
1805
|
+
fields: Record<CertificateFieldNameUnder50Bytes, Base64String>
|
|
1801
1806
|
certifierInfo: {
|
|
1802
|
-
name: EntityNameStringMax100Bytes
|
|
1803
|
-
iconUrl: EntityIconURLStringMax500Bytes
|
|
1804
|
-
description: DescriptionString5to50Bytes
|
|
1805
|
-
trust: PositiveIntegerMax10
|
|
1806
|
-
}
|
|
1807
|
+
name: EntityNameStringMax100Bytes
|
|
1808
|
+
iconUrl: EntityIconURLStringMax500Bytes
|
|
1809
|
+
description: DescriptionString5to50Bytes
|
|
1810
|
+
trust: PositiveIntegerMax10
|
|
1811
|
+
}
|
|
1807
1812
|
publiclyRevealedKeyring: Record<
|
|
1808
1813
|
CertificateFieldNameUnder50Bytes,
|
|
1809
1814
|
Base64String
|
|
1810
|
-
|
|
1811
|
-
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string
|
|
1812
|
-
}
|
|
1815
|
+
>
|
|
1816
|
+
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1817
|
+
}>
|
|
1813
1818
|
} {
|
|
1814
|
-
const resultReader = new Utils.Reader(result)
|
|
1815
|
-
const totalCertificates = resultReader.readVarIntNum()
|
|
1819
|
+
const resultReader = new Utils.Reader(result)
|
|
1820
|
+
const totalCertificates = resultReader.readVarIntNum()
|
|
1816
1821
|
const certificates: Array<{
|
|
1817
|
-
type: Base64String
|
|
1818
|
-
subject: PubKeyHex
|
|
1819
|
-
serialNumber: Base64String
|
|
1820
|
-
certifier: PubKeyHex
|
|
1821
|
-
revocationOutpoint: OutpointString
|
|
1822
|
-
signature: HexString
|
|
1823
|
-
fields: Record<CertificateFieldNameUnder50Bytes, Base64String
|
|
1822
|
+
type: Base64String
|
|
1823
|
+
subject: PubKeyHex
|
|
1824
|
+
serialNumber: Base64String
|
|
1825
|
+
certifier: PubKeyHex
|
|
1826
|
+
revocationOutpoint: OutpointString
|
|
1827
|
+
signature: HexString
|
|
1828
|
+
fields: Record<CertificateFieldNameUnder50Bytes, Base64String>
|
|
1824
1829
|
certifierInfo: {
|
|
1825
|
-
name: EntityNameStringMax100Bytes
|
|
1826
|
-
iconUrl: EntityIconURLStringMax500Bytes
|
|
1827
|
-
description: DescriptionString5to50Bytes
|
|
1828
|
-
trust: PositiveIntegerMax10
|
|
1829
|
-
}
|
|
1830
|
+
name: EntityNameStringMax100Bytes
|
|
1831
|
+
iconUrl: EntityIconURLStringMax500Bytes
|
|
1832
|
+
description: DescriptionString5to50Bytes
|
|
1833
|
+
trust: PositiveIntegerMax10
|
|
1834
|
+
}
|
|
1830
1835
|
publiclyRevealedKeyring: Record<
|
|
1831
1836
|
CertificateFieldNameUnder50Bytes,
|
|
1832
1837
|
Base64String
|
|
1833
|
-
|
|
1834
|
-
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string
|
|
1835
|
-
}> = []
|
|
1838
|
+
>
|
|
1839
|
+
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1840
|
+
}> = []
|
|
1836
1841
|
for (let i = 0; i < totalCertificates; i++) {
|
|
1837
|
-
const certBinLen = resultReader.readVarIntNum()
|
|
1838
|
-
const certBin = resultReader.read(certBinLen)
|
|
1839
|
-
const cert = Certificate.fromBinary(certBin)
|
|
1840
|
-
const nameLength = resultReader.readVarIntNum()
|
|
1841
|
-
const name = Utils.toUTF8(resultReader.read(nameLength))
|
|
1842
|
-
const iconUrlLength = resultReader.readVarIntNum()
|
|
1843
|
-
const iconUrl = Utils.toUTF8(resultReader.read(iconUrlLength))
|
|
1844
|
-
const descriptionLength = resultReader.readVarIntNum()
|
|
1845
|
-
const description = Utils.toUTF8(resultReader.read(descriptionLength))
|
|
1846
|
-
const trust = resultReader.readUInt8()
|
|
1847
|
-
const publiclyRevealedKeyring = {}
|
|
1848
|
-
const numPublicKeyringEntries = resultReader.readVarIntNum()
|
|
1842
|
+
const certBinLen = resultReader.readVarIntNum()
|
|
1843
|
+
const certBin = resultReader.read(certBinLen)
|
|
1844
|
+
const cert = Certificate.fromBinary(certBin)
|
|
1845
|
+
const nameLength = resultReader.readVarIntNum()
|
|
1846
|
+
const name = Utils.toUTF8(resultReader.read(nameLength))
|
|
1847
|
+
const iconUrlLength = resultReader.readVarIntNum()
|
|
1848
|
+
const iconUrl = Utils.toUTF8(resultReader.read(iconUrlLength))
|
|
1849
|
+
const descriptionLength = resultReader.readVarIntNum()
|
|
1850
|
+
const description = Utils.toUTF8(resultReader.read(descriptionLength))
|
|
1851
|
+
const trust = resultReader.readUInt8()
|
|
1852
|
+
const publiclyRevealedKeyring = {}
|
|
1853
|
+
const numPublicKeyringEntries = resultReader.readVarIntNum()
|
|
1849
1854
|
for (let j = 0; j < numPublicKeyringEntries; j++) {
|
|
1850
|
-
const fieldKeyLen = resultReader.readVarIntNum()
|
|
1851
|
-
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLen))
|
|
1852
|
-
const fieldValueLen = resultReader.readVarIntNum()
|
|
1853
|
-
publiclyRevealedKeyring[fieldKey] = resultReader.read(fieldValueLen)
|
|
1855
|
+
const fieldKeyLen = resultReader.readVarIntNum()
|
|
1856
|
+
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLen))
|
|
1857
|
+
const fieldValueLen = resultReader.readVarIntNum()
|
|
1858
|
+
publiclyRevealedKeyring[fieldKey] = resultReader.read(fieldValueLen)
|
|
1854
1859
|
}
|
|
1855
|
-
const decryptedFields = {}
|
|
1856
|
-
const numDecryptedFields = resultReader.readVarIntNum()
|
|
1860
|
+
const decryptedFields = {}
|
|
1861
|
+
const numDecryptedFields = resultReader.readVarIntNum()
|
|
1857
1862
|
for (let k = 0; k < numDecryptedFields; k++) {
|
|
1858
|
-
const fieldKeyLen = resultReader.readVarIntNum()
|
|
1859
|
-
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLen))
|
|
1860
|
-
const fieldValueLen = resultReader.readVarIntNum()
|
|
1863
|
+
const fieldKeyLen = resultReader.readVarIntNum()
|
|
1864
|
+
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLen))
|
|
1865
|
+
const fieldValueLen = resultReader.readVarIntNum()
|
|
1861
1866
|
decryptedFields[fieldKey] = Utils.toUTF8(
|
|
1862
1867
|
resultReader.read(fieldValueLen)
|
|
1863
|
-
)
|
|
1868
|
+
)
|
|
1864
1869
|
}
|
|
1865
1870
|
certificates.push({
|
|
1866
1871
|
...cert,
|
|
1867
1872
|
signature: cert.signature as string,
|
|
1868
1873
|
certifierInfo: { iconUrl, name, description, trust },
|
|
1869
1874
|
publiclyRevealedKeyring,
|
|
1870
|
-
decryptedFields
|
|
1871
|
-
})
|
|
1875
|
+
decryptedFields
|
|
1876
|
+
})
|
|
1872
1877
|
}
|
|
1873
1878
|
return {
|
|
1874
1879
|
totalCertificates,
|
|
1875
|
-
certificates
|
|
1876
|
-
}
|
|
1880
|
+
certificates
|
|
1881
|
+
}
|
|
1877
1882
|
}
|
|
1878
1883
|
|
|
1879
1884
|
async discoverByIdentityKey(
|
|
1880
1885
|
args: {
|
|
1881
|
-
seekPermission?: BooleanDefaultTrue
|
|
1882
|
-
identityKey: PubKeyHex
|
|
1883
|
-
limit?: PositiveIntegerDefault10Max10000
|
|
1884
|
-
offset?: PositiveIntegerOrZero
|
|
1886
|
+
seekPermission?: BooleanDefaultTrue
|
|
1887
|
+
identityKey: PubKeyHex
|
|
1888
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1889
|
+
offset?: PositiveIntegerOrZero
|
|
1885
1890
|
},
|
|
1886
1891
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1887
1892
|
): Promise<DiscoverCertificatesResult> {
|
|
1888
|
-
const paramWriter = new Utils.Writer()
|
|
1889
|
-
paramWriter.write(Utils.toArray(args.identityKey,
|
|
1890
|
-
if (typeof args.limit ===
|
|
1891
|
-
paramWriter.writeVarIntNum(args.limit)
|
|
1893
|
+
const paramWriter = new Utils.Writer()
|
|
1894
|
+
paramWriter.write(Utils.toArray(args.identityKey, 'hex'))
|
|
1895
|
+
if (typeof args.limit === 'number') {
|
|
1896
|
+
paramWriter.writeVarIntNum(args.limit)
|
|
1892
1897
|
} else {
|
|
1893
|
-
paramWriter.writeVarIntNum(-1)
|
|
1898
|
+
paramWriter.writeVarIntNum(-1)
|
|
1894
1899
|
}
|
|
1895
|
-
if (typeof args.offset ===
|
|
1896
|
-
paramWriter.writeVarIntNum(args.offset)
|
|
1900
|
+
if (typeof args.offset === 'number') {
|
|
1901
|
+
paramWriter.writeVarIntNum(args.offset)
|
|
1897
1902
|
} else {
|
|
1898
|
-
paramWriter.writeVarIntNum(-1)
|
|
1903
|
+
paramWriter.writeVarIntNum(-1)
|
|
1899
1904
|
}
|
|
1900
1905
|
// Serialize seekPermission
|
|
1901
1906
|
paramWriter.writeInt8(
|
|
1902
|
-
typeof args.seekPermission ===
|
|
1907
|
+
typeof args.seekPermission === 'boolean'
|
|
1903
1908
|
? args.seekPermission
|
|
1904
1909
|
? 1
|
|
1905
1910
|
: 0
|
|
1906
1911
|
: -1
|
|
1907
|
-
)
|
|
1912
|
+
)
|
|
1908
1913
|
const result = await this.transmit(
|
|
1909
|
-
|
|
1914
|
+
'discoverByIdentityKey',
|
|
1910
1915
|
originator,
|
|
1911
1916
|
paramWriter.toArray()
|
|
1912
|
-
)
|
|
1913
|
-
return this.parseDiscoveryResult(result)
|
|
1917
|
+
)
|
|
1918
|
+
return this.parseDiscoveryResult(result)
|
|
1914
1919
|
}
|
|
1915
1920
|
|
|
1916
1921
|
async discoverByAttributes(
|
|
1917
1922
|
args: {
|
|
1918
|
-
seekPermission?: BooleanDefaultTrue
|
|
1919
|
-
attributes: Record<CertificateFieldNameUnder50Bytes, string
|
|
1920
|
-
limit?: PositiveIntegerDefault10Max10000
|
|
1921
|
-
offset?: PositiveIntegerOrZero
|
|
1923
|
+
seekPermission?: BooleanDefaultTrue
|
|
1924
|
+
attributes: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1925
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1926
|
+
offset?: PositiveIntegerOrZero
|
|
1922
1927
|
},
|
|
1923
1928
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1924
1929
|
): Promise<DiscoverCertificatesResult> {
|
|
1925
|
-
const paramWriter = new Utils.Writer()
|
|
1926
|
-
const attributeKeys = Object.keys(args.attributes)
|
|
1927
|
-
paramWriter.writeVarIntNum(attributeKeys.length)
|
|
1930
|
+
const paramWriter = new Utils.Writer()
|
|
1931
|
+
const attributeKeys = Object.keys(args.attributes)
|
|
1932
|
+
paramWriter.writeVarIntNum(attributeKeys.length)
|
|
1928
1933
|
for (let i = 0; i < attributeKeys.length; i++) {
|
|
1929
|
-
paramWriter.writeVarIntNum(attributeKeys[i].length)
|
|
1930
|
-
paramWriter.write(Utils.toArray(attributeKeys[i],
|
|
1931
|
-
paramWriter.writeVarIntNum(args.attributes[attributeKeys[i]].length)
|
|
1934
|
+
paramWriter.writeVarIntNum(attributeKeys[i].length)
|
|
1935
|
+
paramWriter.write(Utils.toArray(attributeKeys[i], 'utf8'))
|
|
1936
|
+
paramWriter.writeVarIntNum(args.attributes[attributeKeys[i]].length)
|
|
1932
1937
|
paramWriter.write(
|
|
1933
|
-
Utils.toArray(args.attributes[attributeKeys[i]],
|
|
1934
|
-
)
|
|
1938
|
+
Utils.toArray(args.attributes[attributeKeys[i]], 'utf8')
|
|
1939
|
+
)
|
|
1935
1940
|
}
|
|
1936
|
-
if (typeof args.limit ===
|
|
1937
|
-
paramWriter.writeVarIntNum(args.limit)
|
|
1941
|
+
if (typeof args.limit === 'number') {
|
|
1942
|
+
paramWriter.writeVarIntNum(args.limit)
|
|
1938
1943
|
} else {
|
|
1939
|
-
paramWriter.writeVarIntNum(-1)
|
|
1944
|
+
paramWriter.writeVarIntNum(-1)
|
|
1940
1945
|
}
|
|
1941
|
-
if (typeof args.offset ===
|
|
1942
|
-
paramWriter.writeVarIntNum(args.offset)
|
|
1946
|
+
if (typeof args.offset === 'number') {
|
|
1947
|
+
paramWriter.writeVarIntNum(args.offset)
|
|
1943
1948
|
} else {
|
|
1944
|
-
paramWriter.writeVarIntNum(-1)
|
|
1949
|
+
paramWriter.writeVarIntNum(-1)
|
|
1945
1950
|
}
|
|
1946
1951
|
// Serialize seekPermission
|
|
1947
1952
|
paramWriter.writeInt8(
|
|
1948
|
-
typeof args.seekPermission ===
|
|
1953
|
+
typeof args.seekPermission === 'boolean'
|
|
1949
1954
|
? args.seekPermission
|
|
1950
1955
|
? 1
|
|
1951
1956
|
: 0
|
|
1952
1957
|
: -1
|
|
1953
|
-
)
|
|
1958
|
+
)
|
|
1954
1959
|
const result = await this.transmit(
|
|
1955
|
-
|
|
1960
|
+
'discoverByAttributes',
|
|
1956
1961
|
originator,
|
|
1957
1962
|
paramWriter.toArray()
|
|
1958
|
-
)
|
|
1959
|
-
return this.parseDiscoveryResult(result)
|
|
1963
|
+
)
|
|
1964
|
+
return this.parseDiscoveryResult(result)
|
|
1960
1965
|
}
|
|
1961
1966
|
|
|
1962
1967
|
async isAuthenticated(
|
|
1963
1968
|
args: {},
|
|
1964
1969
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1965
1970
|
): Promise<{ authenticated: true }> {
|
|
1966
|
-
const result = await this.transmit(
|
|
1967
|
-
// @ts-
|
|
1968
|
-
return { authenticated:
|
|
1971
|
+
const result = await this.transmit('isAuthenticated', originator)
|
|
1972
|
+
// @ts-expect-error
|
|
1973
|
+
return { authenticated: result[0] === 1 }
|
|
1969
1974
|
}
|
|
1970
1975
|
|
|
1971
1976
|
async waitForAuthentication(
|
|
1972
1977
|
args: {},
|
|
1973
1978
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1974
1979
|
): Promise<{ authenticated: true }> {
|
|
1975
|
-
await this.transmit(
|
|
1976
|
-
return { authenticated: true }
|
|
1980
|
+
await this.transmit('waitForAuthentication', originator)
|
|
1981
|
+
return { authenticated: true }
|
|
1977
1982
|
}
|
|
1978
1983
|
|
|
1979
1984
|
async getHeight(
|
|
1980
1985
|
args: {},
|
|
1981
1986
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1982
1987
|
): Promise<{ height: PositiveInteger }> {
|
|
1983
|
-
const result = await this.transmit(
|
|
1984
|
-
const resultReader = new Utils.Reader(result)
|
|
1988
|
+
const result = await this.transmit('getHeight', originator)
|
|
1989
|
+
const resultReader = new Utils.Reader(result)
|
|
1985
1990
|
return {
|
|
1986
|
-
height: resultReader.readVarIntNum()
|
|
1987
|
-
}
|
|
1991
|
+
height: resultReader.readVarIntNum()
|
|
1992
|
+
}
|
|
1988
1993
|
}
|
|
1989
1994
|
|
|
1990
1995
|
async getHeaderForHeight(
|
|
1991
1996
|
args: { height: PositiveInteger },
|
|
1992
1997
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1993
1998
|
): Promise<{ header: HexString }> {
|
|
1994
|
-
const paramWriter = new Utils.Writer()
|
|
1995
|
-
paramWriter.writeVarIntNum(args.height)
|
|
1999
|
+
const paramWriter = new Utils.Writer()
|
|
2000
|
+
paramWriter.writeVarIntNum(args.height)
|
|
1996
2001
|
const header = await this.transmit(
|
|
1997
|
-
|
|
2002
|
+
'getHeaderForHeight',
|
|
1998
2003
|
originator,
|
|
1999
2004
|
paramWriter.toArray()
|
|
2000
|
-
)
|
|
2005
|
+
)
|
|
2001
2006
|
return {
|
|
2002
|
-
header: Utils.toHex(header)
|
|
2003
|
-
}
|
|
2007
|
+
header: Utils.toHex(header)
|
|
2008
|
+
}
|
|
2004
2009
|
}
|
|
2005
2010
|
|
|
2006
2011
|
async getNetwork(
|
|
2007
2012
|
args: {},
|
|
2008
2013
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
2009
|
-
): Promise<{ network:
|
|
2010
|
-
const net = await this.transmit(
|
|
2014
|
+
): Promise<{ network: 'mainnet' | 'testnet' }> {
|
|
2015
|
+
const net = await this.transmit('getNetwork', originator)
|
|
2011
2016
|
return {
|
|
2012
|
-
network: net[0] === 0 ?
|
|
2013
|
-
}
|
|
2017
|
+
network: net[0] === 0 ? 'mainnet' : 'testnet'
|
|
2018
|
+
}
|
|
2014
2019
|
}
|
|
2015
2020
|
|
|
2016
2021
|
async getVersion(
|
|
2017
2022
|
args: {},
|
|
2018
2023
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
2019
2024
|
): Promise<{ version: VersionString7To30Bytes }> {
|
|
2020
|
-
const version = await this.transmit(
|
|
2025
|
+
const version = await this.transmit('getVersion', originator)
|
|
2021
2026
|
return {
|
|
2022
|
-
version: Utils.toUTF8(version)
|
|
2023
|
-
}
|
|
2027
|
+
version: Utils.toUTF8(version)
|
|
2028
|
+
}
|
|
2024
2029
|
}
|
|
2025
2030
|
}
|