@bsv/sdk 2.0.16 → 2.1.1
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/README.md +7 -7
- package/dist/cjs/package.json +14 -13
- package/dist/cjs/src/auth/Peer.js +8 -13
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +4 -7
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +32 -32
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +4 -4
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +29 -34
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +9 -4
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +12 -12
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/identity/ContactsManager.js +172 -232
- package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
- package/dist/cjs/src/identity/IdentityClient.js +122 -55
- package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
- package/dist/cjs/src/kvstore/GlobalKVStore.js +30 -31
- package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/cjs/src/kvstore/LocalKVStore.js +9 -9
- package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
- package/dist/cjs/src/kvstore/kvStoreInterpreter.js +2 -2
- package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +1 -1
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/overlay-tools/Historian.js +1 -1
- package/dist/cjs/src/overlay-tools/Historian.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +139 -46
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +75 -146
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +2 -2
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +164 -148
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +17 -15
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +12 -7
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +140 -56
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +8 -8
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js +3 -3
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +36 -40
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +4 -4
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +4 -4
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +10 -14
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReaderUint8Array.js +6 -6
- package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +2 -2
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Secp256r1.js +2 -1
- package/dist/cjs/src/primitives/Secp256r1.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +8 -8
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +20 -21
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +39 -46
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/registry/RegistryClient.js +31 -23
- package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
- package/dist/cjs/src/remittance/RemittanceManager.js +19 -18
- package/dist/cjs/src/remittance/RemittanceManager.js.map +1 -1
- package/dist/cjs/src/remittance/modules/BasicBRC29.js.map +1 -1
- package/dist/cjs/src/script/Script.js +93 -170
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/ScriptEvaluationError.js +2 -2
- package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +14 -12
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +22 -18
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +2 -4
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/storage/StorageDownloader.js +42 -9
- package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +1 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +239 -192
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefConstants.js +19 -0
- package/dist/cjs/src/transaction/BeefConstants.js.map +1 -0
- package/dist/cjs/src/transaction/BeefTx.js +12 -12
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +4 -4
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +49 -52
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/http/BinaryFetchClient.js +9 -9
- package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +9 -9
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/WalletError.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -4
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +9 -9
- package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +92 -92
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +387 -711
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +4 -4
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +2 -2
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/src/wallet/validationHelpers.js +9 -9
- package/dist/cjs/src/wallet/validationHelpers.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +25 -13
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +4 -7
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +32 -32
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +4 -4
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +29 -34
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +9 -4
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +12 -12
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/identity/ContactsManager.js +172 -232
- package/dist/esm/src/identity/ContactsManager.js.map +1 -1
- package/dist/esm/src/identity/IdentityClient.js +122 -55
- package/dist/esm/src/identity/IdentityClient.js.map +1 -1
- package/dist/esm/src/kvstore/GlobalKVStore.js +30 -31
- package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/esm/src/kvstore/LocalKVStore.js +9 -9
- package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
- package/dist/esm/src/kvstore/kvStoreInterpreter.js +2 -2
- package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +1 -1
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/overlay-tools/Historian.js +1 -1
- package/dist/esm/src/overlay-tools/Historian.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +139 -46
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +74 -146
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +2 -2
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +167 -154
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +17 -15
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +12 -7
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +140 -56
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +8 -8
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js +3 -3
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +36 -40
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +4 -4
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +4 -4
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +10 -14
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReaderUint8Array.js +6 -6
- package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +1 -1
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Secp256r1.js +2 -1
- package/dist/esm/src/primitives/Secp256r1.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +8 -8
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +20 -21
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +39 -48
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/registry/RegistryClient.js +31 -23
- package/dist/esm/src/registry/RegistryClient.js.map +1 -1
- package/dist/esm/src/remittance/RemittanceManager.js +19 -18
- package/dist/esm/src/remittance/RemittanceManager.js.map +1 -1
- package/dist/esm/src/remittance/modules/BasicBRC29.js.map +1 -1
- package/dist/esm/src/script/Script.js +93 -170
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/ScriptEvaluationError.js +2 -2
- package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -1
- package/dist/esm/src/script/Spend.js +14 -12
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +4 -3
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +2 -4
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/storage/StorageDownloader.js +1 -1
- package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
- package/dist/esm/src/totp/totp.js +1 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +229 -186
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefConstants.js +16 -0
- package/dist/esm/src/transaction/BeefConstants.js.map +1 -0
- package/dist/esm/src/transaction/BeefTx.js +3 -3
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +4 -4
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +49 -52
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/http/BinaryFetchClient.js +9 -9
- package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +9 -9
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/ReactNativeWebView.js +9 -9
- package/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +92 -92
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +387 -711
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +4 -4
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +2 -2
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/src/wallet/validationHelpers.js +9 -9
- package/dist/esm/src/wallet/validationHelpers.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts +13 -0
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/identity/ContactsManager.d.ts +18 -0
- package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
- package/dist/types/src/identity/IdentityClient.d.ts +47 -8
- package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
- package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +59 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +18 -3
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +13 -3
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +3 -3
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts +3 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts +2 -2
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +2 -1
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Secp256r1.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +2 -4
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/registry/RegistryClient.d.ts.map +1 -1
- package/dist/types/src/remittance/RemittanceManager.d.ts.map +1 -1
- package/dist/types/src/remittance/modules/BasicBRC29.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +15 -8
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +3 -1
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +46 -8
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefConstants.d.ts +15 -0
- package/dist/types/src/transaction/BeefConstants.d.ts.map +1 -0
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +2 -2
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +7 -7
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +7 -7
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +36 -7
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +8 -8
- 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 +3 -3
- package/docs/reference/kvstore.md +1 -2
- package/docs/reference/primitives.md +0 -1
- package/docs/reference/script.md +0 -7
- package/docs/reference/transaction.md +2 -2
- package/package.json +29 -28
- package/src/auth/Peer.ts +26 -13
- package/src/auth/SessionManager.ts +4 -7
- package/src/auth/certificates/MasterCertificate.ts +1 -1
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -1
- package/src/auth/clients/AuthFetch.ts +41 -41
- package/src/auth/transports/SimplifiedFetchTransport.ts +4 -4
- package/src/compat/ECIES.ts +29 -34
- package/src/compat/HD.ts +10 -5
- package/src/compat/Mnemonic.ts +11 -11
- package/src/compat/__tests/HD.test.ts +19 -0
- package/src/identity/ContactsManager.ts +194 -257
- package/src/identity/IdentityClient.ts +155 -66
- package/src/identity/__tests/IdentityClient.test.ts +25 -1
- package/src/kvstore/GlobalKVStore.ts +31 -32
- package/src/kvstore/LocalKVStore.ts +8 -8
- package/src/kvstore/kvStoreInterpreter.ts +2 -2
- package/src/messages/SignedMessage.ts +1 -1
- package/src/overlay-tools/Historian.ts +1 -1
- package/src/overlay-tools/LookupResolver.ts +182 -45
- package/src/overlay-tools/SHIPBroadcaster.ts +92 -168
- package/src/primitives/AESGCM.ts +2 -2
- package/src/primitives/BigNumber.ts +122 -113
- package/src/primitives/Curve.ts +16 -15
- package/src/primitives/ECDSA.ts +10 -8
- package/src/primitives/Hash.ts +152 -53
- package/src/primitives/JacobianPoint.ts +13 -11
- package/src/primitives/K256.ts +3 -3
- package/src/primitives/Point.ts +35 -38
- package/src/primitives/PrivateKey.ts +3 -3
- package/src/primitives/PublicKey.ts +3 -3
- package/src/primitives/Random.ts +11 -14
- package/src/primitives/ReaderUint8Array.ts +7 -7
- package/src/primitives/Schnorr.ts +2 -1
- package/src/primitives/Secp256r1.ts +2 -1
- package/src/primitives/Signature.ts +8 -8
- package/src/primitives/TransactionSignature.ts +16 -16
- package/src/primitives/utils.ts +37 -47
- package/src/registry/RegistryClient.ts +25 -25
- package/src/remittance/RemittanceManager.ts +17 -18
- package/src/remittance/modules/BasicBRC29.ts +2 -5
- package/src/script/Script.ts +114 -170
- package/src/script/ScriptEvaluationError.ts +2 -2
- package/src/script/Spend.ts +14 -15
- package/src/script/templates/PushDrop.ts +5 -3
- package/src/script/templates/RPuzzle.ts +2 -4
- package/src/storage/StorageDownloader.ts +1 -1
- package/src/totp/totp.ts +1 -1
- package/src/transaction/Beef.ts +241 -203
- package/src/transaction/BeefConstants.ts +16 -0
- package/src/transaction/BeefTx.ts +3 -3
- package/src/transaction/MerklePath.ts +4 -4
- package/src/transaction/Transaction.ts +48 -51
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +1 -1
- package/src/transaction/http/BinaryFetchClient.ts +8 -8
- package/src/transaction/http/DefaultHttpClient.ts +8 -8
- package/src/wallet/CachedKeyDeriver.ts +8 -6
- package/src/wallet/KeyDeriver.ts +1 -1
- package/src/wallet/Wallet.interfaces.ts +2 -4
- package/src/wallet/WalletClient.ts +8 -8
- package/src/wallet/WalletError.ts +1 -1
- package/src/wallet/__tests/WalletClient.substrate.test.ts +10 -6
- package/src/wallet/substrates/HTTPWalletJSON.ts +22 -21
- package/src/wallet/substrates/ReactNativeWebView.ts +9 -9
- package/src/wallet/substrates/WalletWireProcessor.ts +83 -83
- package/src/wallet/substrates/WalletWireTransceiver.ts +528 -938
- package/src/wallet/substrates/XDM.ts +4 -4
- package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +38 -25
- package/src/wallet/substrates/__tests/ReactNativeWebView.test.ts +174 -0
- package/src/wallet/substrates/__tests/window.CWI.test.ts +256 -0
- package/src/wallet/substrates/window.CWI.ts +10 -10
- package/src/wallet/validationHelpers.ts +9 -9
- package/docs/swagger/dist/LICENSE +0 -21
- package/docs/swagger/dist/favicon-16x16.png +0 -0
- package/docs/swagger/dist/favicon-32x32.png +0 -0
- package/docs/swagger/dist/index.css +0 -16
- package/docs/swagger/dist/oauth2-redirect.html +0 -79
- package/docs/swagger/dist/swagger-initializer.js +0 -20
- package/docs/swagger/dist/swagger-ui-bundle.js +0 -2
- package/docs/swagger/dist/swagger-ui-bundle.js.map +0 -1
- package/docs/swagger/dist/swagger-ui-es-bundle-core.js +0 -3
- package/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +0 -1
- package/docs/swagger/dist/swagger-ui-es-bundle.js +0 -2
- package/docs/swagger/dist/swagger-ui-es-bundle.js.map +0 -1
- package/docs/swagger/dist/swagger-ui-standalone-preset.js +0 -2
- package/docs/swagger/dist/swagger-ui-standalone-preset.js.map +0 -1
- package/docs/swagger/dist/swagger-ui.css +0 -3
- package/docs/swagger/dist/swagger-ui.css.map +0 -1
- package/docs/swagger/dist/swagger-ui.js +0 -2
- package/docs/swagger/dist/swagger-ui.js.map +0 -1
package/src/compat/ECIES.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { toArray, toHex, encode } from '../primitives/utils.js'
|
|
|
9
9
|
function AES (key): void {
|
|
10
10
|
if (this._tables[0][0][0] === 0) this._precompute()
|
|
11
11
|
|
|
12
|
-
let tmp
|
|
12
|
+
let tmp
|
|
13
13
|
const sbox = this._tables[0][4]
|
|
14
14
|
const decTable = this._tables[1]
|
|
15
15
|
const keyLen = key.length
|
|
@@ -19,7 +19,9 @@ function AES (key): void {
|
|
|
19
19
|
throw new Error('invalid aes key size')
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
const encKey = key.slice(0)
|
|
23
|
+
const decKey = []
|
|
24
|
+
this._key = [encKey, decKey]
|
|
23
25
|
|
|
24
26
|
// schedule encryption keys
|
|
25
27
|
let i: number
|
|
@@ -46,7 +48,7 @@ function AES (key): void {
|
|
|
46
48
|
|
|
47
49
|
// schedule decryption keys
|
|
48
50
|
for (let j = 0; i > 0; j++, i--) {
|
|
49
|
-
tmp = encKey[(j & 3)
|
|
51
|
+
tmp = encKey[(j & 3) === 0 ? i - 4 : i]
|
|
50
52
|
if (i <= 4 || j < 4) {
|
|
51
53
|
decKey[j] = tmp
|
|
52
54
|
} else {
|
|
@@ -127,10 +129,11 @@ AES.prototype = {
|
|
|
127
129
|
|
|
128
130
|
// Compute double and third tables
|
|
129
131
|
for (i = 0; i < 256; i++) {
|
|
130
|
-
|
|
132
|
+
d[i] = (i << 1) ^ ((i >> 7) * 283)
|
|
133
|
+
th[d[i] ^ i] = i
|
|
131
134
|
}
|
|
132
135
|
|
|
133
|
-
for (x = xInv = 0; sbox[x] === 0; x ^= (x2
|
|
136
|
+
for (x = xInv = 0; sbox[x] === 0; x ^= (x2 === 0 ? 1 : x2), xInv = th[xInv] === 0 ? 1 : th[xInv]) {
|
|
134
137
|
// Compute sbox
|
|
135
138
|
s = xInv ^ (xInv << 1) ^ (xInv << 2) ^ (xInv << 3) ^ (xInv << 4)
|
|
136
139
|
s = (s >> 8) ^ (s & 255) ^ 99
|
|
@@ -138,7 +141,9 @@ AES.prototype = {
|
|
|
138
141
|
sboxInv[s] = x
|
|
139
142
|
|
|
140
143
|
// Compute MixColumns
|
|
141
|
-
|
|
144
|
+
x2 = d[x]
|
|
145
|
+
x4 = d[x2]
|
|
146
|
+
x8 = d[x4]
|
|
142
147
|
tDec = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)
|
|
143
148
|
tEnc = (d[s] * 0x101) ^ (s * 0x1010100)
|
|
144
149
|
|
|
@@ -307,7 +312,7 @@ class CBC {
|
|
|
307
312
|
}
|
|
308
313
|
|
|
309
314
|
public static blockBufs2Buf (blockBufs: number[][]): number[] {
|
|
310
|
-
let last = blockBufs
|
|
315
|
+
let last = blockBufs.at(-1)
|
|
311
316
|
last = CBC.pkcs7Unpad(last)
|
|
312
317
|
blockBufs[blockBufs.length - 1] = last
|
|
313
318
|
|
|
@@ -319,7 +324,7 @@ class CBC {
|
|
|
319
324
|
public static encrypt (
|
|
320
325
|
messageBuf: number[],
|
|
321
326
|
ivBuf: number[],
|
|
322
|
-
blockCipher: any
|
|
327
|
+
blockCipher: any,
|
|
323
328
|
cipherKeyBuf: number[]
|
|
324
329
|
): number[] {
|
|
325
330
|
const blockSize = ivBuf.length * 8
|
|
@@ -337,7 +342,7 @@ class CBC {
|
|
|
337
342
|
public static decrypt (
|
|
338
343
|
encBuf: number[],
|
|
339
344
|
ivBuf: number[],
|
|
340
|
-
blockCipher: any
|
|
345
|
+
blockCipher: any,
|
|
341
346
|
cipherKeyBuf: number[]
|
|
342
347
|
): number[] {
|
|
343
348
|
const bytesize = ivBuf.length
|
|
@@ -358,7 +363,7 @@ class CBC {
|
|
|
358
363
|
public static encryptBlock (
|
|
359
364
|
blockBuf: number[],
|
|
360
365
|
ivBuf: number[],
|
|
361
|
-
blockCipher: any
|
|
366
|
+
blockCipher: any,
|
|
362
367
|
cipherKeyBuf: number[]
|
|
363
368
|
): number[] {
|
|
364
369
|
const xorbuf = CBC.xorBufs(blockBuf, ivBuf)
|
|
@@ -369,7 +374,7 @@ class CBC {
|
|
|
369
374
|
public static decryptBlock (
|
|
370
375
|
encBuf: number[],
|
|
371
376
|
ivBuf: number[],
|
|
372
|
-
blockCipher: any
|
|
377
|
+
blockCipher: any,
|
|
373
378
|
cipherKeyBuf: number[]
|
|
374
379
|
): number[] {
|
|
375
380
|
const xorbuf = blockCipher.decrypt(encBuf, cipherKeyBuf)
|
|
@@ -380,13 +385,12 @@ class CBC {
|
|
|
380
385
|
public static encryptBlocks (
|
|
381
386
|
blockBufs: number[][],
|
|
382
387
|
ivBuf: number[],
|
|
383
|
-
blockCipher: any
|
|
388
|
+
blockCipher: any,
|
|
384
389
|
cipherKeyBuf: number[]
|
|
385
390
|
): number[][] {
|
|
386
391
|
const encBufs: number[][] = []
|
|
387
392
|
|
|
388
|
-
for (
|
|
389
|
-
const blockBuf = blockBufs[i]
|
|
393
|
+
for (const blockBuf of blockBufs) {
|
|
390
394
|
const encBuf = CBC.encryptBlock(
|
|
391
395
|
blockBuf,
|
|
392
396
|
ivBuf,
|
|
@@ -405,13 +409,12 @@ class CBC {
|
|
|
405
409
|
public static decryptBlocks (
|
|
406
410
|
encBufs: number[][],
|
|
407
411
|
ivBuf: number[],
|
|
408
|
-
blockCipher: any
|
|
412
|
+
blockCipher: any,
|
|
409
413
|
cipherKeyBuf: number[]
|
|
410
414
|
): number[][] {
|
|
411
415
|
const blockBufs: number[][] = []
|
|
412
416
|
|
|
413
|
-
for (
|
|
414
|
-
const encBuf = encBufs[i]
|
|
417
|
+
for (const encBuf of encBufs) {
|
|
415
418
|
const blockBuf = CBC.decryptBlock(
|
|
416
419
|
encBuf,
|
|
417
420
|
ivBuf,
|
|
@@ -437,7 +440,7 @@ class CBC {
|
|
|
437
440
|
}
|
|
438
441
|
|
|
439
442
|
public static pkcs7Unpad (paddedbuf: number[]): number[] {
|
|
440
|
-
const padlength = paddedbuf
|
|
443
|
+
const padlength = paddedbuf.at(-1)
|
|
441
444
|
const padbuf = paddedbuf.slice(
|
|
442
445
|
paddedbuf.length - padlength,
|
|
443
446
|
paddedbuf.length
|
|
@@ -548,9 +551,7 @@ export default class ECIES {
|
|
|
548
551
|
noKey = false
|
|
549
552
|
): number[] {
|
|
550
553
|
let Rbuf: string | number[] | null = null
|
|
551
|
-
|
|
552
|
-
fromPrivateKey = PrivateKey.fromRandom()
|
|
553
|
-
}
|
|
554
|
+
fromPrivateKey ??= PrivateKey.fromRandom()
|
|
554
555
|
if (!noKey) {
|
|
555
556
|
Rbuf = fromPrivateKey.toPublicKey().encode(true)
|
|
556
557
|
}
|
|
@@ -603,14 +604,12 @@ export default class ECIES {
|
|
|
603
604
|
}
|
|
604
605
|
}
|
|
605
606
|
|
|
606
|
-
if (Rbuf
|
|
607
|
-
if (fromPublicKey == null) {
|
|
608
|
-
fromPublicKey = PublicKey.fromString(toHex(Rbuf))
|
|
609
|
-
}
|
|
610
|
-
} else {
|
|
607
|
+
if (Rbuf === null) {
|
|
611
608
|
if (fromPublicKey == null) {
|
|
612
609
|
throw new Error('Sender public key is required')
|
|
613
610
|
}
|
|
611
|
+
} else {
|
|
612
|
+
fromPublicKey ??= PublicKey.fromString(toHex(Rbuf))
|
|
614
613
|
}
|
|
615
614
|
|
|
616
615
|
const { iv, kE, kM } = ECIES.ivkEkM(toPrivateKey, fromPublicKey)
|
|
@@ -644,12 +643,8 @@ export default class ECIES {
|
|
|
644
643
|
fromPrivateKey?: PrivateKey,
|
|
645
644
|
ivBuf?: number[]
|
|
646
645
|
): number[] {
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
}
|
|
650
|
-
if (ivBuf == null) {
|
|
651
|
-
ivBuf = Random(16)
|
|
652
|
-
}
|
|
646
|
+
fromPrivateKey ??= PrivateKey.fromRandom()
|
|
647
|
+
ivBuf ??= Random(16)
|
|
653
648
|
const r = fromPrivateKey
|
|
654
649
|
const RPublicKey = fromPrivateKey.toPublicKey()
|
|
655
650
|
const RBuf = RPublicKey.encode(true) as number[]
|
|
@@ -689,8 +684,8 @@ export default class ECIES {
|
|
|
689
684
|
const kEkM = Hash.sha512(Sbuf)
|
|
690
685
|
const kE = kEkM.slice(0, 32)
|
|
691
686
|
const kM = kEkM.slice(32, 64)
|
|
692
|
-
const c = encBuf.slice(33,
|
|
693
|
-
const d = encBuf.slice(
|
|
687
|
+
const c = encBuf.slice(33, -32)
|
|
688
|
+
const d = encBuf.slice(-32)
|
|
694
689
|
const d2 = Hash.sha256hmac(kM, c)
|
|
695
690
|
if (toHex(d) !== toHex(d2)) {
|
|
696
691
|
throw new Error('Invalid checksum')
|
package/src/compat/HD.ts
CHANGED
|
@@ -230,13 +230,18 @@ export default class HD {
|
|
|
230
230
|
continue
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
const childMatch = /^(\d+)('?)$/.exec(c)
|
|
234
|
+
if (childMatch === null) {
|
|
234
235
|
throw new Error('invalid path')
|
|
235
236
|
}
|
|
236
237
|
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
const childIndexValue = Number.parseInt(childMatch[1], 10)
|
|
239
|
+
if (childIndexValue > 0x7fffffff) {
|
|
240
|
+
throw new Error('invalid path')
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const usePrivate = childMatch[2] === "'"
|
|
244
|
+
let childIndex = childIndexValue
|
|
240
245
|
|
|
241
246
|
if (usePrivate) {
|
|
242
247
|
childIndex += 0x80000000
|
|
@@ -256,7 +261,7 @@ export default class HD {
|
|
|
256
261
|
*/
|
|
257
262
|
public deriveChild (i: number): HD {
|
|
258
263
|
if (typeof i !== 'number') {
|
|
259
|
-
throw new
|
|
264
|
+
throw new TypeError('i must be a number')
|
|
260
265
|
}
|
|
261
266
|
|
|
262
267
|
const ibc: number[] = []
|
package/src/compat/Mnemonic.ts
CHANGED
|
@@ -35,12 +35,12 @@ export default class Mnemonic {
|
|
|
35
35
|
*/
|
|
36
36
|
public toBinary (): number[] {
|
|
37
37
|
const bw = new Writer()
|
|
38
|
-
if (this.mnemonic
|
|
38
|
+
if (this.mnemonic === '') {
|
|
39
|
+
bw.writeVarIntNum(0)
|
|
40
|
+
} else {
|
|
39
41
|
const buf = toArray(this.mnemonic, 'utf8')
|
|
40
42
|
bw.writeVarIntNum(buf.length)
|
|
41
43
|
bw.write(buf)
|
|
42
|
-
} else {
|
|
43
|
-
bw.writeVarIntNum(0)
|
|
44
44
|
}
|
|
45
45
|
if (this.seed.length > 0) {
|
|
46
46
|
bw.writeVarIntNum(this.seed.length)
|
|
@@ -76,7 +76,7 @@ export default class Mnemonic {
|
|
|
76
76
|
* @throws {Error} If the bit length is not a multiple of 32 or is less than 128.
|
|
77
77
|
*/
|
|
78
78
|
public fromRandom (bits?: number): this {
|
|
79
|
-
if (bits === undefined || bits === null || isNaN(bits) || bits === 0) {
|
|
79
|
+
if (bits === undefined || bits === null || Number.isNaN(bits) || bits === 0) {
|
|
80
80
|
bits = 128
|
|
81
81
|
}
|
|
82
82
|
if (bits % 32 !== 0) {
|
|
@@ -179,8 +179,8 @@ export default class Mnemonic {
|
|
|
179
179
|
const hash = Hash.sha256(buf)
|
|
180
180
|
let bin = ''
|
|
181
181
|
const bits = buf.length * 8
|
|
182
|
-
for (
|
|
183
|
-
bin = bin + ('00000000' +
|
|
182
|
+
for (const byte of buf) {
|
|
183
|
+
bin = bin + ('00000000' + byte.toString(2)).slice(-8)
|
|
184
184
|
}
|
|
185
185
|
let hashbits = hash[0].toString(2)
|
|
186
186
|
hashbits = ('00000000' + hashbits).slice(-8).slice(0, bits / 32)
|
|
@@ -198,7 +198,7 @@ export default class Mnemonic {
|
|
|
198
198
|
if (mnemonic !== '') {
|
|
199
199
|
mnemonic = mnemonic + this.Wordlist.space
|
|
200
200
|
}
|
|
201
|
-
const wi = parseInt(bin.slice(i * 11, (i + 1) * 11), 2)
|
|
201
|
+
const wi = Number.parseInt(bin.slice(i * 11, (i + 1) * 11), 2)
|
|
202
202
|
mnemonic = mnemonic + this.Wordlist.value[wi]
|
|
203
203
|
}
|
|
204
204
|
|
|
@@ -218,8 +218,8 @@ export default class Mnemonic {
|
|
|
218
218
|
// confirm no invalid words
|
|
219
219
|
const words = mnemonic.split(this.Wordlist.space)
|
|
220
220
|
let bin = ''
|
|
221
|
-
for (
|
|
222
|
-
const ind = this.Wordlist.value.indexOf(
|
|
221
|
+
for (const word of words) {
|
|
222
|
+
const ind = this.Wordlist.value.indexOf(word)
|
|
223
223
|
if (ind < 0) {
|
|
224
224
|
return false
|
|
225
225
|
}
|
|
@@ -240,7 +240,7 @@ export default class Mnemonic {
|
|
|
240
240
|
const buf: number[] = []
|
|
241
241
|
|
|
242
242
|
for (let i = 0; i < nonhashBits.length / 8; i++) {
|
|
243
|
-
buf.push(parseInt(bin.slice(i * 8, (i + 1) * 8), 2))
|
|
243
|
+
buf.push(Number.parseInt(bin.slice(i * 8, (i + 1) * 8), 2))
|
|
244
244
|
}
|
|
245
245
|
const hash = Hash.sha256(buf.slice(0, nonhashBits.length / 8))
|
|
246
246
|
let expectedHashBits = hash[0].toString(2)
|
|
@@ -266,7 +266,7 @@ export default class Mnemonic {
|
|
|
266
266
|
)
|
|
267
267
|
}
|
|
268
268
|
if (typeof passphrase !== 'string') {
|
|
269
|
-
throw new
|
|
269
|
+
throw new TypeError('passphrase must be a string or undefined')
|
|
270
270
|
}
|
|
271
271
|
mnemonic = mnemonic.normalize('NFKD')
|
|
272
272
|
passphrase = passphrase.normalize('NFKD')
|
|
@@ -394,6 +394,25 @@ describe('HD', () => {
|
|
|
394
394
|
})
|
|
395
395
|
})
|
|
396
396
|
|
|
397
|
+
describe('#derive path validation', () => {
|
|
398
|
+
it('should derive mixed hardened and non-hardened path segments', () => {
|
|
399
|
+
const bip32 = HD.fromString(vector1mPrivate)
|
|
400
|
+
expect(() => bip32.derive("m/0'/0'/2/3/4'/4")).not.toThrow()
|
|
401
|
+
})
|
|
402
|
+
|
|
403
|
+
it('should reject apostrophes that are not trailing hardening markers', () => {
|
|
404
|
+
const bip32 = HD.fromString(vector1mPrivate)
|
|
405
|
+
expect(() => bip32.derive("m/1'2")).toThrow('invalid path')
|
|
406
|
+
expect(() => bip32.derive("m/1''")).toThrow('invalid path')
|
|
407
|
+
})
|
|
408
|
+
|
|
409
|
+
it('should reject child indexes outside the non-hardened range', () => {
|
|
410
|
+
const bip32 = HD.fromString(vector1mPrivate)
|
|
411
|
+
expect(() => bip32.derive('m/2147483648')).toThrow('invalid path')
|
|
412
|
+
expect(() => bip32.derive("m/2147483648'")).toThrow('invalid path')
|
|
413
|
+
})
|
|
414
|
+
})
|
|
415
|
+
|
|
397
416
|
describe('#toString', () => {
|
|
398
417
|
const bip32 = new HD()
|
|
399
418
|
bip32.fromRandom()
|