@bsv/sdk 1.3.12 → 1.3.14
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/package.json +15 -3
- package/dist/cjs/src/auth/Peer.js +83 -57
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +14 -9
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/auth/utils/createNonce.js +2 -1
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/compat/BSM.js +7 -17
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +172 -133
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +63 -73
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +102 -106
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/Utxo.js +2 -2
- package/dist/cjs/src/compat/Utxo.js.map +1 -1
- package/dist/cjs/src/compat/index.js +7 -17
- package/dist/cjs/src/compat/index.js.map +1 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +1 -0
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/messages/index.js +7 -17
- package/dist/cjs/src/messages/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.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 +1 -1
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +50 -62
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +46 -22
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js +2 -8
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +51 -35
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +191 -216
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +117 -88
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/Polynomial.js +4 -2
- package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +32 -33
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +6 -5
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +21 -15
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +8 -7
- 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 +31 -29
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/index.js +7 -17
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +79 -68
- package/dist/cjs/src/primitives/utils.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 +12 -10
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +47 -49
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +24 -12
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +28 -23
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +2 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +177 -154
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +24 -24
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +26 -18
- 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 +64 -37
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +111 -137
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
- package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/index.js.map +1 -1
- package/dist/cjs/src/transaction/index.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
- package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js +7 -2
- 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/substrates/HTTPWalletJSON.js +4 -3
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
- 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 -15
- package/dist/esm/src/auth/Peer.js +75 -54
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +14 -9
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js +15 -11
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +165 -116
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +56 -56
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +95 -89
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/Utxo.js +1 -1
- package/dist/esm/src/compat/Utxo.js.map +1 -1
- package/dist/esm/src/messages/EncryptedMessage.js +3 -1
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +1 -0
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +1 -0
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BasePoint.js +1 -1
- package/dist/esm/src/primitives/BasePoint.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +50 -62
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +45 -22
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js +2 -8
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +50 -35
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +188 -213
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +18 -5
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Mersenne.js.map +1 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +107 -88
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/Polynomial.js +4 -2
- package/dist/esm/src/primitives/Polynomial.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +25 -16
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +7 -6
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +1 -1
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +21 -15
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +8 -7
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +13 -13
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +22 -12
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +76 -66
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/OP.js +3 -3
- package/dist/esm/src/script/OP.js.map +1 -1
- package/dist/esm/src/script/Script.js +12 -10
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/Spend.js +39 -32
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +26 -11
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +29 -22
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +11 -6
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/totp/totp.js +2 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +176 -154
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +24 -24
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +26 -18
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +61 -36
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +105 -138
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
- package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/index.js.map +1 -1
- package/dist/esm/src/transaction/index.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/KeyDeriver.js +60 -52
- package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +75 -29
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js +7 -2
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js +2 -2
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +8 -3
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
- 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/src/auth/Peer.d.ts +10 -10
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +4 -4
- 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 +5 -5
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- 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/clients/AuthFetch.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/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/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 +1 -1
- package/dist/types/src/compat/BSM.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts +36 -36
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +51 -51
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/compat/Mnemonic.d.ts +79 -79
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
- package/dist/types/src/compat/Utxo.d.ts.map +1 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts +8 -8
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts +14 -7
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +1 -1
- 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.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +14 -10
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- 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/Schnorr.d.ts +14 -14
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +1 -1
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +3 -6
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +3 -3
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/totp/totp.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +96 -96
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +22 -22
- package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +5 -5
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +4 -12
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.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 +5 -5
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
- package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/index.d.ts.map +1 -1
- package/dist/types/src/transaction/index.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +5 -5
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
- 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 +92 -82
- package/docs/compat.md +24 -24
- package/docs/messages.md +7 -5
- package/docs/overlay-tools.md +21 -21
- package/docs/primitives.md +336 -315
- package/docs/script.md +35 -35
- 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/totp.md +5 -5
- package/docs/transaction.md +103 -105
- package/docs/wallet-substrates.md +17 -17
- package/docs/wallet.md +202 -204
- package/mod.ts +15 -15
- package/package.json +15 -3
- package/src/auth/Peer.ts +271 -121
- package/src/auth/SessionManager.ts +17 -10
- package/src/auth/__tests/Peer.test.ts +361 -179
- package/src/auth/__tests/SessionManager.test.ts +67 -19
- package/src/auth/__tests/build.test.ts +11 -0
- package/src/auth/certificates/Certificate.ts +27 -14
- package/src/auth/certificates/MasterCertificate.ts +106 -62
- package/src/auth/certificates/VerifiableCertificate.ts +30 -8
- package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
- package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
- package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
- package/src/auth/certificates/index.ts +1 -1
- package/src/auth/clients/AuthFetch.ts +1 -0
- package/src/auth/clients/index.ts +1 -1
- package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
- package/src/auth/transports/index.ts +1 -1
- package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
- package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
- package/src/auth/utils/createNonce.ts +11 -3
- package/src/auth/utils/getVerifiableCertificates.ts +12 -7
- package/src/auth/utils/validateCertificates.ts +57 -39
- package/src/auth/utils/verifyNonce.ts +6 -2
- package/src/compat/BSM.ts +10 -2
- package/src/compat/ECIES.ts +265 -141
- package/src/compat/HD.ts +81 -63
- package/src/compat/Mnemonic.ts +104 -91
- package/src/compat/Utxo.ts +8 -5
- package/src/compat/__tests/BSM.test.ts +42 -16
- package/src/compat/__tests/ECIES.test.ts +117 -52
- package/src/compat/__tests/HD.test.ts +55 -42
- package/src/compat/__tests/Mnemonic.test.ts +11 -12
- package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
- package/src/messages/EncryptedMessage.ts +6 -2
- package/src/messages/SignedMessage.ts +14 -8
- package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
- package/src/messages/__tests/SignedMessage.test.ts +17 -11
- package/src/overlay-tools/LookupResolver.ts +108 -56
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
- package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
- package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
- package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
- package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
- package/src/primitives/AESGCM.ts +2 -0
- package/src/primitives/BasePoint.ts +4 -4
- package/src/primitives/BigNumber.ts +99 -90
- package/src/primitives/Curve.ts +117 -46
- package/src/primitives/DRBG.ts +9 -11
- package/src/primitives/ECDSA.ts +109 -63
- package/src/primitives/Hash.ts +492 -321
- package/src/primitives/JacobianPoint.ts +67 -19
- package/src/primitives/Point.ts +254 -152
- package/src/primitives/Polynomial.ts +8 -3
- package/src/primitives/PrivateKey.ts +41 -17
- package/src/primitives/PublicKey.ts +13 -3
- package/src/primitives/Random.ts +14 -8
- package/src/primitives/ReductionContext.ts +1 -1
- package/src/primitives/Schnorr.ts +40 -18
- package/src/primitives/Signature.ts +26 -16
- package/src/primitives/SymmetricKey.ts +14 -14
- package/src/primitives/TransactionSignature.ts +41 -17
- package/src/primitives/__tests/AESGCM.test.ts +457 -151
- 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 +344 -125
- package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
- package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
- package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
- package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
- package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
- package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
- package/src/primitives/__tests/Curve.unit.test.ts +75 -53
- package/src/primitives/__tests/DRBG.test.ts +1 -1
- package/src/primitives/__tests/DRBG.vectors.ts +45 -75
- package/src/primitives/__tests/ECDH.test.ts +15 -8
- package/src/primitives/__tests/ECDSA.test.ts +12 -6
- package/src/primitives/__tests/HMAC.test.ts +24 -18
- package/src/primitives/__tests/Hash.test.ts +57 -46
- package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
- package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
- package/src/primitives/__tests/PrivateKey.test.ts +11 -10
- package/src/primitives/__tests/PublicKey.test.ts +64 -53
- package/src/primitives/__tests/Random.test.ts +1 -1
- package/src/primitives/__tests/Reader.test.ts +240 -219
- package/src/primitives/__tests/ReductionContext.test.ts +98 -61
- package/src/primitives/__tests/Schnorr.test.ts +249 -237
- package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
- package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
- package/src/primitives/__tests/Writer.test.ts +23 -13
- package/src/primitives/__tests/bug-31.test.ts +6 -10
- package/src/primitives/__tests/utils.test.ts +70 -19
- package/src/primitives/utils.ts +103 -79
- package/src/script/Script.ts +18 -12
- package/src/script/ScriptTemplate.ts +3 -5
- package/src/script/Spend.ts +306 -108
- package/src/script/__tests/Script.test.ts +73 -55
- package/src/script/__tests/Spend.test.ts +208 -83
- package/src/script/__tests/SpendComplex.test.ts +19 -13
- package/src/script/__tests/script.invalid.vectors.ts +428 -1796
- package/src/script/__tests/script.valid.vectors.ts +728 -2764
- package/src/script/templates/P2PKH.ts +34 -12
- package/src/script/templates/PushDrop.ts +65 -31
- package/src/script/templates/RPuzzle.ts +29 -8
- package/src/script/templates/__tests/PushDrop.test.ts +146 -41
- package/src/totp/__tests/totp.test.ts +45 -44
- package/src/totp/totp.ts +3 -2
- package/src/transaction/Beef.ts +269 -174
- package/src/transaction/BeefParty.ts +41 -31
- package/src/transaction/BeefTx.ts +36 -26
- package/src/transaction/Broadcaster.ts +10 -6
- package/src/transaction/ChainTracker.ts +2 -2
- package/src/transaction/FeeModel.ts +0 -1
- package/src/transaction/MerklePath.ts +124 -59
- package/src/transaction/Transaction.ts +188 -187
- package/src/transaction/TransactionOutput.ts +0 -1
- package/src/transaction/__tests/Beef.test.ts +390 -287
- package/src/transaction/__tests/MerklePath.test.ts +59 -26
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
- package/src/transaction/__tests/Transaction.test.ts +758 -482
- 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 +69 -38
- package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
- package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
- package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
- package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
- package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
- package/src/transaction/http/DefaultHttpClient.ts +5 -4
- package/src/transaction/http/FetchHttpClient.ts +18 -9
- package/src/transaction/http/HttpClient.ts +27 -22
- package/src/transaction/http/NodejsHttpClient.ts +23 -9
- package/src/transaction/http/index.ts +5 -1
- package/src/transaction/index.ts +5 -1
- package/src/wallet/CachedKeyDeriver.ts +151 -82
- package/src/wallet/KeyDeriver.ts +186 -105
- package/src/wallet/ProtoWallet.ts +121 -52
- package/src/wallet/Wallet.interfaces.ts +167 -156
- package/src/wallet/WalletClient.ts +314 -59
- package/src/wallet/WalletError.ts +2 -2
- package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
- package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
- package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
- package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
- package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
- package/src/wallet/substrates/WalletWireCalls.ts +2 -2
- package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
- package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
- package/src/wallet/substrates/XDM.ts +425 -36
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
- package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
- package/src/wallet/substrates/window.CWI.ts +520 -61
|
@@ -1,4 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
import {
|
|
3
|
+
AcquireCertificateArgs,
|
|
4
|
+
AcquireCertificateResult,
|
|
5
|
+
SecurityLevel,
|
|
6
|
+
SecurityLevels,
|
|
7
|
+
Base64String,
|
|
8
|
+
BasketStringUnder300Bytes,
|
|
9
|
+
BEEF,
|
|
10
|
+
BooleanDefaultFalse,
|
|
11
|
+
BooleanDefaultTrue,
|
|
12
|
+
Byte,
|
|
13
|
+
CertificateFieldNameUnder50Bytes,
|
|
14
|
+
CreateActionArgs,
|
|
15
|
+
CreateActionResult,
|
|
16
|
+
DescriptionString5to50Bytes,
|
|
17
|
+
DiscoverCertificatesResult,
|
|
18
|
+
EntityIconURLStringMax500Bytes,
|
|
19
|
+
EntityNameStringMax100Bytes,
|
|
20
|
+
HexString,
|
|
21
|
+
InternalizeActionArgs,
|
|
22
|
+
ISOTimestampString,
|
|
23
|
+
KeyIDStringUnder800Bytes,
|
|
24
|
+
LabelStringUnder300Bytes,
|
|
25
|
+
ListActionsArgs,
|
|
26
|
+
ListActionsResult,
|
|
27
|
+
ListCertificatesResult,
|
|
28
|
+
ListOutputsArgs,
|
|
29
|
+
ListOutputsResult,
|
|
30
|
+
OriginatorDomainNameStringUnder250Bytes,
|
|
31
|
+
OutpointString,
|
|
32
|
+
OutputTagStringUnder300Bytes,
|
|
33
|
+
PositiveInteger,
|
|
34
|
+
PositiveIntegerDefault10Max10000,
|
|
35
|
+
PositiveIntegerMax10,
|
|
36
|
+
PositiveIntegerOrZero,
|
|
37
|
+
ProtocolString5To400Bytes,
|
|
38
|
+
ProveCertificateArgs,
|
|
39
|
+
ProveCertificateResult,
|
|
40
|
+
PubKeyHex,
|
|
41
|
+
SatoshiValue,
|
|
42
|
+
SignActionArgs,
|
|
43
|
+
SignActionResult,
|
|
44
|
+
TXIDHexString,
|
|
45
|
+
VersionString7To30Bytes,
|
|
46
|
+
WalletInterface
|
|
47
|
+
} from '../Wallet.interfaces.js'
|
|
2
48
|
import WalletWire from './WalletWire.js'
|
|
3
49
|
import { Certificate } from '../../auth/index.js'
|
|
4
50
|
import { Utils } from '../../primitives/index.js'
|
|
@@ -15,7 +61,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
15
61
|
this.wire = wire
|
|
16
62
|
}
|
|
17
63
|
|
|
18
|
-
private async transmit(
|
|
64
|
+
private async transmit(
|
|
65
|
+
call: CallType,
|
|
66
|
+
originator: OriginatorDomainNameStringUnder250Bytes = '',
|
|
67
|
+
params: number[] = []
|
|
68
|
+
): Promise<number[]> {
|
|
19
69
|
const frameWriter = new Utils.Writer()
|
|
20
70
|
frameWriter.writeUInt8(calls[call])
|
|
21
71
|
const originatorArray = Utils.toArray(originator, 'utf8')
|
|
@@ -48,7 +98,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
48
98
|
}
|
|
49
99
|
}
|
|
50
100
|
|
|
51
|
-
async createAction(
|
|
101
|
+
async createAction(
|
|
102
|
+
args: CreateActionArgs,
|
|
103
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
104
|
+
): Promise<CreateActionResult> {
|
|
52
105
|
const paramWriter = new Utils.Writer()
|
|
53
106
|
|
|
54
107
|
// Serialize description
|
|
@@ -57,7 +110,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
57
110
|
paramWriter.write(descriptionBytes)
|
|
58
111
|
|
|
59
112
|
// input BEEF
|
|
60
|
-
if (args.inputBEEF) {
|
|
113
|
+
if (args.inputBEEF != null) {
|
|
61
114
|
paramWriter.writeVarIntNum(args.inputBEEF.length)
|
|
62
115
|
paramWriter.write(args.inputBEEF)
|
|
63
116
|
} else {
|
|
@@ -65,24 +118,30 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
65
118
|
}
|
|
66
119
|
|
|
67
120
|
// Serialize inputs
|
|
68
|
-
if (args.inputs) {
|
|
121
|
+
if (args.inputs != null) {
|
|
69
122
|
paramWriter.writeVarIntNum(args.inputs.length)
|
|
70
123
|
for (const input of args.inputs) {
|
|
71
124
|
// outpoint
|
|
72
125
|
paramWriter.write(this.encodeOutpoint(input.outpoint))
|
|
73
126
|
|
|
74
127
|
// unlockingScript / unlockingScriptLength
|
|
75
|
-
if (input.unlockingScript) {
|
|
76
|
-
const unlockingScriptBytes = Utils.toArray(
|
|
128
|
+
if (input.unlockingScript != null && input.unlockingScript !== '') {
|
|
129
|
+
const unlockingScriptBytes = Utils.toArray(
|
|
130
|
+
input.unlockingScript,
|
|
131
|
+
'hex'
|
|
132
|
+
)
|
|
77
133
|
paramWriter.writeVarIntNum(unlockingScriptBytes.length)
|
|
78
134
|
paramWriter.write(unlockingScriptBytes)
|
|
79
135
|
} else {
|
|
80
136
|
paramWriter.writeVarIntNum(-1)
|
|
81
|
-
paramWriter.writeVarIntNum(input.unlockingScriptLength)
|
|
137
|
+
paramWriter.writeVarIntNum(input.unlockingScriptLength ?? 0)
|
|
82
138
|
}
|
|
83
139
|
|
|
84
140
|
// inputDescription
|
|
85
|
-
const inputDescriptionBytes = Utils.toArray(
|
|
141
|
+
const inputDescriptionBytes = Utils.toArray(
|
|
142
|
+
input.inputDescription,
|
|
143
|
+
'utf8'
|
|
144
|
+
)
|
|
86
145
|
paramWriter.writeVarIntNum(inputDescriptionBytes.length)
|
|
87
146
|
paramWriter.write(inputDescriptionBytes)
|
|
88
147
|
|
|
@@ -98,7 +157,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
98
157
|
}
|
|
99
158
|
|
|
100
159
|
// Serialize outputs
|
|
101
|
-
if (args.outputs) {
|
|
160
|
+
if (args.outputs != null) {
|
|
102
161
|
paramWriter.writeVarIntNum(args.outputs.length)
|
|
103
162
|
for (const output of args.outputs) {
|
|
104
163
|
// lockingScript
|
|
@@ -110,12 +169,15 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
110
169
|
paramWriter.writeVarIntNum(output.satoshis)
|
|
111
170
|
|
|
112
171
|
// outputDescription
|
|
113
|
-
const outputDescriptionBytes = Utils.toArray(
|
|
172
|
+
const outputDescriptionBytes = Utils.toArray(
|
|
173
|
+
output.outputDescription,
|
|
174
|
+
'utf8'
|
|
175
|
+
)
|
|
114
176
|
paramWriter.writeVarIntNum(outputDescriptionBytes.length)
|
|
115
177
|
paramWriter.write(outputDescriptionBytes)
|
|
116
178
|
|
|
117
179
|
// basket
|
|
118
|
-
if (output.basket) {
|
|
180
|
+
if (output.basket != null && output.basket !== '') {
|
|
119
181
|
const basketBytes = Utils.toArray(output.basket, 'utf8')
|
|
120
182
|
paramWriter.writeVarIntNum(basketBytes.length)
|
|
121
183
|
paramWriter.write(basketBytes)
|
|
@@ -124,8 +186,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
124
186
|
}
|
|
125
187
|
|
|
126
188
|
// customInstructions
|
|
127
|
-
if (output.customInstructions) {
|
|
128
|
-
const customInstructionsBytes = Utils.toArray(
|
|
189
|
+
if (output.customInstructions != null && output.customInstructions !== '') {
|
|
190
|
+
const customInstructionsBytes = Utils.toArray(
|
|
191
|
+
output.customInstructions,
|
|
192
|
+
'utf8'
|
|
193
|
+
)
|
|
129
194
|
paramWriter.writeVarIntNum(customInstructionsBytes.length)
|
|
130
195
|
paramWriter.write(customInstructionsBytes)
|
|
131
196
|
} else {
|
|
@@ -133,7 +198,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
133
198
|
}
|
|
134
199
|
|
|
135
200
|
// tags
|
|
136
|
-
if (output.tags) {
|
|
201
|
+
if (output.tags != null) {
|
|
137
202
|
paramWriter.writeVarIntNum(output.tags.length)
|
|
138
203
|
for (const tag of output.tags) {
|
|
139
204
|
const tagBytes = Utils.toArray(tag, 'utf8')
|
|
@@ -163,7 +228,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
163
228
|
}
|
|
164
229
|
|
|
165
230
|
// Serialize labels
|
|
166
|
-
if (args.labels) {
|
|
231
|
+
if (args.labels != null) {
|
|
167
232
|
paramWriter.writeVarIntNum(args.labels.length)
|
|
168
233
|
for (const label of args.labels) {
|
|
169
234
|
const labelBytes = Utils.toArray(label, 'utf8')
|
|
@@ -175,7 +240,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
175
240
|
}
|
|
176
241
|
|
|
177
242
|
// Serialize options
|
|
178
|
-
if (args.options) {
|
|
243
|
+
if (args.options != null) {
|
|
179
244
|
paramWriter.writeInt8(1) // options present
|
|
180
245
|
|
|
181
246
|
// signAndProcess
|
|
@@ -200,7 +265,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
200
265
|
}
|
|
201
266
|
|
|
202
267
|
// knownTxids
|
|
203
|
-
if (args.options.knownTxids) {
|
|
268
|
+
if (args.options.knownTxids != null) {
|
|
204
269
|
paramWriter.writeVarIntNum(args.options.knownTxids.length)
|
|
205
270
|
for (const txid of args.options.knownTxids) {
|
|
206
271
|
const txidBytes = Utils.toArray(txid, 'hex')
|
|
@@ -225,7 +290,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
225
290
|
}
|
|
226
291
|
|
|
227
292
|
// noSendChange
|
|
228
|
-
if (args.options.noSendChange) {
|
|
293
|
+
if (args.options.noSendChange != null) {
|
|
229
294
|
paramWriter.writeVarIntNum(args.options.noSendChange.length)
|
|
230
295
|
for (const outpoint of args.options.noSendChange) {
|
|
231
296
|
paramWriter.write(this.encodeOutpoint(outpoint))
|
|
@@ -235,7 +300,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
235
300
|
}
|
|
236
301
|
|
|
237
302
|
// sendWith
|
|
238
|
-
if (args.options.sendWith) {
|
|
303
|
+
if (args.options.sendWith != null) {
|
|
239
304
|
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
240
305
|
for (const txid of args.options.sendWith) {
|
|
241
306
|
const txidBytes = Utils.toArray(txid, 'hex')
|
|
@@ -256,7 +321,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
256
321
|
}
|
|
257
322
|
|
|
258
323
|
// Transmit and parse response
|
|
259
|
-
const result = await this.transmit(
|
|
324
|
+
const result = await this.transmit(
|
|
325
|
+
'createAction',
|
|
326
|
+
originator,
|
|
327
|
+
paramWriter.toArray()
|
|
328
|
+
)
|
|
260
329
|
const resultReader = new Utils.Reader(result)
|
|
261
330
|
|
|
262
331
|
const response: {
|
|
@@ -305,7 +374,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
305
374
|
const txidBytes = resultReader.read(32)
|
|
306
375
|
const txid = Utils.toHex(txidBytes)
|
|
307
376
|
const statusCode = resultReader.readInt8()
|
|
308
|
-
let status: 'unproven' | 'sending' | 'failed'
|
|
377
|
+
let status: 'unproven' | 'sending' | 'failed' = 'unproven'
|
|
309
378
|
if (statusCode === 1) status = 'unproven'
|
|
310
379
|
else if (statusCode === 2) status = 'sending'
|
|
311
380
|
else if (statusCode === 3) status = 'failed'
|
|
@@ -329,7 +398,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
329
398
|
return response
|
|
330
399
|
}
|
|
331
400
|
|
|
332
|
-
async signAction(
|
|
401
|
+
async signAction(
|
|
402
|
+
args: SignActionArgs,
|
|
403
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
404
|
+
): Promise<SignActionResult> {
|
|
333
405
|
const paramWriter = new Utils.Writer()
|
|
334
406
|
|
|
335
407
|
// Serialize spends
|
|
@@ -356,7 +428,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
356
428
|
paramWriter.write(referenceBytes)
|
|
357
429
|
|
|
358
430
|
// Serialize options
|
|
359
|
-
if (args.options) {
|
|
431
|
+
if (args.options != null) {
|
|
360
432
|
paramWriter.writeInt8(1) // options present
|
|
361
433
|
|
|
362
434
|
// acceptDelayedBroadcast
|
|
@@ -381,7 +453,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
381
453
|
}
|
|
382
454
|
|
|
383
455
|
// sendWith
|
|
384
|
-
if (args.options.sendWith) {
|
|
456
|
+
if (args.options.sendWith != null) {
|
|
385
457
|
paramWriter.writeVarIntNum(args.options.sendWith.length)
|
|
386
458
|
for (const txid of args.options.sendWith) {
|
|
387
459
|
const txidBytes = Utils.toArray(txid, 'hex')
|
|
@@ -395,7 +467,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
395
467
|
}
|
|
396
468
|
|
|
397
469
|
// Transmit and parse response
|
|
398
|
-
const result = await this.transmit(
|
|
470
|
+
const result = await this.transmit(
|
|
471
|
+
'signAction',
|
|
472
|
+
originator,
|
|
473
|
+
paramWriter.toArray()
|
|
474
|
+
)
|
|
399
475
|
const resultReader = new Utils.Reader(result)
|
|
400
476
|
|
|
401
477
|
const response: {
|
|
@@ -430,7 +506,7 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
430
506
|
const txidBytes = resultReader.read(32)
|
|
431
507
|
const txid = Utils.toHex(txidBytes)
|
|
432
508
|
const statusCode = resultReader.readInt8()
|
|
433
|
-
let status: 'unproven' | 'sending' | 'failed'
|
|
509
|
+
let status: 'unproven' | 'sending' | 'failed' = 'unproven'
|
|
434
510
|
if (statusCode === 1) status = 'unproven'
|
|
435
511
|
else if (statusCode === 2) status = 'sending'
|
|
436
512
|
else if (statusCode === 3) status = 'failed'
|
|
@@ -441,12 +517,22 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
441
517
|
return response
|
|
442
518
|
}
|
|
443
519
|
|
|
444
|
-
async abortAction(
|
|
445
|
-
|
|
520
|
+
async abortAction(
|
|
521
|
+
args: { reference: Base64String },
|
|
522
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
523
|
+
): Promise<{ aborted: true }> {
|
|
524
|
+
await this.transmit(
|
|
525
|
+
'abortAction',
|
|
526
|
+
originator,
|
|
527
|
+
Utils.toArray(args.reference, 'base64')
|
|
528
|
+
)
|
|
446
529
|
return { aborted: true }
|
|
447
530
|
}
|
|
448
531
|
|
|
449
|
-
async listActions(
|
|
532
|
+
async listActions(
|
|
533
|
+
args: ListActionsArgs,
|
|
534
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
535
|
+
): Promise<ListActionsResult> {
|
|
450
536
|
const paramWriter = new Utils.Writer()
|
|
451
537
|
|
|
452
538
|
// Serialize labels
|
|
@@ -496,17 +582,34 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
496
582
|
}
|
|
497
583
|
|
|
498
584
|
// Serialize seekPermission
|
|
499
|
-
paramWriter.writeInt8(
|
|
585
|
+
paramWriter.writeInt8(
|
|
586
|
+
typeof args.seekPermission === 'boolean'
|
|
587
|
+
? args.seekPermission
|
|
588
|
+
? 1
|
|
589
|
+
: 0
|
|
590
|
+
: -1
|
|
591
|
+
)
|
|
500
592
|
|
|
501
593
|
// Transmit and parse response
|
|
502
|
-
const result = await this.transmit(
|
|
594
|
+
const result = await this.transmit(
|
|
595
|
+
'listActions',
|
|
596
|
+
originator,
|
|
597
|
+
paramWriter.toArray()
|
|
598
|
+
)
|
|
503
599
|
const resultReader = new Utils.Reader(result)
|
|
504
600
|
|
|
505
601
|
const totalActions = resultReader.readVarIntNum()
|
|
506
602
|
const actions: Array<{
|
|
507
603
|
txid: TXIDHexString
|
|
508
604
|
satoshis: SatoshiValue
|
|
509
|
-
status:
|
|
605
|
+
status:
|
|
606
|
+
| 'completed'
|
|
607
|
+
| 'unprocessed'
|
|
608
|
+
| 'sending'
|
|
609
|
+
| 'unproven'
|
|
610
|
+
| 'unsigned'
|
|
611
|
+
| 'nosend'
|
|
612
|
+
| 'nonfinal'
|
|
510
613
|
isOutgoing: boolean
|
|
511
614
|
description: DescriptionString5to50Bytes
|
|
512
615
|
labels?: LabelStringUnder300Bytes[]
|
|
@@ -540,7 +643,14 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
540
643
|
const satoshis = resultReader.readVarIntNum()
|
|
541
644
|
|
|
542
645
|
const statusCode = resultReader.readInt8()
|
|
543
|
-
let status:
|
|
646
|
+
let status:
|
|
647
|
+
| 'completed'
|
|
648
|
+
| 'unprocessed'
|
|
649
|
+
| 'sending'
|
|
650
|
+
| 'unproven'
|
|
651
|
+
| 'unsigned'
|
|
652
|
+
| 'nosend'
|
|
653
|
+
| 'nonfinal'
|
|
544
654
|
switch (statusCode) {
|
|
545
655
|
case 1:
|
|
546
656
|
status = 'completed'
|
|
@@ -610,7 +720,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
610
720
|
const sourceLockingScriptLength = resultReader.readVarIntNum()
|
|
611
721
|
let sourceLockingScript: string | undefined
|
|
612
722
|
if (sourceLockingScriptLength >= 0) {
|
|
613
|
-
const sourceLockingScriptBytes = resultReader.read(
|
|
723
|
+
const sourceLockingScriptBytes = resultReader.read(
|
|
724
|
+
sourceLockingScriptLength
|
|
725
|
+
)
|
|
614
726
|
sourceLockingScript = Utils.toHex(sourceLockingScriptBytes)
|
|
615
727
|
}
|
|
616
728
|
|
|
@@ -618,13 +730,17 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
618
730
|
const unlockingScriptLength = resultReader.readVarIntNum()
|
|
619
731
|
let unlockingScript: string | undefined
|
|
620
732
|
if (unlockingScriptLength >= 0) {
|
|
621
|
-
const unlockingScriptBytes = resultReader.read(
|
|
733
|
+
const unlockingScriptBytes = resultReader.read(
|
|
734
|
+
unlockingScriptLength
|
|
735
|
+
)
|
|
622
736
|
unlockingScript = Utils.toHex(unlockingScriptBytes)
|
|
623
737
|
}
|
|
624
738
|
|
|
625
739
|
// inputDescription
|
|
626
740
|
const inputDescriptionLength = resultReader.readVarIntNum()
|
|
627
|
-
const inputDescriptionBytes = resultReader.read(
|
|
741
|
+
const inputDescriptionBytes = resultReader.read(
|
|
742
|
+
inputDescriptionLength
|
|
743
|
+
)
|
|
628
744
|
const inputDescription = Utils.toUTF8(inputDescriptionBytes)
|
|
629
745
|
|
|
630
746
|
// sequenceNumber
|
|
@@ -661,7 +777,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
661
777
|
|
|
662
778
|
// outputDescription
|
|
663
779
|
const outputDescriptionLength = resultReader.readVarIntNum()
|
|
664
|
-
const outputDescriptionBytes = resultReader.read(
|
|
780
|
+
const outputDescriptionBytes = resultReader.read(
|
|
781
|
+
outputDescriptionLength
|
|
782
|
+
)
|
|
665
783
|
const outputDescription = Utils.toUTF8(outputDescriptionBytes)
|
|
666
784
|
|
|
667
785
|
// basket
|
|
@@ -687,7 +805,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
687
805
|
const customInstructionsLength = resultReader.readVarIntNum()
|
|
688
806
|
let customInstructions: string | undefined
|
|
689
807
|
if (customInstructionsLength >= 0) {
|
|
690
|
-
const customInstructionsBytes = resultReader.read(
|
|
808
|
+
const customInstructionsBytes = resultReader.read(
|
|
809
|
+
customInstructionsLength
|
|
810
|
+
)
|
|
691
811
|
customInstructions = Utils.toUTF8(customInstructionsBytes)
|
|
692
812
|
}
|
|
693
813
|
|
|
@@ -713,7 +833,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
713
833
|
}
|
|
714
834
|
}
|
|
715
835
|
|
|
716
|
-
async internalizeAction(
|
|
836
|
+
async internalizeAction(
|
|
837
|
+
args: InternalizeActionArgs,
|
|
838
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
839
|
+
): Promise<{ accepted: true }> {
|
|
717
840
|
const paramWriter = new Utils.Writer()
|
|
718
841
|
paramWriter.writeVarIntNum(args.tx.length)
|
|
719
842
|
paramWriter.write(args.tx)
|
|
@@ -721,27 +844,44 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
721
844
|
for (const out of args.outputs) {
|
|
722
845
|
paramWriter.writeVarIntNum(out.outputIndex)
|
|
723
846
|
if (out.protocol === 'wallet payment') {
|
|
847
|
+
if (out.paymentRemittance == null) {
|
|
848
|
+
throw new Error('Payment remittance is required for wallet payment')
|
|
849
|
+
}
|
|
724
850
|
paramWriter.writeUInt8(1)
|
|
725
|
-
paramWriter.write(
|
|
726
|
-
|
|
851
|
+
paramWriter.write(
|
|
852
|
+
Utils.toArray(out.paymentRemittance.senderIdentityKey, 'hex')
|
|
853
|
+
)
|
|
854
|
+
const derivationPrefixAsArray = Utils.toArray(
|
|
855
|
+
out.paymentRemittance.derivationPrefix,
|
|
856
|
+
'base64'
|
|
857
|
+
)
|
|
727
858
|
paramWriter.writeVarIntNum(derivationPrefixAsArray.length)
|
|
728
859
|
paramWriter.write(derivationPrefixAsArray)
|
|
729
|
-
const derivationSuffixAsArray = Utils.toArray(
|
|
860
|
+
const derivationSuffixAsArray = Utils.toArray(
|
|
861
|
+
out.paymentRemittance.derivationSuffix,
|
|
862
|
+
'base64'
|
|
863
|
+
)
|
|
730
864
|
paramWriter.writeVarIntNum(derivationSuffixAsArray.length)
|
|
731
865
|
paramWriter.write(derivationSuffixAsArray)
|
|
732
866
|
} else {
|
|
733
867
|
paramWriter.writeUInt8(2)
|
|
734
|
-
const basketAsArray = Utils.toArray(
|
|
868
|
+
const basketAsArray = Utils.toArray(
|
|
869
|
+
out.insertionRemittance?.basket,
|
|
870
|
+
'utf8'
|
|
871
|
+
)
|
|
735
872
|
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
736
873
|
paramWriter.write(basketAsArray)
|
|
737
|
-
if (typeof out.insertionRemittance.customInstructions) {
|
|
738
|
-
const customInstructionsAsArray = Utils.toArray(
|
|
874
|
+
if (typeof out.insertionRemittance?.customInstructions === 'string' && out.insertionRemittance.customInstructions !== '') {
|
|
875
|
+
const customInstructionsAsArray = Utils.toArray(
|
|
876
|
+
out.insertionRemittance.customInstructions,
|
|
877
|
+
'utf8'
|
|
878
|
+
)
|
|
739
879
|
paramWriter.writeVarIntNum(customInstructionsAsArray.length)
|
|
740
880
|
paramWriter.write(customInstructionsAsArray)
|
|
741
881
|
} else {
|
|
742
882
|
paramWriter.writeVarIntNum(-1)
|
|
743
883
|
}
|
|
744
|
-
if (typeof out.insertionRemittance
|
|
884
|
+
if (typeof out.insertionRemittance?.tags === 'object') {
|
|
745
885
|
paramWriter.writeVarIntNum(out.insertionRemittance.tags.length)
|
|
746
886
|
for (const tag of out.insertionRemittance.tags) {
|
|
747
887
|
const tagAsArray = Utils.toArray(tag, 'utf8')
|
|
@@ -768,13 +908,22 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
768
908
|
paramWriter.write(descriptionAsArray)
|
|
769
909
|
|
|
770
910
|
// Serialize seekPermission
|
|
771
|
-
paramWriter.writeInt8(
|
|
911
|
+
paramWriter.writeInt8(
|
|
912
|
+
typeof args.seekPermission === 'boolean'
|
|
913
|
+
? args.seekPermission
|
|
914
|
+
? 1
|
|
915
|
+
: 0
|
|
916
|
+
: -1
|
|
917
|
+
)
|
|
772
918
|
|
|
773
919
|
await this.transmit('internalizeAction', originator, paramWriter.toArray())
|
|
774
920
|
return { accepted: true }
|
|
775
921
|
}
|
|
776
922
|
|
|
777
|
-
async listOutputs(
|
|
923
|
+
async listOutputs(
|
|
924
|
+
args: ListOutputsArgs,
|
|
925
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
926
|
+
): Promise<ListOutputsResult> {
|
|
778
927
|
const paramWriter = new Utils.Writer()
|
|
779
928
|
const basketAsArray = Utils.toArray(args.basket, 'utf8')
|
|
780
929
|
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
@@ -830,21 +979,49 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
830
979
|
}
|
|
831
980
|
|
|
832
981
|
// Serialize seekPermission
|
|
833
|
-
paramWriter.writeInt8(
|
|
834
|
-
|
|
835
|
-
|
|
982
|
+
paramWriter.writeInt8(
|
|
983
|
+
typeof args.seekPermission === 'boolean'
|
|
984
|
+
? args.seekPermission
|
|
985
|
+
? 1
|
|
986
|
+
: 0
|
|
987
|
+
: -1
|
|
988
|
+
)
|
|
989
|
+
|
|
990
|
+
const result = await this.transmit(
|
|
991
|
+
'listOutputs',
|
|
992
|
+
originator,
|
|
993
|
+
paramWriter.toArray()
|
|
994
|
+
)
|
|
836
995
|
const resultReader = new Utils.Reader(result)
|
|
837
996
|
const totalOutputs = resultReader.readVarIntNum()
|
|
838
997
|
const beefLength = resultReader.readVarIntNum()
|
|
839
|
-
let BEEF
|
|
998
|
+
let BEEF
|
|
840
999
|
if (beefLength >= 0) {
|
|
841
1000
|
BEEF = resultReader.read(beefLength)
|
|
842
1001
|
}
|
|
843
|
-
const outputs: Array<{
|
|
1002
|
+
const outputs: Array<{
|
|
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
|
+
}> = []
|
|
844
1012
|
for (let i = 0; i < totalOutputs; i++) {
|
|
845
1013
|
const outpoint = this.readOutpoint(resultReader)
|
|
846
1014
|
const satoshis = resultReader.readVarIntNum()
|
|
847
|
-
const output: {
|
|
1015
|
+
const output: {
|
|
1016
|
+
outpoint: OutpointString
|
|
1017
|
+
satoshis: SatoshiValue
|
|
1018
|
+
lockingScript?: HexString
|
|
1019
|
+
tx?: BEEF
|
|
1020
|
+
spendable: true
|
|
1021
|
+
customInstructions?: string
|
|
1022
|
+
tags?: OutputTagStringUnder300Bytes[]
|
|
1023
|
+
labels?: LabelStringUnder300Bytes[]
|
|
1024
|
+
} = {
|
|
848
1025
|
spendable: true,
|
|
849
1026
|
outpoint,
|
|
850
1027
|
satoshis
|
|
@@ -855,7 +1032,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
855
1032
|
}
|
|
856
1033
|
const customInstructionsLength = resultReader.readVarIntNum()
|
|
857
1034
|
if (customInstructionsLength >= 0) {
|
|
858
|
-
output.customInstructions = Utils.toUTF8(
|
|
1035
|
+
output.customInstructions = Utils.toUTF8(
|
|
1036
|
+
resultReader.read(customInstructionsLength)
|
|
1037
|
+
)
|
|
859
1038
|
}
|
|
860
1039
|
const tagsLength = resultReader.readVarIntNum()
|
|
861
1040
|
if (tagsLength !== -1) {
|
|
@@ -884,7 +1063,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
884
1063
|
}
|
|
885
1064
|
}
|
|
886
1065
|
|
|
887
|
-
async relinquishOutput(
|
|
1066
|
+
async relinquishOutput(
|
|
1067
|
+
args: { basket: BasketStringUnder300Bytes, output: OutpointString },
|
|
1068
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1069
|
+
): Promise<{ relinquished: true }> {
|
|
888
1070
|
const paramWriter = new Utils.Writer()
|
|
889
1071
|
const basketAsArray = Utils.toArray(args.basket, 'utf8')
|
|
890
1072
|
paramWriter.writeVarIntNum(basketAsArray.length)
|
|
@@ -908,45 +1090,102 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
908
1090
|
return `${txid}.${index}`
|
|
909
1091
|
}
|
|
910
1092
|
|
|
911
|
-
async getPublicKey(
|
|
1093
|
+
async getPublicKey(
|
|
1094
|
+
args: {
|
|
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
|
|
1103
|
+
},
|
|
1104
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1105
|
+
): Promise<{ publicKey: PubKeyHex }> {
|
|
912
1106
|
const paramWriter = new Utils.Writer()
|
|
913
1107
|
paramWriter.writeUInt8(args.identityKey ? 1 : 0)
|
|
914
1108
|
if (!args.identityKey) {
|
|
915
|
-
paramWriter.write(
|
|
1109
|
+
paramWriter.write(
|
|
1110
|
+
this.encodeKeyRelatedParams(
|
|
1111
|
+
args.protocolID ??= [SecurityLevels.Silent, 'default'],
|
|
1112
|
+
args.keyID ??= '',
|
|
1113
|
+
args.counterparty,
|
|
1114
|
+
args.privileged,
|
|
1115
|
+
args.privilegedReason
|
|
1116
|
+
)
|
|
1117
|
+
)
|
|
916
1118
|
if (typeof args.forSelf === 'boolean') {
|
|
917
1119
|
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
918
1120
|
} else {
|
|
919
1121
|
paramWriter.writeInt8(-1)
|
|
920
1122
|
}
|
|
921
1123
|
} else {
|
|
922
|
-
paramWriter.write(
|
|
1124
|
+
paramWriter.write(
|
|
1125
|
+
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1126
|
+
)
|
|
923
1127
|
}
|
|
924
1128
|
|
|
925
1129
|
// Serialize seekPermission
|
|
926
|
-
paramWriter.writeInt8(
|
|
927
|
-
|
|
928
|
-
|
|
1130
|
+
paramWriter.writeInt8(
|
|
1131
|
+
typeof args.seekPermission === 'boolean'
|
|
1132
|
+
? args.seekPermission
|
|
1133
|
+
? 1
|
|
1134
|
+
: 0
|
|
1135
|
+
: -1
|
|
1136
|
+
)
|
|
1137
|
+
|
|
1138
|
+
const result = await this.transmit(
|
|
1139
|
+
'getPublicKey',
|
|
1140
|
+
originator,
|
|
1141
|
+
paramWriter.toArray()
|
|
1142
|
+
)
|
|
929
1143
|
return {
|
|
930
1144
|
publicKey: Utils.toHex(result)
|
|
931
1145
|
}
|
|
932
1146
|
}
|
|
933
1147
|
|
|
934
|
-
async revealCounterpartyKeyLinkage(
|
|
1148
|
+
async revealCounterpartyKeyLinkage(
|
|
1149
|
+
args: {
|
|
1150
|
+
counterparty: PubKeyHex
|
|
1151
|
+
verifier: PubKeyHex
|
|
1152
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1153
|
+
privileged?: BooleanDefaultFalse
|
|
1154
|
+
},
|
|
1155
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1156
|
+
): Promise<{
|
|
1157
|
+
prover: PubKeyHex
|
|
1158
|
+
verifier: PubKeyHex
|
|
1159
|
+
counterparty: PubKeyHex
|
|
1160
|
+
revelationTime: ISOTimestampString
|
|
1161
|
+
encryptedLinkage: Byte[]
|
|
1162
|
+
encryptedLinkageProof: number[]
|
|
1163
|
+
}> {
|
|
935
1164
|
const paramWriter = new Utils.Writer()
|
|
936
|
-
paramWriter.write(
|
|
1165
|
+
paramWriter.write(
|
|
1166
|
+
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1167
|
+
)
|
|
937
1168
|
paramWriter.write(Utils.toArray(args.counterparty, 'hex'))
|
|
938
1169
|
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
939
|
-
const result = await this.transmit(
|
|
1170
|
+
const result = await this.transmit(
|
|
1171
|
+
'revealCounterpartyKeyLinkage',
|
|
1172
|
+
originator,
|
|
1173
|
+
paramWriter.toArray()
|
|
1174
|
+
)
|
|
940
1175
|
const resultReader = new Utils.Reader(result)
|
|
941
1176
|
const prover = Utils.toHex(resultReader.read(33))
|
|
942
1177
|
const verifier = Utils.toHex(resultReader.read(33))
|
|
943
1178
|
const counterparty = Utils.toHex(resultReader.read(33))
|
|
944
1179
|
const revelationTimeLength = resultReader.readVarIntNum()
|
|
945
|
-
const revelationTime = Utils.toUTF8(
|
|
1180
|
+
const revelationTime = Utils.toUTF8(
|
|
1181
|
+
resultReader.read(revelationTimeLength)
|
|
1182
|
+
)
|
|
946
1183
|
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
947
1184
|
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
948
1185
|
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
949
|
-
const encryptedLinkageProof = resultReader.read(
|
|
1186
|
+
const encryptedLinkageProof = resultReader.read(
|
|
1187
|
+
encryptedLinkageProofLength
|
|
1188
|
+
)
|
|
950
1189
|
return {
|
|
951
1190
|
prover,
|
|
952
1191
|
verifier,
|
|
@@ -957,11 +1196,42 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
957
1196
|
}
|
|
958
1197
|
}
|
|
959
1198
|
|
|
960
|
-
async revealSpecificKeyLinkage(
|
|
1199
|
+
async revealSpecificKeyLinkage(
|
|
1200
|
+
args: {
|
|
1201
|
+
counterparty: PubKeyHex
|
|
1202
|
+
verifier: PubKeyHex
|
|
1203
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1204
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1205
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1206
|
+
privileged?: BooleanDefaultFalse
|
|
1207
|
+
},
|
|
1208
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1209
|
+
): Promise<{
|
|
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
|
|
1218
|
+
}> {
|
|
961
1219
|
const paramWriter = new Utils.Writer()
|
|
962
|
-
paramWriter.write(
|
|
1220
|
+
paramWriter.write(
|
|
1221
|
+
this.encodeKeyRelatedParams(
|
|
1222
|
+
args.protocolID,
|
|
1223
|
+
args.keyID,
|
|
1224
|
+
args.counterparty,
|
|
1225
|
+
args.privileged,
|
|
1226
|
+
args.privilegedReason
|
|
1227
|
+
)
|
|
1228
|
+
)
|
|
963
1229
|
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
964
|
-
const result = await this.transmit(
|
|
1230
|
+
const result = await this.transmit(
|
|
1231
|
+
'revealSpecificKeyLinkage',
|
|
1232
|
+
originator,
|
|
1233
|
+
paramWriter.toArray()
|
|
1234
|
+
)
|
|
965
1235
|
const resultReader = new Utils.Reader(result)
|
|
966
1236
|
const prover = Utils.toHex(resultReader.read(33))
|
|
967
1237
|
const verifier = Utils.toHex(resultReader.read(33))
|
|
@@ -974,7 +1244,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
974
1244
|
const encryptedLinkageLength = resultReader.readVarIntNum()
|
|
975
1245
|
const encryptedLinkage = resultReader.read(encryptedLinkageLength)
|
|
976
1246
|
const encryptedLinkageProofLength = resultReader.readVarIntNum()
|
|
977
|
-
const encryptedLinkageProof = resultReader.read(
|
|
1247
|
+
const encryptedLinkageProof = resultReader.read(
|
|
1248
|
+
encryptedLinkageProofLength
|
|
1249
|
+
)
|
|
978
1250
|
const proofType = resultReader.readUInt8()
|
|
979
1251
|
return {
|
|
980
1252
|
prover,
|
|
@@ -988,75 +1260,240 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
988
1260
|
}
|
|
989
1261
|
}
|
|
990
1262
|
|
|
991
|
-
async encrypt(
|
|
1263
|
+
async encrypt(
|
|
1264
|
+
args: {
|
|
1265
|
+
seekPermission?: BooleanDefaultTrue
|
|
1266
|
+
plaintext: Byte[]
|
|
1267
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1268
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1269
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1270
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1271
|
+
privileged?: BooleanDefaultFalse
|
|
1272
|
+
},
|
|
1273
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1274
|
+
): Promise<{ ciphertext: Byte[] }> {
|
|
992
1275
|
const paramWriter = new Utils.Writer()
|
|
993
|
-
paramWriter.write(
|
|
1276
|
+
paramWriter.write(
|
|
1277
|
+
this.encodeKeyRelatedParams(
|
|
1278
|
+
args.protocolID,
|
|
1279
|
+
args.keyID,
|
|
1280
|
+
args.counterparty,
|
|
1281
|
+
args.privileged,
|
|
1282
|
+
args.privilegedReason
|
|
1283
|
+
)
|
|
1284
|
+
)
|
|
994
1285
|
paramWriter.writeVarIntNum(args.plaintext.length)
|
|
995
1286
|
paramWriter.write(args.plaintext)
|
|
996
1287
|
// Serialize seekPermission
|
|
997
|
-
paramWriter.writeInt8(
|
|
1288
|
+
paramWriter.writeInt8(
|
|
1289
|
+
typeof args.seekPermission === 'boolean'
|
|
1290
|
+
? args.seekPermission
|
|
1291
|
+
? 1
|
|
1292
|
+
: 0
|
|
1293
|
+
: -1
|
|
1294
|
+
)
|
|
998
1295
|
return {
|
|
999
|
-
ciphertext: await this.transmit(
|
|
1296
|
+
ciphertext: await this.transmit(
|
|
1297
|
+
'encrypt',
|
|
1298
|
+
originator,
|
|
1299
|
+
paramWriter.toArray()
|
|
1300
|
+
)
|
|
1000
1301
|
}
|
|
1001
1302
|
}
|
|
1002
1303
|
|
|
1003
|
-
async decrypt(
|
|
1304
|
+
async decrypt(
|
|
1305
|
+
args: {
|
|
1306
|
+
seekPermission?: BooleanDefaultTrue
|
|
1307
|
+
ciphertext: Byte[]
|
|
1308
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1309
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1310
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1311
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1312
|
+
privileged?: BooleanDefaultFalse
|
|
1313
|
+
},
|
|
1314
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1315
|
+
): Promise<{ plaintext: Byte[] }> {
|
|
1004
1316
|
const paramWriter = new Utils.Writer()
|
|
1005
|
-
paramWriter.write(
|
|
1317
|
+
paramWriter.write(
|
|
1318
|
+
this.encodeKeyRelatedParams(
|
|
1319
|
+
args.protocolID,
|
|
1320
|
+
args.keyID,
|
|
1321
|
+
args.counterparty,
|
|
1322
|
+
args.privileged,
|
|
1323
|
+
args.privilegedReason
|
|
1324
|
+
)
|
|
1325
|
+
)
|
|
1006
1326
|
paramWriter.writeVarIntNum(args.ciphertext.length)
|
|
1007
1327
|
paramWriter.write(args.ciphertext)
|
|
1008
1328
|
// Serialize seekPermission
|
|
1009
|
-
paramWriter.writeInt8(
|
|
1329
|
+
paramWriter.writeInt8(
|
|
1330
|
+
typeof args.seekPermission === 'boolean'
|
|
1331
|
+
? args.seekPermission
|
|
1332
|
+
? 1
|
|
1333
|
+
: 0
|
|
1334
|
+
: -1
|
|
1335
|
+
)
|
|
1010
1336
|
return {
|
|
1011
|
-
plaintext: await this.transmit(
|
|
1337
|
+
plaintext: await this.transmit(
|
|
1338
|
+
'decrypt',
|
|
1339
|
+
originator,
|
|
1340
|
+
paramWriter.toArray()
|
|
1341
|
+
)
|
|
1012
1342
|
}
|
|
1013
1343
|
}
|
|
1014
1344
|
|
|
1015
|
-
async createHmac(
|
|
1345
|
+
async createHmac(
|
|
1346
|
+
args: {
|
|
1347
|
+
seekPermission?: BooleanDefaultTrue
|
|
1348
|
+
data: Byte[]
|
|
1349
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes]
|
|
1350
|
+
keyID: KeyIDStringUnder800Bytes
|
|
1351
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1352
|
+
counterparty?: PubKeyHex | 'self' | 'anyone'
|
|
1353
|
+
privileged?: BooleanDefaultFalse
|
|
1354
|
+
},
|
|
1355
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1356
|
+
): Promise<{ hmac: Byte[] }> {
|
|
1016
1357
|
const paramWriter = new Utils.Writer()
|
|
1017
|
-
paramWriter.write(
|
|
1358
|
+
paramWriter.write(
|
|
1359
|
+
this.encodeKeyRelatedParams(
|
|
1360
|
+
args.protocolID,
|
|
1361
|
+
args.keyID,
|
|
1362
|
+
args.counterparty,
|
|
1363
|
+
args.privileged,
|
|
1364
|
+
args.privilegedReason
|
|
1365
|
+
)
|
|
1366
|
+
)
|
|
1018
1367
|
paramWriter.writeVarIntNum(args.data.length)
|
|
1019
1368
|
paramWriter.write(args.data)
|
|
1020
1369
|
// Serialize seekPermission
|
|
1021
|
-
paramWriter.writeInt8(
|
|
1370
|
+
paramWriter.writeInt8(
|
|
1371
|
+
typeof args.seekPermission === 'boolean'
|
|
1372
|
+
? args.seekPermission
|
|
1373
|
+
? 1
|
|
1374
|
+
: 0
|
|
1375
|
+
: -1
|
|
1376
|
+
)
|
|
1022
1377
|
return {
|
|
1023
|
-
hmac: await this.transmit(
|
|
1378
|
+
hmac: await this.transmit(
|
|
1379
|
+
'createHmac',
|
|
1380
|
+
originator,
|
|
1381
|
+
paramWriter.toArray()
|
|
1382
|
+
)
|
|
1024
1383
|
}
|
|
1025
1384
|
}
|
|
1026
1385
|
|
|
1027
|
-
async verifyHmac(
|
|
1386
|
+
async verifyHmac(
|
|
1387
|
+
args: {
|
|
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
|
|
1396
|
+
},
|
|
1397
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1398
|
+
): Promise<{ valid: true }> {
|
|
1028
1399
|
const paramWriter = new Utils.Writer()
|
|
1029
|
-
paramWriter.write(
|
|
1400
|
+
paramWriter.write(
|
|
1401
|
+
this.encodeKeyRelatedParams(
|
|
1402
|
+
args.protocolID,
|
|
1403
|
+
args.keyID,
|
|
1404
|
+
args.counterparty,
|
|
1405
|
+
args.privileged,
|
|
1406
|
+
args.privilegedReason
|
|
1407
|
+
)
|
|
1408
|
+
)
|
|
1030
1409
|
paramWriter.write(args.hmac)
|
|
1031
1410
|
paramWriter.writeVarIntNum(args.data.length)
|
|
1032
1411
|
paramWriter.write(args.data)
|
|
1033
1412
|
// Serialize seekPermission
|
|
1034
|
-
paramWriter.writeInt8(
|
|
1413
|
+
paramWriter.writeInt8(
|
|
1414
|
+
typeof args.seekPermission === 'boolean'
|
|
1415
|
+
? args.seekPermission
|
|
1416
|
+
? 1
|
|
1417
|
+
: 0
|
|
1418
|
+
: -1
|
|
1419
|
+
)
|
|
1035
1420
|
await this.transmit('verifyHmac', originator, paramWriter.toArray())
|
|
1036
1421
|
return { valid: true }
|
|
1037
1422
|
}
|
|
1038
1423
|
|
|
1039
|
-
async createSignature(
|
|
1424
|
+
async createSignature(
|
|
1425
|
+
args: {
|
|
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
|
|
1434
|
+
},
|
|
1435
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1436
|
+
): Promise<{ signature: Byte[] }> {
|
|
1040
1437
|
const paramWriter = new Utils.Writer()
|
|
1041
|
-
paramWriter.write(
|
|
1438
|
+
paramWriter.write(
|
|
1439
|
+
this.encodeKeyRelatedParams(
|
|
1440
|
+
args.protocolID,
|
|
1441
|
+
args.keyID,
|
|
1442
|
+
args.counterparty,
|
|
1443
|
+
args.privileged,
|
|
1444
|
+
args.privilegedReason
|
|
1445
|
+
)
|
|
1446
|
+
)
|
|
1042
1447
|
if (typeof args.data === 'object') {
|
|
1043
1448
|
paramWriter.writeUInt8(1)
|
|
1044
1449
|
paramWriter.writeVarIntNum(args.data.length)
|
|
1045
1450
|
paramWriter.write(args.data)
|
|
1046
1451
|
} else {
|
|
1047
1452
|
paramWriter.writeUInt8(2)
|
|
1048
|
-
paramWriter.write(args.hashToDirectlySign)
|
|
1453
|
+
paramWriter.write(args.hashToDirectlySign ??= [])
|
|
1049
1454
|
}
|
|
1050
1455
|
// Serialize seekPermission
|
|
1051
|
-
paramWriter.writeInt8(
|
|
1456
|
+
paramWriter.writeInt8(
|
|
1457
|
+
typeof args.seekPermission === 'boolean'
|
|
1458
|
+
? args.seekPermission
|
|
1459
|
+
? 1
|
|
1460
|
+
: 0
|
|
1461
|
+
: -1
|
|
1462
|
+
)
|
|
1052
1463
|
return {
|
|
1053
|
-
signature: await this.transmit(
|
|
1464
|
+
signature: await this.transmit(
|
|
1465
|
+
'createSignature',
|
|
1466
|
+
originator,
|
|
1467
|
+
paramWriter.toArray()
|
|
1468
|
+
)
|
|
1054
1469
|
}
|
|
1055
1470
|
}
|
|
1056
1471
|
|
|
1057
|
-
async verifySignature(
|
|
1472
|
+
async verifySignature(
|
|
1473
|
+
args: {
|
|
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
|
|
1484
|
+
},
|
|
1485
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1486
|
+
): Promise<{ valid: true }> {
|
|
1058
1487
|
const paramWriter = new Utils.Writer()
|
|
1059
|
-
paramWriter.write(
|
|
1488
|
+
paramWriter.write(
|
|
1489
|
+
this.encodeKeyRelatedParams(
|
|
1490
|
+
args.protocolID,
|
|
1491
|
+
args.keyID,
|
|
1492
|
+
args.counterparty,
|
|
1493
|
+
args.privileged,
|
|
1494
|
+
args.privilegedReason
|
|
1495
|
+
)
|
|
1496
|
+
)
|
|
1060
1497
|
if (typeof args.forSelf === 'boolean') {
|
|
1061
1498
|
paramWriter.writeInt8(args.forSelf ? 1 : 0)
|
|
1062
1499
|
} else {
|
|
@@ -1070,15 +1507,27 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1070
1507
|
paramWriter.write(args.data)
|
|
1071
1508
|
} else {
|
|
1072
1509
|
paramWriter.writeUInt8(2)
|
|
1073
|
-
paramWriter.write(args.hashToDirectlyVerify)
|
|
1510
|
+
paramWriter.write(args.hashToDirectlyVerify ?? [])
|
|
1074
1511
|
}
|
|
1075
1512
|
// Serialize seekPermission
|
|
1076
|
-
paramWriter.writeInt8(
|
|
1513
|
+
paramWriter.writeInt8(
|
|
1514
|
+
typeof args.seekPermission === 'boolean'
|
|
1515
|
+
? args.seekPermission
|
|
1516
|
+
? 1
|
|
1517
|
+
: 0
|
|
1518
|
+
: -1
|
|
1519
|
+
)
|
|
1077
1520
|
await this.transmit('verifySignature', originator, paramWriter.toArray())
|
|
1078
1521
|
return { valid: true }
|
|
1079
1522
|
}
|
|
1080
1523
|
|
|
1081
|
-
private encodeKeyRelatedParams(
|
|
1524
|
+
private encodeKeyRelatedParams(
|
|
1525
|
+
protocolID: [SecurityLevel, ProtocolString5To400Bytes],
|
|
1526
|
+
keyID: KeyIDStringUnder800Bytes,
|
|
1527
|
+
counterparty?: PubKeyHex | 'self' | 'anyone',
|
|
1528
|
+
privileged?: boolean,
|
|
1529
|
+
privilegedReason?: string
|
|
1530
|
+
): number[] {
|
|
1082
1531
|
const paramWriter = new Utils.Writer()
|
|
1083
1532
|
paramWriter.writeUInt8(protocolID[0])
|
|
1084
1533
|
const protocolAsArray = Utils.toArray(protocolID[1], 'utf8')
|
|
@@ -1096,7 +1545,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1096
1545
|
} else {
|
|
1097
1546
|
paramWriter.write(Utils.toArray(counterparty, 'hex'))
|
|
1098
1547
|
}
|
|
1099
|
-
paramWriter.write(
|
|
1548
|
+
paramWriter.write(
|
|
1549
|
+
this.encodePrivilegedParams(privileged, privilegedReason)
|
|
1550
|
+
)
|
|
1100
1551
|
return paramWriter.toArray()
|
|
1101
1552
|
}
|
|
1102
1553
|
|
|
@@ -1121,28 +1572,34 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1121
1572
|
paramWriter.write(valueAsArray)
|
|
1122
1573
|
}
|
|
1123
1574
|
|
|
1124
|
-
paramWriter.write(
|
|
1575
|
+
paramWriter.write(
|
|
1576
|
+
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1577
|
+
)
|
|
1125
1578
|
paramWriter.writeUInt8(args.acquisitionProtocol === 'direct' ? 1 : 2)
|
|
1126
1579
|
|
|
1127
1580
|
if (args.acquisitionProtocol === 'direct') {
|
|
1128
1581
|
paramWriter.write(Utils.toArray(args.serialNumber, 'base64'))
|
|
1129
|
-
paramWriter.write(this.encodeOutpoint(args.revocationOutpoint))
|
|
1582
|
+
paramWriter.write(this.encodeOutpoint(args.revocationOutpoint ?? ''))
|
|
1130
1583
|
const signatureAsArray = Utils.toArray(args.signature, 'hex')
|
|
1131
1584
|
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1132
1585
|
paramWriter.write(signatureAsArray)
|
|
1133
1586
|
|
|
1134
|
-
const keyringRevealerAsArray =
|
|
1135
|
-
|
|
1136
|
-
|
|
1587
|
+
const keyringRevealerAsArray =
|
|
1588
|
+
args.keyringRevealer !== 'certifier'
|
|
1589
|
+
? Utils.toArray(args.keyringRevealer, 'hex')
|
|
1590
|
+
: [11]
|
|
1137
1591
|
paramWriter.write(keyringRevealerAsArray)
|
|
1138
1592
|
|
|
1139
|
-
const keyringKeys = Object.keys(args.keyringForSubject)
|
|
1593
|
+
const keyringKeys = Object.keys(args.keyringForSubject ?? {})
|
|
1140
1594
|
paramWriter.writeVarIntNum(keyringKeys.length)
|
|
1141
1595
|
for (let i = 0; i < keyringKeys.length; i++) {
|
|
1142
1596
|
const keyringKeysAsArray = Utils.toArray(keyringKeys[i], 'utf8')
|
|
1143
1597
|
paramWriter.writeVarIntNum(keyringKeysAsArray.length)
|
|
1144
1598
|
paramWriter.write(keyringKeysAsArray)
|
|
1145
|
-
const keyringForSubjectAsArray = Utils.toArray(
|
|
1599
|
+
const keyringForSubjectAsArray = Utils.toArray(
|
|
1600
|
+
args.keyringForSubject?.[keyringKeys[i]],
|
|
1601
|
+
'base64'
|
|
1602
|
+
)
|
|
1146
1603
|
paramWriter.writeVarIntNum(keyringForSubjectAsArray.length)
|
|
1147
1604
|
paramWriter.write(keyringForSubjectAsArray)
|
|
1148
1605
|
}
|
|
@@ -1152,7 +1609,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1152
1609
|
paramWriter.write(certifierUrlAsArray)
|
|
1153
1610
|
}
|
|
1154
1611
|
|
|
1155
|
-
const result = await this.transmit(
|
|
1612
|
+
const result = await this.transmit(
|
|
1613
|
+
'acquireCertificate',
|
|
1614
|
+
originator,
|
|
1615
|
+
paramWriter.toArray()
|
|
1616
|
+
)
|
|
1156
1617
|
const cert = Certificate.fromBinary(result)
|
|
1157
1618
|
return {
|
|
1158
1619
|
...cert,
|
|
@@ -1160,7 +1621,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1160
1621
|
}
|
|
1161
1622
|
}
|
|
1162
1623
|
|
|
1163
|
-
private encodePrivilegedParams(
|
|
1624
|
+
private encodePrivilegedParams(
|
|
1625
|
+
privileged?: boolean,
|
|
1626
|
+
privilegedReason?: string
|
|
1627
|
+
): number[] {
|
|
1164
1628
|
const paramWriter = new Utils.Writer()
|
|
1165
1629
|
if (typeof privileged === 'boolean') {
|
|
1166
1630
|
paramWriter.writeInt8(privileged ? 1 : 0)
|
|
@@ -1177,7 +1641,17 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1177
1641
|
return paramWriter.toArray()
|
|
1178
1642
|
}
|
|
1179
1643
|
|
|
1180
|
-
async listCertificates(
|
|
1644
|
+
async listCertificates(
|
|
1645
|
+
args: {
|
|
1646
|
+
certifiers: PubKeyHex[]
|
|
1647
|
+
types: Base64String[]
|
|
1648
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1649
|
+
offset?: PositiveIntegerOrZero
|
|
1650
|
+
privileged?: BooleanDefaultFalse
|
|
1651
|
+
privilegedReason?: DescriptionString5to50Bytes
|
|
1652
|
+
},
|
|
1653
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1654
|
+
): Promise<ListCertificatesResult> {
|
|
1181
1655
|
const paramWriter = new Utils.Writer()
|
|
1182
1656
|
paramWriter.writeVarIntNum(args.certifiers.length)
|
|
1183
1657
|
for (let i = 0; i < args.certifiers.length; i++) {
|
|
@@ -1198,8 +1672,14 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1198
1672
|
} else {
|
|
1199
1673
|
paramWriter.writeVarIntNum(-1)
|
|
1200
1674
|
}
|
|
1201
|
-
paramWriter.write(
|
|
1202
|
-
|
|
1675
|
+
paramWriter.write(
|
|
1676
|
+
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1677
|
+
)
|
|
1678
|
+
const result = await this.transmit(
|
|
1679
|
+
'listCertificates',
|
|
1680
|
+
originator,
|
|
1681
|
+
paramWriter.toArray()
|
|
1682
|
+
)
|
|
1203
1683
|
const resultReader = new Utils.Reader(result)
|
|
1204
1684
|
const totalCertificates = resultReader.readVarIntNum()
|
|
1205
1685
|
const certificates: Array<{
|
|
@@ -1226,22 +1706,30 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1226
1706
|
}
|
|
1227
1707
|
}
|
|
1228
1708
|
|
|
1229
|
-
async proveCertificate(
|
|
1709
|
+
async proveCertificate(
|
|
1710
|
+
args: ProveCertificateArgs,
|
|
1711
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1712
|
+
): Promise<ProveCertificateResult> {
|
|
1230
1713
|
const paramWriter = new Utils.Writer()
|
|
1231
1714
|
const typeAsArray = Utils.toArray(args.certificate.type, 'base64')
|
|
1232
1715
|
paramWriter.write(typeAsArray)
|
|
1233
1716
|
const subjectAsArray = Utils.toArray(args.certificate.subject, 'hex')
|
|
1234
1717
|
paramWriter.write(subjectAsArray)
|
|
1235
|
-
const serialNumberAsArray = Utils.toArray(
|
|
1718
|
+
const serialNumberAsArray = Utils.toArray(
|
|
1719
|
+
args.certificate.serialNumber,
|
|
1720
|
+
'base64'
|
|
1721
|
+
)
|
|
1236
1722
|
paramWriter.write(serialNumberAsArray)
|
|
1237
1723
|
const certifierAsArray = Utils.toArray(args.certificate.certifier, 'hex')
|
|
1238
1724
|
paramWriter.write(certifierAsArray)
|
|
1239
|
-
const revocationOutpointAsArray = this.encodeOutpoint(
|
|
1725
|
+
const revocationOutpointAsArray = this.encodeOutpoint(
|
|
1726
|
+
args.certificate.revocationOutpoint ?? ''
|
|
1727
|
+
)
|
|
1240
1728
|
paramWriter.write(revocationOutpointAsArray)
|
|
1241
1729
|
const signatureAsArray = Utils.toArray(args.certificate.signature, 'hex')
|
|
1242
1730
|
paramWriter.writeVarIntNum(signatureAsArray.length)
|
|
1243
1731
|
paramWriter.write(signatureAsArray)
|
|
1244
|
-
const fieldEntries = Object.entries(args.certificate.fields)
|
|
1732
|
+
const fieldEntries = Object.entries(args.certificate.fields ?? {})
|
|
1245
1733
|
paramWriter.writeVarIntNum(fieldEntries.length)
|
|
1246
1734
|
for (const [key, value] of fieldEntries) {
|
|
1247
1735
|
const keyAsArray = Utils.toArray(key, 'utf8')
|
|
@@ -1258,8 +1746,14 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1258
1746
|
paramWriter.write(fieldAsArray)
|
|
1259
1747
|
}
|
|
1260
1748
|
paramWriter.write(Utils.toArray(args.verifier, 'hex'))
|
|
1261
|
-
paramWriter.write(
|
|
1262
|
-
|
|
1749
|
+
paramWriter.write(
|
|
1750
|
+
this.encodePrivilegedParams(args.privileged, args.privilegedReason)
|
|
1751
|
+
)
|
|
1752
|
+
const result = await this.transmit(
|
|
1753
|
+
'proveCertificate',
|
|
1754
|
+
originator,
|
|
1755
|
+
paramWriter.toArray()
|
|
1756
|
+
)
|
|
1263
1757
|
const resultReader = new Utils.Reader(result)
|
|
1264
1758
|
const numFields = resultReader.readVarIntNum()
|
|
1265
1759
|
const keyringForVerifier: Record<string, string> = {}
|
|
@@ -1267,14 +1761,23 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1267
1761
|
const fieldKeyLength = resultReader.readVarIntNum()
|
|
1268
1762
|
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLength))
|
|
1269
1763
|
const fieldValueLength = resultReader.readVarIntNum()
|
|
1270
|
-
keyringForVerifier[fieldKey] = Utils.toBase64(
|
|
1764
|
+
keyringForVerifier[fieldKey] = Utils.toBase64(
|
|
1765
|
+
resultReader.read(fieldValueLength)
|
|
1766
|
+
)
|
|
1271
1767
|
}
|
|
1272
1768
|
return {
|
|
1273
1769
|
keyringForVerifier
|
|
1274
1770
|
}
|
|
1275
1771
|
}
|
|
1276
1772
|
|
|
1277
|
-
async relinquishCertificate(
|
|
1773
|
+
async relinquishCertificate(
|
|
1774
|
+
args: {
|
|
1775
|
+
type: Base64String
|
|
1776
|
+
serialNumber: Base64String
|
|
1777
|
+
certifier: PubKeyHex
|
|
1778
|
+
},
|
|
1779
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1780
|
+
): Promise<{ relinquished: true }> {
|
|
1278
1781
|
const paramWriter = new Utils.Writer()
|
|
1279
1782
|
const typeAsArray = Utils.toArray(args.type, 'base64')
|
|
1280
1783
|
paramWriter.write(typeAsArray)
|
|
@@ -1282,7 +1785,11 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1282
1785
|
paramWriter.write(serialNumberAsArray)
|
|
1283
1786
|
const certifierAsArray = Utils.toArray(args.certifier, 'hex')
|
|
1284
1787
|
paramWriter.write(certifierAsArray)
|
|
1285
|
-
await this.transmit(
|
|
1788
|
+
await this.transmit(
|
|
1789
|
+
'relinquishCertificate',
|
|
1790
|
+
originator,
|
|
1791
|
+
paramWriter.toArray()
|
|
1792
|
+
)
|
|
1286
1793
|
return { relinquished: true }
|
|
1287
1794
|
}
|
|
1288
1795
|
|
|
@@ -1302,7 +1809,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1302
1809
|
description: DescriptionString5to50Bytes
|
|
1303
1810
|
trust: PositiveIntegerMax10
|
|
1304
1811
|
}
|
|
1305
|
-
publiclyRevealedKeyring: Record<
|
|
1812
|
+
publiclyRevealedKeyring: Record<
|
|
1813
|
+
CertificateFieldNameUnder50Bytes,
|
|
1814
|
+
Base64String
|
|
1815
|
+
>
|
|
1306
1816
|
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1307
1817
|
}>
|
|
1308
1818
|
} {
|
|
@@ -1322,7 +1832,10 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1322
1832
|
description: DescriptionString5to50Bytes
|
|
1323
1833
|
trust: PositiveIntegerMax10
|
|
1324
1834
|
}
|
|
1325
|
-
publiclyRevealedKeyring: Record<
|
|
1835
|
+
publiclyRevealedKeyring: Record<
|
|
1836
|
+
CertificateFieldNameUnder50Bytes,
|
|
1837
|
+
Base64String
|
|
1838
|
+
>
|
|
1326
1839
|
decryptedFields: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1327
1840
|
}> = []
|
|
1328
1841
|
for (let i = 0; i < totalCertificates; i++) {
|
|
@@ -1350,7 +1863,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1350
1863
|
const fieldKeyLen = resultReader.readVarIntNum()
|
|
1351
1864
|
const fieldKey = Utils.toUTF8(resultReader.read(fieldKeyLen))
|
|
1352
1865
|
const fieldValueLen = resultReader.readVarIntNum()
|
|
1353
|
-
decryptedFields[fieldKey] = Utils.toUTF8(
|
|
1866
|
+
decryptedFields[fieldKey] = Utils.toUTF8(
|
|
1867
|
+
resultReader.read(fieldValueLen)
|
|
1868
|
+
)
|
|
1354
1869
|
}
|
|
1355
1870
|
certificates.push({
|
|
1356
1871
|
...cert,
|
|
@@ -1366,7 +1881,15 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1366
1881
|
}
|
|
1367
1882
|
}
|
|
1368
1883
|
|
|
1369
|
-
async discoverByIdentityKey(
|
|
1884
|
+
async discoverByIdentityKey(
|
|
1885
|
+
args: {
|
|
1886
|
+
seekPermission?: BooleanDefaultTrue
|
|
1887
|
+
identityKey: PubKeyHex
|
|
1888
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1889
|
+
offset?: PositiveIntegerOrZero
|
|
1890
|
+
},
|
|
1891
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1892
|
+
): Promise<DiscoverCertificatesResult> {
|
|
1370
1893
|
const paramWriter = new Utils.Writer()
|
|
1371
1894
|
paramWriter.write(Utils.toArray(args.identityKey, 'hex'))
|
|
1372
1895
|
if (typeof args.limit === 'number') {
|
|
@@ -1380,12 +1903,30 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1380
1903
|
paramWriter.writeVarIntNum(-1)
|
|
1381
1904
|
}
|
|
1382
1905
|
// Serialize seekPermission
|
|
1383
|
-
paramWriter.writeInt8(
|
|
1384
|
-
|
|
1906
|
+
paramWriter.writeInt8(
|
|
1907
|
+
typeof args.seekPermission === 'boolean'
|
|
1908
|
+
? args.seekPermission
|
|
1909
|
+
? 1
|
|
1910
|
+
: 0
|
|
1911
|
+
: -1
|
|
1912
|
+
)
|
|
1913
|
+
const result = await this.transmit(
|
|
1914
|
+
'discoverByIdentityKey',
|
|
1915
|
+
originator,
|
|
1916
|
+
paramWriter.toArray()
|
|
1917
|
+
)
|
|
1385
1918
|
return this.parseDiscoveryResult(result)
|
|
1386
1919
|
}
|
|
1387
1920
|
|
|
1388
|
-
async discoverByAttributes(
|
|
1921
|
+
async discoverByAttributes(
|
|
1922
|
+
args: {
|
|
1923
|
+
seekPermission?: BooleanDefaultTrue
|
|
1924
|
+
attributes: Record<CertificateFieldNameUnder50Bytes, string>
|
|
1925
|
+
limit?: PositiveIntegerDefault10Max10000
|
|
1926
|
+
offset?: PositiveIntegerOrZero
|
|
1927
|
+
},
|
|
1928
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1929
|
+
): Promise<DiscoverCertificatesResult> {
|
|
1389
1930
|
const paramWriter = new Utils.Writer()
|
|
1390
1931
|
const attributeKeys = Object.keys(args.attributes)
|
|
1391
1932
|
paramWriter.writeVarIntNum(attributeKeys.length)
|
|
@@ -1393,7 +1934,9 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1393
1934
|
paramWriter.writeVarIntNum(attributeKeys[i].length)
|
|
1394
1935
|
paramWriter.write(Utils.toArray(attributeKeys[i], 'utf8'))
|
|
1395
1936
|
paramWriter.writeVarIntNum(args.attributes[attributeKeys[i]].length)
|
|
1396
|
-
paramWriter.write(
|
|
1937
|
+
paramWriter.write(
|
|
1938
|
+
Utils.toArray(args.attributes[attributeKeys[i]], 'utf8')
|
|
1939
|
+
)
|
|
1397
1940
|
}
|
|
1398
1941
|
if (typeof args.limit === 'number') {
|
|
1399
1942
|
paramWriter.writeVarIntNum(args.limit)
|
|
@@ -1406,23 +1949,42 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1406
1949
|
paramWriter.writeVarIntNum(-1)
|
|
1407
1950
|
}
|
|
1408
1951
|
// Serialize seekPermission
|
|
1409
|
-
paramWriter.writeInt8(
|
|
1410
|
-
|
|
1952
|
+
paramWriter.writeInt8(
|
|
1953
|
+
typeof args.seekPermission === 'boolean'
|
|
1954
|
+
? args.seekPermission
|
|
1955
|
+
? 1
|
|
1956
|
+
: 0
|
|
1957
|
+
: -1
|
|
1958
|
+
)
|
|
1959
|
+
const result = await this.transmit(
|
|
1960
|
+
'discoverByAttributes',
|
|
1961
|
+
originator,
|
|
1962
|
+
paramWriter.toArray()
|
|
1963
|
+
)
|
|
1411
1964
|
return this.parseDiscoveryResult(result)
|
|
1412
1965
|
}
|
|
1413
1966
|
|
|
1414
|
-
async isAuthenticated(
|
|
1967
|
+
async isAuthenticated(
|
|
1968
|
+
args: {},
|
|
1969
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1970
|
+
): Promise<{ authenticated: true }> {
|
|
1415
1971
|
const result = await this.transmit('isAuthenticated', originator)
|
|
1416
|
-
// @ts-
|
|
1417
|
-
return { authenticated:
|
|
1972
|
+
// @ts-expect-error
|
|
1973
|
+
return { authenticated: result[0] === 1 }
|
|
1418
1974
|
}
|
|
1419
1975
|
|
|
1420
|
-
async waitForAuthentication(
|
|
1976
|
+
async waitForAuthentication(
|
|
1977
|
+
args: {},
|
|
1978
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1979
|
+
): Promise<{ authenticated: true }> {
|
|
1421
1980
|
await this.transmit('waitForAuthentication', originator)
|
|
1422
1981
|
return { authenticated: true }
|
|
1423
1982
|
}
|
|
1424
1983
|
|
|
1425
|
-
async getHeight(
|
|
1984
|
+
async getHeight(
|
|
1985
|
+
args: {},
|
|
1986
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1987
|
+
): Promise<{ height: PositiveInteger }> {
|
|
1426
1988
|
const result = await this.transmit('getHeight', originator)
|
|
1427
1989
|
const resultReader = new Utils.Reader(result)
|
|
1428
1990
|
return {
|
|
@@ -1430,23 +1992,36 @@ export default class WalletWireTransceiver implements WalletInterface {
|
|
|
1430
1992
|
}
|
|
1431
1993
|
}
|
|
1432
1994
|
|
|
1433
|
-
async getHeaderForHeight(
|
|
1995
|
+
async getHeaderForHeight(
|
|
1996
|
+
args: { height: PositiveInteger },
|
|
1997
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
1998
|
+
): Promise<{ header: HexString }> {
|
|
1434
1999
|
const paramWriter = new Utils.Writer()
|
|
1435
2000
|
paramWriter.writeVarIntNum(args.height)
|
|
1436
|
-
const header = await this.transmit(
|
|
2001
|
+
const header = await this.transmit(
|
|
2002
|
+
'getHeaderForHeight',
|
|
2003
|
+
originator,
|
|
2004
|
+
paramWriter.toArray()
|
|
2005
|
+
)
|
|
1437
2006
|
return {
|
|
1438
2007
|
header: Utils.toHex(header)
|
|
1439
2008
|
}
|
|
1440
2009
|
}
|
|
1441
2010
|
|
|
1442
|
-
async getNetwork(
|
|
2011
|
+
async getNetwork(
|
|
2012
|
+
args: {},
|
|
2013
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
2014
|
+
): Promise<{ network: 'mainnet' | 'testnet' }> {
|
|
1443
2015
|
const net = await this.transmit('getNetwork', originator)
|
|
1444
2016
|
return {
|
|
1445
2017
|
network: net[0] === 0 ? 'mainnet' : 'testnet'
|
|
1446
2018
|
}
|
|
1447
2019
|
}
|
|
1448
2020
|
|
|
1449
|
-
async getVersion(
|
|
2021
|
+
async getVersion(
|
|
2022
|
+
args: {},
|
|
2023
|
+
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
2024
|
+
): Promise<{ version: VersionString7To30Bytes }> {
|
|
1450
2025
|
const version = await this.transmit('getVersion', originator)
|
|
1451
2026
|
return {
|
|
1452
2027
|
version: Utils.toUTF8(version)
|