@bsv/sdk 2.1.0 → 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 +1 -1
- 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/package.json +1 -1
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const BufferCtor = typeof globalThis
|
|
3
|
+
const BufferCtor = typeof globalThis === 'undefined' ? undefined : globalThis.Buffer;
|
|
4
4
|
const CAN_USE_BUFFER = BufferCtor != null && typeof BufferCtor.from === 'function';
|
|
5
5
|
const HEX_CHAR_TO_VALUE = new Int8Array(256).fill(-1);
|
|
6
6
|
for (let i = 0; i < 10; i++) {
|
|
@@ -76,7 +76,7 @@ class BigNumber {
|
|
|
76
76
|
let newMagnitude = 0n;
|
|
77
77
|
const len = newWords.length > 0 ? newWords.length : 1;
|
|
78
78
|
for (let i = len - 1; i >= 0; i--) {
|
|
79
|
-
const wordVal = newWords[i]
|
|
79
|
+
const wordVal = newWords[i] ?? 0;
|
|
80
80
|
newMagnitude = (newMagnitude << BigNumber.WORD_SIZE_BIGINT) | BigInt(wordVal & Number(BigNumber.WORD_MASK));
|
|
81
81
|
}
|
|
82
82
|
this._magnitude = newMagnitude;
|
|
@@ -137,8 +137,7 @@ class BigNumber {
|
|
|
137
137
|
this._sign = 0;
|
|
138
138
|
this._nominalWordLength = 1;
|
|
139
139
|
this.red = null;
|
|
140
|
-
|
|
141
|
-
number = 0;
|
|
140
|
+
number ?? (number = 0);
|
|
142
141
|
if (number === null) {
|
|
143
142
|
this._initializeState(0n, 0);
|
|
144
143
|
return;
|
|
@@ -163,83 +162,93 @@ class BigNumber {
|
|
|
163
162
|
return;
|
|
164
163
|
}
|
|
165
164
|
if (typeof number === 'string') {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
this._initFromString(number, effectiveBase, effectiveEndian);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (number !== 0) {
|
|
169
|
+
this.assert(false, 'Unsupported input type for BigNumber constructor');
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this._initializeState(0n, 0);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
_initFromString(number, effectiveBase, effectiveEndian) {
|
|
176
|
+
if (effectiveBase === 'hex')
|
|
177
|
+
effectiveBase = 16;
|
|
178
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); required for integer base validation.
|
|
179
|
+
this.assert(typeof effectiveBase === 'number' && effectiveBase === (effectiveBase | 0) && effectiveBase >= 2 && effectiveBase <= 36, 'Base must be an integer between 2 and 36');
|
|
180
|
+
const originalNumberStr = number.toString().replace(/\s+/g, '');
|
|
181
|
+
let start = 0;
|
|
182
|
+
let sign = 0;
|
|
183
|
+
if (originalNumberStr.startsWith('-')) {
|
|
184
|
+
start++;
|
|
185
|
+
sign = 1;
|
|
186
|
+
}
|
|
187
|
+
else if (originalNumberStr.startsWith('+')) {
|
|
188
|
+
start++;
|
|
189
|
+
}
|
|
190
|
+
const numStr = originalNumberStr.substring(start);
|
|
191
|
+
if (numStr.length === 0) {
|
|
192
|
+
this._initializeState(0n, (sign === 1 && originalNumberStr.startsWith('-')) ? 1 : 0);
|
|
193
|
+
this.normSign();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (effectiveBase === 16) {
|
|
197
|
+
this._initFromHexString(numStr, sign, effectiveEndian);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this._initFromNonHexString(numStr, effectiveBase, sign, effectiveEndian);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
_initFromHexString(numStr, sign, effectiveEndian) {
|
|
204
|
+
if (effectiveEndian === 'le') {
|
|
205
|
+
const bytes = [];
|
|
206
|
+
let hexStr = numStr;
|
|
207
|
+
if (hexStr.length % 2 !== 0)
|
|
208
|
+
hexStr = '0' + hexStr;
|
|
209
|
+
for (let i = 0; i < hexStr.length; i += 2) {
|
|
210
|
+
const byteHex = hexStr.substring(i, i + 2);
|
|
211
|
+
const byteVal = Number.parseInt(byteHex, 16);
|
|
212
|
+
if (Number.isNaN(byteVal))
|
|
213
|
+
throw new Error('Invalid character in ' + hexStr);
|
|
214
|
+
bytes.push(byteVal);
|
|
175
215
|
}
|
|
176
|
-
|
|
177
|
-
|
|
216
|
+
this.initArray(bytes, 'le');
|
|
217
|
+
this._sign = sign;
|
|
218
|
+
this.normSign();
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
let tempMagnitude;
|
|
222
|
+
try {
|
|
223
|
+
tempMagnitude = BigInt('0x' + numStr);
|
|
178
224
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
this._initializeState(0n, (sign === 1 && originalNumberStr.startsWith('-')) ? 1 : 0);
|
|
182
|
-
this.normSign();
|
|
183
|
-
return;
|
|
225
|
+
catch (_bigIntParseError) {
|
|
226
|
+
throw new Error('Invalid character in ' + numStr);
|
|
184
227
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
this.initArray(bytes, 'le');
|
|
200
|
-
this._sign = sign;
|
|
201
|
-
this.normSign();
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
try {
|
|
206
|
-
tempMagnitude = BigInt('0x' + numStr);
|
|
207
|
-
}
|
|
208
|
-
catch (e) {
|
|
209
|
-
throw new Error('Invalid character in ' + numStr);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
this._initializeState(tempMagnitude, sign);
|
|
228
|
+
this._initializeState(tempMagnitude, sign);
|
|
229
|
+
this.normSign();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
_initFromNonHexString(numStr, base, sign, effectiveEndian) {
|
|
233
|
+
try {
|
|
234
|
+
this._parseBaseString(numStr, base);
|
|
235
|
+
this._sign = sign;
|
|
236
|
+
this.normSign();
|
|
237
|
+
if (effectiveEndian === 'le') {
|
|
238
|
+
const currentSign = this._sign;
|
|
239
|
+
this.initArray(this.toArray('be'), 'le');
|
|
240
|
+
this._sign = currentSign;
|
|
213
241
|
this.normSign();
|
|
214
242
|
}
|
|
215
|
-
else {
|
|
216
|
-
try {
|
|
217
|
-
this._parseBaseString(numStr, effectiveBase);
|
|
218
|
-
this._sign = sign;
|
|
219
|
-
this.normSign();
|
|
220
|
-
if (effectiveEndian === 'le') {
|
|
221
|
-
const currentSign = this._sign;
|
|
222
|
-
this.initArray(this.toArray('be'), 'le');
|
|
223
|
-
this._sign = currentSign;
|
|
224
|
-
this.normSign();
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
catch (err) {
|
|
228
|
-
const error = err;
|
|
229
|
-
if (error.message.includes('Invalid character in string') ||
|
|
230
|
-
error.message.includes('Invalid digit for base') ||
|
|
231
|
-
error.message.startsWith('Invalid character:')) {
|
|
232
|
-
throw new Error('Invalid character');
|
|
233
|
-
}
|
|
234
|
-
throw error;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else if (number !== 0) {
|
|
239
|
-
this.assert(false, 'Unsupported input type for BigNumber constructor');
|
|
240
243
|
}
|
|
241
|
-
|
|
242
|
-
|
|
244
|
+
catch (err) {
|
|
245
|
+
const error = err;
|
|
246
|
+
if (error.message.includes('Invalid character in string') ||
|
|
247
|
+
error.message.includes('Invalid digit for base') ||
|
|
248
|
+
error.message.startsWith('Invalid character:')) {
|
|
249
|
+
throw new Error('Invalid character');
|
|
250
|
+
}
|
|
251
|
+
throw error;
|
|
243
252
|
}
|
|
244
253
|
}
|
|
245
254
|
_bigIntToStringInBase(num, base) {
|
|
@@ -294,7 +303,7 @@ class BigNumber {
|
|
|
294
303
|
_parseBaseWord(str, base) {
|
|
295
304
|
let r = 0;
|
|
296
305
|
for (let i = 0; i < str.length; i++) {
|
|
297
|
-
const charCode = str.
|
|
306
|
+
const charCode = str.codePointAt(i);
|
|
298
307
|
let digitVal;
|
|
299
308
|
if (charCode >= 48 && charCode <= 57)
|
|
300
309
|
digitVal = charCode - 48;
|
|
@@ -347,8 +356,8 @@ class BigNumber {
|
|
|
347
356
|
}
|
|
348
357
|
let magnitude = 0n;
|
|
349
358
|
if (endian === 'be') {
|
|
350
|
-
for (
|
|
351
|
-
magnitude = (magnitude << 8n) | BigInt(
|
|
359
|
+
for (const byte of bytes)
|
|
360
|
+
magnitude = (magnitude << 8n) | BigInt(byte & 0xff);
|
|
352
361
|
}
|
|
353
362
|
else {
|
|
354
363
|
for (let i = bytes.length - 1; i >= 0; i--)
|
|
@@ -366,9 +375,10 @@ class BigNumber {
|
|
|
366
375
|
return this;
|
|
367
376
|
}
|
|
368
377
|
strip() { this._finishInitialization(); return this.normSign(); }
|
|
369
|
-
normSign() { if (this._magnitude === 0n)
|
|
370
|
-
this._sign = 0;
|
|
371
|
-
|
|
378
|
+
normSign() { if (this._magnitude === 0n) {
|
|
379
|
+
this._sign = 0;
|
|
380
|
+
} return this; }
|
|
381
|
+
inspect() { return (this.red === null ? '<BN: ' : '<BN-R: ') + this.toString(16) + '>'; }
|
|
372
382
|
_getMinimalHex() {
|
|
373
383
|
if (this._magnitude === 0n)
|
|
374
384
|
return '0';
|
|
@@ -428,21 +438,7 @@ class BigNumber {
|
|
|
428
438
|
const remainder = tempMag % groupBaseBigInt;
|
|
429
439
|
tempMag /= groupBaseBigInt;
|
|
430
440
|
const chunkStr = this._bigIntToStringInBase(remainder, base);
|
|
431
|
-
|
|
432
|
-
const zerosToPrepend = groupSize - chunkStr.length;
|
|
433
|
-
if (zerosToPrepend > 0 && zerosToPrepend < BigNumber.zeros.length) {
|
|
434
|
-
out = BigNumber.zeros[zerosToPrepend] + chunkStr + out;
|
|
435
|
-
}
|
|
436
|
-
else if (zerosToPrepend > 0) {
|
|
437
|
-
out = '0'.repeat(zerosToPrepend) + chunkStr + out;
|
|
438
|
-
}
|
|
439
|
-
else {
|
|
440
|
-
out = chunkStr + out;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
else {
|
|
444
|
-
out = chunkStr + out;
|
|
445
|
-
}
|
|
441
|
+
out = (tempMag > 0n ? this._zeroPaddedChunk(chunkStr, groupSize) : chunkStr) + out;
|
|
446
442
|
}
|
|
447
443
|
if (padding > 0) {
|
|
448
444
|
while (out.length < padding)
|
|
@@ -450,6 +446,15 @@ class BigNumber {
|
|
|
450
446
|
}
|
|
451
447
|
return (this._sign === 1 ? '-' : '') + out;
|
|
452
448
|
}
|
|
449
|
+
/** Returns a chunk string zero-padded to groupSize (used by toBaseString for interior chunks). */
|
|
450
|
+
_zeroPaddedChunk(chunkStr, groupSize) {
|
|
451
|
+
const zerosToPrepend = groupSize - chunkStr.length;
|
|
452
|
+
if (zerosToPrepend <= 0)
|
|
453
|
+
return chunkStr;
|
|
454
|
+
if (zerosToPrepend < BigNumber.zeros.length)
|
|
455
|
+
return BigNumber.zeros[zerosToPrepend] + chunkStr;
|
|
456
|
+
return '0'.repeat(zerosToPrepend) + chunkStr;
|
|
457
|
+
}
|
|
453
458
|
/**
|
|
454
459
|
* Converts the BigNumber instance to a JavaScript number.
|
|
455
460
|
* Please note that JavaScript numbers are only precise up to 53 bits.
|
|
@@ -529,8 +534,9 @@ class BigNumber {
|
|
|
529
534
|
* @method bitLength
|
|
530
535
|
* @returns The bit length of the BigNumber.
|
|
531
536
|
*/
|
|
532
|
-
bitLength() { if (this._magnitude === 0n)
|
|
533
|
-
return 0;
|
|
537
|
+
bitLength() { if (this._magnitude === 0n) {
|
|
538
|
+
return 0;
|
|
539
|
+
} return this._magnitude.toString(2).length; }
|
|
534
540
|
/**
|
|
535
541
|
* Converts a BigNumber to an array of bits.
|
|
536
542
|
*
|
|
@@ -545,7 +551,7 @@ class BigNumber {
|
|
|
545
551
|
const w = new Array(len);
|
|
546
552
|
const mag = num._magnitude;
|
|
547
553
|
for (let bit = 0; bit < len; bit++) {
|
|
548
|
-
w[bit] = ((mag >> BigInt(bit)) & 1n)
|
|
554
|
+
w[bit] = ((mag >> BigInt(bit)) & 1n) === 0n ? 0 : 1;
|
|
549
555
|
}
|
|
550
556
|
return w;
|
|
551
557
|
}
|
|
@@ -581,8 +587,9 @@ class BigNumber {
|
|
|
581
587
|
* @method byteLength
|
|
582
588
|
* @returns The byte length of the BigNumber.
|
|
583
589
|
*/
|
|
584
|
-
byteLength() { if (this._magnitude === 0n)
|
|
585
|
-
return 0;
|
|
590
|
+
byteLength() { if (this._magnitude === 0n) {
|
|
591
|
+
return 0;
|
|
592
|
+
} return Math.ceil(this.bitLength() / 8); }
|
|
586
593
|
_getSignedValue() { return this._sign === 1 ? -this._magnitude : this._magnitude; }
|
|
587
594
|
_setValueFromSigned(sVal) {
|
|
588
595
|
if (sVal < 0n) {
|
|
@@ -622,8 +629,9 @@ class BigNumber {
|
|
|
622
629
|
}
|
|
623
630
|
isNeg() { return this._sign === 1 && this._magnitude !== 0n; }
|
|
624
631
|
neg() { return this.clone().ineg(); }
|
|
625
|
-
ineg() { if (this._magnitude !== 0n)
|
|
626
|
-
this._sign = this._sign === 1 ? 0 : 1;
|
|
632
|
+
ineg() { if (this._magnitude !== 0n) {
|
|
633
|
+
this._sign = this._sign === 1 ? 0 : 1;
|
|
634
|
+
} return this; }
|
|
627
635
|
_iuop(num, op, isXor = false) {
|
|
628
636
|
const newMag = op(this._magnitude, num._magnitude);
|
|
629
637
|
let targetNominalLength = this._nominalWordLength;
|
|
@@ -642,8 +650,9 @@ class BigNumber {
|
|
|
642
650
|
ior(num) { return this._iop(num, (a, b) => a | b); }
|
|
643
651
|
iand(num) { return this._iop(num, (a, b) => a & b); }
|
|
644
652
|
ixor(num) { return this._iop(num, (a, b) => a ^ b, true); }
|
|
645
|
-
_uop_new(num, opName) { if (this.length >= num.length)
|
|
646
|
-
return this.clone()[opName](num);
|
|
653
|
+
_uop_new(num, opName) { if (this.length >= num.length) {
|
|
654
|
+
return this.clone()[opName](num);
|
|
655
|
+
} return num.clone()[opName](this); }
|
|
647
656
|
or(num) { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuor'); }
|
|
648
657
|
uor(num) { return this._uop_new(num, 'iuor'); }
|
|
649
658
|
and(num) { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuand'); }
|
|
@@ -799,26 +808,28 @@ class BigNumber {
|
|
|
799
808
|
this.assert(!num.isZero(), 'Division by zero');
|
|
800
809
|
if (this.isZero()) {
|
|
801
810
|
const z = new BigNumber(0n);
|
|
802
|
-
return { div: mode
|
|
811
|
+
return { div: mode === 'mod' ? null : z, mod: mode === 'div' ? null : z };
|
|
803
812
|
}
|
|
804
813
|
const tV = this._getSignedValue();
|
|
805
814
|
const nV = num._getSignedValue();
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
if (
|
|
820
|
-
|
|
821
|
-
|
|
815
|
+
const dV = mode !== 'mod' ? tV / nV : null;
|
|
816
|
+
const mV = this._computeMod(tV, nV, mode, positive);
|
|
817
|
+
return { div: this._bigNumberFromSigned(dV), mod: this._bigNumberFromSigned(mV) };
|
|
818
|
+
}
|
|
819
|
+
_computeMod(tV, nV, mode, positive) {
|
|
820
|
+
if (mode === 'div')
|
|
821
|
+
return null;
|
|
822
|
+
let mV = tV % nV;
|
|
823
|
+
if (positive === true && mV < 0n)
|
|
824
|
+
mV += nV < 0n ? -nV : nV;
|
|
825
|
+
return mV;
|
|
826
|
+
}
|
|
827
|
+
_bigNumberFromSigned(v) {
|
|
828
|
+
if (v === null)
|
|
829
|
+
return null;
|
|
830
|
+
const r = new BigNumber(0n);
|
|
831
|
+
r._setValueFromSigned(v);
|
|
832
|
+
return r;
|
|
822
833
|
}
|
|
823
834
|
div(num) {
|
|
824
835
|
return this.divmod(num, 'div', false).div;
|
|
@@ -933,15 +944,21 @@ class BigNumber {
|
|
|
933
944
|
andln(num) { this.assert(num >= 0); return Number(this._magnitude & BigInt(num)); }
|
|
934
945
|
bincn(bit) { this.assert(typeof bit === 'number' && bit >= 0); const BVal = 1n << BigInt(bit); this._setValueFromSigned(this._getSignedValue() + BVal); return this; }
|
|
935
946
|
isZero() { return this._magnitude === 0n; }
|
|
936
|
-
cmpn(num) { this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Number is too big'); const tV = this._getSignedValue(); const nV = BigInt(num); if (tV < nV)
|
|
937
|
-
return -1;
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
return 1;
|
|
947
|
+
cmpn(num) { this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Number is too big'); const tV = this._getSignedValue(); const nV = BigInt(num); if (tV < nV) {
|
|
948
|
+
return -1;
|
|
949
|
+
} if (tV > nV) {
|
|
950
|
+
return 1;
|
|
951
|
+
} return 0; }
|
|
952
|
+
cmp(num) { const tV = this._getSignedValue(); const nV = num._getSignedValue(); if (tV < nV) {
|
|
953
|
+
return -1;
|
|
954
|
+
} if (tV > nV) {
|
|
955
|
+
return 1;
|
|
956
|
+
} return 0; }
|
|
957
|
+
ucmp(num) { if (this._magnitude < num._magnitude) {
|
|
958
|
+
return -1;
|
|
959
|
+
} if (this._magnitude > num._magnitude) {
|
|
960
|
+
return 1;
|
|
961
|
+
} return 0; }
|
|
945
962
|
gtn(num) { return this.cmpn(num) === 1; }
|
|
946
963
|
gt(num) { return this.cmp(num) === 1; }
|
|
947
964
|
gten(num) { return this.cmpn(num) >= 0; }
|
|
@@ -1062,18 +1079,17 @@ class BigNumber {
|
|
|
1062
1079
|
sign = 1;
|
|
1063
1080
|
beBytes[0] &= 0x7f;
|
|
1064
1081
|
}
|
|
1065
|
-
let
|
|
1082
|
+
let hexStr;
|
|
1066
1083
|
if (CAN_USE_BUFFER) {
|
|
1067
|
-
|
|
1068
|
-
magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex);
|
|
1084
|
+
hexStr = BufferCtor.from(beBytes).toString('hex');
|
|
1069
1085
|
}
|
|
1070
1086
|
else {
|
|
1071
|
-
|
|
1087
|
+
hexStr = '';
|
|
1072
1088
|
for (const byte of beBytes) {
|
|
1073
|
-
|
|
1089
|
+
hexStr += byte < 16 ? '0' + byte.toString(16) : byte.toString(16);
|
|
1074
1090
|
}
|
|
1075
|
-
magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex);
|
|
1076
1091
|
}
|
|
1092
|
+
const magnitude = hexStr.length === 0 ? 0n : BigInt('0x' + hexStr);
|
|
1077
1093
|
const r = new BigNumber(0n);
|
|
1078
1094
|
r._initializeState(magnitude, sign);
|
|
1079
1095
|
return r;
|
|
@@ -1095,25 +1111,25 @@ class BigNumber {
|
|
|
1095
1111
|
const byteLen = hex.length / 2;
|
|
1096
1112
|
const bytes = new Array(byteLen);
|
|
1097
1113
|
for (let i = 0, j = 0; i < hex.length; i += 2) {
|
|
1098
|
-
const high = HEX_CHAR_TO_VALUE[hex.
|
|
1099
|
-
const low = HEX_CHAR_TO_VALUE[hex.
|
|
1114
|
+
const high = HEX_CHAR_TO_VALUE[hex.codePointAt(i)];
|
|
1115
|
+
const low = HEX_CHAR_TO_VALUE[hex.codePointAt(i + 1)];
|
|
1100
1116
|
bytes[j++] = ((high & 0xf) << 4) | (low & 0xf);
|
|
1101
1117
|
}
|
|
1102
1118
|
let result;
|
|
1103
1119
|
if (this._sign === 1) {
|
|
1104
|
-
if ((bytes[0] & 0x80)
|
|
1105
|
-
result = [0x80, ...bytes];
|
|
1106
|
-
}
|
|
1107
|
-
else {
|
|
1120
|
+
if ((bytes[0] & 0x80) === 0) {
|
|
1108
1121
|
result = bytes.slice();
|
|
1109
1122
|
result[0] |= 0x80;
|
|
1110
1123
|
}
|
|
1124
|
+
else {
|
|
1125
|
+
result = [0x80, ...bytes];
|
|
1126
|
+
}
|
|
1111
1127
|
}
|
|
1112
|
-
else if ((bytes[0] & 0x80)
|
|
1113
|
-
result =
|
|
1128
|
+
else if ((bytes[0] & 0x80) === 0) {
|
|
1129
|
+
result = bytes.slice();
|
|
1114
1130
|
}
|
|
1115
1131
|
else {
|
|
1116
|
-
result = bytes
|
|
1132
|
+
result = [0x00, ...bytes];
|
|
1117
1133
|
}
|
|
1118
1134
|
return endian === 'little' ? result.reverse() : result;
|
|
1119
1135
|
}
|
|
@@ -1219,8 +1235,8 @@ class BigNumber {
|
|
|
1219
1235
|
if (num.length === 0)
|
|
1220
1236
|
return new BigNumber(0n);
|
|
1221
1237
|
if (requireMinimal) {
|
|
1222
|
-
if ((num
|
|
1223
|
-
if (num.length <= 1 || (num
|
|
1238
|
+
if ((num.at(-1) & 0x7f) === 0) {
|
|
1239
|
+
if (num.length <= 1 || (num.at(-2) & 0x80) === 0) {
|
|
1224
1240
|
throw new Error('non-minimally encoded script number');
|
|
1225
1241
|
}
|
|
1226
1242
|
}
|