@ckb-ccc/core 0.0.0-canary-20250214032000
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/CHANGELOG.md +375 -0
- package/README.md +41 -0
- package/dist/address/address.advanced.d.ts +65 -0
- package/dist/address/address.advanced.d.ts.map +1 -0
- package/dist/address/address.advanced.js +147 -0
- package/dist/address/advanced.d.ts +2 -0
- package/dist/address/advanced.d.ts.map +1 -0
- package/dist/address/advanced.js +1 -0
- package/dist/address/index.d.ts +58 -0
- package/dist/address/index.d.ts.map +1 -0
- package/dist/address/index.js +78 -0
- package/dist/advanced.d.ts +3 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +2 -0
- package/dist/advancedBarrel.d.ts +7 -0
- package/dist/advancedBarrel.d.ts.map +1 -0
- package/dist/advancedBarrel.js +6 -0
- package/dist/barrel.d.ts +14 -0
- package/dist/barrel.d.ts.map +1 -0
- package/dist/barrel.js +13 -0
- package/dist/bytes/advanced.d.ts +6 -0
- package/dist/bytes/advanced.d.ts.map +1 -0
- package/dist/bytes/advanced.js +1 -0
- package/dist/bytes/index.d.ts +108 -0
- package/dist/bytes/index.d.ts.map +1 -0
- package/dist/bytes/index.js +151 -0
- package/dist/ckb/advanced.d.ts +3 -0
- package/dist/ckb/advanced.d.ts.map +1 -0
- package/dist/ckb/advanced.js +2 -0
- package/dist/ckb/index.d.ts +4 -0
- package/dist/ckb/index.d.ts.map +1 -0
- package/dist/ckb/index.js +3 -0
- package/dist/ckb/script.advanced.d.ts +5 -0
- package/dist/ckb/script.advanced.d.ts.map +1 -0
- package/dist/ckb/script.advanced.js +13 -0
- package/dist/ckb/script.d.ts +143 -0
- package/dist/ckb/script.d.ts.map +1 -0
- package/dist/ckb/script.js +167 -0
- package/dist/ckb/transaction.advanced.d.ts +5 -0
- package/dist/ckb/transaction.advanced.d.ts.map +1 -0
- package/dist/ckb/transaction.advanced.js +9 -0
- package/dist/ckb/transaction.d.ts +893 -0
- package/dist/ckb/transaction.d.ts.map +1 -0
- package/dist/ckb/transaction.js +1299 -0
- package/dist/ckb/transactionLumos.d.ts +30 -0
- package/dist/ckb/transactionLumos.d.ts.map +1 -0
- package/dist/ckb/transactionLumos.js +1 -0
- package/dist/client/advanced.d.ts +6 -0
- package/dist/client/advanced.d.ts.map +1 -0
- package/dist/client/advanced.js +5 -0
- package/dist/client/cache/advanced.d.ts +2 -0
- package/dist/client/cache/advanced.d.ts.map +1 -0
- package/dist/client/cache/advanced.js +1 -0
- package/dist/client/cache/cache.d.ts +91 -0
- package/dist/client/cache/cache.d.ts.map +1 -0
- package/dist/client/cache/cache.js +128 -0
- package/dist/client/cache/index.d.ts +3 -0
- package/dist/client/cache/index.d.ts.map +1 -0
- package/dist/client/cache/index.js +2 -0
- package/dist/client/cache/memory.advanced.d.ts +22 -0
- package/dist/client/cache/memory.advanced.d.ts.map +1 -0
- package/dist/client/cache/memory.advanced.js +118 -0
- package/dist/client/cache/memory.d.ts +44 -0
- package/dist/client/cache/memory.d.ts.map +1 -0
- package/dist/client/cache/memory.js +137 -0
- package/dist/client/client.d.ts +98 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +323 -0
- package/dist/client/clientPublicMainnet.advanced.d.ts +3 -0
- package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -0
- package/dist/client/clientPublicMainnet.advanced.js +326 -0
- package/dist/client/clientPublicMainnet.d.ts +16 -0
- package/dist/client/clientPublicMainnet.d.ts.map +1 -0
- package/dist/client/clientPublicMainnet.js +40 -0
- package/dist/client/clientPublicTestnet.advanced.d.ts +3 -0
- package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -0
- package/dist/client/clientPublicTestnet.advanced.js +336 -0
- package/dist/client/clientPublicTestnet.d.ts +16 -0
- package/dist/client/clientPublicTestnet.d.ts.map +1 -0
- package/dist/client/clientPublicTestnet.js +40 -0
- package/dist/client/clientTypes.advanced.d.ts +26 -0
- package/dist/client/clientTypes.advanced.d.ts.map +1 -0
- package/dist/client/clientTypes.advanced.js +7 -0
- package/dist/client/clientTypes.d.ts +360 -0
- package/dist/client/clientTypes.d.ts.map +1 -0
- package/dist/client/clientTypes.js +259 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +6 -0
- package/dist/client/jsonRpc/advanced.d.ts +3 -0
- package/dist/client/jsonRpc/advanced.d.ts.map +1 -0
- package/dist/client/jsonRpc/advanced.js +2 -0
- package/dist/client/jsonRpc/client.d.ts +160 -0
- package/dist/client/jsonRpc/client.d.ts.map +1 -0
- package/dist/client/jsonRpc/client.js +220 -0
- package/dist/client/jsonRpc/index.d.ts +2 -0
- package/dist/client/jsonRpc/index.d.ts.map +1 -0
- package/dist/client/jsonRpc/index.js +1 -0
- package/dist/client/jsonRpc/transformers.d.ts +51 -0
- package/dist/client/jsonRpc/transformers.d.ts.map +1 -0
- package/dist/client/jsonRpc/transformers.js +246 -0
- package/dist/client/jsonRpc/types.d.ts +101 -0
- package/dist/client/jsonRpc/types.d.ts.map +1 -0
- package/dist/client/jsonRpc/types.js +1 -0
- package/dist/fixedPoint/index.d.ts +55 -0
- package/dist/fixedPoint/index.d.ts.map +1 -0
- package/dist/fixedPoint/index.js +68 -0
- package/dist/hasher/advanced.d.ts +2 -0
- package/dist/hasher/advanced.d.ts.map +1 -0
- package/dist/hasher/advanced.js +1 -0
- package/dist/hasher/hasher.d.ts +35 -0
- package/dist/hasher/hasher.d.ts.map +1 -0
- package/dist/hasher/hasher.js +1 -0
- package/dist/hasher/hasherCkb.d.ts +73 -0
- package/dist/hasher/hasherCkb.d.ts.map +1 -0
- package/dist/hasher/hasherCkb.js +88 -0
- package/dist/hasher/hasherKeecak256.d.ts +41 -0
- package/dist/hasher/hasherKeecak256.d.ts.map +1 -0
- package/dist/hasher/hasherKeecak256.js +46 -0
- package/dist/hasher/index.d.ts +4 -0
- package/dist/hasher/index.d.ts.map +1 -0
- package/dist/hasher/index.js +3 -0
- package/dist/hex/index.d.ts +27 -0
- package/dist/hex/index.d.ts.map +1 -0
- package/dist/hex/index.js +17 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/jsonRpc/advanced.d.ts +2 -0
- package/dist/jsonRpc/advanced.d.ts.map +1 -0
- package/dist/jsonRpc/advanced.js +1 -0
- package/dist/jsonRpc/index.d.ts +2 -0
- package/dist/jsonRpc/index.d.ts.map +1 -0
- package/dist/jsonRpc/index.js +1 -0
- package/dist/jsonRpc/requestor.d.ts +49 -0
- package/dist/jsonRpc/requestor.d.ts.map +1 -0
- package/dist/jsonRpc/requestor.js +109 -0
- package/dist/jsonRpc/transports/advanced.d.ts +6 -0
- package/dist/jsonRpc/transports/advanced.d.ts.map +1 -0
- package/dist/jsonRpc/transports/advanced.js +5 -0
- package/dist/jsonRpc/transports/factory.d.ts +6 -0
- package/dist/jsonRpc/transports/factory.d.ts.map +1 -0
- package/dist/jsonRpc/transports/factory.js +8 -0
- package/dist/jsonRpc/transports/fallback.d.ts +8 -0
- package/dist/jsonRpc/transports/fallback.d.ts.map +1 -0
- package/dist/jsonRpc/transports/fallback.js +22 -0
- package/dist/jsonRpc/transports/http.d.ts +8 -0
- package/dist/jsonRpc/transports/http.d.ts.map +1 -0
- package/dist/jsonRpc/transports/http.js +22 -0
- package/dist/jsonRpc/transports/transport.d.ts +18 -0
- package/dist/jsonRpc/transports/transport.d.ts.map +1 -0
- package/dist/jsonRpc/transports/transport.js +1 -0
- package/dist/jsonRpc/transports/webSocket.d.ts +11 -0
- package/dist/jsonRpc/transports/webSocket.d.ts.map +1 -0
- package/dist/jsonRpc/transports/webSocket.js +87 -0
- package/dist/keystore/index.d.ts +31 -0
- package/dist/keystore/index.d.ts.map +1 -0
- package/dist/keystore/index.js +106 -0
- package/dist/molecule/barrel.d.ts +4 -0
- package/dist/molecule/barrel.d.ts.map +1 -0
- package/dist/molecule/barrel.js +3 -0
- package/dist/molecule/codec.d.ts +120 -0
- package/dist/molecule/codec.d.ts.map +1 -0
- package/dist/molecule/codec.js +468 -0
- package/dist/molecule/entity.d.ts +119 -0
- package/dist/molecule/entity.d.ts.map +1 -0
- package/dist/molecule/entity.js +134 -0
- package/dist/molecule/index.d.ts +2 -0
- package/dist/molecule/index.d.ts.map +1 -0
- package/dist/molecule/index.js +1 -0
- package/dist/molecule/predefined.d.ts +57 -0
- package/dist/molecule/predefined.d.ts.map +1 -0
- package/dist/molecule/predefined.js +83 -0
- package/dist/num/index.d.ts +148 -0
- package/dist/num/index.d.ts.map +1 -0
- package/dist/num/index.js +188 -0
- package/dist/package.json +3 -0
- package/dist/signer/btc/index.d.ts +4 -0
- package/dist/signer/btc/index.d.ts.map +1 -0
- package/dist/signer/btc/index.js +3 -0
- package/dist/signer/btc/signerBtc.d.ts +59 -0
- package/dist/signer/btc/signerBtc.d.ts.map +1 -0
- package/dist/signer/btc/signerBtc.js +83 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts +55 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -0
- package/dist/signer/btc/signerBtcPublicKeyReadonly.js +61 -0
- package/dist/signer/btc/verify.d.ts +19 -0
- package/dist/signer/btc/verify.d.ts.map +1 -0
- package/dist/signer/btc/verify.js +33 -0
- package/dist/signer/ckb/index.d.ts +6 -0
- package/dist/signer/ckb/index.d.ts.map +1 -0
- package/dist/signer/ckb/index.js +5 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts +16 -0
- package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
- package/dist/signer/ckb/signerCkbPrivateKey.js +42 -0
- package/dist/signer/ckb/signerCkbPublicKey.d.ts +27 -0
- package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
- package/dist/signer/ckb/signerCkbPublicKey.js +105 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts +56 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -0
- package/dist/signer/ckb/signerCkbScriptReadonly.js +66 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +11 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
- package/dist/signer/ckb/verifyCkbSecp256k1.js +20 -0
- package/dist/signer/ckb/verifyJoyId.d.ts +6 -0
- package/dist/signer/ckb/verifyJoyId.d.ts.map +1 -0
- package/dist/signer/ckb/verifyJoyId.js +16 -0
- package/dist/signer/doge/index.d.ts +5 -0
- package/dist/signer/doge/index.d.ts.map +1 -0
- package/dist/signer/doge/index.js +4 -0
- package/dist/signer/doge/signerDoge.d.ts +52 -0
- package/dist/signer/doge/signerDoge.d.ts.map +1 -0
- package/dist/signer/doge/signerDoge.js +82 -0
- package/dist/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
- package/dist/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
- package/dist/signer/doge/signerDogeAddressReadonly.js +45 -0
- package/dist/signer/doge/signerDogePrivateKey.d.ts +52 -0
- package/dist/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
- package/dist/signer/doge/signerDogePrivateKey.js +68 -0
- package/dist/signer/doge/verify.d.ts +6 -0
- package/dist/signer/doge/verify.d.ts.map +1 -0
- package/dist/signer/doge/verify.js +19 -0
- package/dist/signer/dummy/alwaysError.d.ts +12 -0
- package/dist/signer/dummy/alwaysError.d.ts.map +1 -0
- package/dist/signer/dummy/alwaysError.js +13 -0
- package/dist/signer/dummy/dummy.d.ts +15 -0
- package/dist/signer/dummy/dummy.d.ts.map +1 -0
- package/dist/signer/dummy/dummy.js +22 -0
- package/dist/signer/dummy/index.d.ts +4 -0
- package/dist/signer/dummy/index.d.ts.map +1 -0
- package/dist/signer/dummy/index.js +3 -0
- package/dist/signer/dummy/openLink.d.ts +12 -0
- package/dist/signer/dummy/openLink.d.ts.map +1 -0
- package/dist/signer/dummy/openLink.js +13 -0
- package/dist/signer/evm/index.d.ts +4 -0
- package/dist/signer/evm/index.d.ts.map +1 -0
- package/dist/signer/evm/index.js +3 -0
- package/dist/signer/evm/signerEvm.d.ts +59 -0
- package/dist/signer/evm/signerEvm.d.ts.map +1 -0
- package/dist/signer/evm/signerEvm.js +139 -0
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts +47 -0
- package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -0
- package/dist/signer/evm/signerEvmAddressReadonly.js +51 -0
- package/dist/signer/evm/verify.d.ts +6 -0
- package/dist/signer/evm/verify.d.ts.map +1 -0
- package/dist/signer/evm/verify.js +9 -0
- package/dist/signer/index.d.ts +8 -0
- package/dist/signer/index.d.ts.map +1 -0
- package/dist/signer/index.js +7 -0
- package/dist/signer/nostr/index.d.ts +4 -0
- package/dist/signer/nostr/index.d.ts.map +1 -0
- package/dist/signer/nostr/index.js +3 -0
- package/dist/signer/nostr/signerNostr.d.ts +72 -0
- package/dist/signer/nostr/signerNostr.d.ts.map +1 -0
- package/dist/signer/nostr/signerNostr.js +88 -0
- package/dist/signer/nostr/signerNostrPrivateKey.d.ts +12 -0
- package/dist/signer/nostr/signerNostrPrivateKey.d.ts.map +1 -0
- package/dist/signer/nostr/signerNostrPrivateKey.js +28 -0
- package/dist/signer/nostr/verify.d.ts +9 -0
- package/dist/signer/nostr/verify.d.ts.map +1 -0
- package/dist/signer/nostr/verify.js +55 -0
- package/dist/signer/signer/index.d.ts +237 -0
- package/dist/signer/signer/index.d.ts.map +1 -0
- package/dist/signer/signer/index.js +274 -0
- package/dist/utils/index.d.ts +97 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +55 -0
- package/dist.commonjs/address/address.advanced.d.ts +65 -0
- package/dist.commonjs/address/address.advanced.d.ts.map +1 -0
- package/dist.commonjs/address/address.advanced.js +152 -0
- package/dist.commonjs/address/advanced.d.ts +2 -0
- package/dist.commonjs/address/advanced.d.ts.map +1 -0
- package/dist.commonjs/address/advanced.js +17 -0
- package/dist.commonjs/address/index.d.ts +58 -0
- package/dist.commonjs/address/index.d.ts.map +1 -0
- package/dist.commonjs/address/index.js +82 -0
- package/dist.commonjs/advanced.d.ts +3 -0
- package/dist.commonjs/advanced.d.ts.map +1 -0
- package/dist.commonjs/advanced.js +41 -0
- package/dist.commonjs/advancedBarrel.d.ts +7 -0
- package/dist.commonjs/advancedBarrel.d.ts.map +1 -0
- package/dist.commonjs/advancedBarrel.js +22 -0
- package/dist.commonjs/barrel.d.ts +14 -0
- package/dist.commonjs/barrel.d.ts.map +1 -0
- package/dist.commonjs/barrel.js +29 -0
- package/dist.commonjs/bytes/advanced.d.ts +6 -0
- package/dist.commonjs/bytes/advanced.d.ts.map +1 -0
- package/dist.commonjs/bytes/advanced.js +2 -0
- package/dist.commonjs/bytes/index.d.ts +108 -0
- package/dist.commonjs/bytes/index.d.ts.map +1 -0
- package/dist.commonjs/bytes/index.js +158 -0
- package/dist.commonjs/ckb/advanced.d.ts +3 -0
- package/dist.commonjs/ckb/advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/advanced.js +18 -0
- package/dist.commonjs/ckb/index.d.ts +4 -0
- package/dist.commonjs/ckb/index.d.ts.map +1 -0
- package/dist.commonjs/ckb/index.js +19 -0
- package/dist.commonjs/ckb/script.advanced.d.ts +5 -0
- package/dist.commonjs/ckb/script.advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/script.advanced.js +16 -0
- package/dist.commonjs/ckb/script.d.ts +143 -0
- package/dist.commonjs/ckb/script.d.ts.map +1 -0
- package/dist.commonjs/ckb/script.js +173 -0
- package/dist.commonjs/ckb/transaction.advanced.d.ts +5 -0
- package/dist.commonjs/ckb/transaction.advanced.d.ts.map +1 -0
- package/dist.commonjs/ckb/transaction.advanced.js +12 -0
- package/dist.commonjs/ckb/transaction.d.ts +893 -0
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -0
- package/dist.commonjs/ckb/transaction.js +1310 -0
- package/dist.commonjs/ckb/transactionLumos.d.ts +30 -0
- package/dist.commonjs/ckb/transactionLumos.d.ts.map +1 -0
- package/dist.commonjs/ckb/transactionLumos.js +2 -0
- package/dist.commonjs/client/advanced.d.ts +6 -0
- package/dist.commonjs/client/advanced.d.ts.map +1 -0
- package/dist.commonjs/client/advanced.js +21 -0
- package/dist.commonjs/client/cache/advanced.d.ts +2 -0
- package/dist.commonjs/client/cache/advanced.d.ts.map +1 -0
- package/dist.commonjs/client/cache/advanced.js +17 -0
- package/dist.commonjs/client/cache/cache.d.ts +91 -0
- package/dist.commonjs/client/cache/cache.d.ts.map +1 -0
- package/dist.commonjs/client/cache/cache.js +132 -0
- package/dist.commonjs/client/cache/index.d.ts +3 -0
- package/dist.commonjs/client/cache/index.d.ts.map +1 -0
- package/dist.commonjs/client/cache/index.js +18 -0
- package/dist.commonjs/client/cache/memory.advanced.d.ts +22 -0
- package/dist.commonjs/client/cache/memory.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/cache/memory.advanced.js +127 -0
- package/dist.commonjs/client/cache/memory.d.ts +44 -0
- package/dist.commonjs/client/cache/memory.d.ts.map +1 -0
- package/dist.commonjs/client/cache/memory.js +141 -0
- package/dist.commonjs/client/client.d.ts +98 -0
- package/dist.commonjs/client/client.d.ts.map +1 -0
- package/dist.commonjs/client/client.js +327 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +3 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +329 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts +16 -0
- package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicMainnet.js +47 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +3 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +339 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts +16 -0
- package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -0
- package/dist.commonjs/client/clientPublicTestnet.js +47 -0
- package/dist.commonjs/client/clientTypes.advanced.d.ts +26 -0
- package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -0
- package/dist.commonjs/client/clientTypes.advanced.js +11 -0
- package/dist.commonjs/client/clientTypes.d.ts +360 -0
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -0
- package/dist.commonjs/client/clientTypes.js +278 -0
- package/dist.commonjs/client/index.d.ts +7 -0
- package/dist.commonjs/client/index.d.ts.map +1 -0
- package/dist.commonjs/client/index.js +22 -0
- package/dist.commonjs/client/jsonRpc/advanced.d.ts +3 -0
- package/dist.commonjs/client/jsonRpc/advanced.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/advanced.js +18 -0
- package/dist.commonjs/client/jsonRpc/client.d.ts +160 -0
- package/dist.commonjs/client/jsonRpc/client.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/client.js +224 -0
- package/dist.commonjs/client/jsonRpc/index.d.ts +2 -0
- package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/index.js +17 -0
- package/dist.commonjs/client/jsonRpc/transformers.d.ts +51 -0
- package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/transformers.js +250 -0
- package/dist.commonjs/client/jsonRpc/types.d.ts +101 -0
- package/dist.commonjs/client/jsonRpc/types.d.ts.map +1 -0
- package/dist.commonjs/client/jsonRpc/types.js +2 -0
- package/dist.commonjs/fixedPoint/index.d.ts +55 -0
- package/dist.commonjs/fixedPoint/index.d.ts.map +1 -0
- package/dist.commonjs/fixedPoint/index.js +73 -0
- package/dist.commonjs/hasher/advanced.d.ts +2 -0
- package/dist.commonjs/hasher/advanced.d.ts.map +1 -0
- package/dist.commonjs/hasher/advanced.js +4 -0
- package/dist.commonjs/hasher/hasher.d.ts +35 -0
- package/dist.commonjs/hasher/hasher.d.ts.map +1 -0
- package/dist.commonjs/hasher/hasher.js +2 -0
- package/dist.commonjs/hasher/hasherCkb.d.ts +73 -0
- package/dist.commonjs/hasher/hasherCkb.d.ts.map +1 -0
- package/dist.commonjs/hasher/hasherCkb.js +94 -0
- package/dist.commonjs/hasher/hasherKeecak256.d.ts +41 -0
- package/dist.commonjs/hasher/hasherKeecak256.d.ts.map +1 -0
- package/dist.commonjs/hasher/hasherKeecak256.js +50 -0
- package/dist.commonjs/hasher/index.d.ts +4 -0
- package/dist.commonjs/hasher/index.d.ts.map +1 -0
- package/dist.commonjs/hasher/index.js +19 -0
- package/dist.commonjs/hex/index.d.ts +27 -0
- package/dist.commonjs/hex/index.d.ts.map +1 -0
- package/dist.commonjs/hex/index.js +20 -0
- package/dist.commonjs/index.d.ts +3 -0
- package/dist.commonjs/index.d.ts.map +1 -0
- package/dist.commonjs/index.js +41 -0
- package/dist.commonjs/jsonRpc/advanced.d.ts +2 -0
- package/dist.commonjs/jsonRpc/advanced.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/advanced.js +17 -0
- package/dist.commonjs/jsonRpc/index.d.ts +2 -0
- package/dist.commonjs/jsonRpc/index.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/index.js +17 -0
- package/dist.commonjs/jsonRpc/requestor.d.ts +49 -0
- package/dist.commonjs/jsonRpc/requestor.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/requestor.js +113 -0
- package/dist.commonjs/jsonRpc/transports/advanced.d.ts +6 -0
- package/dist.commonjs/jsonRpc/transports/advanced.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/advanced.js +21 -0
- package/dist.commonjs/jsonRpc/transports/factory.d.ts +6 -0
- package/dist.commonjs/jsonRpc/transports/factory.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/factory.js +11 -0
- package/dist.commonjs/jsonRpc/transports/fallback.d.ts +8 -0
- package/dist.commonjs/jsonRpc/transports/fallback.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/fallback.js +26 -0
- package/dist.commonjs/jsonRpc/transports/http.d.ts +8 -0
- package/dist.commonjs/jsonRpc/transports/http.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/http.js +26 -0
- package/dist.commonjs/jsonRpc/transports/transport.d.ts +18 -0
- package/dist.commonjs/jsonRpc/transports/transport.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/transport.js +2 -0
- package/dist.commonjs/jsonRpc/transports/webSocket.d.ts +11 -0
- package/dist.commonjs/jsonRpc/transports/webSocket.d.ts.map +1 -0
- package/dist.commonjs/jsonRpc/transports/webSocket.js +94 -0
- package/dist.commonjs/keystore/index.d.ts +31 -0
- package/dist.commonjs/keystore/index.d.ts.map +1 -0
- package/dist.commonjs/keystore/index.js +110 -0
- package/dist.commonjs/molecule/barrel.d.ts +4 -0
- package/dist.commonjs/molecule/barrel.d.ts.map +1 -0
- package/dist.commonjs/molecule/barrel.js +19 -0
- package/dist.commonjs/molecule/codec.d.ts +120 -0
- package/dist.commonjs/molecule/codec.d.ts.map +1 -0
- package/dist.commonjs/molecule/codec.js +483 -0
- package/dist.commonjs/molecule/entity.d.ts +119 -0
- package/dist.commonjs/molecule/entity.d.ts.map +1 -0
- package/dist.commonjs/molecule/entity.js +139 -0
- package/dist.commonjs/molecule/index.d.ts +2 -0
- package/dist.commonjs/molecule/index.d.ts.map +1 -0
- package/dist.commonjs/molecule/index.js +37 -0
- package/dist.commonjs/molecule/predefined.d.ts +57 -0
- package/dist.commonjs/molecule/predefined.d.ts.map +1 -0
- package/dist.commonjs/molecule/predefined.js +87 -0
- package/dist.commonjs/num/index.d.ts +148 -0
- package/dist.commonjs/num/index.d.ts.map +1 -0
- package/dist.commonjs/num/index.js +200 -0
- package/dist.commonjs/package.json +3 -0
- package/dist.commonjs/signer/btc/index.d.ts +4 -0
- package/dist.commonjs/signer/btc/index.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/index.js +19 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts +59 -0
- package/dist.commonjs/signer/btc/signerBtc.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/signerBtc.js +87 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +55 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +65 -0
- package/dist.commonjs/signer/btc/verify.d.ts +19 -0
- package/dist.commonjs/signer/btc/verify.d.ts.map +1 -0
- package/dist.commonjs/signer/btc/verify.js +42 -0
- package/dist.commonjs/signer/ckb/index.d.ts +6 -0
- package/dist.commonjs/signer/ckb/index.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/index.js +21 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +16 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +46 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +27 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +109 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +56 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +70 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +11 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +24 -0
- package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +6 -0
- package/dist.commonjs/signer/ckb/verifyJoyId.d.ts.map +1 -0
- package/dist.commonjs/signer/ckb/verifyJoyId.js +19 -0
- package/dist.commonjs/signer/doge/index.d.ts +5 -0
- package/dist.commonjs/signer/doge/index.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/index.js +20 -0
- package/dist.commonjs/signer/doge/signerDoge.d.ts +52 -0
- package/dist.commonjs/signer/doge/signerDoge.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDoge.js +89 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts +41 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDogeAddressReadonly.js +49 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts +52 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/signerDogePrivateKey.js +72 -0
- package/dist.commonjs/signer/doge/verify.d.ts +6 -0
- package/dist.commonjs/signer/doge/verify.d.ts.map +1 -0
- package/dist.commonjs/signer/doge/verify.js +22 -0
- package/dist.commonjs/signer/dummy/alwaysError.d.ts +12 -0
- package/dist.commonjs/signer/dummy/alwaysError.d.ts.map +1 -0
- package/dist.commonjs/signer/dummy/alwaysError.js +17 -0
- package/dist.commonjs/signer/dummy/dummy.d.ts +15 -0
- package/dist.commonjs/signer/dummy/dummy.d.ts.map +1 -0
- package/dist.commonjs/signer/dummy/dummy.js +26 -0
- package/dist.commonjs/signer/dummy/index.d.ts +4 -0
- package/dist.commonjs/signer/dummy/index.d.ts.map +1 -0
- package/dist.commonjs/signer/dummy/index.js +19 -0
- package/dist.commonjs/signer/dummy/openLink.d.ts +12 -0
- package/dist.commonjs/signer/dummy/openLink.d.ts.map +1 -0
- package/dist.commonjs/signer/dummy/openLink.js +17 -0
- package/dist.commonjs/signer/evm/index.d.ts +4 -0
- package/dist.commonjs/signer/evm/index.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/index.js +19 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts +59 -0
- package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/signerEvm.js +143 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +47 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +55 -0
- package/dist.commonjs/signer/evm/verify.d.ts +6 -0
- package/dist.commonjs/signer/evm/verify.d.ts.map +1 -0
- package/dist.commonjs/signer/evm/verify.js +12 -0
- package/dist.commonjs/signer/index.d.ts +8 -0
- package/dist.commonjs/signer/index.d.ts.map +1 -0
- package/dist.commonjs/signer/index.js +23 -0
- package/dist.commonjs/signer/nostr/index.d.ts +4 -0
- package/dist.commonjs/signer/nostr/index.d.ts.map +1 -0
- package/dist.commonjs/signer/nostr/index.js +19 -0
- package/dist.commonjs/signer/nostr/signerNostr.d.ts +72 -0
- package/dist.commonjs/signer/nostr/signerNostr.d.ts.map +1 -0
- package/dist.commonjs/signer/nostr/signerNostr.js +92 -0
- package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts +12 -0
- package/dist.commonjs/signer/nostr/signerNostrPrivateKey.d.ts.map +1 -0
- package/dist.commonjs/signer/nostr/signerNostrPrivateKey.js +32 -0
- package/dist.commonjs/signer/nostr/verify.d.ts +9 -0
- package/dist.commonjs/signer/nostr/verify.d.ts.map +1 -0
- package/dist.commonjs/signer/nostr/verify.js +60 -0
- package/dist.commonjs/signer/signer/index.d.ts +237 -0
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -0
- package/dist.commonjs/signer/signer/index.js +280 -0
- package/dist.commonjs/utils/index.d.ts +97 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -0
- package/dist.commonjs/utils/index.js +62 -0
- package/jest.config.js +5 -0
- package/package.json +80 -0
- package/src/address/address.advanced.ts +182 -0
- package/src/address/advanced.ts +1 -0
- package/src/address/index.ts +127 -0
- package/src/advanced.ts +2 -0
- package/src/advancedBarrel.ts +6 -0
- package/src/barrel.ts +13 -0
- package/src/bytes/advanced.ts +14 -0
- package/src/bytes/index.ts +184 -0
- package/src/ckb/advanced.ts +2 -0
- package/src/ckb/index.ts +3 -0
- package/src/ckb/script.advanced.ts +15 -0
- package/src/ckb/script.ts +214 -0
- package/src/ckb/transaction.advanced.ts +11 -0
- package/src/ckb/transaction.ts +1781 -0
- package/src/ckb/transactionLumos.ts +27 -0
- package/src/client/advanced.ts +5 -0
- package/src/client/cache/advanced.ts +1 -0
- package/src/client/cache/cache.ts +188 -0
- package/src/client/cache/index.ts +2 -0
- package/src/client/cache/memory.advanced.ts +190 -0
- package/src/client/cache/memory.ts +219 -0
- package/src/client/client.ts +703 -0
- package/src/client/clientPublicMainnet.advanced.ts +372 -0
- package/src/client/clientPublicMainnet.ts +54 -0
- package/src/client/clientPublicTestnet.advanced.ts +384 -0
- package/src/client/clientPublicTestnet.ts +54 -0
- package/src/client/clientTypes.advanced.ts +30 -0
- package/src/client/clientTypes.ts +590 -0
- package/src/client/index.ts +6 -0
- package/src/client/jsonRpc/advanced.ts +2 -0
- package/src/client/jsonRpc/client.ts +397 -0
- package/src/client/jsonRpc/index.ts +1 -0
- package/src/client/jsonRpc/transformers.ts +358 -0
- package/src/client/jsonRpc/types.ts +115 -0
- package/src/fixedPoint/index.ts +92 -0
- package/src/hasher/advanced.ts +1 -0
- package/src/hasher/hasher.ts +38 -0
- package/src/hasher/hasherCkb.ts +107 -0
- package/src/hasher/hasherKeecak256.ts +55 -0
- package/src/hasher/index.ts +3 -0
- package/src/hex/index.ts +30 -0
- package/src/index.ts +2 -0
- package/src/jsonRpc/advanced.ts +1 -0
- package/src/jsonRpc/index.ts +1 -0
- package/src/jsonRpc/requestor.ts +166 -0
- package/src/jsonRpc/transports/advanced.ts +5 -0
- package/src/jsonRpc/transports/factory.ts +10 -0
- package/src/jsonRpc/transports/fallback.ts +27 -0
- package/src/jsonRpc/transports/http.ts +28 -0
- package/src/jsonRpc/transports/transport.ts +18 -0
- package/src/jsonRpc/transports/webSocket.ts +114 -0
- package/src/keystore/index.ts +162 -0
- package/src/molecule/barrel.ts +3 -0
- package/src/molecule/codec.ts +651 -0
- package/src/molecule/entity.ts +183 -0
- package/src/molecule/index.ts +1 -0
- package/src/molecule/predefined.ts +97 -0
- package/src/num/index.ts +217 -0
- package/src/signer/btc/index.ts +3 -0
- package/src/signer/btc/signerBtc.ts +126 -0
- package/src/signer/btc/signerBtcPublicKeyReadonly.ts +73 -0
- package/src/signer/btc/verify.ts +49 -0
- package/src/signer/ckb/index.ts +5 -0
- package/src/signer/ckb/signerCkbPrivateKey.ts +65 -0
- package/src/signer/ckb/signerCkbPublicKey.ts +151 -0
- package/src/signer/ckb/signerCkbScriptReadonly.ts +78 -0
- package/src/signer/ckb/verifyCkbSecp256k1.ts +33 -0
- package/src/signer/ckb/verifyJoyId.ts +27 -0
- package/src/signer/doge/index.ts +4 -0
- package/src/signer/doge/signerDoge.ts +116 -0
- package/src/signer/doge/signerDogeAddressReadonly.ts +52 -0
- package/src/signer/doge/signerDogePrivateKey.ts +97 -0
- package/src/signer/doge/verify.ts +40 -0
- package/src/signer/dummy/alwaysError.ts +20 -0
- package/src/signer/dummy/dummy.ts +31 -0
- package/src/signer/dummy/index.ts +3 -0
- package/src/signer/dummy/openLink.ts +20 -0
- package/src/signer/evm/index.ts +3 -0
- package/src/signer/evm/signerEvm.ts +259 -0
- package/src/signer/evm/signerEvmAddressReadonly.ts +60 -0
- package/src/signer/evm/verify.ts +19 -0
- package/src/signer/index.ts +7 -0
- package/src/signer/nostr/index.ts +3 -0
- package/src/signer/nostr/signerNostr.ts +141 -0
- package/src/signer/nostr/signerNostrPrivateKey.ts +37 -0
- package/src/signer/nostr/verify.ts +72 -0
- package/src/signer/signer/index.ts +468 -0
- package/src/utils/index.ts +198 -0
- package/typedoc.json +6 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CellDepLike, CellOutputLike, OutPointLike } from "../ckb/index.js";
|
|
2
|
+
import { HexLike } from "../hex/index.js";
|
|
3
|
+
export interface LumosTransactionSkeletonType {
|
|
4
|
+
cellDeps: {
|
|
5
|
+
toArray(): CellDepLike[];
|
|
6
|
+
};
|
|
7
|
+
headerDeps: {
|
|
8
|
+
toArray(): HexLike[];
|
|
9
|
+
};
|
|
10
|
+
inputs: {
|
|
11
|
+
toArray(): {
|
|
12
|
+
outPoint?: OutPointLike;
|
|
13
|
+
cellOutput: CellOutputLike;
|
|
14
|
+
data: HexLike;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
inputSinces: {
|
|
18
|
+
get(i: number, defaultVal: string): HexLike;
|
|
19
|
+
};
|
|
20
|
+
outputs: {
|
|
21
|
+
toArray(): {
|
|
22
|
+
cellOutput: CellOutputLike;
|
|
23
|
+
data: HexLike;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
witnesses: {
|
|
27
|
+
toArray(): HexLike[];
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=transactionLumos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionLumos.d.ts","sourceRoot":"","sources":["../../src/ckb/transactionLumos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE;QACR,OAAO,IAAI,WAAW,EAAE,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE;QACV,OAAO,IAAI,OAAO,EAAE,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,IAAI;YACT,QAAQ,CAAC,EAAE,YAAY,CAAC;YACxB,UAAU,EAAE,cAAc,CAAC;YAC3B,IAAI,EAAE,OAAO,CAAC;SACf,EAAE,CAAC;KACL,CAAC;IACF,WAAW,EAAE;QACX,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;KAC7C,CAAC;IACF,OAAO,EAAE;QACP,OAAO,IAAI;YAAE,UAAU,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,EAAE,CAAC;KAC5D,CAAC;IACF,SAAS,EAAE;QACT,OAAO,IAAI,OAAO,EAAE,CAAC;KACtB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/client/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/advanced.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./memory.advanced.js";
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../../ckb/index.js";
|
|
2
|
+
import { HexLike } from "../../hex/index.js";
|
|
3
|
+
import { NumLike } from "../../num/index.js";
|
|
4
|
+
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
5
|
+
import { ClientBlock, ClientBlockHeader, ClientBlockHeaderLike, ClientBlockLike, ClientTransactionResponse, ClientTransactionResponseLike } from "../clientTypes.js";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
* The ClientCache class is mainly designed for chained transactions.
|
|
9
|
+
* Consumed & Created cells are "marked" so they can be correctly handled when composing transactions.
|
|
10
|
+
* It also act as cache for rpc requests to reduce cost, but this is optional.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class ClientCache {
|
|
13
|
+
abstract markUsableNoCache(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
14
|
+
markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
15
|
+
abstract markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
16
|
+
markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
17
|
+
abstract clear(): Promise<void>;
|
|
18
|
+
abstract findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
19
|
+
abstract isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Record known cells
|
|
22
|
+
* Implement this method to enable cells query caching
|
|
23
|
+
* @param _cells
|
|
24
|
+
*/
|
|
25
|
+
recordCells(..._cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Get a known cell by out point
|
|
28
|
+
* Implement this method to enable cells query caching
|
|
29
|
+
* @param _outPoint
|
|
30
|
+
*/
|
|
31
|
+
getCell(_outPoint: OutPointLike): Promise<Cell | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Record known transaction responses.
|
|
34
|
+
* Implement this method to enable transactions query caching
|
|
35
|
+
* @param _transactions
|
|
36
|
+
*/
|
|
37
|
+
recordTransactionResponses(..._transactions: (ClientTransactionResponseLike | ClientTransactionResponseLike[])[]): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Get a known transaction response by hash
|
|
40
|
+
* Implement this method to enable transactions query caching
|
|
41
|
+
* @param _txHash
|
|
42
|
+
*/
|
|
43
|
+
getTransactionResponse(_txHash: HexLike): Promise<ClientTransactionResponse | undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* Record known transactions.
|
|
46
|
+
* @param transactions
|
|
47
|
+
*/
|
|
48
|
+
recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Get a known transaction by hash
|
|
51
|
+
* @param txHash
|
|
52
|
+
*/
|
|
53
|
+
getTransaction(txHash: HexLike): Promise<Transaction | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Record known block headers.
|
|
56
|
+
* Implement this method to enable block headers query caching
|
|
57
|
+
* @param _headers
|
|
58
|
+
*/
|
|
59
|
+
recordHeaders(..._headers: (ClientBlockHeaderLike | ClientBlockHeaderLike[])[]): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Get a known block header by hash
|
|
62
|
+
* Implement this method to enable block headers query caching
|
|
63
|
+
* @param _hash
|
|
64
|
+
*/
|
|
65
|
+
getHeaderByHash(_hash: HexLike): Promise<ClientBlockHeader | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* Get a known block header by number
|
|
68
|
+
* Implement this method to enable block headers query caching
|
|
69
|
+
* @param _number
|
|
70
|
+
*/
|
|
71
|
+
getHeaderByNumber(_number: NumLike): Promise<ClientBlockHeader | undefined>;
|
|
72
|
+
/**
|
|
73
|
+
* Record known blocks.
|
|
74
|
+
* Implement this method to enable blocks query caching
|
|
75
|
+
* @param _blocks
|
|
76
|
+
*/
|
|
77
|
+
recordBlocks(..._blocks: (ClientBlockLike | ClientBlockLike[])[]): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Get a known block header by hash
|
|
80
|
+
* Implement this method to enable block headers query caching
|
|
81
|
+
* @param _hash
|
|
82
|
+
*/
|
|
83
|
+
getBlockByHash(_hash: HexLike): Promise<ClientBlock | undefined>;
|
|
84
|
+
/**
|
|
85
|
+
* Get a known block header by number
|
|
86
|
+
* Implement this method to enable block headers query caching
|
|
87
|
+
* @param _number
|
|
88
|
+
*/
|
|
89
|
+
getBlockByNumber(_number: NumLike): Promise<ClientBlock | undefined>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,iBAAiB,CACxB,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IACV,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,QAAQ,CAAC,YAAY,CACnB,GAAG,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IACV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IA4BhB,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAChB,MAAM,EAAE,8BAA8B,GACrC,cAAc,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjE;;;;OAIG;IACG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAIjE;;;;OAIG;IACG,0BAA0B,CAC9B,GAAG,aAAa,EAAE,CACd,6BAA6B,GAC7B,6BAA6B,EAAE,CAClC,EAAE,GACF,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,sBAAsB,CAC1B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAGjD;;;OAGG;IACG,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAQhB;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIvE;;;;OAIG;IACG,aAAa,CACjB,GAAG,QAAQ,EAAE,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAC/D,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAGzC;;;;OAIG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIzC;;;;OAIG;IACG,YAAY,CAChB,GAAG,OAAO,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAGtE;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAG3E"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Transaction, } from "../../ckb/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
* The ClientCache class is mainly designed for chained transactions.
|
|
5
|
+
* Consumed & Created cells are "marked" so they can be correctly handled when composing transactions.
|
|
6
|
+
* It also act as cache for rpc requests to reduce cost, but this is optional.
|
|
7
|
+
*/
|
|
8
|
+
export class ClientCache {
|
|
9
|
+
async markUsable(...cellLikes) {
|
|
10
|
+
await this.recordCells(...cellLikes);
|
|
11
|
+
return this.markUsableNoCache(...cellLikes);
|
|
12
|
+
}
|
|
13
|
+
async markTransactions(...transactionLike) {
|
|
14
|
+
await Promise.all([
|
|
15
|
+
this.recordTransactionResponses(transactionLike.flat().map((transaction) => ({
|
|
16
|
+
transaction: transaction,
|
|
17
|
+
status: "sent",
|
|
18
|
+
}))),
|
|
19
|
+
...transactionLike.flat().map((transactionLike) => {
|
|
20
|
+
const tx = Transaction.from(transactionLike);
|
|
21
|
+
const txHash = tx.hash();
|
|
22
|
+
return Promise.all([
|
|
23
|
+
...tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
|
|
24
|
+
...tx.outputs.map((o, i) => this.markUsable({
|
|
25
|
+
cellOutput: o,
|
|
26
|
+
outputData: tx.outputsData[i],
|
|
27
|
+
outPoint: {
|
|
28
|
+
txHash,
|
|
29
|
+
index: i,
|
|
30
|
+
},
|
|
31
|
+
})),
|
|
32
|
+
]);
|
|
33
|
+
}),
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
// ======
|
|
37
|
+
// Following methods are for requests caching and optional.
|
|
38
|
+
// ======
|
|
39
|
+
/**
|
|
40
|
+
* Record known cells
|
|
41
|
+
* Implement this method to enable cells query caching
|
|
42
|
+
* @param _cells
|
|
43
|
+
*/
|
|
44
|
+
async recordCells(..._cells) { }
|
|
45
|
+
/**
|
|
46
|
+
* Get a known cell by out point
|
|
47
|
+
* Implement this method to enable cells query caching
|
|
48
|
+
* @param _outPoint
|
|
49
|
+
*/
|
|
50
|
+
async getCell(_outPoint) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Record known transaction responses.
|
|
55
|
+
* Implement this method to enable transactions query caching
|
|
56
|
+
* @param _transactions
|
|
57
|
+
*/
|
|
58
|
+
async recordTransactionResponses(..._transactions) { }
|
|
59
|
+
/**
|
|
60
|
+
* Get a known transaction response by hash
|
|
61
|
+
* Implement this method to enable transactions query caching
|
|
62
|
+
* @param _txHash
|
|
63
|
+
*/
|
|
64
|
+
async getTransactionResponse(_txHash) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Record known transactions.
|
|
69
|
+
* @param transactions
|
|
70
|
+
*/
|
|
71
|
+
async recordTransactions(...transactions) {
|
|
72
|
+
return this.recordTransactionResponses(transactions.flat().map((transaction) => ({
|
|
73
|
+
transaction,
|
|
74
|
+
status: "unknown",
|
|
75
|
+
})));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get a known transaction by hash
|
|
79
|
+
* @param txHash
|
|
80
|
+
*/
|
|
81
|
+
async getTransaction(txHash) {
|
|
82
|
+
return (await this.getTransactionResponse(txHash))?.transaction;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Record known block headers.
|
|
86
|
+
* Implement this method to enable block headers query caching
|
|
87
|
+
* @param _headers
|
|
88
|
+
*/
|
|
89
|
+
async recordHeaders(..._headers) { }
|
|
90
|
+
/**
|
|
91
|
+
* Get a known block header by hash
|
|
92
|
+
* Implement this method to enable block headers query caching
|
|
93
|
+
* @param _hash
|
|
94
|
+
*/
|
|
95
|
+
async getHeaderByHash(_hash) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get a known block header by number
|
|
100
|
+
* Implement this method to enable block headers query caching
|
|
101
|
+
* @param _number
|
|
102
|
+
*/
|
|
103
|
+
async getHeaderByNumber(_number) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Record known blocks.
|
|
108
|
+
* Implement this method to enable blocks query caching
|
|
109
|
+
* @param _blocks
|
|
110
|
+
*/
|
|
111
|
+
async recordBlocks(..._blocks) { }
|
|
112
|
+
/**
|
|
113
|
+
* Get a known block header by hash
|
|
114
|
+
* Implement this method to enable block headers query caching
|
|
115
|
+
* @param _hash
|
|
116
|
+
*/
|
|
117
|
+
async getBlockByHash(_hash) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get a known block header by number
|
|
122
|
+
* Implement this method to enable block headers query caching
|
|
123
|
+
* @param _number
|
|
124
|
+
*/
|
|
125
|
+
async getBlockByNumber(_number) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/cache/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Cell, CellLike, ScriptLike } from "../../ckb/index.js";
|
|
2
|
+
import { HexLike } from "../../hex/index.js";
|
|
3
|
+
import { NumLike } from "../../num/index.js";
|
|
4
|
+
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
5
|
+
export type CellRecord = [
|
|
6
|
+
false,
|
|
7
|
+
Pick<Cell, "outPoint"> & Partial<Pick<Cell, "cellOutput" | "outputData">>
|
|
8
|
+
] | [true, Cell] | [undefined, Cell];
|
|
9
|
+
export declare function filterData(dataLike: HexLike, filterLike: HexLike | undefined, filterMode: "exact" | "prefix" | "partial"): boolean;
|
|
10
|
+
export declare function filterScript(valueLike: ScriptLike | undefined, filterLike: ScriptLike | undefined, filterMode: "prefix" | "exact" | "partial"): boolean;
|
|
11
|
+
export declare function filterNumByRange(lengthLike: NumLike, range: [NumLike, NumLike] | undefined): boolean;
|
|
12
|
+
export declare function filterScriptByLenRange(valueLike?: ScriptLike, scriptLenRange?: [NumLike, NumLike]): boolean;
|
|
13
|
+
export declare function filterCell(searchKeyLike: ClientCollectableSearchKeyLike, cellLike: CellLike): boolean;
|
|
14
|
+
export declare class MapLru<K, V> extends Map<K, V> {
|
|
15
|
+
private readonly capacity;
|
|
16
|
+
private readonly lru;
|
|
17
|
+
constructor(capacity: number);
|
|
18
|
+
get(key: K): (V & ({} | null)) | undefined;
|
|
19
|
+
set(key: K, value: V): this;
|
|
20
|
+
delete(key: K): boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=memory.advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.advanced.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAU,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,8BAA8B,EAE/B,MAAM,4BAA4B,CAAC;AAIpC,MAAM,MAAM,UAAU,GAClB;IACE,KAAK;IACL,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;CAC1E,GACD,CAAC,IAAI,EAAE,IAAI,CAAC,GACZ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEtB,wBAAgB,UAAU,CACxB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAgBT;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GACzC,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,GACpC,OAAO,CAQT;AAED,wBAAgB,sBAAsB,CACpC,SAAS,CAAC,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAClC,OAAO,CAYT;AAED,wBAAgB,UAAU,CACxB,aAAa,EAAE,8BAA8B,EAC7C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CA4CT;AAED,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;gBAEF,QAAQ,EAAE,MAAM;IAI7C,GAAG,CAAC,GAAG,EAAE,CAAC;IAmBV,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAOpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;CAYxB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { bytesFrom } from "../../bytes/index.js";
|
|
2
|
+
import { Cell, Script } from "../../ckb/index.js";
|
|
3
|
+
import { hexFrom } from "../../hex/index.js";
|
|
4
|
+
import { numFrom } from "../../num/index.js";
|
|
5
|
+
import { clientSearchKeyRangeFrom, } from "../clientTypes.advanced.js";
|
|
6
|
+
import { ClientIndexerSearchKey } from "../clientTypes.js";
|
|
7
|
+
export function filterData(dataLike, filterLike, filterMode) {
|
|
8
|
+
if (!filterLike) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
const data = hexFrom(dataLike);
|
|
12
|
+
const filter = hexFrom(filterLike);
|
|
13
|
+
if ((filterMode === "exact" && data !== filter) ||
|
|
14
|
+
(filterMode === "prefix" && !data.startsWith(filter)) ||
|
|
15
|
+
(filterMode === "partial" && data.search(filter) === -1)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function filterScript(valueLike, filterLike, filterMode) {
|
|
21
|
+
if (!filterLike) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (!valueLike) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const value = Script.from(valueLike);
|
|
28
|
+
const filter = Script.from(filterLike);
|
|
29
|
+
if (value.codeHash !== filter.codeHash ||
|
|
30
|
+
value.hashType !== filter.hashType) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return filterData(value.args, filter?.args, filterMode);
|
|
34
|
+
}
|
|
35
|
+
export function filterNumByRange(lengthLike, range) {
|
|
36
|
+
if (!range) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
const length = numFrom(lengthLike);
|
|
40
|
+
const [lower, upper] = clientSearchKeyRangeFrom(range);
|
|
41
|
+
return lower <= length && length < upper;
|
|
42
|
+
}
|
|
43
|
+
export function filterScriptByLenRange(valueLike, scriptLenRange) {
|
|
44
|
+
if (!scriptLenRange) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
const len = (() => {
|
|
48
|
+
if (!valueLike) {
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
return bytesFrom(Script.from(valueLike).args).length + 33;
|
|
52
|
+
})();
|
|
53
|
+
return filterNumByRange(len, scriptLenRange);
|
|
54
|
+
}
|
|
55
|
+
export function filterCell(searchKeyLike, cellLike) {
|
|
56
|
+
const key = ClientIndexerSearchKey.from(searchKeyLike);
|
|
57
|
+
const cell = Cell.from(cellLike);
|
|
58
|
+
if (key.scriptType === "lock") {
|
|
59
|
+
if (!filterScript(cell.cellOutput.lock, key.script, key.scriptSearchMode) ||
|
|
60
|
+
!filterScript(cell.cellOutput.type, key.filter?.script, "prefix") ||
|
|
61
|
+
!filterScriptByLenRange(cell.cellOutput.type, key.filter?.scriptLenRange)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (key.scriptType === "type") {
|
|
66
|
+
if (!filterScript(cell.cellOutput.type, key.script, key.scriptSearchMode) ||
|
|
67
|
+
!filterScript(cell.cellOutput.lock, key.filter?.script, "prefix") ||
|
|
68
|
+
!filterScriptByLenRange(cell.cellOutput.lock, key.filter?.scriptLenRange)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!filterData(cell.outputData, key.filter?.outputData, key.filter?.outputDataSearchMode ?? "prefix") ||
|
|
73
|
+
!filterNumByRange(bytesFrom(cell.outputData).length, key.filter?.outputDataLenRange)) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (!filterNumByRange(cell.cellOutput.capacity, key.filter?.outputCapacityRange)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
export class MapLru extends Map {
|
|
82
|
+
constructor(capacity) {
|
|
83
|
+
super();
|
|
84
|
+
this.capacity = capacity;
|
|
85
|
+
this.lru = [];
|
|
86
|
+
}
|
|
87
|
+
get(key) {
|
|
88
|
+
const val = super.get(key);
|
|
89
|
+
if (val === undefined) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const index = this.lru.indexOf(key);
|
|
93
|
+
if (index !== -1) {
|
|
94
|
+
this.lru.splice(index, 1);
|
|
95
|
+
}
|
|
96
|
+
this.lru.push(key);
|
|
97
|
+
if (this.lru.length > this.capacity) {
|
|
98
|
+
this.delete(this.lru[0]);
|
|
99
|
+
this.lru.shift();
|
|
100
|
+
}
|
|
101
|
+
return val;
|
|
102
|
+
}
|
|
103
|
+
set(key, value) {
|
|
104
|
+
this.get(key);
|
|
105
|
+
super.set(key, value);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
delete(key) {
|
|
109
|
+
if (!super.delete(key)) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
const index = this.lru.indexOf(key);
|
|
113
|
+
if (index !== -1) {
|
|
114
|
+
this.lru.splice(index, 1);
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Cell, CellLike, OutPointLike } from "../../ckb/index.js";
|
|
2
|
+
import { HexLike } from "../../hex/index.js";
|
|
3
|
+
import { NumLike } from "../../num/index.js";
|
|
4
|
+
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
5
|
+
import { ClientBlock, ClientBlockHeader, ClientBlockHeaderLike, ClientBlockLike, ClientTransactionResponse, ClientTransactionResponseLike } from "../clientTypes.js";
|
|
6
|
+
import { ClientCache } from "./cache.js";
|
|
7
|
+
export declare class ClientCacheMemory extends ClientCache {
|
|
8
|
+
private readonly maxCells;
|
|
9
|
+
private readonly maxTxs;
|
|
10
|
+
private readonly maxBlocks;
|
|
11
|
+
/**
|
|
12
|
+
* OutPoint => [isLive, Cell | OutPoint]
|
|
13
|
+
*/
|
|
14
|
+
private readonly cells;
|
|
15
|
+
/**
|
|
16
|
+
* TX Hash => Transaction Response
|
|
17
|
+
*/
|
|
18
|
+
private readonly knownTransactions;
|
|
19
|
+
/**
|
|
20
|
+
* Block Number => Block Hash
|
|
21
|
+
*/
|
|
22
|
+
private readonly knownBlockHashes;
|
|
23
|
+
/**
|
|
24
|
+
* Block Hash => Block Header / Full Block
|
|
25
|
+
*/
|
|
26
|
+
private readonly knownBlocks;
|
|
27
|
+
constructor(maxCells?: number, maxTxs?: number, maxBlocks?: number);
|
|
28
|
+
markUsableNoCache(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
29
|
+
markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
30
|
+
clear(): Promise<void>;
|
|
31
|
+
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
32
|
+
isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
33
|
+
recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
34
|
+
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
35
|
+
recordTransactionResponses(...transactions: (ClientTransactionResponseLike | ClientTransactionResponseLike[])[]): Promise<void>;
|
|
36
|
+
getTransactionResponse(txHashLike: HexLike): Promise<ClientTransactionResponse | undefined>;
|
|
37
|
+
recordHeaders(...headers: (ClientBlockHeaderLike | ClientBlockHeaderLike[])[]): Promise<void>;
|
|
38
|
+
getHeaderByHash(hashLike: HexLike): Promise<ClientBlockHeader | undefined>;
|
|
39
|
+
getHeaderByNumber(numberLike: NumLike): Promise<ClientBlockHeader | undefined>;
|
|
40
|
+
recordBlocks(...blocks: (ClientBlockLike | ClientBlockLike[])[]): Promise<void>;
|
|
41
|
+
getBlockByHash(hashLike: HexLike): Promise<ClientBlock | undefined>;
|
|
42
|
+
getBlockByNumber(numberLike: NumLike): Promise<ClientBlock | undefined>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAY,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAW,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAgB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAyB9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA1B5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4C;IAE9E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;gBAGiB,QAAQ,SAAM,EACd,MAAM,SAAM,EACZ,SAAS,SAAM;IAe5B,iBAAiB,CACrB,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IASV,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAcV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAcjB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS9D,0BAA0B,CAC9B,GAAG,YAAY,EAAE,CACb,6BAA6B,GAC7B,6BAA6B,EAAE,CAClC,EAAE,GACF,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAK3C,aAAa,CACjB,GAAG,OAAO,EAAE,CAAC,qBAAqB,GAAG,qBAAqB,EAAE,CAAC,EAAE,GAC9D,OAAO,CAAC,IAAI,CAAC;IAaV,eAAe,CACnB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQnC,iBAAiB,CACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAUnC,YAAY,CAChB,GAAG,MAAM,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IAQV,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAWnE,gBAAgB,CACpB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CASpC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Cell, OutPoint } from "../../ckb/index.js";
|
|
2
|
+
import { hexFrom } from "../../hex/index.js";
|
|
3
|
+
import { numFrom } from "../../num/index.js";
|
|
4
|
+
import { ClientBlock, ClientBlockHeader, ClientTransactionResponse, } from "../clientTypes.js";
|
|
5
|
+
import { ClientCache } from "./cache.js";
|
|
6
|
+
import { filterCell, MapLru } from "./memory.advanced.js";
|
|
7
|
+
export class ClientCacheMemory extends ClientCache {
|
|
8
|
+
constructor(maxCells = 512, maxTxs = 256, maxBlocks = 128) {
|
|
9
|
+
super();
|
|
10
|
+
this.maxCells = maxCells;
|
|
11
|
+
this.maxTxs = maxTxs;
|
|
12
|
+
this.maxBlocks = maxBlocks;
|
|
13
|
+
this.cells = new MapLru(this.maxCells);
|
|
14
|
+
this.knownTransactions = new MapLru(this.maxTxs);
|
|
15
|
+
this.knownBlockHashes = new MapLru(this.maxBlocks);
|
|
16
|
+
this.knownBlocks = new MapLru(this.maxBlocks);
|
|
17
|
+
}
|
|
18
|
+
async markUsableNoCache(...cellLikes) {
|
|
19
|
+
cellLikes.flat().forEach((cellLike) => {
|
|
20
|
+
const cell = Cell.from(cellLike).clone();
|
|
21
|
+
const outPointStr = hexFrom(cell.outPoint.toBytes());
|
|
22
|
+
this.cells.set(outPointStr, [true, cell]);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async markUnusable(...outPointLikes) {
|
|
26
|
+
outPointLikes.flat().forEach((outPointLike) => {
|
|
27
|
+
const outPoint = OutPoint.from(outPointLike);
|
|
28
|
+
const outPointStr = hexFrom(outPoint.toBytes());
|
|
29
|
+
const existed = this.cells.get(outPointStr);
|
|
30
|
+
if (existed) {
|
|
31
|
+
existed[0] = false;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.cells.set(outPointStr, [false, { outPoint }]);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async clear() {
|
|
38
|
+
this.cells.clear();
|
|
39
|
+
this.knownTransactions.clear();
|
|
40
|
+
}
|
|
41
|
+
async *findCells(keyLike) {
|
|
42
|
+
for (const [key, [isLive, cell]] of this.cells.entries()) {
|
|
43
|
+
if (!isLive) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (!filterCell(keyLike, cell)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
this.cells.get(key);
|
|
50
|
+
yield cell.clone();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async isUnusable(outPointLike) {
|
|
54
|
+
const outPoint = OutPoint.from(outPointLike);
|
|
55
|
+
return !(this.cells.get(hexFrom(outPoint.toBytes()))?.[0] ?? true);
|
|
56
|
+
}
|
|
57
|
+
async recordCells(...cells) {
|
|
58
|
+
cells.flat().map((cellLike) => {
|
|
59
|
+
const cell = Cell.from(cellLike);
|
|
60
|
+
const outPointStr = hexFrom(cell.outPoint.toBytes());
|
|
61
|
+
if (this.cells.get(outPointStr)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.cells.set(outPointStr, [undefined, cell]);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async getCell(outPointLike) {
|
|
68
|
+
const outPoint = OutPoint.from(outPointLike);
|
|
69
|
+
const cell = this.cells.get(hexFrom(outPoint.toBytes()))?.[1];
|
|
70
|
+
if (cell && cell.cellOutput && cell.outputData) {
|
|
71
|
+
return Cell.from(cell.clone());
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async recordTransactionResponses(...transactions) {
|
|
75
|
+
transactions.flat().map((txLike) => {
|
|
76
|
+
const tx = ClientTransactionResponse.from(txLike);
|
|
77
|
+
this.knownTransactions.set(tx.transaction.hash(), tx);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
async getTransactionResponse(txHashLike) {
|
|
81
|
+
const txHash = hexFrom(txHashLike);
|
|
82
|
+
return this.knownTransactions.get(txHash)?.clone();
|
|
83
|
+
}
|
|
84
|
+
async recordHeaders(...headers) {
|
|
85
|
+
headers.flat().map((headerLike) => {
|
|
86
|
+
const header = ClientBlockHeader.from(headerLike);
|
|
87
|
+
this.knownBlockHashes.set(header.number, header.hash);
|
|
88
|
+
const existed = this.knownBlocks.get(header.hash);
|
|
89
|
+
if (existed) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.knownBlocks.set(header.hash, { header });
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async getHeaderByHash(hashLike) {
|
|
96
|
+
const hash = hexFrom(hashLike);
|
|
97
|
+
const block = this.knownBlocks.get(hash);
|
|
98
|
+
if (block) {
|
|
99
|
+
this.knownBlockHashes.get(block.header.number); // For LRU
|
|
100
|
+
}
|
|
101
|
+
return block?.header;
|
|
102
|
+
}
|
|
103
|
+
async getHeaderByNumber(numberLike) {
|
|
104
|
+
const number = numFrom(numberLike);
|
|
105
|
+
const hash = this.knownBlockHashes.get(number);
|
|
106
|
+
if (!hash) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
return this.getHeaderByHash(hash);
|
|
110
|
+
}
|
|
111
|
+
async recordBlocks(...blocks) {
|
|
112
|
+
blocks.flat().map((blockLike) => {
|
|
113
|
+
const block = ClientBlock.from(blockLike);
|
|
114
|
+
this.knownBlockHashes.set(block.header.number, block.header.hash);
|
|
115
|
+
this.knownBlocks.set(block.header.hash, block);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
async getBlockByHash(hashLike) {
|
|
119
|
+
const hash = hexFrom(hashLike);
|
|
120
|
+
const block = this.knownBlocks.get(hash);
|
|
121
|
+
if (block) {
|
|
122
|
+
this.knownBlockHashes.get(block.header.number); // For LRU
|
|
123
|
+
if ("transactions" in block) {
|
|
124
|
+
return block;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
async getBlockByNumber(numberLike) {
|
|
130
|
+
const number = numFrom(numberLike);
|
|
131
|
+
const hash = this.knownBlockHashes.get(number);
|
|
132
|
+
if (!hash) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
return this.getBlockByHash(hash);
|
|
136
|
+
}
|
|
137
|
+
}
|