@btc-vision/bitcoin 6.5.5 → 7.0.0-alpha.0
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/AUDIT/README.md +9 -0
- package/HOW_TO_WRITE_GOOD_CODE.md +2436 -0
- package/SECURITY.md +27 -0
- package/benchmark/psbt-2000-inputs.bench.ts +178 -0
- package/benchmark/signing.bench.ts +147 -0
- package/browser/address.d.ts +56 -9
- package/browser/address.d.ts.map +1 -0
- package/browser/bech32utils.d.ts +9 -1
- package/browser/bech32utils.d.ts.map +1 -0
- package/browser/bip66.d.ts +11 -6
- package/browser/bip66.d.ts.map +1 -0
- package/browser/block.d.ts +117 -11
- package/browser/block.d.ts.map +1 -0
- package/browser/branded.d.ts +20 -0
- package/browser/branded.d.ts.map +1 -0
- package/browser/crypto/crypto.d.ts +1 -0
- package/browser/crypto/crypto.d.ts.map +1 -0
- package/browser/crypto.d.ts +46 -7
- package/browser/crypto.d.ts.map +1 -0
- package/browser/ecc/context.d.ts +129 -0
- package/browser/ecc/context.d.ts.map +1 -0
- package/browser/ecc/index.d.ts +11 -0
- package/browser/ecc/index.d.ts.map +1 -0
- package/browser/ecc/types.d.ts +128 -0
- package/browser/ecc/types.d.ts.map +1 -0
- package/browser/ecpair.d.ts +99 -0
- package/browser/errors.d.ts +124 -0
- package/browser/errors.d.ts.map +1 -0
- package/browser/index.d.ts +32 -5
- package/browser/index.d.ts.map +1 -0
- package/browser/index.js +12482 -101
- package/browser/io/BinaryReader.d.ts +276 -0
- package/browser/io/BinaryReader.d.ts.map +1 -0
- package/browser/io/BinaryWriter.d.ts +391 -0
- package/browser/io/BinaryWriter.d.ts.map +1 -0
- package/browser/io/MemoryPool.d.ts +220 -0
- package/browser/io/MemoryPool.d.ts.map +1 -0
- package/browser/io/base64.d.ts +13 -0
- package/browser/io/base64.d.ts.map +1 -0
- package/browser/io/hex.d.ts +67 -0
- package/browser/io/hex.d.ts.map +1 -0
- package/browser/io/index.d.ts +17 -0
- package/browser/io/index.d.ts.map +1 -0
- package/browser/io/utils.d.ts +199 -0
- package/browser/io/utils.d.ts.map +1 -0
- package/browser/merkle.d.ts +10 -1
- package/browser/merkle.d.ts.map +1 -0
- package/browser/networks.d.ts +70 -9
- package/browser/networks.d.ts.map +1 -0
- package/browser/opcodes.d.ts +1 -0
- package/browser/opcodes.d.ts.map +1 -0
- package/browser/payments/bip341.d.ts +35 -9
- package/browser/payments/bip341.d.ts.map +1 -0
- package/browser/payments/embed.d.ts +112 -1
- package/browser/payments/embed.d.ts.map +1 -0
- package/browser/payments/index.d.ts +17 -10
- package/browser/payments/index.d.ts.map +1 -0
- package/browser/payments/p2ms.d.ts +150 -0
- package/browser/payments/p2ms.d.ts.map +1 -0
- package/browser/payments/p2op.d.ts +150 -24
- package/browser/payments/p2op.d.ts.map +1 -0
- package/browser/payments/p2pk.d.ts +154 -1
- package/browser/payments/p2pk.d.ts.map +1 -0
- package/browser/payments/p2pkh.d.ts +176 -1
- package/browser/payments/p2pkh.d.ts.map +1 -0
- package/browser/payments/p2sh.d.ts +150 -1
- package/browser/payments/p2sh.d.ts.map +1 -0
- package/browser/payments/p2tr.d.ts +185 -1
- package/browser/payments/p2tr.d.ts.map +1 -0
- package/browser/payments/p2wpkh.d.ts +161 -1
- package/browser/payments/p2wpkh.d.ts.map +1 -0
- package/browser/payments/p2wsh.d.ts +146 -1
- package/browser/payments/p2wsh.d.ts.map +1 -0
- package/browser/payments/types.d.ts +94 -64
- package/browser/payments/types.d.ts.map +1 -0
- package/browser/psbt/bip371.d.ts +34 -8
- package/browser/psbt/bip371.d.ts.map +1 -0
- package/browser/psbt/psbtutils.d.ts +56 -16
- package/browser/psbt/psbtutils.d.ts.map +1 -0
- package/browser/psbt/types.d.ts +245 -0
- package/browser/psbt/types.d.ts.map +1 -0
- package/browser/psbt/utils.d.ts +64 -0
- package/browser/psbt/utils.d.ts.map +1 -0
- package/browser/psbt/validation.d.ts +84 -0
- package/browser/psbt/validation.d.ts.map +1 -0
- package/browser/psbt.d.ts +82 -118
- package/browser/psbt.d.ts.map +1 -0
- package/browser/pubkey.d.ts +27 -6
- package/browser/pubkey.d.ts.map +1 -0
- package/browser/push_data.d.ts +24 -2
- package/browser/push_data.d.ts.map +1 -0
- package/browser/script.d.ts +33 -8
- package/browser/script.d.ts.map +1 -0
- package/browser/script_number.d.ts +17 -0
- package/browser/script_number.d.ts.map +1 -0
- package/browser/script_signature.d.ts +23 -5
- package/browser/script_signature.d.ts.map +1 -0
- package/browser/transaction.d.ts +160 -18
- package/browser/transaction.d.ts.map +1 -0
- package/browser/types.d.ts +36 -38
- package/browser/types.d.ts.map +1 -0
- package/browser/workers/WorkerSigningPool.d.ts +143 -0
- package/browser/workers/WorkerSigningPool.d.ts.map +1 -0
- package/browser/workers/WorkerSigningPool.node.d.ts +116 -0
- package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -0
- package/browser/workers/ecc-bundle.d.ts +25 -0
- package/browser/workers/ecc-bundle.d.ts.map +1 -0
- package/browser/workers/index.d.ts +91 -0
- package/browser/workers/index.d.ts.map +1 -0
- package/browser/workers/psbt-parallel.d.ts +88 -0
- package/browser/workers/psbt-parallel.d.ts.map +1 -0
- package/browser/workers/signing-worker.d.ts +37 -0
- package/browser/workers/signing-worker.d.ts.map +1 -0
- package/browser/workers/types.d.ts +365 -0
- package/browser/workers/types.d.ts.map +1 -0
- package/build/address.d.ts +57 -10
- package/build/address.d.ts.map +1 -0
- package/build/address.js +80 -24
- package/build/address.js.map +1 -0
- package/build/bech32utils.d.ts +9 -1
- package/build/bech32utils.d.ts.map +1 -0
- package/build/bech32utils.js +10 -2
- package/build/bech32utils.js.map +1 -0
- package/build/bip66.d.ts +11 -6
- package/build/bip66.d.ts.map +1 -0
- package/build/bip66.js +32 -3
- package/build/bip66.js.map +1 -0
- package/build/block.d.ts +117 -11
- package/build/block.d.ts.map +1 -0
- package/build/block.js +204 -72
- package/build/block.js.map +1 -0
- package/build/branded.d.ts +20 -0
- package/build/branded.d.ts.map +1 -0
- package/build/branded.js +7 -0
- package/build/branded.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/crypto.d.ts +46 -7
- package/build/crypto.d.ts.map +1 -0
- package/build/crypto.js +65 -20
- package/build/crypto.js.map +1 -0
- package/build/ecc/context.d.ts +135 -0
- package/build/ecc/context.d.ts.map +1 -0
- package/build/ecc/context.js +232 -0
- package/build/ecc/context.js.map +1 -0
- package/build/ecc/index.d.ts +11 -0
- package/build/ecc/index.d.ts.map +1 -0
- package/build/ecc/index.js +11 -0
- package/build/ecc/index.js.map +1 -0
- package/build/ecc/types.d.ts +134 -0
- package/build/ecc/types.d.ts.map +1 -0
- package/build/ecc/types.js +8 -0
- package/build/ecc/types.js.map +1 -0
- package/build/errors.d.ts +124 -0
- package/build/errors.d.ts.map +1 -0
- package/build/errors.js +155 -0
- package/build/errors.js.map +1 -0
- package/build/index.d.ts +32 -5
- package/build/index.d.ts.map +1 -0
- package/build/index.js +26 -3
- package/build/index.js.map +1 -0
- package/build/io/BinaryReader.d.ts +276 -0
- package/build/io/BinaryReader.d.ts.map +1 -0
- package/build/io/BinaryReader.js +425 -0
- package/build/io/BinaryReader.js.map +1 -0
- package/build/io/BinaryWriter.d.ts +391 -0
- package/build/io/BinaryWriter.d.ts.map +1 -0
- package/build/io/BinaryWriter.js +611 -0
- package/build/io/BinaryWriter.js.map +1 -0
- package/build/io/MemoryPool.d.ts +220 -0
- package/build/io/MemoryPool.d.ts.map +1 -0
- package/build/io/MemoryPool.js +309 -0
- package/build/io/MemoryPool.js.map +1 -0
- package/build/io/base64.d.ts +13 -0
- package/build/io/base64.d.ts.map +1 -0
- package/build/io/base64.js +20 -0
- package/build/io/base64.js.map +1 -0
- package/build/io/hex.d.ts +67 -0
- package/build/io/hex.d.ts.map +1 -0
- package/build/io/hex.js +138 -0
- package/build/io/hex.js.map +1 -0
- package/build/io/index.d.ts +17 -0
- package/build/io/index.d.ts.map +1 -0
- package/build/io/index.js +23 -0
- package/build/io/index.js.map +1 -0
- package/build/io/utils.d.ts +199 -0
- package/build/io/utils.d.ts.map +1 -0
- package/build/io/utils.js +271 -0
- package/build/io/utils.js.map +1 -0
- package/build/merkle.d.ts +10 -1
- package/build/merkle.d.ts.map +1 -0
- package/build/merkle.js +12 -1
- package/build/merkle.js.map +1 -0
- package/build/networks.d.ts +70 -9
- package/build/networks.d.ts.map +1 -0
- package/build/networks.js +90 -4
- package/build/networks.js.map +1 -0
- package/build/opcodes.d.ts +1 -0
- package/build/opcodes.d.ts.map +1 -0
- package/build/opcodes.js +1 -0
- package/build/opcodes.js.map +1 -0
- package/build/payments/bip341.d.ts +36 -9
- package/build/payments/bip341.d.ts.map +1 -0
- package/build/payments/bip341.js +35 -15
- package/build/payments/bip341.js.map +1 -0
- package/build/payments/embed.d.ts +120 -1
- package/build/payments/embed.d.ts.map +1 -0
- package/build/payments/embed.js +215 -34
- package/build/payments/embed.js.map +1 -0
- package/build/payments/index.d.ts +17 -10
- package/build/payments/index.d.ts.map +1 -0
- package/build/payments/index.js +20 -10
- package/build/payments/index.js.map +1 -0
- package/build/payments/p2ms.d.ts +159 -1
- package/build/payments/p2ms.d.ts.map +1 -0
- package/build/payments/p2ms.js +427 -108
- package/build/payments/p2ms.js.map +1 -0
- package/build/payments/p2op.d.ts +158 -24
- package/build/payments/p2op.d.ts.map +1 -0
- package/build/payments/p2op.js +379 -93
- package/build/payments/p2op.js.map +1 -0
- package/build/payments/p2pk.d.ts +162 -1
- package/build/payments/p2pk.d.ts.map +1 -0
- package/build/payments/p2pk.js +327 -58
- package/build/payments/p2pk.js.map +1 -0
- package/build/payments/p2pkh.d.ts +185 -1
- package/build/payments/p2pkh.d.ts.map +1 -0
- package/build/payments/p2pkh.js +467 -114
- package/build/payments/p2pkh.js.map +1 -0
- package/build/payments/p2sh.d.ts +159 -1
- package/build/payments/p2sh.d.ts.map +1 -0
- package/build/payments/p2sh.js +500 -152
- package/build/payments/p2sh.js.map +1 -0
- package/build/payments/p2tr.d.ts +193 -1
- package/build/payments/p2tr.d.ts.map +1 -0
- package/build/payments/p2tr.js +592 -174
- package/build/payments/p2tr.js.map +1 -0
- package/build/payments/p2wpkh.d.ts +170 -1
- package/build/payments/p2wpkh.d.ts.map +1 -0
- package/build/payments/p2wpkh.js +429 -104
- package/build/payments/p2wpkh.js.map +1 -0
- package/build/payments/p2wsh.d.ts +155 -1
- package/build/payments/p2wsh.d.ts.map +1 -0
- package/build/payments/p2wsh.js +466 -144
- package/build/payments/p2wsh.js.map +1 -0
- package/build/payments/types.d.ts +98 -64
- package/build/payments/types.d.ts.map +1 -0
- package/build/payments/types.js +17 -13
- package/build/payments/types.js.map +1 -0
- package/build/psbt/bip371.d.ts +35 -9
- package/build/psbt/bip371.d.ts.map +1 -0
- package/build/psbt/bip371.js +113 -28
- package/build/psbt/bip371.js.map +1 -0
- package/build/psbt/psbtutils.d.ts +56 -16
- package/build/psbt/psbtutils.d.ts.map +1 -0
- package/build/psbt/psbtutils.js +71 -16
- package/build/psbt/psbtutils.js.map +1 -0
- package/build/psbt/types.d.ts +249 -0
- package/build/psbt/types.d.ts.map +1 -0
- package/build/psbt/types.js +6 -0
- package/build/psbt/types.js.map +1 -0
- package/build/psbt/utils.d.ts +68 -0
- package/build/psbt/utils.d.ts.map +1 -0
- package/build/psbt/utils.js +171 -0
- package/build/psbt/utils.js.map +1 -0
- package/build/psbt/validation.d.ts +88 -0
- package/build/psbt/validation.d.ts.map +1 -0
- package/build/psbt/validation.js +149 -0
- package/build/psbt/validation.js.map +1 -0
- package/build/psbt.d.ts +84 -120
- package/build/psbt.d.ts.map +1 -0
- package/build/psbt.js +411 -412
- package/build/psbt.js.map +1 -0
- package/build/pubkey.d.ts +27 -6
- package/build/pubkey.d.ts.map +1 -0
- package/build/pubkey.js +37 -13
- package/build/pubkey.js.map +1 -0
- package/build/push_data.d.ts +24 -2
- package/build/push_data.d.ts.map +1 -0
- package/build/push_data.js +44 -12
- package/build/push_data.js.map +1 -0
- package/build/script.d.ts +33 -8
- package/build/script.d.ts.map +1 -0
- package/build/script.js +100 -36
- package/build/script.js.map +1 -0
- package/build/script_number.d.ts +17 -0
- package/build/script_number.d.ts.map +1 -0
- package/build/script_number.js +19 -0
- package/build/script_number.js.map +1 -0
- package/build/script_signature.d.ts +23 -5
- package/build/script_signature.d.ts.map +1 -0
- package/build/script_signature.js +48 -15
- package/build/script_signature.js.map +1 -0
- package/build/transaction.d.ts +160 -18
- package/build/transaction.d.ts.map +1 -0
- package/build/transaction.js +443 -176
- package/build/transaction.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/build/types.d.ts +36 -38
- package/build/types.d.ts.map +1 -0
- package/build/types.js +175 -57
- package/build/types.js.map +1 -0
- package/build/workers/WorkerSigningPool.d.ts +174 -0
- package/build/workers/WorkerSigningPool.d.ts.map +1 -0
- package/build/workers/WorkerSigningPool.js +553 -0
- package/build/workers/WorkerSigningPool.js.map +1 -0
- package/build/workers/WorkerSigningPool.node.d.ts +124 -0
- package/build/workers/WorkerSigningPool.node.d.ts.map +1 -0
- package/build/workers/WorkerSigningPool.node.js +753 -0
- package/build/workers/WorkerSigningPool.node.js.map +1 -0
- package/build/workers/ecc-bundle.d.ts +25 -0
- package/build/workers/ecc-bundle.d.ts.map +1 -0
- package/build/workers/ecc-bundle.js +25 -0
- package/build/workers/ecc-bundle.js.map +1 -0
- package/build/workers/index.d.ts +91 -0
- package/build/workers/index.d.ts.map +1 -0
- package/build/workers/index.js +114 -0
- package/build/workers/index.js.map +1 -0
- package/build/workers/psbt-parallel.d.ts +117 -0
- package/build/workers/psbt-parallel.d.ts.map +1 -0
- package/build/workers/psbt-parallel.js +233 -0
- package/build/workers/psbt-parallel.js.map +1 -0
- package/build/workers/signing-worker.d.ts +37 -0
- package/build/workers/signing-worker.d.ts.map +1 -0
- package/build/workers/signing-worker.js +350 -0
- package/build/workers/signing-worker.js.map +1 -0
- package/build/workers/types.d.ts +365 -0
- package/build/workers/types.d.ts.map +1 -0
- package/build/workers/types.js +60 -0
- package/build/workers/types.js.map +1 -0
- package/package.json +83 -25
- package/scripts/bundle-ecc.ts +111 -0
- package/src/address.ts +81 -44
- package/src/bech32utils.ts +3 -3
- package/src/bip66.ts +34 -24
- package/src/block.ts +196 -84
- package/src/branded.ts +18 -0
- package/src/crypto.ts +64 -26
- package/src/ecc/context.ts +277 -0
- package/src/ecc/index.ts +14 -0
- package/src/ecc/types.ts +154 -0
- package/src/ecpair.d.ts +99 -0
- package/src/errors.ts +163 -0
- package/src/index.ts +113 -9
- package/src/io/BinaryReader.ts +461 -0
- package/src/io/BinaryWriter.ts +696 -0
- package/src/io/MemoryPool.ts +343 -0
- package/src/io/base64.ts +20 -0
- package/src/io/hex.ts +155 -0
- package/src/io/index.ts +41 -0
- package/src/io/utils.ts +283 -0
- package/src/merkle.ts +14 -9
- package/src/networks.ts +9 -9
- package/src/payments/bip341.ts +34 -33
- package/src/payments/embed.ts +244 -41
- package/src/payments/index.ts +12 -10
- package/src/payments/p2ms.ts +490 -118
- package/src/payments/p2op.ts +431 -133
- package/src/payments/p2pk.ts +370 -72
- package/src/payments/p2pkh.ts +524 -130
- package/src/payments/p2sh.ts +572 -172
- package/src/payments/p2tr.ts +686 -194
- package/src/payments/p2wpkh.ts +484 -107
- package/src/payments/p2wsh.ts +526 -164
- package/src/payments/types.ts +80 -66
- package/src/psbt/bip371.ts +68 -51
- package/src/psbt/psbtutils.ts +39 -40
- package/src/psbt/types.ts +331 -0
- package/src/psbt/utils.ts +188 -0
- package/src/psbt/validation.ts +192 -0
- package/src/psbt.ts +566 -809
- package/src/pubkey.ts +24 -25
- package/src/push_data.ts +18 -16
- package/src/script.ts +82 -64
- package/src/script_number.ts +6 -6
- package/src/script_signature.ts +33 -36
- package/src/transaction.ts +458 -238
- package/src/types.ts +231 -100
- package/src/workers/WorkerSigningPool.node.ts +887 -0
- package/src/workers/WorkerSigningPool.ts +670 -0
- package/src/workers/ecc-bundle.ts +26 -0
- package/src/workers/index.ts +165 -0
- package/src/workers/psbt-parallel.ts +332 -0
- package/src/workers/signing-worker.ts +353 -0
- package/src/workers/types.ts +413 -0
- package/test/address.spec.ts +9 -6
- package/test/bitcoin.core.spec.ts +16 -17
- package/test/block.spec.ts +8 -7
- package/test/bufferutils.spec.ts +228 -214
- package/test/crypto.spec.ts +19 -11
- package/test/fixtures/p2pk.json +0 -8
- package/test/fixtures/p2pkh.json +1 -1
- package/test/fixtures/p2sh.json +1 -1
- package/test/fixtures/script.json +1 -1
- package/test/fixtures/transaction.json +2 -2
- package/test/integration/_regtest.ts +25 -0
- package/test/integration/addresses.spec.ts +4 -3
- package/test/integration/bip32.spec.ts +2 -1
- package/test/integration/blocks.spec.ts +1 -1
- package/test/integration/cltv.spec.ts +18 -16
- package/test/integration/csv.spec.ts +37 -64
- package/test/integration/payments.spec.ts +5 -3
- package/test/integration/taproot.spec.ts +76 -83
- package/test/integration/transactions.spec.ts +38 -35
- package/test/payments.spec.ts +35 -13
- package/test/payments.utils.ts +17 -16
- package/test/psbt.spec.ts +111 -100
- package/test/script.spec.ts +11 -10
- package/test/script_signature.spec.ts +9 -11
- package/test/taproot-cache.spec.ts +694 -0
- package/test/transaction.spec.ts +32 -40
- package/test/types.spec.ts +74 -29
- package/test/workers-pool.spec.ts +963 -0
- package/test/workers-signing.spec.ts +635 -0
- package/test/workers.spec.ts +1390 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +5 -14
- package/vite.config.browser.ts +3 -42
- package/vitest.config.integration.ts +11 -0
- package/browser/bufferutils.d.ts +0 -34
- package/browser/chunks/crypto-BhCpKpek.js +0 -2033
- package/browser/chunks/payments-yjA0Evsv.js +0 -1089
- package/browser/chunks/psbt-URK2hBFc.js +0 -4039
- package/browser/chunks/script-DyPItFEl.js +0 -318
- package/browser/chunks/transaction-C_UbhMGn.js +0 -432
- package/browser/chunks/utils-DNZi-T5W.js +0 -761
- package/browser/ecc_lib.d.ts +0 -3
- package/browser/hooks/AdvancedSignatureManager.d.ts +0 -16
- package/browser/hooks/HookedSigner.d.ts +0 -4
- package/browser/hooks/SignatureManager.d.ts +0 -13
- package/browser/payments/lazy.d.ts +0 -2
- package/browser/typeforce.d.ts +0 -38
- package/build/bufferutils.d.ts +0 -34
- package/build/bufferutils.js +0 -141
- package/build/ecc_lib.d.ts +0 -3
- package/build/ecc_lib.js +0 -61
- package/build/hooks/AdvancedSignatureManager.d.ts +0 -16
- package/build/hooks/AdvancedSignatureManager.js +0 -52
- package/build/hooks/HookedSigner.d.ts +0 -4
- package/build/hooks/HookedSigner.js +0 -64
- package/build/hooks/SignatureManager.d.ts +0 -13
- package/build/hooks/SignatureManager.js +0 -45
- package/build/payments/lazy.d.ts +0 -2
- package/build/payments/lazy.js +0 -28
- package/build/tsconfig.tsbuildinfo +0 -1
- package/src/bufferutils.ts +0 -188
- package/src/ecc_lib.ts +0 -94
- package/src/hooks/AdvancedSignatureManager.ts +0 -104
- package/src/hooks/HookedSigner.ts +0 -108
- package/src/hooks/SignatureManager.ts +0 -84
- package/src/payments/lazy.ts +0 -28
- package/src/typeforce.d.ts +0 -38
- package/tsconfig.webpack.json +0 -18
package/browser/ecc_lib.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface CacheEntry {
|
|
2
|
-
pubKey: string;
|
|
3
|
-
dataRef: WeakRef<Buffer>;
|
|
4
|
-
signature: Buffer;
|
|
5
|
-
}
|
|
6
|
-
export declare class AdvancedSignatureManager {
|
|
7
|
-
private static instance;
|
|
8
|
-
private cacheBySigner;
|
|
9
|
-
private registry;
|
|
10
|
-
private constructor();
|
|
11
|
-
static getInstance(): AdvancedSignatureManager;
|
|
12
|
-
addSignature(pubKey: string, data: Buffer, signature: Buffer): Buffer;
|
|
13
|
-
getSignature(pubKey: string, data: Buffer): Buffer | undefined;
|
|
14
|
-
clearCache(): void;
|
|
15
|
-
clearCacheForSigner(pubKey: string): void;
|
|
16
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { BIP32Interface } from '@btc-vision/bip32';
|
|
2
|
-
import { ECPairInterface } from 'ecpair';
|
|
3
|
-
import { Signer, SignerAlternative, SignerAsync } from '../psbt.js';
|
|
4
|
-
export declare function hookSigner(keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface): void;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface CacheEntry {
|
|
2
|
-
length: number;
|
|
3
|
-
dataRef: WeakRef<Buffer>;
|
|
4
|
-
signature: Buffer;
|
|
5
|
-
}
|
|
6
|
-
export declare class SignatureManager {
|
|
7
|
-
private cacheByLength;
|
|
8
|
-
private registry;
|
|
9
|
-
constructor();
|
|
10
|
-
addSignature(data: Buffer, signature: Buffer): Buffer;
|
|
11
|
-
getSignature(data: Buffer): Buffer | undefined;
|
|
12
|
-
clearCache(): void;
|
|
13
|
-
}
|
package/browser/typeforce.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for typeforce library
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Typeforce type validator - validates that a value matches a given type.
|
|
7
|
-
*/
|
|
8
|
-
type TypeforceValidator = (value: unknown) => boolean;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Interface representing the typeforce library's API.
|
|
12
|
-
*/
|
|
13
|
-
interface TypeforceLib {
|
|
14
|
-
(type: unknown, value: unknown): void;
|
|
15
|
-
Number: TypeforceValidator;
|
|
16
|
-
Array: TypeforceValidator;
|
|
17
|
-
Boolean: TypeforceValidator;
|
|
18
|
-
String: TypeforceValidator;
|
|
19
|
-
Buffer: TypeforceValidator;
|
|
20
|
-
Hex: TypeforceValidator;
|
|
21
|
-
Null: TypeforceValidator;
|
|
22
|
-
Function: TypeforceValidator;
|
|
23
|
-
UInt8: TypeforceValidator;
|
|
24
|
-
UInt32: TypeforceValidator;
|
|
25
|
-
UInt53: TypeforceValidator;
|
|
26
|
-
BufferN: (n: number) => TypeforceValidator;
|
|
27
|
-
maybe: (type: unknown) => TypeforceValidator;
|
|
28
|
-
tuple: (...types: unknown[]) => TypeforceValidator;
|
|
29
|
-
oneOf: (...types: unknown[]) => TypeforceValidator;
|
|
30
|
-
arrayOf: (type: unknown) => TypeforceValidator;
|
|
31
|
-
Object: TypeforceValidator;
|
|
32
|
-
anyOf: (...types: unknown[]) => TypeforceValidator;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
declare module 'typeforce' {
|
|
36
|
-
const typeforce: TypeforceLib;
|
|
37
|
-
export = typeforce;
|
|
38
|
-
}
|
package/build/bufferutils.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as varuint from 'varuint-bitcoin';
|
|
2
|
-
export { varuint };
|
|
3
|
-
export declare function readUInt64LE(buffer: Buffer, offset: number): number;
|
|
4
|
-
export declare function writeUInt64LE(buffer: Buffer, value: number, offset: number): number;
|
|
5
|
-
export declare function reverseBuffer(buffer: Buffer): Buffer;
|
|
6
|
-
export declare function cloneBuffer(buffer: Buffer): Buffer;
|
|
7
|
-
export declare class BufferWriter {
|
|
8
|
-
buffer: Buffer;
|
|
9
|
-
offset: number;
|
|
10
|
-
constructor(buffer: Buffer, offset?: number);
|
|
11
|
-
static withCapacity(size: number): BufferWriter;
|
|
12
|
-
writeUInt8(i: number): void;
|
|
13
|
-
writeInt32(i: number): void;
|
|
14
|
-
writeUInt32(i: number): void;
|
|
15
|
-
writeUInt64(i: number): void;
|
|
16
|
-
writeVarInt(i: number): void;
|
|
17
|
-
writeSlice(slice: Buffer): void;
|
|
18
|
-
writeVarSlice(slice: Buffer): void;
|
|
19
|
-
writeVector(vector: Buffer[]): void;
|
|
20
|
-
end(): Buffer;
|
|
21
|
-
}
|
|
22
|
-
export declare class BufferReader {
|
|
23
|
-
buffer: Buffer;
|
|
24
|
-
offset: number;
|
|
25
|
-
constructor(buffer: Buffer, offset?: number);
|
|
26
|
-
readUInt8(): number;
|
|
27
|
-
readInt32(): number;
|
|
28
|
-
readUInt32(): number;
|
|
29
|
-
readUInt64(): number;
|
|
30
|
-
readVarInt(): number;
|
|
31
|
-
readSlice(n: number): Buffer;
|
|
32
|
-
readVarSlice(): Buffer;
|
|
33
|
-
readVector(): Buffer[];
|
|
34
|
-
}
|
package/build/bufferutils.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import * as varuint from 'varuint-bitcoin';
|
|
2
|
-
import * as types from './types.js';
|
|
3
|
-
const { typeforce } = types;
|
|
4
|
-
export { varuint };
|
|
5
|
-
function verifuint(value, max) {
|
|
6
|
-
if (typeof value !== 'number')
|
|
7
|
-
throw new Error('cannot write a non-number as a number');
|
|
8
|
-
if (value < 0)
|
|
9
|
-
throw new Error('specified a negative value for writing an unsigned value');
|
|
10
|
-
if (value > max)
|
|
11
|
-
throw new Error('RangeError: value out of range');
|
|
12
|
-
if (Math.floor(value) !== value)
|
|
13
|
-
throw new Error('value has a fractional component');
|
|
14
|
-
}
|
|
15
|
-
export function readUInt64LE(buffer, offset) {
|
|
16
|
-
const a = buffer.readUInt32LE(offset);
|
|
17
|
-
let b = buffer.readUInt32LE(offset + 4);
|
|
18
|
-
b *= 0x100000000;
|
|
19
|
-
verifuint(b + a, 0x001fffffffffffff);
|
|
20
|
-
return b + a;
|
|
21
|
-
}
|
|
22
|
-
export function writeUInt64LE(buffer, value, offset) {
|
|
23
|
-
verifuint(value, 0x001fffffffffffff);
|
|
24
|
-
buffer.writeInt32LE(value & -1, offset);
|
|
25
|
-
buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);
|
|
26
|
-
return offset + 8;
|
|
27
|
-
}
|
|
28
|
-
export function reverseBuffer(buffer) {
|
|
29
|
-
if (buffer.length < 1)
|
|
30
|
-
return buffer;
|
|
31
|
-
let j = buffer.length - 1;
|
|
32
|
-
let tmp = 0;
|
|
33
|
-
for (let i = 0; i < buffer.length / 2; i++) {
|
|
34
|
-
tmp = buffer[i];
|
|
35
|
-
buffer[i] = buffer[j];
|
|
36
|
-
buffer[j] = tmp;
|
|
37
|
-
j--;
|
|
38
|
-
}
|
|
39
|
-
return buffer;
|
|
40
|
-
}
|
|
41
|
-
export function cloneBuffer(buffer) {
|
|
42
|
-
const clone = Buffer.allocUnsafe(buffer.length);
|
|
43
|
-
buffer.copy(clone);
|
|
44
|
-
return clone;
|
|
45
|
-
}
|
|
46
|
-
export class BufferWriter {
|
|
47
|
-
constructor(buffer, offset = 0) {
|
|
48
|
-
this.buffer = buffer;
|
|
49
|
-
this.offset = offset;
|
|
50
|
-
typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);
|
|
51
|
-
}
|
|
52
|
-
static withCapacity(size) {
|
|
53
|
-
return new BufferWriter(Buffer.alloc(size));
|
|
54
|
-
}
|
|
55
|
-
writeUInt8(i) {
|
|
56
|
-
this.offset = this.buffer.writeUInt8(i, this.offset);
|
|
57
|
-
}
|
|
58
|
-
writeInt32(i) {
|
|
59
|
-
this.offset = this.buffer.writeInt32LE(i, this.offset);
|
|
60
|
-
}
|
|
61
|
-
writeUInt32(i) {
|
|
62
|
-
this.offset = this.buffer.writeUInt32LE(i, this.offset);
|
|
63
|
-
}
|
|
64
|
-
writeUInt64(i) {
|
|
65
|
-
this.offset = writeUInt64LE(this.buffer, i, this.offset);
|
|
66
|
-
}
|
|
67
|
-
writeVarInt(i) {
|
|
68
|
-
const encode = varuint.encode(i, this.buffer, this.offset);
|
|
69
|
-
this.offset += encode.bytes;
|
|
70
|
-
}
|
|
71
|
-
writeSlice(slice) {
|
|
72
|
-
if (this.buffer.length < this.offset + slice.length) {
|
|
73
|
-
throw new Error('Cannot write slice out of bounds');
|
|
74
|
-
}
|
|
75
|
-
this.offset += slice.copy(this.buffer, this.offset);
|
|
76
|
-
}
|
|
77
|
-
writeVarSlice(slice) {
|
|
78
|
-
this.writeVarInt(slice.length);
|
|
79
|
-
this.writeSlice(slice);
|
|
80
|
-
}
|
|
81
|
-
writeVector(vector) {
|
|
82
|
-
this.writeVarInt(vector.length);
|
|
83
|
-
vector.forEach((buf) => this.writeVarSlice(buf));
|
|
84
|
-
}
|
|
85
|
-
end() {
|
|
86
|
-
if (this.buffer.length === this.offset) {
|
|
87
|
-
return this.buffer;
|
|
88
|
-
}
|
|
89
|
-
throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
export class BufferReader {
|
|
93
|
-
constructor(buffer, offset = 0) {
|
|
94
|
-
this.buffer = buffer;
|
|
95
|
-
this.offset = offset;
|
|
96
|
-
typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);
|
|
97
|
-
}
|
|
98
|
-
readUInt8() {
|
|
99
|
-
const result = this.buffer.readUInt8(this.offset);
|
|
100
|
-
this.offset++;
|
|
101
|
-
return result;
|
|
102
|
-
}
|
|
103
|
-
readInt32() {
|
|
104
|
-
const result = this.buffer.readInt32LE(this.offset);
|
|
105
|
-
this.offset += 4;
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
readUInt32() {
|
|
109
|
-
const result = this.buffer.readUInt32LE(this.offset);
|
|
110
|
-
this.offset += 4;
|
|
111
|
-
return result;
|
|
112
|
-
}
|
|
113
|
-
readUInt64() {
|
|
114
|
-
const result = readUInt64LE(this.buffer, this.offset);
|
|
115
|
-
this.offset += 8;
|
|
116
|
-
return result;
|
|
117
|
-
}
|
|
118
|
-
readVarInt() {
|
|
119
|
-
const vi = varuint.decode(this.buffer, this.offset);
|
|
120
|
-
this.offset += vi.bytes;
|
|
121
|
-
return vi.numberValue || 0;
|
|
122
|
-
}
|
|
123
|
-
readSlice(n) {
|
|
124
|
-
if (this.buffer.length < this.offset + n) {
|
|
125
|
-
throw new Error('Cannot read slice out of bounds');
|
|
126
|
-
}
|
|
127
|
-
const result = Buffer.from(this.buffer.subarray(this.offset, this.offset + n));
|
|
128
|
-
this.offset += n;
|
|
129
|
-
return result;
|
|
130
|
-
}
|
|
131
|
-
readVarSlice() {
|
|
132
|
-
return this.readSlice(this.readVarInt());
|
|
133
|
-
}
|
|
134
|
-
readVector() {
|
|
135
|
-
const count = this.readVarInt();
|
|
136
|
-
const vector = [];
|
|
137
|
-
for (let i = 0; i < count; i++)
|
|
138
|
-
vector.push(this.readVarSlice());
|
|
139
|
-
return vector;
|
|
140
|
-
}
|
|
141
|
-
}
|
package/build/ecc_lib.d.ts
DELETED
package/build/ecc_lib.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
const _ECCLIB_CACHE = {};
|
|
2
|
-
export function initEccLib(eccLib) {
|
|
3
|
-
if (!eccLib) {
|
|
4
|
-
_ECCLIB_CACHE.eccLib = eccLib;
|
|
5
|
-
}
|
|
6
|
-
else if (eccLib !== _ECCLIB_CACHE.eccLib) {
|
|
7
|
-
verifyEcc(eccLib);
|
|
8
|
-
_ECCLIB_CACHE.eccLib = eccLib;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export function getEccLib() {
|
|
12
|
-
if (!_ECCLIB_CACHE.eccLib)
|
|
13
|
-
throw new Error('No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance');
|
|
14
|
-
return _ECCLIB_CACHE.eccLib;
|
|
15
|
-
}
|
|
16
|
-
const h = (hex) => Buffer.from(hex, 'hex');
|
|
17
|
-
function verifyEcc(ecc) {
|
|
18
|
-
assert(typeof ecc.isXOnlyPoint === 'function');
|
|
19
|
-
assert(ecc.isXOnlyPoint(h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798')));
|
|
20
|
-
assert(ecc.isXOnlyPoint(h('fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e')));
|
|
21
|
-
assert(ecc.isXOnlyPoint(h('f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9')));
|
|
22
|
-
assert(ecc.isXOnlyPoint(h('0000000000000000000000000000000000000000000000000000000000000001')));
|
|
23
|
-
assert(!ecc.isXOnlyPoint(h('0000000000000000000000000000000000000000000000000000000000000000')));
|
|
24
|
-
assert(!ecc.isXOnlyPoint(h('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f')));
|
|
25
|
-
assert(typeof ecc.xOnlyPointAddTweak === 'function');
|
|
26
|
-
tweakAddVectors.forEach((t) => {
|
|
27
|
-
const r = ecc.xOnlyPointAddTweak(h(t.pubkey), h(t.tweak));
|
|
28
|
-
if (t.result === null) {
|
|
29
|
-
assert(r === null);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
assert(r !== null);
|
|
33
|
-
assert(r.parity === t.parity);
|
|
34
|
-
assert(Buffer.from(r.xOnlyPubkey).equals(h(t.result)));
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
function assert(bool) {
|
|
39
|
-
if (!bool)
|
|
40
|
-
throw new Error('ecc library invalid');
|
|
41
|
-
}
|
|
42
|
-
const tweakAddVectors = [
|
|
43
|
-
{
|
|
44
|
-
pubkey: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
|
|
45
|
-
tweak: 'fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140',
|
|
46
|
-
parity: -1,
|
|
47
|
-
result: null,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
pubkey: '1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b',
|
|
51
|
-
tweak: 'a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac',
|
|
52
|
-
parity: 1,
|
|
53
|
-
result: 'e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
pubkey: '2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991',
|
|
57
|
-
tweak: '823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47',
|
|
58
|
-
parity: 0,
|
|
59
|
-
result: '9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c',
|
|
60
|
-
},
|
|
61
|
-
];
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface CacheEntry {
|
|
2
|
-
pubKey: string;
|
|
3
|
-
dataRef: WeakRef<Buffer>;
|
|
4
|
-
signature: Buffer;
|
|
5
|
-
}
|
|
6
|
-
export declare class AdvancedSignatureManager {
|
|
7
|
-
private static instance;
|
|
8
|
-
private cacheBySigner;
|
|
9
|
-
private registry;
|
|
10
|
-
private constructor();
|
|
11
|
-
static getInstance(): AdvancedSignatureManager;
|
|
12
|
-
addSignature(pubKey: string, data: Buffer, signature: Buffer): Buffer;
|
|
13
|
-
getSignature(pubKey: string, data: Buffer): Buffer | undefined;
|
|
14
|
-
clearCache(): void;
|
|
15
|
-
clearCacheForSigner(pubKey: string): void;
|
|
16
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export class AdvancedSignatureManager {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.cacheBySigner = new Map();
|
|
4
|
-
this.registry = new FinalizationRegistry((entry) => {
|
|
5
|
-
const set = this.cacheBySigner.get(entry.pubKey);
|
|
6
|
-
if (set) {
|
|
7
|
-
set.delete(entry);
|
|
8
|
-
if (set.size === 0) {
|
|
9
|
-
this.cacheBySigner.delete(entry.pubKey);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
static getInstance() {
|
|
15
|
-
if (!AdvancedSignatureManager.instance) {
|
|
16
|
-
AdvancedSignatureManager.instance = new AdvancedSignatureManager();
|
|
17
|
-
}
|
|
18
|
-
return AdvancedSignatureManager.instance;
|
|
19
|
-
}
|
|
20
|
-
addSignature(pubKey, data, signature) {
|
|
21
|
-
const entry = {
|
|
22
|
-
pubKey,
|
|
23
|
-
dataRef: new WeakRef(data),
|
|
24
|
-
signature,
|
|
25
|
-
};
|
|
26
|
-
if (!this.cacheBySigner.has(pubKey)) {
|
|
27
|
-
this.cacheBySigner.set(pubKey, new Set());
|
|
28
|
-
}
|
|
29
|
-
const set = this.cacheBySigner.get(pubKey);
|
|
30
|
-
set.add(entry);
|
|
31
|
-
this.registry.register(data, entry);
|
|
32
|
-
return signature;
|
|
33
|
-
}
|
|
34
|
-
getSignature(pubKey, data) {
|
|
35
|
-
const set = this.cacheBySigner.get(pubKey);
|
|
36
|
-
if (!set)
|
|
37
|
-
return undefined;
|
|
38
|
-
for (const entry of set) {
|
|
39
|
-
const cachedData = entry.dataRef.deref();
|
|
40
|
-
if (cachedData && cachedData.equals(data)) {
|
|
41
|
-
return entry.signature;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
clearCache() {
|
|
47
|
-
this.cacheBySigner.clear();
|
|
48
|
-
}
|
|
49
|
-
clearCacheForSigner(pubKey) {
|
|
50
|
-
this.cacheBySigner.delete(pubKey);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { BIP32Interface } from '@btc-vision/bip32';
|
|
2
|
-
import { ECPairInterface } from 'ecpair';
|
|
3
|
-
import { Signer, SignerAlternative, SignerAsync } from '../psbt.js';
|
|
4
|
-
export declare function hookSigner(keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface): void;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { SignatureManager } from './SignatureManager.js';
|
|
2
|
-
import { AdvancedSignatureManager } from './AdvancedSignatureManager.js';
|
|
3
|
-
const advancedSignatureManager = AdvancedSignatureManager.getInstance();
|
|
4
|
-
function getPublicKey(keyPair) {
|
|
5
|
-
if (keyPair.publicKey && Buffer.isBuffer(keyPair.publicKey)) {
|
|
6
|
-
return keyPair.publicKey.toString('hex');
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
function hookKeyPair(keyPair) {
|
|
10
|
-
const oldSign = keyPair.sign;
|
|
11
|
-
if (oldSign) {
|
|
12
|
-
keyPair.sign = new Proxy(oldSign, {
|
|
13
|
-
apply: function (target, thisArg, argumentsList) {
|
|
14
|
-
const publicKey = getPublicKey(keyPair);
|
|
15
|
-
const hash = argumentsList[0];
|
|
16
|
-
if (publicKey) {
|
|
17
|
-
let possibleSignature = advancedSignatureManager.getSignature(publicKey, hash);
|
|
18
|
-
if (!possibleSignature) {
|
|
19
|
-
possibleSignature = advancedSignatureManager.addSignature(publicKey, hash, Reflect.apply(target, thisArg, argumentsList));
|
|
20
|
-
}
|
|
21
|
-
return possibleSignature;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
let possibleSignature = keyPair.signatureManager.getSignature(hash);
|
|
25
|
-
if (!possibleSignature) {
|
|
26
|
-
possibleSignature = keyPair.signatureManager.addSignature(hash, Reflect.apply(target, thisArg, argumentsList));
|
|
27
|
-
}
|
|
28
|
-
return possibleSignature;
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
const oldSignSchnorr = keyPair.signSchnorr;
|
|
34
|
-
if (oldSignSchnorr) {
|
|
35
|
-
keyPair.signSchnorr = new Proxy(oldSignSchnorr, {
|
|
36
|
-
apply: function (target, thisArg, argumentsList) {
|
|
37
|
-
const publicKey = getPublicKey(keyPair);
|
|
38
|
-
const hash = argumentsList[0];
|
|
39
|
-
if (publicKey) {
|
|
40
|
-
let possibleSignature = advancedSignatureManager.getSignature(publicKey, hash);
|
|
41
|
-
if (!possibleSignature) {
|
|
42
|
-
possibleSignature = advancedSignatureManager.addSignature(publicKey, hash, Reflect.apply(target, thisArg, argumentsList));
|
|
43
|
-
}
|
|
44
|
-
return possibleSignature;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
let possibleSignature = keyPair.signatureManager.getSignature(hash);
|
|
48
|
-
if (!possibleSignature) {
|
|
49
|
-
possibleSignature = keyPair.signatureManager.addSignature(hash, Reflect.apply(target, thisArg, argumentsList));
|
|
50
|
-
}
|
|
51
|
-
return possibleSignature;
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
export function hookSigner(keyPair) {
|
|
58
|
-
const newKeypair = keyPair;
|
|
59
|
-
if (!newKeypair.hasHook) {
|
|
60
|
-
newKeypair.hasHook = true;
|
|
61
|
-
newKeypair.signatureManager = new SignatureManager();
|
|
62
|
-
hookKeyPair(newKeypair);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface CacheEntry {
|
|
2
|
-
length: number;
|
|
3
|
-
dataRef: WeakRef<Buffer>;
|
|
4
|
-
signature: Buffer;
|
|
5
|
-
}
|
|
6
|
-
export declare class SignatureManager {
|
|
7
|
-
private cacheByLength;
|
|
8
|
-
private registry;
|
|
9
|
-
constructor();
|
|
10
|
-
addSignature(data: Buffer, signature: Buffer): Buffer;
|
|
11
|
-
getSignature(data: Buffer): Buffer | undefined;
|
|
12
|
-
clearCache(): void;
|
|
13
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export class SignatureManager {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.cacheByLength = new Map();
|
|
4
|
-
this.registry = new FinalizationRegistry((entry) => {
|
|
5
|
-
const set = this.cacheByLength.get(entry.length);
|
|
6
|
-
if (set) {
|
|
7
|
-
set.delete(entry);
|
|
8
|
-
if (set.size === 0) {
|
|
9
|
-
this.cacheByLength.delete(entry.length);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
addSignature(data, signature) {
|
|
15
|
-
const length = data.length;
|
|
16
|
-
const entry = {
|
|
17
|
-
length,
|
|
18
|
-
dataRef: new WeakRef(data),
|
|
19
|
-
signature,
|
|
20
|
-
};
|
|
21
|
-
if (!this.cacheByLength.has(length)) {
|
|
22
|
-
this.cacheByLength.set(length, new Set());
|
|
23
|
-
}
|
|
24
|
-
const set = this.cacheByLength.get(length);
|
|
25
|
-
set.add(entry);
|
|
26
|
-
this.registry.register(data, entry);
|
|
27
|
-
return signature;
|
|
28
|
-
}
|
|
29
|
-
getSignature(data) {
|
|
30
|
-
const length = data.length;
|
|
31
|
-
const set = this.cacheByLength.get(length);
|
|
32
|
-
if (!set)
|
|
33
|
-
return undefined;
|
|
34
|
-
for (const entry of set) {
|
|
35
|
-
const cachedData = entry.dataRef.deref();
|
|
36
|
-
if (cachedData && cachedData.equals(data)) {
|
|
37
|
-
return entry.signature;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
clearCache() {
|
|
43
|
-
this.cacheByLength.clear();
|
|
44
|
-
}
|
|
45
|
-
}
|
package/build/payments/lazy.d.ts
DELETED
package/build/payments/lazy.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export function prop(object, name, f) {
|
|
2
|
-
Object.defineProperty(object, name, {
|
|
3
|
-
configurable: true,
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get() {
|
|
6
|
-
const _value = f.call(this);
|
|
7
|
-
this[name] = _value;
|
|
8
|
-
return _value;
|
|
9
|
-
},
|
|
10
|
-
set(_value) {
|
|
11
|
-
Object.defineProperty(this, name, {
|
|
12
|
-
configurable: true,
|
|
13
|
-
enumerable: true,
|
|
14
|
-
value: _value,
|
|
15
|
-
writable: true,
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
export function value(f) {
|
|
21
|
-
let _value;
|
|
22
|
-
return () => {
|
|
23
|
-
if (_value !== undefined)
|
|
24
|
-
return _value;
|
|
25
|
-
_value = f();
|
|
26
|
-
return _value;
|
|
27
|
-
};
|
|
28
|
-
}
|