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