crypto-aio 0.0.2 → 0.1.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/CHANGELOG.md +17 -0
- package/README.md +144 -14
- package/dist/adapters/avalanche/address.d.ts +15 -0
- package/dist/adapters/avalanche/address.js +74 -0
- package/dist/adapters/avalanche/address.js.map +1 -0
- package/dist/adapters/avalanche/api.d.ts +100 -0
- package/dist/adapters/avalanche/api.js +381 -0
- package/dist/adapters/avalanche/api.js.map +1 -0
- package/dist/adapters/avalanche/builder.d.ts +13 -0
- package/dist/adapters/avalanche/builder.js +336 -0
- package/dist/adapters/avalanche/builder.js.map +1 -0
- package/dist/adapters/avalanche/cb58.d.ts +7 -0
- package/dist/adapters/avalanche/cb58.js +49 -0
- package/dist/adapters/avalanche/cb58.js.map +1 -0
- package/dist/adapters/avalanche/chains.d.ts +21 -0
- package/dist/adapters/avalanche/chains.js +79 -0
- package/dist/adapters/avalanche/chains.js.map +1 -0
- package/dist/adapters/avalanche/codec.d.ts +94 -0
- package/dist/adapters/avalanche/codec.js +371 -0
- package/dist/adapters/avalanche/codec.js.map +1 -0
- package/dist/adapters/avalanche/context.d.ts +59 -0
- package/dist/adapters/avalanche/context.js +114 -0
- package/dist/adapters/avalanche/context.js.map +1 -0
- package/dist/adapters/avalanche/decode.d.ts +16 -0
- package/dist/adapters/avalanche/decode.js +101 -0
- package/dist/adapters/avalanche/decode.js.map +1 -0
- package/dist/adapters/avalanche/driver.d.ts +22 -0
- package/dist/adapters/avalanche/driver.js +81 -0
- package/dist/adapters/avalanche/driver.js.map +1 -0
- package/dist/adapters/avalanche/errors.d.ts +18 -0
- package/dist/adapters/avalanche/errors.js +61 -0
- package/dist/adapters/avalanche/errors.js.map +1 -0
- package/dist/adapters/avalanche/fees.d.ts +23 -0
- package/dist/adapters/avalanche/fees.js +105 -0
- package/dist/adapters/avalanche/fees.js.map +1 -0
- package/dist/adapters/avalanche/index.d.ts +19 -0
- package/dist/adapters/avalanche/index.js +8 -0
- package/dist/adapters/avalanche/index.js.map +1 -0
- package/dist/adapters/avalanche/network.d.ts +37 -0
- package/dist/adapters/avalanche/network.js +135 -0
- package/dist/adapters/avalanche/network.js.map +1 -0
- package/dist/adapters/avalanche/plugin.d.ts +21 -0
- package/dist/adapters/avalanche/plugin.js +46 -0
- package/dist/adapters/avalanche/plugin.js.map +1 -0
- package/dist/adapters/avalanche/presets.d.ts +6 -0
- package/dist/adapters/avalanche/presets.js +86 -0
- package/dist/adapters/avalanche/presets.js.map +1 -0
- package/dist/adapters/avalanche/proofs.d.ts +41 -0
- package/dist/adapters/avalanche/proofs.js +270 -0
- package/dist/adapters/avalanche/proofs.js.map +1 -0
- package/dist/adapters/avalanche/reader.d.ts +40 -0
- package/dist/adapters/avalanche/reader.js +231 -0
- package/dist/adapters/avalanche/reader.js.map +1 -0
- package/dist/adapters/avalanche/sdk.d.ts +182 -0
- package/dist/adapters/avalanche/sdk.js +21 -0
- package/dist/adapters/avalanche/sdk.js.map +1 -0
- package/dist/adapters/avalanche/types.d.ts +86 -0
- package/dist/{type/common.js → adapters/avalanche/types.js} +1 -1
- package/dist/adapters/avalanche/types.js.map +1 -0
- package/dist/adapters/evm/builder.d.ts +11 -0
- package/dist/adapters/evm/builder.js +326 -0
- package/dist/adapters/evm/builder.js.map +1 -0
- package/dist/adapters/evm/chains.d.ts +6 -0
- package/dist/adapters/evm/chains.js +203 -0
- package/dist/adapters/evm/chains.js.map +1 -0
- package/dist/adapters/evm/client.d.ts +84 -0
- package/dist/adapters/evm/client.js +335 -0
- package/dist/adapters/evm/client.js.map +1 -0
- package/dist/adapters/evm/decode.d.ts +35 -0
- package/dist/adapters/evm/decode.js +170 -0
- package/dist/adapters/evm/decode.js.map +1 -0
- package/dist/adapters/evm/driver.d.ts +8 -0
- package/dist/adapters/evm/driver.js +61 -0
- package/dist/adapters/evm/driver.js.map +1 -0
- package/dist/adapters/evm/errors.d.ts +20 -0
- package/dist/adapters/evm/errors.js +110 -0
- package/dist/adapters/evm/errors.js.map +1 -0
- package/dist/adapters/evm/ethers-client.d.ts +43 -0
- package/dist/adapters/evm/ethers-client.js +135 -0
- package/dist/adapters/evm/ethers-client.js.map +1 -0
- package/dist/adapters/evm/fees.d.ts +79 -0
- package/dist/adapters/evm/fees.js +234 -0
- package/dist/adapters/evm/fees.js.map +1 -0
- package/dist/adapters/evm/index.d.ts +20 -0
- package/dist/adapters/evm/index.js +11 -0
- package/dist/adapters/evm/index.js.map +1 -0
- package/dist/adapters/evm/network.d.ts +60 -0
- package/dist/adapters/evm/network.js +131 -0
- package/dist/adapters/evm/network.js.map +1 -0
- package/dist/adapters/evm/plugin.d.ts +36 -0
- package/dist/adapters/evm/plugin.js +102 -0
- package/dist/adapters/evm/plugin.js.map +1 -0
- package/dist/adapters/evm/presets.d.ts +2 -0
- package/dist/adapters/evm/presets.js +105 -0
- package/dist/adapters/evm/presets.js.map +1 -0
- package/dist/adapters/evm/proofs.d.ts +19 -0
- package/dist/adapters/evm/proofs.js +358 -0
- package/dist/adapters/evm/proofs.js.map +1 -0
- package/dist/adapters/evm/rawtx.d.ts +25 -0
- package/dist/adapters/evm/rawtx.js +176 -0
- package/dist/adapters/evm/rawtx.js.map +1 -0
- package/dist/adapters/evm/reader.d.ts +65 -0
- package/dist/adapters/evm/reader.js +292 -0
- package/dist/adapters/evm/reader.js.map +1 -0
- package/dist/adapters/evm/rpc.d.ts +39 -0
- package/dist/adapters/evm/rpc.js +152 -0
- package/dist/adapters/evm/rpc.js.map +1 -0
- package/dist/adapters/evm/tokens.d.ts +7 -0
- package/dist/adapters/evm/tokens.js +23 -0
- package/dist/adapters/evm/tokens.js.map +1 -0
- package/dist/adapters/evm/types.d.ts +255 -0
- package/dist/{type/account.js → adapters/evm/types.js} +1 -1
- package/dist/adapters/evm/types.js.map +1 -0
- package/dist/adapters/evm/web3-client.d.ts +23 -0
- package/dist/adapters/evm/web3-client.js +159 -0
- package/dist/adapters/evm/web3-client.js.map +1 -0
- package/dist/adapters/solana/builder.d.ts +18 -0
- package/dist/adapters/solana/builder.js +545 -0
- package/dist/adapters/solana/builder.js.map +1 -0
- package/dist/adapters/solana/chains.d.ts +13 -0
- package/dist/adapters/solana/chains.js +37 -0
- package/dist/adapters/solana/chains.js.map +1 -0
- package/dist/adapters/solana/decode.d.ts +111 -0
- package/dist/adapters/solana/decode.js +595 -0
- package/dist/adapters/solana/decode.js.map +1 -0
- package/dist/adapters/solana/driver.d.ts +15 -0
- package/dist/adapters/solana/driver.js +72 -0
- package/dist/adapters/solana/driver.js.map +1 -0
- package/dist/adapters/solana/errors.d.ts +36 -0
- package/dist/adapters/solana/errors.js +154 -0
- package/dist/adapters/solana/errors.js.map +1 -0
- package/dist/adapters/solana/fees.d.ts +68 -0
- package/dist/adapters/solana/fees.js +205 -0
- package/dist/adapters/solana/fees.js.map +1 -0
- package/dist/adapters/solana/heights.d.ts +47 -0
- package/dist/adapters/solana/heights.js +185 -0
- package/dist/adapters/solana/heights.js.map +1 -0
- package/dist/adapters/solana/history.d.ts +10 -0
- package/dist/adapters/solana/history.js +71 -0
- package/dist/adapters/solana/history.js.map +1 -0
- package/dist/adapters/solana/index.d.ts +16 -0
- package/dist/adapters/solana/index.js +9 -0
- package/dist/adapters/solana/index.js.map +1 -0
- package/dist/adapters/solana/keys.d.ts +13 -0
- package/dist/adapters/solana/keys.js +69 -0
- package/dist/adapters/solana/keys.js.map +1 -0
- package/dist/adapters/solana/network.d.ts +24 -0
- package/dist/adapters/solana/network.js +95 -0
- package/dist/adapters/solana/network.js.map +1 -0
- package/dist/adapters/solana/plugin.d.ts +18 -0
- package/dist/adapters/solana/plugin.js +41 -0
- package/dist/adapters/solana/plugin.js.map +1 -0
- package/dist/adapters/solana/presets.d.ts +2 -0
- package/dist/adapters/solana/presets.js +77 -0
- package/dist/adapters/solana/presets.js.map +1 -0
- package/dist/adapters/solana/programs.d.ts +44 -0
- package/dist/adapters/solana/programs.js +159 -0
- package/dist/adapters/solana/programs.js.map +1 -0
- package/dist/adapters/solana/proofs.d.ts +56 -0
- package/dist/adapters/solana/proofs.js +540 -0
- package/dist/adapters/solana/proofs.js.map +1 -0
- package/dist/adapters/solana/reader.d.ts +82 -0
- package/dist/adapters/solana/reader.js +326 -0
- package/dist/adapters/solana/reader.js.map +1 -0
- package/dist/adapters/solana/rpc.d.ts +102 -0
- package/dist/adapters/solana/rpc.js +301 -0
- package/dist/adapters/solana/rpc.js.map +1 -0
- package/dist/adapters/solana/tokens.d.ts +7 -0
- package/dist/adapters/solana/tokens.js +19 -0
- package/dist/adapters/solana/tokens.js.map +1 -0
- package/dist/adapters/solana/types.d.ts +121 -0
- package/dist/{type/lib-types.js → adapters/solana/types.js} +1 -1
- package/dist/adapters/solana/types.js.map +1 -0
- package/dist/adapters/solana/web3.d.ts +5 -0
- package/dist/adapters/solana/web3.js +83 -0
- package/dist/adapters/solana/web3.js.map +1 -0
- package/dist/adapters/solana/wire.d.ts +62 -0
- package/dist/adapters/solana/wire.js +168 -0
- package/dist/adapters/solana/wire.js.map +1 -0
- package/dist/adapters/ton/address.d.ts +43 -0
- package/dist/adapters/ton/address.js +168 -0
- package/dist/adapters/ton/address.js.map +1 -0
- package/dist/adapters/ton/api.d.ts +344 -0
- package/dist/adapters/ton/api.js +942 -0
- package/dist/adapters/ton/api.js.map +1 -0
- package/dist/adapters/ton/builder.d.ts +18 -0
- package/dist/adapters/ton/builder.js +701 -0
- package/dist/adapters/ton/builder.js.map +1 -0
- package/dist/adapters/ton/chains.d.ts +16 -0
- package/dist/adapters/ton/chains.js +39 -0
- package/dist/adapters/ton/chains.js.map +1 -0
- package/dist/adapters/ton/decode.d.ts +43 -0
- package/dist/adapters/ton/decode.js +219 -0
- package/dist/adapters/ton/decode.js.map +1 -0
- package/dist/adapters/ton/driver.d.ts +10 -0
- package/dist/adapters/ton/driver.js +117 -0
- package/dist/adapters/ton/driver.js.map +1 -0
- package/dist/adapters/ton/errors.d.ts +36 -0
- package/dist/adapters/ton/errors.js +89 -0
- package/dist/adapters/ton/errors.js.map +1 -0
- package/dist/adapters/ton/fees.d.ts +28 -0
- package/dist/adapters/ton/fees.js +121 -0
- package/dist/adapters/ton/fees.js.map +1 -0
- package/dist/adapters/ton/index.d.ts +16 -0
- package/dist/adapters/ton/index.js +9 -0
- package/dist/adapters/ton/index.js.map +1 -0
- package/dist/adapters/ton/messages.d.ts +157 -0
- package/dist/adapters/ton/messages.js +397 -0
- package/dist/adapters/ton/messages.js.map +1 -0
- package/dist/adapters/ton/native-client.d.ts +10 -0
- package/dist/adapters/ton/native-client.js +47 -0
- package/dist/adapters/ton/native-client.js.map +1 -0
- package/dist/adapters/ton/network.d.ts +58 -0
- package/dist/adapters/ton/network.js +207 -0
- package/dist/adapters/ton/network.js.map +1 -0
- package/dist/adapters/ton/plugin.d.ts +24 -0
- package/dist/adapters/ton/plugin.js +57 -0
- package/dist/adapters/ton/plugin.js.map +1 -0
- package/dist/adapters/ton/presets.d.ts +6 -0
- package/dist/adapters/ton/presets.js +94 -0
- package/dist/adapters/ton/presets.js.map +1 -0
- package/dist/adapters/ton/proofs.d.ts +66 -0
- package/dist/adapters/ton/proofs.js +813 -0
- package/dist/adapters/ton/proofs.js.map +1 -0
- package/dist/adapters/ton/reader.d.ts +194 -0
- package/dist/adapters/ton/reader.js +781 -0
- package/dist/adapters/ton/reader.js.map +1 -0
- package/dist/adapters/ton/tokens.d.ts +10 -0
- package/dist/adapters/ton/tokens.js +27 -0
- package/dist/adapters/ton/tokens.js.map +1 -0
- package/dist/adapters/ton/trace.d.ts +48 -0
- package/dist/adapters/ton/trace.js +277 -0
- package/dist/adapters/ton/trace.js.map +1 -0
- package/dist/adapters/ton/types.d.ts +105 -0
- package/dist/adapters/ton/types.js +3 -0
- package/dist/adapters/ton/types.js.map +1 -0
- package/dist/adapters/ton/wallets.d.ts +86 -0
- package/dist/adapters/ton/wallets.js +373 -0
- package/dist/adapters/ton/wallets.js.map +1 -0
- package/dist/adapters/tron/abi.d.ts +39 -0
- package/dist/adapters/tron/abi.js +110 -0
- package/dist/adapters/tron/abi.js.map +1 -0
- package/dist/adapters/tron/address.d.ts +20 -0
- package/dist/adapters/tron/address.js +110 -0
- package/dist/adapters/tron/address.js.map +1 -0
- package/dist/adapters/tron/builder.d.ts +12 -0
- package/dist/adapters/tron/builder.js +553 -0
- package/dist/adapters/tron/builder.js.map +1 -0
- package/dist/adapters/tron/chains.d.ts +12 -0
- package/dist/adapters/tron/chains.js +35 -0
- package/dist/adapters/tron/chains.js.map +1 -0
- package/dist/adapters/tron/codec.d.ts +10 -0
- package/dist/adapters/tron/codec.js +322 -0
- package/dist/adapters/tron/codec.js.map +1 -0
- package/dist/adapters/tron/decode.d.ts +50 -0
- package/dist/adapters/tron/decode.js +280 -0
- package/dist/adapters/tron/decode.js.map +1 -0
- package/dist/adapters/tron/driver.d.ts +12 -0
- package/dist/adapters/tron/driver.js +106 -0
- package/dist/adapters/tron/driver.js.map +1 -0
- package/dist/adapters/tron/errors.d.ts +74 -0
- package/dist/adapters/tron/errors.js +261 -0
- package/dist/adapters/tron/errors.js.map +1 -0
- package/dist/adapters/tron/fees.d.ts +49 -0
- package/dist/adapters/tron/fees.js +166 -0
- package/dist/adapters/tron/fees.js.map +1 -0
- package/dist/adapters/tron/http.d.ts +173 -0
- package/dist/adapters/tron/http.js +729 -0
- package/dist/adapters/tron/http.js.map +1 -0
- package/dist/adapters/tron/index.d.ts +16 -0
- package/dist/adapters/tron/index.js +15 -0
- package/dist/adapters/tron/index.js.map +1 -0
- package/dist/adapters/tron/network.d.ts +44 -0
- package/dist/adapters/tron/network.js +163 -0
- package/dist/adapters/tron/network.js.map +1 -0
- package/dist/adapters/tron/plugin.d.ts +17 -0
- package/dist/adapters/tron/plugin.js +39 -0
- package/dist/adapters/tron/plugin.js.map +1 -0
- package/dist/adapters/tron/presets.d.ts +5 -0
- package/dist/adapters/tron/presets.js +68 -0
- package/dist/adapters/tron/presets.js.map +1 -0
- package/dist/adapters/tron/proofs.d.ts +80 -0
- package/dist/adapters/tron/proofs.js +370 -0
- package/dist/adapters/tron/proofs.js.map +1 -0
- package/dist/adapters/tron/protobuf.d.ts +36 -0
- package/dist/adapters/tron/protobuf.js +90 -0
- package/dist/adapters/tron/protobuf.js.map +1 -0
- package/dist/adapters/tron/reader.d.ts +47 -0
- package/dist/adapters/tron/reader.js +203 -0
- package/dist/adapters/tron/reader.js.map +1 -0
- package/dist/adapters/tron/tokens.d.ts +7 -0
- package/dist/adapters/tron/tokens.js +14 -0
- package/dist/adapters/tron/tokens.js.map +1 -0
- package/dist/adapters/tron/types.d.ts +166 -0
- package/dist/adapters/tron/types.js +3 -0
- package/dist/adapters/tron/types.js.map +1 -0
- package/dist/adapters/utxo/address.d.ts +51 -0
- package/dist/adapters/utxo/address.js +341 -0
- package/dist/adapters/utxo/address.js.map +1 -0
- package/dist/adapters/utxo/builder.d.ts +35 -0
- package/dist/adapters/utxo/builder.js +380 -0
- package/dist/adapters/utxo/builder.js.map +1 -0
- package/dist/adapters/utxo/chains.d.ts +17 -0
- package/dist/adapters/utxo/chains.js +99 -0
- package/dist/adapters/utxo/chains.js.map +1 -0
- package/dist/adapters/utxo/codec.d.ts +120 -0
- package/dist/adapters/utxo/codec.js +408 -0
- package/dist/adapters/utxo/codec.js.map +1 -0
- package/dist/adapters/utxo/coinselect.d.ts +48 -0
- package/dist/adapters/utxo/coinselect.js +131 -0
- package/dist/adapters/utxo/coinselect.js.map +1 -0
- package/dist/adapters/utxo/context.d.ts +57 -0
- package/dist/adapters/utxo/context.js +118 -0
- package/dist/adapters/utxo/context.js.map +1 -0
- package/dist/adapters/utxo/decode.d.ts +14 -0
- package/dist/adapters/utxo/decode.js +85 -0
- package/dist/adapters/utxo/decode.js.map +1 -0
- package/dist/adapters/utxo/driver.d.ts +16 -0
- package/dist/adapters/utxo/driver.js +74 -0
- package/dist/adapters/utxo/driver.js.map +1 -0
- package/dist/adapters/utxo/ecc.d.ts +9 -0
- package/dist/adapters/utxo/ecc.js +26 -0
- package/dist/adapters/utxo/ecc.js.map +1 -0
- package/dist/adapters/utxo/errors.d.ts +52 -0
- package/dist/adapters/utxo/errors.js +191 -0
- package/dist/adapters/utxo/errors.js.map +1 -0
- package/dist/adapters/utxo/esplora.d.ts +79 -0
- package/dist/adapters/utxo/esplora.js +451 -0
- package/dist/adapters/utxo/esplora.js.map +1 -0
- package/dist/adapters/utxo/fees.d.ts +41 -0
- package/dist/adapters/utxo/fees.js +125 -0
- package/dist/adapters/utxo/fees.js.map +1 -0
- package/dist/adapters/utxo/index.d.ts +17 -0
- package/dist/adapters/utxo/index.js +8 -0
- package/dist/adapters/utxo/index.js.map +1 -0
- package/dist/adapters/utxo/network.d.ts +50 -0
- package/dist/adapters/utxo/network.js +165 -0
- package/dist/adapters/utxo/network.js.map +1 -0
- package/dist/adapters/utxo/plugin.d.ts +17 -0
- package/dist/adapters/utxo/plugin.js +41 -0
- package/dist/adapters/utxo/plugin.js.map +1 -0
- package/dist/adapters/utxo/presets.d.ts +12 -0
- package/dist/adapters/utxo/presets.js +47 -0
- package/dist/adapters/utxo/presets.js.map +1 -0
- package/dist/adapters/utxo/preview.d.ts +3 -0
- package/dist/adapters/utxo/preview.js +65 -0
- package/dist/adapters/utxo/preview.js.map +1 -0
- package/dist/adapters/utxo/proofs.d.ts +57 -0
- package/dist/adapters/utxo/proofs.js +331 -0
- package/dist/adapters/utxo/proofs.js.map +1 -0
- package/dist/adapters/utxo/rawtx.d.ts +59 -0
- package/dist/adapters/utxo/rawtx.js +234 -0
- package/dist/adapters/utxo/rawtx.js.map +1 -0
- package/dist/adapters/utxo/reader.d.ts +36 -0
- package/dist/adapters/utxo/reader.js +265 -0
- package/dist/adapters/utxo/reader.js.map +1 -0
- package/dist/adapters/utxo/sdk.d.ts +18 -0
- package/dist/adapters/utxo/sdk.js +17 -0
- package/dist/adapters/utxo/sdk.js.map +1 -0
- package/dist/adapters/utxo/signed-psbt.d.ts +36 -0
- package/dist/adapters/utxo/signed-psbt.js +428 -0
- package/dist/adapters/utxo/signed-psbt.js.map +1 -0
- package/dist/adapters/utxo/spend.d.ts +59 -0
- package/dist/adapters/utxo/spend.js +230 -0
- package/dist/adapters/utxo/spend.js.map +1 -0
- package/dist/adapters/utxo/types.d.ts +167 -0
- package/dist/adapters/utxo/types.js +3 -0
- package/dist/adapters/utxo/types.js.map +1 -0
- package/dist/core/assets/service.d.ts +18 -0
- package/dist/core/assets/service.js +69 -0
- package/dist/core/assets/service.js.map +1 -0
- package/dist/core/blockchain/default-ref.d.ts +4 -0
- package/dist/core/blockchain/default-ref.js +16 -0
- package/dist/core/blockchain/default-ref.js.map +1 -0
- package/dist/core/blockchain/handle.d.ts +200 -0
- package/dist/core/blockchain/handle.js +579 -0
- package/dist/core/blockchain/handle.js.map +1 -0
- package/dist/core/blockchain/internal.d.ts +19 -0
- package/dist/core/blockchain/internal.js +16 -0
- package/dist/core/blockchain/internal.js.map +1 -0
- package/dist/core/blockchain/mapping.d.ts +22 -0
- package/dist/core/blockchain/mapping.js +136 -0
- package/dist/core/blockchain/mapping.js.map +1 -0
- package/dist/core/config/env.d.ts +8 -0
- package/dist/core/config/env.js +60 -0
- package/dist/core/config/env.js.map +1 -0
- package/dist/core/config/merge.d.ts +26 -0
- package/dist/core/config/merge.js +144 -0
- package/dist/core/config/merge.js.map +1 -0
- package/dist/core/config/resolve.d.ts +12 -0
- package/dist/core/config/resolve.js +251 -0
- package/dist/core/config/resolve.js.map +1 -0
- package/dist/core/config/types.d.ts +165 -0
- package/dist/core/config/types.js +3 -0
- package/dist/core/config/types.js.map +1 -0
- package/dist/core/container/builtins.d.ts +4 -0
- package/dist/core/container/builtins.js +13 -0
- package/dist/core/container/builtins.js.map +1 -0
- package/dist/core/container/container.d.ts +69 -0
- package/dist/core/container/container.js +466 -0
- package/dist/core/container/container.js.map +1 -0
- package/dist/core/container/default.d.ts +15 -0
- package/dist/core/container/default.js +70 -0
- package/dist/core/container/default.js.map +1 -0
- package/dist/core/container/internals.d.ts +54 -0
- package/dist/core/container/internals.js +21 -0
- package/dist/core/container/internals.js.map +1 -0
- package/dist/core/container/pool.d.ts +27 -0
- package/dist/core/container/pool.js +77 -0
- package/dist/core/container/pool.js.map +1 -0
- package/dist/core/driver/types.d.ts +346 -0
- package/dist/core/driver/types.js +3 -0
- package/dist/core/driver/types.js.map +1 -0
- package/dist/core/errors/codes.d.ts +153 -0
- package/dist/core/errors/codes.js +49 -0
- package/dist/core/errors/codes.js.map +1 -0
- package/dist/core/errors/error.d.ts +66 -0
- package/dist/core/errors/error.js +129 -0
- package/dist/core/errors/error.js.map +1 -0
- package/dist/core/events/bus.d.ts +12 -0
- package/dist/core/events/bus.js +46 -0
- package/dist/core/events/bus.js.map +1 -0
- package/dist/core/events/logger.d.ts +13 -0
- package/dist/core/events/logger.js +42 -0
- package/dist/core/events/logger.js.map +1 -0
- package/dist/core/events/types.d.ts +131 -0
- package/dist/core/events/types.js +3 -0
- package/dist/core/events/types.js.map +1 -0
- package/dist/core/lifecycle/engine-rules.d.ts +107 -0
- package/dist/core/lifecycle/engine-rules.js +257 -0
- package/dist/core/lifecycle/engine-rules.js.map +1 -0
- package/dist/core/lifecycle/engine.d.ts +500 -0
- package/dist/core/lifecycle/engine.js +1732 -0
- package/dist/core/lifecycle/engine.js.map +1 -0
- package/dist/core/lifecycle/evaluate.d.ts +19 -0
- package/dist/core/lifecycle/evaluate.js +72 -0
- package/dist/core/lifecycle/evaluate.js.map +1 -0
- package/dist/core/lifecycle/intent.d.ts +11 -0
- package/dist/core/lifecycle/intent.js +88 -0
- package/dist/core/lifecycle/intent.js.map +1 -0
- package/dist/core/lifecycle/monitor.d.ts +138 -0
- package/dist/core/lifecycle/monitor.js +606 -0
- package/dist/core/lifecycle/monitor.js.map +1 -0
- package/dist/core/lifecycle/observations.d.ts +17 -0
- package/dist/core/lifecycle/observations.js +59 -0
- package/dist/core/lifecycle/observations.js.map +1 -0
- package/dist/core/lifecycle/reconcile.d.ts +58 -0
- package/dist/core/lifecycle/reconcile.js +112 -0
- package/dist/core/lifecycle/reconcile.js.map +1 -0
- package/dist/core/lifecycle/views.d.ts +49 -0
- package/dist/core/lifecycle/views.js +57 -0
- package/dist/core/lifecycle/views.js.map +1 -0
- package/dist/core/lifecycle/workers.d.ts +82 -0
- package/dist/core/lifecycle/workers.js +329 -0
- package/dist/core/lifecycle/workers.js.map +1 -0
- package/dist/core/model/address.d.ts +32 -0
- package/dist/core/model/address.js +43 -0
- package/dist/core/model/address.js.map +1 -0
- package/dist/core/model/amount.d.ts +25 -0
- package/dist/core/model/amount.js +102 -0
- package/dist/core/model/amount.js.map +1 -0
- package/dist/core/model/asset.d.ts +28 -0
- package/dist/core/model/asset.js +47 -0
- package/dist/core/model/asset.js.map +1 -0
- package/dist/core/model/capability.d.ts +3 -0
- package/dist/core/model/capability.js +18 -0
- package/dist/core/model/capability.js.map +1 -0
- package/dist/core/model/chain.d.ts +63 -0
- package/dist/core/model/chain.js +8 -0
- package/dist/core/model/chain.js.map +1 -0
- package/dist/core/model/fee.d.ts +36 -0
- package/dist/core/model/fee.js +17 -0
- package/dist/core/model/fee.js.map +1 -0
- package/dist/core/model/ids.d.ts +37 -0
- package/dist/core/model/ids.js +13 -0
- package/dist/core/model/ids.js.map +1 -0
- package/dist/core/model/intent.d.ts +63 -0
- package/dist/core/model/intent.js +81 -0
- package/dist/core/model/intent.js.map +1 -0
- package/dist/core/model/ordering.d.ts +20 -0
- package/dist/core/model/ordering.js +29 -0
- package/dist/core/model/ordering.js.map +1 -0
- package/dist/core/model/transaction.d.ts +116 -0
- package/dist/core/model/transaction.js +3 -0
- package/dist/core/model/transaction.js.map +1 -0
- package/dist/core/observe/scanner.d.ts +135 -0
- package/dist/core/observe/scanner.js +355 -0
- package/dist/core/observe/scanner.js.map +1 -0
- package/dist/core/ordering/reservations.d.ts +16 -0
- package/dist/core/ordering/reservations.js +53 -0
- package/dist/core/ordering/reservations.js.map +1 -0
- package/dist/core/ordering/sequence.d.ts +61 -0
- package/dist/core/ordering/sequence.js +155 -0
- package/dist/core/ordering/sequence.js.map +1 -0
- package/dist/core/registry/adapters.d.ts +10 -0
- package/dist/core/registry/adapters.js +56 -0
- package/dist/core/registry/adapters.js.map +1 -0
- package/dist/core/registry/assets.d.ts +18 -0
- package/dist/core/registry/assets.js +90 -0
- package/dist/core/registry/assets.js.map +1 -0
- package/dist/core/registry/chains.d.ts +10 -0
- package/dist/core/registry/chains.js +80 -0
- package/dist/core/registry/chains.js.map +1 -0
- package/dist/core/registry/plugin.d.ts +41 -0
- package/dist/core/registry/plugin.js +109 -0
- package/dist/core/registry/plugin.js.map +1 -0
- package/dist/core/registry/providers.d.ts +31 -0
- package/dist/core/registry/providers.js +43 -0
- package/dist/core/registry/providers.js.map +1 -0
- package/dist/core/registry/schemes.d.ts +30 -0
- package/dist/core/registry/schemes.js +84 -0
- package/dist/core/registry/schemes.js.map +1 -0
- package/dist/core/secret/fragments.d.ts +33 -0
- package/dist/core/secret/fragments.js +110 -0
- package/dist/core/secret/fragments.js.map +1 -0
- package/dist/core/secret/redact.d.ts +10 -0
- package/dist/core/secret/redact.js +110 -0
- package/dist/core/secret/redact.js.map +1 -0
- package/dist/core/secret/secret.d.ts +14 -0
- package/dist/core/secret/secret.js +42 -0
- package/dist/core/secret/secret.js.map +1 -0
- package/dist/core/signing/callback.d.ts +10 -0
- package/dist/core/signing/callback.js +22 -0
- package/dist/core/signing/callback.js.map +1 -0
- package/dist/core/signing/guard.d.ts +18 -0
- package/dist/core/signing/guard.js +72 -0
- package/dist/core/signing/guard.js.map +1 -0
- package/dist/core/signing/hd.d.ts +36 -0
- package/dist/core/signing/hd.js +167 -0
- package/dist/core/signing/hd.js.map +1 -0
- package/dist/core/signing/local.d.ts +48 -0
- package/dist/core/signing/local.js +190 -0
- package/dist/core/signing/local.js.map +1 -0
- package/dist/core/signing/orchestrator.d.ts +40 -0
- package/dist/core/signing/orchestrator.js +300 -0
- package/dist/core/signing/orchestrator.js.map +1 -0
- package/dist/core/signing/types.d.ts +64 -0
- package/dist/core/signing/types.js +3 -0
- package/dist/core/signing/types.js.map +1 -0
- package/dist/core/signing/wallet.d.ts +48 -0
- package/dist/core/signing/wallet.js +153 -0
- package/dist/core/signing/wallet.js.map +1 -0
- package/dist/core/store/clone.d.ts +25 -0
- package/dist/core/store/clone.js +71 -0
- package/dist/core/store/clone.js.map +1 -0
- package/dist/core/store/memory.d.ts +38 -0
- package/dist/core/store/memory.js +325 -0
- package/dist/core/store/memory.js.map +1 -0
- package/dist/core/store/types.d.ts +246 -0
- package/dist/core/store/types.js +117 -0
- package/dist/core/store/types.js.map +1 -0
- package/dist/core/transport/backoff.d.ts +8 -0
- package/dist/core/transport/backoff.js +27 -0
- package/dist/core/transport/backoff.js.map +1 -0
- package/dist/core/transport/circuit.d.ts +25 -0
- package/dist/core/transport/circuit.js +61 -0
- package/dist/core/transport/circuit.js.map +1 -0
- package/dist/core/transport/http-transport.d.ts +30 -0
- package/dist/core/transport/http-transport.js +1695 -0
- package/dist/core/transport/http-transport.js.map +1 -0
- package/dist/core/transport/rate-limit.d.ts +27 -0
- package/dist/core/transport/rate-limit.js +78 -0
- package/dist/core/transport/rate-limit.js.map +1 -0
- package/dist/core/transport/stale-view.d.ts +11 -0
- package/dist/core/transport/stale-view.js +17 -0
- package/dist/core/transport/stale-view.js.map +1 -0
- package/dist/core/transport/types.d.ts +144 -0
- package/dist/core/transport/types.js +6 -0
- package/dist/core/transport/types.js.map +1 -0
- package/dist/core/util/bytes.d.ts +9 -0
- package/dist/core/util/bytes.js +40 -0
- package/dist/core/util/bytes.js.map +1 -0
- package/dist/core/util/clock.d.ts +6 -0
- package/dist/core/util/clock.js +26 -0
- package/dist/core/util/clock.js.map +1 -0
- package/dist/core/util/freeze.d.ts +8 -0
- package/dist/core/util/freeze.js +31 -0
- package/dist/core/util/freeze.js.map +1 -0
- package/dist/core/util/json.d.ts +29 -0
- package/dist/core/util/json.js +165 -0
- package/dist/core/util/json.js.map +1 -0
- package/dist/core/util/names.d.ts +21 -0
- package/dist/core/util/names.js +46 -0
- package/dist/core/util/names.js.map +1 -0
- package/dist/index.d.ts +64 -14
- package/dist/index.js +105 -49
- package/dist/index.js.map +1 -1
- package/dist/native.d.ts +21 -0
- package/dist/native.js +44 -0
- package/dist/native.js.map +1 -0
- package/dist/testing/contracts/api.d.ts +12 -0
- package/dist/testing/contracts/api.js +58 -0
- package/dist/testing/contracts/api.js.map +1 -0
- package/dist/testing/contracts/cursors.d.ts +6 -0
- package/dist/testing/contracts/cursors.js +43 -0
- package/dist/testing/contracts/cursors.js.map +1 -0
- package/dist/testing/contracts/locks.d.ts +10 -0
- package/dist/testing/contracts/locks.js +63 -0
- package/dist/testing/contracts/locks.js.map +1 -0
- package/dist/testing/contracts/operations.d.ts +21 -0
- package/dist/testing/contracts/operations.js +718 -0
- package/dist/testing/contracts/operations.js.map +1 -0
- package/dist/testing/contracts/sequences.d.ts +6 -0
- package/dist/testing/contracts/sequences.js +68 -0
- package/dist/testing/contracts/sequences.js.map +1 -0
- package/dist/testing/env.d.ts +63 -0
- package/dist/testing/env.js +105 -0
- package/dist/testing/env.js.map +1 -0
- package/dist/testing/fake-chain.d.ts +118 -0
- package/dist/testing/fake-chain.js +536 -0
- package/dist/testing/fake-chain.js.map +1 -0
- package/dist/testing/fake-clock.d.ts +15 -0
- package/dist/testing/fake-clock.js +86 -0
- package/dist/testing/fake-clock.js.map +1 -0
- package/dist/testing/fake-driver.d.ts +15 -0
- package/dist/testing/fake-driver.js +458 -0
- package/dist/testing/fake-driver.js.map +1 -0
- package/dist/testing/fake-fetch.d.ts +32 -0
- package/dist/testing/fake-fetch.js +81 -0
- package/dist/testing/fake-fetch.js.map +1 -0
- package/dist/testing/fake-plugin.d.ts +30 -0
- package/dist/testing/fake-plugin.js +66 -0
- package/dist/testing/fake-plugin.js.map +1 -0
- package/dist/testing/faulty-store.d.ts +36 -0
- package/dist/testing/faulty-store.js +66 -0
- package/dist/testing/faulty-store.js.map +1 -0
- package/dist/testing/generation.d.ts +60 -0
- package/dist/testing/generation.js +252 -0
- package/dist/testing/generation.js.map +1 -0
- package/dist/testing/index.d.ts +28 -0
- package/dist/testing/index.js +51 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +188 -44
- package/dist/libs/eth/account.d.ts +0 -9
- package/dist/libs/eth/account.js +0 -58
- package/dist/libs/eth/account.js.map +0 -1
- package/dist/libs/eth/contract.d.ts +0 -2
- package/dist/libs/eth/contract.js +0 -7
- package/dist/libs/eth/contract.js.map +0 -1
- package/dist/libs/eth/index.d.ts +0 -20
- package/dist/libs/eth/index.js +0 -62
- package/dist/libs/eth/index.js.map +0 -1
- package/dist/libs/eth/transact.d.ts +0 -2
- package/dist/libs/eth/transact.js +0 -7
- package/dist/libs/eth/transact.js.map +0 -1
- package/dist/libs/index.d.ts +0 -1
- package/dist/libs/index.js +0 -18
- package/dist/libs/index.js.map +0 -1
- package/dist/tool/common.d.ts +0 -28
- package/dist/tool/common.js +0 -33
- package/dist/tool/common.js.map +0 -1
- package/dist/tool/eth-tools.d.ts +0 -3
- package/dist/tool/eth-tools.js +0 -33
- package/dist/tool/eth-tools.js.map +0 -1
- package/dist/tool/index.d.ts +0 -4
- package/dist/tool/index.js +0 -21
- package/dist/tool/index.js.map +0 -1
- package/dist/tool/logging.d.ts +0 -3
- package/dist/tool/logging.js +0 -11
- package/dist/tool/logging.js.map +0 -1
- package/dist/tool/options.d.ts +0 -4
- package/dist/tool/options.js +0 -28
- package/dist/tool/options.js.map +0 -1
- package/dist/type/account.d.ts +0 -9
- package/dist/type/account.js.map +0 -1
- package/dist/type/common.d.ts +0 -18
- package/dist/type/common.js.map +0 -1
- package/dist/type/index.d.ts +0 -3
- package/dist/type/index.js +0 -20
- package/dist/type/index.js.map +0 -1
- package/dist/type/lib-types.d.ts +0 -7
- package/dist/type/lib-types.js.map +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
export type ErrorCategory = 'config' | 'unsupported' | 'validation' | 'provider' | 'chain' | 'signing' | 'state' | 'timeout';
|
|
2
|
+
/** Frozen, with every entry: the table is shared by every error and every caller. */
|
|
3
|
+
export declare const ERROR_CODES: {
|
|
4
|
+
readonly CONFIG_INVALID: {
|
|
5
|
+
readonly category: "config";
|
|
6
|
+
readonly retryable: false;
|
|
7
|
+
};
|
|
8
|
+
readonly DEPENDENCY_MISSING: {
|
|
9
|
+
readonly category: "config";
|
|
10
|
+
readonly retryable: false;
|
|
11
|
+
};
|
|
12
|
+
readonly INCOMPATIBLE_SELECTION: {
|
|
13
|
+
readonly category: "config";
|
|
14
|
+
readonly retryable: false;
|
|
15
|
+
};
|
|
16
|
+
readonly UNSUPPORTED_CAPABILITY: {
|
|
17
|
+
readonly category: "unsupported";
|
|
18
|
+
readonly retryable: false;
|
|
19
|
+
};
|
|
20
|
+
readonly INVALID_ADDRESS: {
|
|
21
|
+
readonly category: "validation";
|
|
22
|
+
readonly retryable: false;
|
|
23
|
+
};
|
|
24
|
+
readonly INVALID_AMOUNT: {
|
|
25
|
+
readonly category: "validation";
|
|
26
|
+
readonly retryable: false;
|
|
27
|
+
};
|
|
28
|
+
readonly ASSET_RESOLUTION: {
|
|
29
|
+
readonly category: "validation";
|
|
30
|
+
readonly retryable: false;
|
|
31
|
+
};
|
|
32
|
+
readonly INVALID_INTENT: {
|
|
33
|
+
readonly category: "validation";
|
|
34
|
+
readonly retryable: false;
|
|
35
|
+
};
|
|
36
|
+
readonly PROVIDER_UNAVAILABLE: {
|
|
37
|
+
readonly category: "provider";
|
|
38
|
+
readonly retryable: true;
|
|
39
|
+
};
|
|
40
|
+
readonly RATE_LIMITED: {
|
|
41
|
+
readonly category: "provider";
|
|
42
|
+
readonly retryable: true;
|
|
43
|
+
};
|
|
44
|
+
readonly PROVIDER_MISCONFIGURED: {
|
|
45
|
+
readonly category: "provider";
|
|
46
|
+
readonly retryable: false;
|
|
47
|
+
};
|
|
48
|
+
readonly PROVIDER_INCONSISTENT: {
|
|
49
|
+
readonly category: "provider";
|
|
50
|
+
readonly retryable: true;
|
|
51
|
+
};
|
|
52
|
+
readonly RPC_ERROR: {
|
|
53
|
+
readonly category: "provider";
|
|
54
|
+
readonly retryable: false;
|
|
55
|
+
};
|
|
56
|
+
readonly INSUFFICIENT_FUNDS: {
|
|
57
|
+
readonly category: "chain";
|
|
58
|
+
readonly retryable: false;
|
|
59
|
+
};
|
|
60
|
+
readonly NONCE_CONFLICT: {
|
|
61
|
+
readonly category: "chain";
|
|
62
|
+
readonly retryable: false;
|
|
63
|
+
};
|
|
64
|
+
readonly NONCE_TOO_HIGH: {
|
|
65
|
+
readonly category: "chain";
|
|
66
|
+
readonly retryable: false;
|
|
67
|
+
};
|
|
68
|
+
readonly FEE_TOO_LOW: {
|
|
69
|
+
readonly category: "chain";
|
|
70
|
+
readonly retryable: false;
|
|
71
|
+
};
|
|
72
|
+
readonly TX_REFUSED: {
|
|
73
|
+
readonly category: "chain";
|
|
74
|
+
readonly retryable: false;
|
|
75
|
+
};
|
|
76
|
+
readonly TX_REJECTED: {
|
|
77
|
+
readonly category: "chain";
|
|
78
|
+
readonly retryable: false;
|
|
79
|
+
};
|
|
80
|
+
readonly TX_REVERTED: {
|
|
81
|
+
readonly category: "chain";
|
|
82
|
+
readonly retryable: false;
|
|
83
|
+
};
|
|
84
|
+
readonly TX_EXPIRED: {
|
|
85
|
+
readonly category: "chain";
|
|
86
|
+
readonly retryable: false;
|
|
87
|
+
};
|
|
88
|
+
readonly TX_REPLACED: {
|
|
89
|
+
readonly category: "chain";
|
|
90
|
+
readonly retryable: false;
|
|
91
|
+
};
|
|
92
|
+
readonly SIGNER_UNAVAILABLE: {
|
|
93
|
+
readonly category: "signing";
|
|
94
|
+
readonly retryable: false;
|
|
95
|
+
};
|
|
96
|
+
readonly SIGNING_FAILED: {
|
|
97
|
+
readonly category: "signing";
|
|
98
|
+
readonly retryable: false;
|
|
99
|
+
};
|
|
100
|
+
readonly SIGNATURE_MISMATCH: {
|
|
101
|
+
readonly category: "signing";
|
|
102
|
+
readonly retryable: false;
|
|
103
|
+
};
|
|
104
|
+
readonly POLICY_REJECTED: {
|
|
105
|
+
readonly category: "signing";
|
|
106
|
+
readonly retryable: false;
|
|
107
|
+
};
|
|
108
|
+
readonly KEY_NOT_EXPORTABLE: {
|
|
109
|
+
readonly category: "signing";
|
|
110
|
+
readonly retryable: false;
|
|
111
|
+
};
|
|
112
|
+
readonly IDEMPOTENCY_CONFLICT: {
|
|
113
|
+
readonly category: "state";
|
|
114
|
+
readonly retryable: false;
|
|
115
|
+
};
|
|
116
|
+
readonly FENCING: {
|
|
117
|
+
readonly category: "state";
|
|
118
|
+
readonly retryable: false;
|
|
119
|
+
};
|
|
120
|
+
readonly VERSION_CONFLICT: {
|
|
121
|
+
readonly category: "state";
|
|
122
|
+
readonly retryable: true;
|
|
123
|
+
};
|
|
124
|
+
readonly INVALID_TRANSITION: {
|
|
125
|
+
readonly category: "state";
|
|
126
|
+
readonly retryable: false;
|
|
127
|
+
};
|
|
128
|
+
readonly NOT_FOUND: {
|
|
129
|
+
readonly category: "state";
|
|
130
|
+
readonly retryable: false;
|
|
131
|
+
};
|
|
132
|
+
readonly SEQUENCE_BUSY: {
|
|
133
|
+
readonly category: "state";
|
|
134
|
+
readonly retryable: true;
|
|
135
|
+
};
|
|
136
|
+
/** The outcome may have happened (e.g. a delivered broadcast) but was not recorded. */
|
|
137
|
+
readonly STATE_UNRECORDED: {
|
|
138
|
+
readonly category: "state";
|
|
139
|
+
readonly retryable: true;
|
|
140
|
+
};
|
|
141
|
+
readonly SCANNER_REORG_TOO_DEEP: {
|
|
142
|
+
readonly category: "state";
|
|
143
|
+
readonly retryable: false;
|
|
144
|
+
};
|
|
145
|
+
readonly TIMEOUT: {
|
|
146
|
+
readonly category: "timeout";
|
|
147
|
+
readonly retryable: true;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
export type ErrorCode = keyof typeof ERROR_CODES;
|
|
151
|
+
export type CodesOf<C extends ErrorCategory> = {
|
|
152
|
+
[K in ErrorCode]: (typeof ERROR_CODES)[K]['category'] extends C ? K : never;
|
|
153
|
+
}[ErrorCode];
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ERROR_CODES = void 0;
|
|
4
|
+
/** Frozen, with every entry: the table is shared by every error and every caller. */
|
|
5
|
+
exports.ERROR_CODES = deepFreezeCodes({
|
|
6
|
+
CONFIG_INVALID: { category: 'config', retryable: false },
|
|
7
|
+
DEPENDENCY_MISSING: { category: 'config', retryable: false },
|
|
8
|
+
INCOMPATIBLE_SELECTION: { category: 'config', retryable: false },
|
|
9
|
+
UNSUPPORTED_CAPABILITY: { category: 'unsupported', retryable: false },
|
|
10
|
+
INVALID_ADDRESS: { category: 'validation', retryable: false },
|
|
11
|
+
INVALID_AMOUNT: { category: 'validation', retryable: false },
|
|
12
|
+
ASSET_RESOLUTION: { category: 'validation', retryable: false },
|
|
13
|
+
INVALID_INTENT: { category: 'validation', retryable: false },
|
|
14
|
+
PROVIDER_UNAVAILABLE: { category: 'provider', retryable: true },
|
|
15
|
+
RATE_LIMITED: { category: 'provider', retryable: true },
|
|
16
|
+
PROVIDER_MISCONFIGURED: { category: 'provider', retryable: false },
|
|
17
|
+
PROVIDER_INCONSISTENT: { category: 'provider', retryable: true },
|
|
18
|
+
RPC_ERROR: { category: 'provider', retryable: false },
|
|
19
|
+
INSUFFICIENT_FUNDS: { category: 'chain', retryable: false },
|
|
20
|
+
NONCE_CONFLICT: { category: 'chain', retryable: false },
|
|
21
|
+
NONCE_TOO_HIGH: { category: 'chain', retryable: false },
|
|
22
|
+
FEE_TOO_LOW: { category: 'chain', retryable: false },
|
|
23
|
+
TX_REFUSED: { category: 'chain', retryable: false },
|
|
24
|
+
TX_REJECTED: { category: 'chain', retryable: false },
|
|
25
|
+
TX_REVERTED: { category: 'chain', retryable: false },
|
|
26
|
+
TX_EXPIRED: { category: 'chain', retryable: false },
|
|
27
|
+
TX_REPLACED: { category: 'chain', retryable: false },
|
|
28
|
+
SIGNER_UNAVAILABLE: { category: 'signing', retryable: false },
|
|
29
|
+
SIGNING_FAILED: { category: 'signing', retryable: false },
|
|
30
|
+
SIGNATURE_MISMATCH: { category: 'signing', retryable: false },
|
|
31
|
+
POLICY_REJECTED: { category: 'signing', retryable: false },
|
|
32
|
+
KEY_NOT_EXPORTABLE: { category: 'signing', retryable: false },
|
|
33
|
+
IDEMPOTENCY_CONFLICT: { category: 'state', retryable: false },
|
|
34
|
+
FENCING: { category: 'state', retryable: false },
|
|
35
|
+
VERSION_CONFLICT: { category: 'state', retryable: true },
|
|
36
|
+
INVALID_TRANSITION: { category: 'state', retryable: false },
|
|
37
|
+
NOT_FOUND: { category: 'state', retryable: false },
|
|
38
|
+
SEQUENCE_BUSY: { category: 'state', retryable: true },
|
|
39
|
+
/** The outcome may have happened (e.g. a delivered broadcast) but was not recorded. */
|
|
40
|
+
STATE_UNRECORDED: { category: 'state', retryable: true },
|
|
41
|
+
SCANNER_REORG_TOO_DEEP: { category: 'state', retryable: false },
|
|
42
|
+
TIMEOUT: { category: 'timeout', retryable: true },
|
|
43
|
+
});
|
|
44
|
+
function deepFreezeCodes(codes) {
|
|
45
|
+
for (const definition of Object.values(codes))
|
|
46
|
+
Object.freeze(definition);
|
|
47
|
+
return Object.freeze(codes);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../../../src/core/errors/codes.ts"],"names":[],"mappings":"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","sourcesContent":["export type ErrorCategory =\n | 'config'\n | 'unsupported'\n | 'validation'\n | 'provider'\n | 'chain'\n | 'signing'\n | 'state'\n | 'timeout';\n\ninterface CodeDefinition {\n readonly category: ErrorCategory;\n readonly retryable: boolean;\n}\n\n/** Frozen, with every entry: the table is shared by every error and every caller. */\nexport const ERROR_CODES = deepFreezeCodes({\n CONFIG_INVALID: { category: 'config', retryable: false },\n DEPENDENCY_MISSING: { category: 'config', retryable: false },\n INCOMPATIBLE_SELECTION: { category: 'config', retryable: false },\n UNSUPPORTED_CAPABILITY: { category: 'unsupported', retryable: false },\n INVALID_ADDRESS: { category: 'validation', retryable: false },\n INVALID_AMOUNT: { category: 'validation', retryable: false },\n ASSET_RESOLUTION: { category: 'validation', retryable: false },\n INVALID_INTENT: { category: 'validation', retryable: false },\n PROVIDER_UNAVAILABLE: { category: 'provider', retryable: true },\n RATE_LIMITED: { category: 'provider', retryable: true },\n PROVIDER_MISCONFIGURED: { category: 'provider', retryable: false },\n PROVIDER_INCONSISTENT: { category: 'provider', retryable: true },\n RPC_ERROR: { category: 'provider', retryable: false },\n INSUFFICIENT_FUNDS: { category: 'chain', retryable: false },\n NONCE_CONFLICT: { category: 'chain', retryable: false },\n NONCE_TOO_HIGH: { category: 'chain', retryable: false },\n FEE_TOO_LOW: { category: 'chain', retryable: false },\n TX_REFUSED: { category: 'chain', retryable: false },\n TX_REJECTED: { category: 'chain', retryable: false },\n TX_REVERTED: { category: 'chain', retryable: false },\n TX_EXPIRED: { category: 'chain', retryable: false },\n TX_REPLACED: { category: 'chain', retryable: false },\n SIGNER_UNAVAILABLE: { category: 'signing', retryable: false },\n SIGNING_FAILED: { category: 'signing', retryable: false },\n SIGNATURE_MISMATCH: { category: 'signing', retryable: false },\n POLICY_REJECTED: { category: 'signing', retryable: false },\n KEY_NOT_EXPORTABLE: { category: 'signing', retryable: false },\n IDEMPOTENCY_CONFLICT: { category: 'state', retryable: false },\n FENCING: { category: 'state', retryable: false },\n VERSION_CONFLICT: { category: 'state', retryable: true },\n INVALID_TRANSITION: { category: 'state', retryable: false },\n NOT_FOUND: { category: 'state', retryable: false },\n SEQUENCE_BUSY: { category: 'state', retryable: true },\n /** The outcome may have happened (e.g. a delivered broadcast) but was not recorded. */\n STATE_UNRECORDED: { category: 'state', retryable: true },\n SCANNER_REORG_TOO_DEEP: { category: 'state', retryable: false },\n TIMEOUT: { category: 'timeout', retryable: true },\n} as const satisfies Record<string, CodeDefinition>);\n\nfunction deepFreezeCodes<T extends Record<string, CodeDefinition>>(codes: T): T {\n for (const definition of Object.values(codes)) Object.freeze(definition);\n return Object.freeze(codes);\n}\n\nexport type ErrorCode = keyof typeof ERROR_CODES;\n\nexport type CodesOf<C extends ErrorCategory> = {\n [K in ErrorCode]: (typeof ERROR_CODES)[K]['category'] extends C ? K : never;\n}[ErrorCode];\n"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type CodesOf, type ErrorCategory, type ErrorCode } from './codes';
|
|
2
|
+
export type { CodesOf, ErrorCategory, ErrorCode } from './codes';
|
|
3
|
+
export type ErrorContextValue = string | number | boolean | undefined;
|
|
4
|
+
export type ErrorContext = Readonly<Record<string, ErrorContextValue>>;
|
|
5
|
+
export interface CryptoAioErrorOptions {
|
|
6
|
+
readonly cause?: unknown;
|
|
7
|
+
readonly context?: ErrorContext;
|
|
8
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
9
|
+
readonly retryable?: boolean;
|
|
10
|
+
readonly ambiguous?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface SerializedError {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly code: ErrorCode;
|
|
15
|
+
readonly category: ErrorCategory;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
readonly retryable: boolean;
|
|
18
|
+
readonly ambiguous: boolean;
|
|
19
|
+
readonly context: ErrorContext;
|
|
20
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
21
|
+
}
|
|
22
|
+
export declare class CryptoAioError extends Error {
|
|
23
|
+
readonly code: ErrorCode;
|
|
24
|
+
readonly category: ErrorCategory;
|
|
25
|
+
readonly retryable: boolean;
|
|
26
|
+
readonly ambiguous: boolean;
|
|
27
|
+
readonly context: ErrorContext;
|
|
28
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
29
|
+
constructor(code: ErrorCode, message: string, options?: CryptoAioErrorOptions);
|
|
30
|
+
toJSON(): SerializedError;
|
|
31
|
+
}
|
|
32
|
+
export declare class ConfigError extends CryptoAioError {
|
|
33
|
+
constructor(code: CodesOf<'config'>, message: string, options?: CryptoAioErrorOptions);
|
|
34
|
+
}
|
|
35
|
+
export declare class UnsupportedCapabilityError extends CryptoAioError {
|
|
36
|
+
constructor(code: CodesOf<'unsupported'>, message: string, options?: CryptoAioErrorOptions);
|
|
37
|
+
}
|
|
38
|
+
export declare class ValidationError extends CryptoAioError {
|
|
39
|
+
constructor(code: CodesOf<'validation'>, message: string, options?: CryptoAioErrorOptions);
|
|
40
|
+
}
|
|
41
|
+
export declare class ProviderError extends CryptoAioError {
|
|
42
|
+
constructor(code: CodesOf<'provider'>, message: string, options?: CryptoAioErrorOptions);
|
|
43
|
+
}
|
|
44
|
+
export declare class ChainError extends CryptoAioError {
|
|
45
|
+
constructor(code: CodesOf<'chain'>, message: string, options?: CryptoAioErrorOptions);
|
|
46
|
+
}
|
|
47
|
+
export declare class SigningError extends CryptoAioError {
|
|
48
|
+
constructor(code: CodesOf<'signing'>, message: string, options?: CryptoAioErrorOptions);
|
|
49
|
+
}
|
|
50
|
+
export declare class StateError extends CryptoAioError {
|
|
51
|
+
constructor(code: CodesOf<'state'>, message: string, options?: CryptoAioErrorOptions);
|
|
52
|
+
}
|
|
53
|
+
export declare class TimeoutError extends CryptoAioError {
|
|
54
|
+
constructor(code: CodesOf<'timeout'>, message: string, options?: CryptoAioErrorOptions);
|
|
55
|
+
}
|
|
56
|
+
export declare function createError(code: ErrorCode, message: string, options?: CryptoAioErrorOptions): CryptoAioError;
|
|
57
|
+
export declare function isCryptoAioError(value: unknown, code?: ErrorCode): value is CryptoAioError;
|
|
58
|
+
/**
|
|
59
|
+
* Returns a copy of `error` (same class, same stack) with merged context, and optional flag
|
|
60
|
+
* and `details` overrides. The copy keeps the stack of the error it reports.
|
|
61
|
+
*/
|
|
62
|
+
export declare function withContext(error: CryptoAioError, context: ErrorContext, overrides?: {
|
|
63
|
+
readonly ambiguous?: boolean;
|
|
64
|
+
readonly retryable?: boolean;
|
|
65
|
+
readonly details?: Readonly<Record<string, unknown>>;
|
|
66
|
+
}): CryptoAioError;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeoutError = exports.StateError = exports.SigningError = exports.ChainError = exports.ProviderError = exports.ValidationError = exports.UnsupportedCapabilityError = exports.ConfigError = exports.CryptoAioError = void 0;
|
|
4
|
+
exports.createError = createError;
|
|
5
|
+
exports.isCryptoAioError = isCryptoAioError;
|
|
6
|
+
exports.withContext = withContext;
|
|
7
|
+
const codes_1 = require("./codes");
|
|
8
|
+
class CryptoAioError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
category;
|
|
11
|
+
retryable;
|
|
12
|
+
ambiguous;
|
|
13
|
+
context;
|
|
14
|
+
details;
|
|
15
|
+
constructor(code, message, options = {}) {
|
|
16
|
+
super(message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
17
|
+
this.name = new.target.name;
|
|
18
|
+
const definition = codes_1.ERROR_CODES[code];
|
|
19
|
+
this.code = code;
|
|
20
|
+
this.category = definition.category;
|
|
21
|
+
this.retryable = options.retryable ?? definition.retryable;
|
|
22
|
+
this.ambiguous = options.ambiguous ?? false;
|
|
23
|
+
this.context = Object.freeze({ ...options.context });
|
|
24
|
+
if (options.details)
|
|
25
|
+
this.details = Object.freeze({ ...options.details });
|
|
26
|
+
}
|
|
27
|
+
toJSON() {
|
|
28
|
+
return {
|
|
29
|
+
name: this.name,
|
|
30
|
+
code: this.code,
|
|
31
|
+
category: this.category,
|
|
32
|
+
message: this.message,
|
|
33
|
+
retryable: this.retryable,
|
|
34
|
+
ambiguous: this.ambiguous,
|
|
35
|
+
context: this.context,
|
|
36
|
+
...(this.details ? { details: this.details } : {}),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.CryptoAioError = CryptoAioError;
|
|
41
|
+
class ConfigError extends CryptoAioError {
|
|
42
|
+
constructor(code, message, options) {
|
|
43
|
+
super(code, message, options);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.ConfigError = ConfigError;
|
|
47
|
+
class UnsupportedCapabilityError extends CryptoAioError {
|
|
48
|
+
constructor(code, message, options) {
|
|
49
|
+
super(code, message, options);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.UnsupportedCapabilityError = UnsupportedCapabilityError;
|
|
53
|
+
class ValidationError extends CryptoAioError {
|
|
54
|
+
constructor(code, message, options) {
|
|
55
|
+
super(code, message, options);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ValidationError = ValidationError;
|
|
59
|
+
class ProviderError extends CryptoAioError {
|
|
60
|
+
constructor(code, message, options) {
|
|
61
|
+
super(code, message, options);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.ProviderError = ProviderError;
|
|
65
|
+
class ChainError extends CryptoAioError {
|
|
66
|
+
constructor(code, message, options) {
|
|
67
|
+
super(code, message, options);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.ChainError = ChainError;
|
|
71
|
+
class SigningError extends CryptoAioError {
|
|
72
|
+
constructor(code, message, options) {
|
|
73
|
+
super(code, message, options);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.SigningError = SigningError;
|
|
77
|
+
class StateError extends CryptoAioError {
|
|
78
|
+
constructor(code, message, options) {
|
|
79
|
+
super(code, message, options);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.StateError = StateError;
|
|
83
|
+
class TimeoutError extends CryptoAioError {
|
|
84
|
+
constructor(code, message, options) {
|
|
85
|
+
super(code, message, options);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.TimeoutError = TimeoutError;
|
|
89
|
+
const BY_CATEGORY = {
|
|
90
|
+
config: ConfigError,
|
|
91
|
+
unsupported: UnsupportedCapabilityError,
|
|
92
|
+
validation: ValidationError,
|
|
93
|
+
provider: ProviderError,
|
|
94
|
+
chain: ChainError,
|
|
95
|
+
signing: SigningError,
|
|
96
|
+
state: StateError,
|
|
97
|
+
timeout: TimeoutError,
|
|
98
|
+
};
|
|
99
|
+
function createError(code, message, options) {
|
|
100
|
+
const Ctor = BY_CATEGORY[codes_1.ERROR_CODES[code].category];
|
|
101
|
+
return new Ctor(code, message, options);
|
|
102
|
+
}
|
|
103
|
+
function isCryptoAioError(value, code) {
|
|
104
|
+
return value instanceof CryptoAioError && (code === undefined || value.code === code);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns a copy of `error` (same class, same stack) with merged context, and optional flag
|
|
108
|
+
* and `details` overrides. The copy keeps the stack of the error it reports.
|
|
109
|
+
*/
|
|
110
|
+
function withContext(error, context, overrides = {}) {
|
|
111
|
+
const Ctor = error.constructor;
|
|
112
|
+
const details = overrides.details ?? error.details;
|
|
113
|
+
const copy = new Ctor(error.code, error.message, {
|
|
114
|
+
cause: error.cause,
|
|
115
|
+
context: { ...error.context, ...context },
|
|
116
|
+
...(details ? { details } : {}),
|
|
117
|
+
retryable: overrides.retryable ?? error.retryable,
|
|
118
|
+
ambiguous: overrides.ambiguous ?? error.ambiguous,
|
|
119
|
+
});
|
|
120
|
+
if (error.stack !== undefined) {
|
|
121
|
+
Object.defineProperty(copy, 'stack', {
|
|
122
|
+
value: error.stack,
|
|
123
|
+
writable: true,
|
|
124
|
+
configurable: true,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return copy;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/core/errors/error.ts"],"names":[],"mappings":"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","sourcesContent":["import { ERROR_CODES, type CodesOf, type ErrorCategory, type ErrorCode } from './codes';\n\nexport type { CodesOf, ErrorCategory, ErrorCode } from './codes';\n\nexport type ErrorContextValue = string | number | boolean | undefined;\nexport type ErrorContext = Readonly<Record<string, ErrorContextValue>>;\n\nexport interface CryptoAioErrorOptions {\n readonly cause?: unknown;\n readonly context?: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n readonly retryable?: boolean;\n readonly ambiguous?: boolean;\n}\n\nexport interface SerializedError {\n readonly name: string;\n readonly code: ErrorCode;\n readonly category: ErrorCategory;\n readonly message: string;\n readonly retryable: boolean;\n readonly ambiguous: boolean;\n readonly context: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n}\n\nexport class CryptoAioError extends Error {\n readonly code: ErrorCode;\n readonly category: ErrorCategory;\n readonly retryable: boolean;\n readonly ambiguous: boolean;\n readonly context: ErrorContext;\n readonly details?: Readonly<Record<string, unknown>>;\n\n constructor(code: ErrorCode, message: string, options: CryptoAioErrorOptions = {}) {\n super(message, options.cause === undefined ? undefined : { cause: options.cause });\n this.name = new.target.name;\n const definition = ERROR_CODES[code];\n this.code = code;\n this.category = definition.category;\n this.retryable = options.retryable ?? definition.retryable;\n this.ambiguous = options.ambiguous ?? false;\n this.context = Object.freeze({ ...options.context });\n if (options.details) this.details = Object.freeze({ ...options.details });\n }\n\n toJSON(): SerializedError {\n return {\n name: this.name,\n code: this.code,\n category: this.category,\n message: this.message,\n retryable: this.retryable,\n ambiguous: this.ambiguous,\n context: this.context,\n ...(this.details ? { details: this.details } : {}),\n };\n }\n}\n\nexport class ConfigError extends CryptoAioError {\n constructor(code: CodesOf<'config'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class UnsupportedCapabilityError extends CryptoAioError {\n constructor(\n code: CodesOf<'unsupported'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ValidationError extends CryptoAioError {\n constructor(\n code: CodesOf<'validation'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ProviderError extends CryptoAioError {\n constructor(\n code: CodesOf<'provider'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class ChainError extends CryptoAioError {\n constructor(code: CodesOf<'chain'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class SigningError extends CryptoAioError {\n constructor(\n code: CodesOf<'signing'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\nexport class StateError extends CryptoAioError {\n constructor(code: CodesOf<'state'>, message: string, options?: CryptoAioErrorOptions) {\n super(code, message, options);\n }\n}\nexport class TimeoutError extends CryptoAioError {\n constructor(\n code: CodesOf<'timeout'>,\n message: string,\n options?: CryptoAioErrorOptions,\n ) {\n super(code, message, options);\n }\n}\n\ntype AnyErrorConstructor = new (\n code: ErrorCode,\n message: string,\n options?: CryptoAioErrorOptions,\n) => CryptoAioError;\n\nconst BY_CATEGORY: Record<ErrorCategory, AnyErrorConstructor> = {\n config: ConfigError as AnyErrorConstructor,\n unsupported: UnsupportedCapabilityError as AnyErrorConstructor,\n validation: ValidationError as AnyErrorConstructor,\n provider: ProviderError as AnyErrorConstructor,\n chain: ChainError as AnyErrorConstructor,\n signing: SigningError as AnyErrorConstructor,\n state: StateError as AnyErrorConstructor,\n timeout: TimeoutError as AnyErrorConstructor,\n};\n\nexport function createError(\n code: ErrorCode,\n message: string,\n options?: CryptoAioErrorOptions,\n): CryptoAioError {\n const Ctor = BY_CATEGORY[ERROR_CODES[code].category];\n return new Ctor(code, message, options);\n}\n\nexport function isCryptoAioError(\n value: unknown,\n code?: ErrorCode,\n): value is CryptoAioError {\n return value instanceof CryptoAioError && (code === undefined || value.code === code);\n}\n\n/**\n * Returns a copy of `error` (same class, same stack) with merged context, and optional flag\n * and `details` overrides. The copy keeps the stack of the error it reports.\n */\nexport function withContext(\n error: CryptoAioError,\n context: ErrorContext,\n overrides: {\n readonly ambiguous?: boolean;\n readonly retryable?: boolean;\n readonly details?: Readonly<Record<string, unknown>>;\n } = {},\n): CryptoAioError {\n const Ctor = error.constructor as AnyErrorConstructor;\n const details = overrides.details ?? error.details;\n const copy = new Ctor(error.code, error.message, {\n cause: error.cause,\n context: { ...error.context, ...context },\n ...(details ? { details } : {}),\n retryable: overrides.retryable ?? error.retryable,\n ambiguous: overrides.ambiguous ?? error.ambiguous,\n });\n if (error.stack !== undefined) {\n Object.defineProperty(copy, 'stack', {\n value: error.stack,\n writable: true,\n configurable: true,\n });\n }\n return copy;\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Clock } from '../util/clock';
|
|
2
|
+
import type { Logger } from './logger';
|
|
3
|
+
import type { AioEvent, AioEventName, AioEvents } from './types';
|
|
4
|
+
export declare class EventBus {
|
|
5
|
+
#private;
|
|
6
|
+
private readonly clock;
|
|
7
|
+
private readonly log;
|
|
8
|
+
constructor(clock: Clock, log: Logger);
|
|
9
|
+
on<E extends AioEventName>(type: E, handler: (event: AioEvent<E>) => void): () => void;
|
|
10
|
+
onAny(handler: (event: AioEvent) => void): () => void;
|
|
11
|
+
emit<E extends AioEventName>(type: E, payload: AioEvents[E]): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventBus = void 0;
|
|
4
|
+
const error_1 = require("../errors/error");
|
|
5
|
+
class EventBus {
|
|
6
|
+
clock;
|
|
7
|
+
log;
|
|
8
|
+
#handlers = new Map();
|
|
9
|
+
#any = new Set();
|
|
10
|
+
constructor(clock, log) {
|
|
11
|
+
this.clock = clock;
|
|
12
|
+
this.log = log;
|
|
13
|
+
}
|
|
14
|
+
on(type, handler) {
|
|
15
|
+
const set = this.#handlers.get(type) ?? new Set();
|
|
16
|
+
this.#handlers.set(type, set);
|
|
17
|
+
const h = handler;
|
|
18
|
+
set.add(h);
|
|
19
|
+
return () => {
|
|
20
|
+
set.delete(h);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
onAny(handler) {
|
|
24
|
+
this.#any.add(handler);
|
|
25
|
+
return () => {
|
|
26
|
+
this.#any.delete(handler);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
emit(type, payload) {
|
|
30
|
+
const event = { ...payload, type, at: this.clock.now() };
|
|
31
|
+
for (const handler of [...(this.#handlers.get(type) ?? []), ...this.#any]) {
|
|
32
|
+
try {
|
|
33
|
+
handler(event);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
// The code only; a handler's error message may carry anything.
|
|
37
|
+
this.log.warn('event handler threw', {
|
|
38
|
+
type,
|
|
39
|
+
code: (0, error_1.isCryptoAioError)(error) ? error.code : 'UNKNOWN',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.EventBus = EventBus;
|
|
46
|
+
//# sourceMappingURL=bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/core/events/bus.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAOnD,MAAa,QAAQ;IAKA;IACA;IALV,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IACrD,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;IAEtC,YACmB,KAAY,EACZ,GAAW;QADX,UAAK,GAAL,KAAK,CAAO;QACZ,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,EAAE,CAAyB,IAAO,EAAE,OAAqC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAc,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,OAAgC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAkC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAyB,IAAO,EAAE,OAAqB;QACzD,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAc,CAAC;QACrE,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,+DAA+D;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBACnC,IAAI;oBACJ,IAAI,EAAE,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxCD,4BAwCC","sourcesContent":["import { isCryptoAioError } from '../errors/error';\nimport type { Clock } from '../util/clock';\nimport type { Logger } from './logger';\nimport type { AioEvent, AioEventName, AioEvents } from './types';\n\ntype AnyHandler = (event: AioEvent) => void;\n\nexport class EventBus {\n readonly #handlers = new Map<AioEventName, Set<AnyHandler>>();\n readonly #any = new Set<AnyHandler>();\n\n constructor(\n private readonly clock: Clock,\n private readonly log: Logger,\n ) {}\n\n on<E extends AioEventName>(type: E, handler: (event: AioEvent<E>) => void): () => void {\n const set = this.#handlers.get(type) ?? new Set<AnyHandler>();\n this.#handlers.set(type, set);\n const h = handler as unknown as AnyHandler;\n set.add(h);\n return () => {\n set.delete(h);\n };\n }\n\n onAny(handler: (event: AioEvent) => void): () => void {\n this.#any.add(handler);\n return () => {\n this.#any.delete(handler);\n };\n }\n\n emit<E extends AioEventName>(type: E, payload: AioEvents[E]): void {\n const event = { ...payload, type, at: this.clock.now() } as AioEvent;\n for (const handler of [...(this.#handlers.get(type) ?? []), ...this.#any]) {\n try {\n handler(event);\n } catch (error) {\n // The code only; a handler's error message may carry anything.\n this.log.warn('event handler threw', {\n type,\n code: isCryptoAioError(error) ? error.code : 'UNKNOWN',\n });\n }\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
export type LogFields = Readonly<Record<string, unknown>>;
|
|
3
|
+
export interface Logger {
|
|
4
|
+
debug(message: string, fields?: LogFields): void;
|
|
5
|
+
info(message: string, fields?: LogFields): void;
|
|
6
|
+
warn(message: string, fields?: LogFields): void;
|
|
7
|
+
error(message: string, fields?: LogFields): void;
|
|
8
|
+
child(namespace: string): Logger;
|
|
9
|
+
}
|
|
10
|
+
export type LogWriter = (level: LogLevel, namespace: string, message: string, fields?: Record<string, unknown>) => void;
|
|
11
|
+
/** Structured logger; fields are always redacted before they reach the writer. */
|
|
12
|
+
export declare function createLogger(namespace?: string, write?: LogWriter): Logger;
|
|
13
|
+
export declare const noopLogger: Logger;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.noopLogger = void 0;
|
|
7
|
+
exports.createLogger = createLogger;
|
|
8
|
+
const debug_1 = __importDefault(require("debug"));
|
|
9
|
+
const redact_1 = require("../secret/redact");
|
|
10
|
+
const debuggers = new Map();
|
|
11
|
+
const debugWriter = (level, namespace, message, fields) => {
|
|
12
|
+
const name = `${namespace}:${level}`;
|
|
13
|
+
let log = debuggers.get(name);
|
|
14
|
+
if (!log) {
|
|
15
|
+
log = (0, debug_1.default)(name);
|
|
16
|
+
debuggers.set(name, log);
|
|
17
|
+
}
|
|
18
|
+
if (fields && Object.keys(fields).length > 0)
|
|
19
|
+
log('%s %o', message, fields);
|
|
20
|
+
else
|
|
21
|
+
log('%s', message);
|
|
22
|
+
};
|
|
23
|
+
/** Structured logger; fields are always redacted before they reach the writer. */
|
|
24
|
+
function createLogger(namespace = 'crypto-aio', write = debugWriter) {
|
|
25
|
+
const emit = (level) => (message, fields) => write(level, namespace, (0, redact_1.redactText)(message), fields ? (0, redact_1.redactDeep)(fields) : undefined);
|
|
26
|
+
return {
|
|
27
|
+
debug: emit('debug'),
|
|
28
|
+
info: emit('info'),
|
|
29
|
+
warn: emit('warn'),
|
|
30
|
+
error: emit('error'),
|
|
31
|
+
child: (child) => createLogger(`${namespace}:${child}`, write),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const noop = () => undefined;
|
|
35
|
+
exports.noopLogger = {
|
|
36
|
+
debug: noop,
|
|
37
|
+
info: noop,
|
|
38
|
+
warn: noop,
|
|
39
|
+
error: noop,
|
|
40
|
+
child: () => exports.noopLogger,
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/events/logger.ts"],"names":[],"mappings":";;;;;;AAmCA,oCAkBC;AArDD,kDAAgC;AAChC,6CAA0D;AAoB1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE1D,MAAM,WAAW,GAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACnE,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,IAAA,eAAW,EAAC,IAAI,CAAC,CAAC;QACxB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;;QACvE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,kFAAkF;AAClF,SAAgB,YAAY,CAC1B,SAAS,GAAG,YAAY,EACxB,QAAmB,WAAW;IAE9B,MAAM,IAAI,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,OAAe,EAAE,MAAkB,EAAE,EAAE,CACxE,KAAK,CACH,KAAK,EACL,SAAS,EACT,IAAA,mBAAU,EAAC,OAAO,CAAC,EACnB,MAAM,CAAC,CAAC,CAAE,IAAA,mBAAU,EAAC,MAAM,CAA6B,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC;IACJ,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QACpB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;AAEtB,QAAA,UAAU,GAAW;IAChC,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG,EAAE,CAAC,kBAAU;CACxB,CAAC","sourcesContent":["import createDebug from 'debug';\nimport { redactDeep, redactText } from '../secret/redact';\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\nexport type LogFields = Readonly<Record<string, unknown>>;\n\nexport interface Logger {\n debug(message: string, fields?: LogFields): void;\n info(message: string, fields?: LogFields): void;\n warn(message: string, fields?: LogFields): void;\n error(message: string, fields?: LogFields): void;\n child(namespace: string): Logger;\n}\n\nexport type LogWriter = (\n level: LogLevel,\n namespace: string,\n message: string,\n fields?: Record<string, unknown>,\n) => void;\n\nconst debuggers = new Map<string, createDebug.Debugger>();\n\nconst debugWriter: LogWriter = (level, namespace, message, fields) => {\n const name = `${namespace}:${level}`;\n let log = debuggers.get(name);\n if (!log) {\n log = createDebug(name);\n debuggers.set(name, log);\n }\n if (fields && Object.keys(fields).length > 0) log('%s %o', message, fields);\n else log('%s', message);\n};\n\n/** Structured logger; fields are always redacted before they reach the writer. */\nexport function createLogger(\n namespace = 'crypto-aio',\n write: LogWriter = debugWriter,\n): Logger {\n const emit = (level: LogLevel) => (message: string, fields?: LogFields) =>\n write(\n level,\n namespace,\n redactText(message),\n fields ? (redactDeep(fields) as Record<string, unknown>) : undefined,\n );\n return {\n debug: emit('debug'),\n info: emit('info'),\n warn: emit('warn'),\n error: emit('error'),\n child: (child) => createLogger(`${namespace}:${child}`, write),\n };\n}\n\nconst noop = (): void => undefined;\n\nexport const noopLogger: Logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n child: () => noopLogger,\n};\n"]}
|