@miradexio/client 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/LICENSE +21 -0
- package/README.md +405 -0
- package/dist/address/base58.d.ts +9 -0
- package/dist/address/base58.d.ts.map +1 -0
- package/dist/address/base58.js +33 -0
- package/dist/address/base58.js.map +1 -0
- package/dist/address/bech32.d.ts +13 -0
- package/dist/address/bech32.d.ts.map +1 -0
- package/dist/address/bech32.js +41 -0
- package/dist/address/bech32.js.map +1 -0
- package/dist/address/evm.d.ts +5 -0
- package/dist/address/evm.d.ts.map +1 -0
- package/dist/address/evm.js +27 -0
- package/dist/address/evm.js.map +1 -0
- package/dist/address/index.d.ts +15 -0
- package/dist/address/index.d.ts.map +1 -0
- package/dist/address/index.js +134 -0
- package/dist/address/index.js.map +1 -0
- package/dist/address/monero.d.ts +15 -0
- package/dist/address/monero.d.ts.map +1 -0
- package/dist/address/monero.js +30 -0
- package/dist/address/monero.js.map +1 -0
- package/dist/address/polkadot.d.ts +10 -0
- package/dist/address/polkadot.d.ts.map +1 -0
- package/dist/address/polkadot.js +36 -0
- package/dist/address/polkadot.js.map +1 -0
- package/dist/address/solana.d.ts +5 -0
- package/dist/address/solana.d.ts.map +1 -0
- package/dist/address/solana.js +17 -0
- package/dist/address/solana.js.map +1 -0
- package/dist/address/ton.d.ts +11 -0
- package/dist/address/ton.d.ts.map +1 -0
- package/dist/address/ton.js +28 -0
- package/dist/address/ton.js.map +1 -0
- package/dist/api/index.d.ts +80 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +213 -0
- package/dist/api/index.js.map +1 -0
- package/dist/atomic-swap/drive.d.ts +22 -0
- package/dist/atomic-swap/drive.d.ts.map +1 -0
- package/dist/atomic-swap/drive.js +713 -0
- package/dist/atomic-swap/drive.js.map +1 -0
- package/dist/atomic-swap/extract.d.ts +46 -0
- package/dist/atomic-swap/extract.d.ts.map +1 -0
- package/dist/atomic-swap/extract.js +55 -0
- package/dist/atomic-swap/extract.js.map +1 -0
- package/dist/atomic-swap/index.d.ts +15 -0
- package/dist/atomic-swap/index.d.ts.map +1 -0
- package/dist/atomic-swap/index.js +13 -0
- package/dist/atomic-swap/index.js.map +1 -0
- package/dist/atomic-swap/monero-sweep/errors.d.ts +2 -0
- package/dist/atomic-swap/monero-sweep/errors.d.ts.map +1 -0
- package/dist/atomic-swap/monero-sweep/errors.js +43 -0
- package/dist/atomic-swap/monero-sweep/errors.js.map +1 -0
- package/dist/atomic-swap/monero-sweep/index.d.ts +33 -0
- package/dist/atomic-swap/monero-sweep/index.d.ts.map +1 -0
- package/dist/atomic-swap/monero-sweep/index.js +415 -0
- package/dist/atomic-swap/monero-sweep/index.js.map +1 -0
- package/dist/atomic-swap/monero-sweep/ring-select.d.ts +12 -0
- package/dist/atomic-swap/monero-sweep/ring-select.d.ts.map +1 -0
- package/dist/atomic-swap/monero-sweep/ring-select.js +61 -0
- package/dist/atomic-swap/monero-sweep/ring-select.js.map +1 -0
- package/dist/atomic-swap/presign.d.ts +101 -0
- package/dist/atomic-swap/presign.d.ts.map +1 -0
- package/dist/atomic-swap/presign.js +460 -0
- package/dist/atomic-swap/presign.js.map +1 -0
- package/dist/atomic-swap/refund.d.ts +72 -0
- package/dist/atomic-swap/refund.d.ts.map +1 -0
- package/dist/atomic-swap/refund.js +224 -0
- package/dist/atomic-swap/refund.js.map +1 -0
- package/dist/atomic-swap/run.d.ts +27 -0
- package/dist/atomic-swap/run.d.ts.map +1 -0
- package/dist/atomic-swap/run.js +282 -0
- package/dist/atomic-swap/run.js.map +1 -0
- package/dist/atomic-swap/snapshot.d.ts +111 -0
- package/dist/atomic-swap/snapshot.d.ts.map +1 -0
- package/dist/atomic-swap/snapshot.js +69 -0
- package/dist/atomic-swap/snapshot.js.map +1 -0
- package/dist/atomic-swap/submit-encsig.d.ts +10 -0
- package/dist/atomic-swap/submit-encsig.d.ts.map +1 -0
- package/dist/atomic-swap/submit-encsig.js +56 -0
- package/dist/atomic-swap/submit-encsig.js.map +1 -0
- package/dist/atomic-swap/types.d.ts +168 -0
- package/dist/atomic-swap/types.d.ts.map +1 -0
- package/dist/atomic-swap/types.js +5 -0
- package/dist/atomic-swap/types.js.map +1 -0
- package/dist/blockchain/quorum-provider.d.ts +25 -0
- package/dist/blockchain/quorum-provider.d.ts.map +1 -0
- package/dist/blockchain/quorum-provider.js +144 -0
- package/dist/blockchain/quorum-provider.js.map +1 -0
- package/dist/cooperative-redeem.d.ts +23 -0
- package/dist/cooperative-redeem.d.ts.map +1 -0
- package/dist/cooperative-redeem.js +40 -0
- package/dist/cooperative-redeem.js.map +1 -0
- package/dist/engine/blockchain-querier.d.ts +34 -0
- package/dist/engine/blockchain-querier.d.ts.map +1 -0
- package/dist/engine/blockchain-querier.js +2 -0
- package/dist/engine/blockchain-querier.js.map +1 -0
- package/dist/engine/engine-state.d.ts +20 -0
- package/dist/engine/engine-state.d.ts.map +1 -0
- package/dist/engine/engine-state.js +9 -0
- package/dist/engine/engine-state.js.map +1 -0
- package/dist/engine/flow-context.d.ts +494 -0
- package/dist/engine/flow-context.d.ts.map +1 -0
- package/dist/engine/flow-context.js +147 -0
- package/dist/engine/flow-context.js.map +1 -0
- package/dist/engine/flows/atomic-flow-state.d.ts +124 -0
- package/dist/engine/flows/atomic-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/atomic-flow-state.js +2 -0
- package/dist/engine/flows/atomic-flow-state.js.map +1 -0
- package/dist/engine/flows/atomic-flow.d.ts +88 -0
- package/dist/engine/flows/atomic-flow.d.ts.map +1 -0
- package/dist/engine/flows/atomic-flow.js +1192 -0
- package/dist/engine/flows/atomic-flow.js.map +1 -0
- package/dist/engine/flows/history-flow-state.d.ts +19 -0
- package/dist/engine/flows/history-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/history-flow-state.js +2 -0
- package/dist/engine/flows/history-flow-state.js.map +1 -0
- package/dist/engine/flows/providers-flow-state.d.ts +14 -0
- package/dist/engine/flows/providers-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/providers-flow-state.js +2 -0
- package/dist/engine/flows/providers-flow-state.js.map +1 -0
- package/dist/engine/flows/quote-flow-state.d.ts +20 -0
- package/dist/engine/flows/quote-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/quote-flow-state.js +2 -0
- package/dist/engine/flows/quote-flow-state.js.map +1 -0
- package/dist/engine/flows/swap-flow-state.d.ts +155 -0
- package/dist/engine/flows/swap-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/swap-flow-state.js +2 -0
- package/dist/engine/flows/swap-flow-state.js.map +1 -0
- package/dist/engine/flows/swap-flow.d.ts +81 -0
- package/dist/engine/flows/swap-flow.d.ts.map +1 -0
- package/dist/engine/flows/swap-flow.js +720 -0
- package/dist/engine/flows/swap-flow.js.map +1 -0
- package/dist/engine/flows/tokens-flow-state.d.ts +16 -0
- package/dist/engine/flows/tokens-flow-state.d.ts.map +1 -0
- package/dist/engine/flows/tokens-flow-state.js +2 -0
- package/dist/engine/flows/tokens-flow-state.js.map +1 -0
- package/dist/engine/miradex-engine.d.ts +152 -0
- package/dist/engine/miradex-engine.d.ts.map +1 -0
- package/dist/engine/miradex-engine.js +278 -0
- package/dist/engine/miradex-engine.js.map +1 -0
- package/dist/engine/pipeline.d.ts +27 -0
- package/dist/engine/pipeline.d.ts.map +1 -0
- package/dist/engine/pipeline.js +166 -0
- package/dist/engine/pipeline.js.map +1 -0
- package/dist/engine/platform.d.ts +220 -0
- package/dist/engine/platform.d.ts.map +1 -0
- package/dist/engine/platform.js +2 -0
- package/dist/engine/platform.js.map +1 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/blockchain.d.ts +33 -0
- package/dist/interfaces/blockchain.d.ts.map +1 -0
- package/dist/interfaces/blockchain.js +2 -0
- package/dist/interfaces/blockchain.js.map +1 -0
- package/dist/interfaces/logger.d.ts +14 -0
- package/dist/interfaces/logger.d.ts.map +1 -0
- package/dist/interfaces/logger.js +7 -0
- package/dist/interfaces/logger.js.map +1 -0
- package/dist/lib/bitcoin/deposit-watcher.d.ts +66 -0
- package/dist/lib/bitcoin/deposit-watcher.d.ts.map +1 -0
- package/dist/lib/bitcoin/deposit-watcher.js +218 -0
- package/dist/lib/bitcoin/deposit-watcher.js.map +1 -0
- package/dist/lib/bitcoin/script-hash.d.ts +8 -0
- package/dist/lib/bitcoin/script-hash.d.ts.map +1 -0
- package/dist/lib/bitcoin/script-hash.js +29 -0
- package/dist/lib/bitcoin/script-hash.js.map +1 -0
- package/dist/lib/bitcoin/sweep.d.ts +56 -0
- package/dist/lib/bitcoin/sweep.d.ts.map +1 -0
- package/dist/lib/bitcoin/sweep.js +185 -0
- package/dist/lib/bitcoin/sweep.js.map +1 -0
- package/dist/lib/bitcoin/tx-verify.d.ts +43 -0
- package/dist/lib/bitcoin/tx-verify.d.ts.map +1 -0
- package/dist/lib/bitcoin/tx-verify.js +202 -0
- package/dist/lib/bitcoin/tx-verify.js.map +1 -0
- package/dist/lib/bitcoin/wallet.d.ts +71 -0
- package/dist/lib/bitcoin/wallet.d.ts.map +1 -0
- package/dist/lib/bitcoin/wallet.js +141 -0
- package/dist/lib/bitcoin/wallet.js.map +1 -0
- package/dist/lib/crypto/bytes.d.ts +21 -0
- package/dist/lib/crypto/bytes.d.ts.map +1 -0
- package/dist/lib/crypto/bytes.js +39 -0
- package/dist/lib/crypto/bytes.js.map +1 -0
- package/dist/lib/crypto/errors.d.ts +12 -0
- package/dist/lib/crypto/errors.d.ts.map +1 -0
- package/dist/lib/crypto/errors.js +16 -0
- package/dist/lib/crypto/errors.js.map +1 -0
- package/dist/lib/crypto/keygen.d.ts +19 -0
- package/dist/lib/crypto/keygen.d.ts.map +1 -0
- package/dist/lib/crypto/keygen.js +24 -0
- package/dist/lib/crypto/keygen.js.map +1 -0
- package/dist/lib/crypto/libp2p-identity.d.ts +25 -0
- package/dist/lib/crypto/libp2p-identity.d.ts.map +1 -0
- package/dist/lib/crypto/libp2p-identity.js +80 -0
- package/dist/lib/crypto/libp2p-identity.js.map +1 -0
- package/dist/lib/crypto/mnemonic.d.ts +28 -0
- package/dist/lib/crypto/mnemonic.d.ts.map +1 -0
- package/dist/lib/crypto/mnemonic.js +97 -0
- package/dist/lib/crypto/mnemonic.js.map +1 -0
- package/dist/lib/crypto/platform.d.ts +10 -0
- package/dist/lib/crypto/platform.d.ts.map +1 -0
- package/dist/lib/crypto/platform.js +38 -0
- package/dist/lib/crypto/platform.js.map +1 -0
- package/dist/lib/crypto/scalars.d.ts +33 -0
- package/dist/lib/crypto/scalars.d.ts.map +1 -0
- package/dist/lib/crypto/scalars.js +81 -0
- package/dist/lib/crypto/scalars.js.map +1 -0
- package/dist/lib/crypto/types.d.ts +24 -0
- package/dist/lib/crypto/types.d.ts.map +1 -0
- package/dist/lib/crypto/types.js +2 -0
- package/dist/lib/crypto/types.js.map +1 -0
- package/dist/lib/crypto/wasm.d.ts +51 -0
- package/dist/lib/crypto/wasm.d.ts.map +1 -0
- package/dist/lib/crypto/wasm.js +192 -0
- package/dist/lib/crypto/wasm.js.map +1 -0
- package/dist/lib/default-config.d.ts +140 -0
- package/dist/lib/default-config.d.ts.map +1 -0
- package/dist/lib/default-config.js +239 -0
- package/dist/lib/default-config.js.map +1 -0
- package/dist/lib/delay.d.ts +6 -0
- package/dist/lib/delay.d.ts.map +1 -0
- package/dist/lib/delay.js +20 -0
- package/dist/lib/delay.js.map +1 -0
- package/dist/lib/errors.d.ts +90 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +129 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/format.d.ts +7 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +43 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/keystore.d.ts +85 -0
- package/dist/lib/keystore.d.ts.map +1 -0
- package/dist/lib/keystore.js +105 -0
- package/dist/lib/keystore.js.map +1 -0
- package/dist/lib/monero/output-scanner.d.ts +53 -0
- package/dist/lib/monero/output-scanner.d.ts.map +1 -0
- package/dist/lib/monero/output-scanner.js +180 -0
- package/dist/lib/monero/output-scanner.js.map +1 -0
- package/dist/lib/monero/rpc.d.ts +131 -0
- package/dist/lib/monero/rpc.d.ts.map +1 -0
- package/dist/lib/monero/rpc.js +267 -0
- package/dist/lib/monero/rpc.js.map +1 -0
- package/dist/lib/monero/verify-lock.d.ts +50 -0
- package/dist/lib/monero/verify-lock.d.ts.map +1 -0
- package/dist/lib/monero/verify-lock.js +161 -0
- package/dist/lib/monero/verify-lock.js.map +1 -0
- package/dist/lib/monero/verify-sweep.d.ts +59 -0
- package/dist/lib/monero/verify-sweep.d.ts.map +1 -0
- package/dist/lib/monero/verify-sweep.js +82 -0
- package/dist/lib/monero/verify-sweep.js.map +1 -0
- package/dist/lib/monero/wasm.d.ts +19 -0
- package/dist/lib/monero/wasm.d.ts.map +1 -0
- package/dist/lib/monero/wasm.js +24 -0
- package/dist/lib/monero/wasm.js.map +1 -0
- package/dist/lib/pow-solver.d.ts +4 -0
- package/dist/lib/pow-solver.d.ts.map +1 -0
- package/dist/lib/pow-solver.js +37 -0
- package/dist/lib/pow-solver.js.map +1 -0
- package/dist/lib/retry.d.ts +86 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +104 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/portable.d.ts +23 -0
- package/dist/portable.d.ts.map +1 -0
- package/dist/portable.js +13 -0
- package/dist/portable.js.map +1 -0
- package/dist/quote-binding.d.ts +31 -0
- package/dist/quote-binding.d.ts.map +1 -0
- package/dist/quote-binding.js +40 -0
- package/dist/quote-binding.js.map +1 -0
- package/dist/swap-executor.d.ts +51 -0
- package/dist/swap-executor.d.ts.map +1 -0
- package/dist/swap-executor.js +138 -0
- package/dist/swap-executor.js.map +1 -0
- package/dist/types/api.d.ts +34 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +18 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/errors.d.ts +94 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +93 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/keys.d.ts +33 -0
- package/dist/types/keys.d.ts.map +1 -0
- package/dist/types/keys.js +2 -0
- package/dist/types/keys.js.map +1 -0
- package/dist/types/protocol.d.ts +93 -0
- package/dist/types/protocol.d.ts.map +1 -0
- package/dist/types/protocol.js +18 -0
- package/dist/types/protocol.js.map +1 -0
- package/dist/types/status.d.ts +3 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +23 -0
- package/dist/types/status.js.map +1 -0
- package/dist/types/verification.d.ts +49 -0
- package/dist/types/verification.d.ts.map +1 -0
- package/dist/types/verification.js +34 -0
- package/dist/types/verification.js.map +1 -0
- package/dist/verification/atomic-swap.d.ts +9 -0
- package/dist/verification/atomic-swap.d.ts.map +1 -0
- package/dist/verification/atomic-swap.js +22 -0
- package/dist/verification/atomic-swap.js.map +1 -0
- package/dist/verification/chainflip-networks.d.ts +46 -0
- package/dist/verification/chainflip-networks.d.ts.map +1 -0
- package/dist/verification/chainflip-networks.js +24 -0
- package/dist/verification/chainflip-networks.js.map +1 -0
- package/dist/verification/chainflip.d.ts +61 -0
- package/dist/verification/chainflip.d.ts.map +1 -0
- package/dist/verification/chainflip.js +377 -0
- package/dist/verification/chainflip.js.map +1 -0
- package/dist/verification/constants.d.ts +52 -0
- package/dist/verification/constants.d.ts.map +1 -0
- package/dist/verification/constants.js +54 -0
- package/dist/verification/constants.js.map +1 -0
- package/dist/verification/index.d.ts +71 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +91 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/memo.d.ts +27 -0
- package/dist/verification/memo.d.ts.map +1 -0
- package/dist/verification/memo.js +52 -0
- package/dist/verification/memo.js.map +1 -0
- package/dist/verification/near-intents.d.ts +91 -0
- package/dist/verification/near-intents.d.ts.map +1 -0
- package/dist/verification/near-intents.js +213 -0
- package/dist/verification/near-intents.js.map +1 -0
- package/dist/verification/rate-oracle.d.ts +32 -0
- package/dist/verification/rate-oracle.d.ts.map +1 -0
- package/dist/verification/rate-oracle.js +43 -0
- package/dist/verification/rate-oracle.js.map +1 -0
- package/dist/verification/shared.d.ts +20 -0
- package/dist/verification/shared.d.ts.map +1 -0
- package/dist/verification/shared.js +25 -0
- package/dist/verification/shared.js.map +1 -0
- package/dist/verification/thorchain-networks.d.ts +35 -0
- package/dist/verification/thorchain-networks.d.ts.map +1 -0
- package/dist/verification/thorchain-networks.js +35 -0
- package/dist/verification/thorchain-networks.js.map +1 -0
- package/dist/verification/thorchain.d.ts +55 -0
- package/dist/verification/thorchain.d.ts.map +1 -0
- package/dist/verification/thorchain.js +232 -0
- package/dist/verification/thorchain.js.map +1 -0
- package/dist/wasm-pins.d.ts +4 -0
- package/dist/wasm-pins.d.ts.map +1 -0
- package/dist/wasm-pins.js +6 -0
- package/dist/wasm-pins.js.map +1 -0
- package/dist/wire/chainflip.zod.d.ts +144 -0
- package/dist/wire/chainflip.zod.d.ts.map +1 -0
- package/dist/wire/chainflip.zod.js +33 -0
- package/dist/wire/chainflip.zod.js.map +1 -0
- package/dist/wire/near-intents.zod.d.ts +376 -0
- package/dist/wire/near-intents.zod.d.ts.map +1 -0
- package/dist/wire/near-intents.zod.js +101 -0
- package/dist/wire/near-intents.zod.js.map +1 -0
- package/dist/wire/server/action.zod.d.ts +1119 -0
- package/dist/wire/server/action.zod.d.ts.map +1 -0
- package/dist/wire/server/action.zod.js +173 -0
- package/dist/wire/server/action.zod.js.map +1 -0
- package/dist/wire/server/common.zod.d.ts +62 -0
- package/dist/wire/server/common.zod.d.ts.map +1 -0
- package/dist/wire/server/common.zod.js +43 -0
- package/dist/wire/server/common.zod.js.map +1 -0
- package/dist/wire/server/index.d.ts +8 -0
- package/dist/wire/server/index.d.ts.map +1 -0
- package/dist/wire/server/index.js +8 -0
- package/dist/wire/server/index.js.map +1 -0
- package/dist/wire/server/pow.zod.d.ts +45 -0
- package/dist/wire/server/pow.zod.d.ts.map +1 -0
- package/dist/wire/server/pow.zod.js +18 -0
- package/dist/wire/server/pow.zod.js.map +1 -0
- package/dist/wire/server/quotes.zod.d.ts +694 -0
- package/dist/wire/server/quotes.zod.d.ts.map +1 -0
- package/dist/wire/server/quotes.zod.js +103 -0
- package/dist/wire/server/quotes.zod.js.map +1 -0
- package/dist/wire/server/swap.zod.d.ts +1981 -0
- package/dist/wire/server/swap.zod.d.ts.map +1 -0
- package/dist/wire/server/swap.zod.js +270 -0
- package/dist/wire/server/swap.zod.js.map +1 -0
- package/dist/wire/server/tokens.zod.d.ts +93 -0
- package/dist/wire/server/tokens.zod.d.ts.map +1 -0
- package/dist/wire/server/tokens.zod.js +28 -0
- package/dist/wire/server/tokens.zod.js.map +1 -0
- package/dist/wire/server/verify.zod.d.ts +30 -0
- package/dist/wire/server/verify.zod.d.ts.map +1 -0
- package/dist/wire/server/verify.zod.js +12 -0
- package/dist/wire/server/verify.zod.js.map +1 -0
- package/dist/wire/thorchain.zod.d.ts +224 -0
- package/dist/wire/thorchain.zod.d.ts.map +1 -0
- package/dist/wire/thorchain.zod.js +51 -0
- package/dist/wire/thorchain.zod.js.map +1 -0
- package/package.json +128 -0
- package/wasm/miradex-rust/README.md +74 -0
- package/wasm/miradex-rust/miradex_rust.d.ts +149 -0
- package/wasm/miradex-rust/miradex_rust.js +943 -0
- package/wasm/miradex-rust/miradex_rust_bg.wasm +0 -0
- package/wasm/miradex-rust/miradex_rust_bg.wasm.d.ts +31 -0
- package/wasm/miradex-rust/package.json +24 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod-enforced FlowContext schemas.
|
|
3
|
+
*
|
|
4
|
+
* Three strictness levels:
|
|
5
|
+
* FlowContext — base, nullable fields (early phases: keygen, creating-swap)
|
|
6
|
+
* PopulatedFlowContext — snapshot-critical fields non-empty (awaiting-deposit, deposit-detected)
|
|
7
|
+
* VerifiedFlowContext — populated + verification non-null (signing, funding, confirming, swapping)
|
|
8
|
+
*
|
|
9
|
+
* Types are inferred from schemas — one source of truth, zero drift.
|
|
10
|
+
* Validation uses safeParse — never throws, returns structured errors.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
const VerificationCheckSchema = z.object({
|
|
14
|
+
name: z.string(),
|
|
15
|
+
passed: z.boolean(),
|
|
16
|
+
detail: z.string(),
|
|
17
|
+
});
|
|
18
|
+
const VerificationResultSchema = z.object({
|
|
19
|
+
verified: z.boolean(),
|
|
20
|
+
provider: z.string(),
|
|
21
|
+
checks: z.array(VerificationCheckSchema).readonly(),
|
|
22
|
+
timestamp: z.number(),
|
|
23
|
+
});
|
|
24
|
+
const EXTRA_TYPES = ['prompt', 'message', 'warning', 'error'];
|
|
25
|
+
const FlowContextExtraSchema = z.object({
|
|
26
|
+
text: z.string().min(1, 'extra.text must not be empty'),
|
|
27
|
+
type: z.enum(EXTRA_TYPES),
|
|
28
|
+
});
|
|
29
|
+
// Used by early phases where data may not be available yet.
|
|
30
|
+
// Every field is nullable — the engine builds it up progressively.
|
|
31
|
+
const FlowContextBaseSchema = z.object({
|
|
32
|
+
// Addresses
|
|
33
|
+
depositAddr: z.string().nullable(),
|
|
34
|
+
destAddress: z.string().nullable(),
|
|
35
|
+
refundAddress: z.string().nullable(),
|
|
36
|
+
keystoreId: z.string().nullable(),
|
|
37
|
+
// Amounts
|
|
38
|
+
depositAmount: z.string().nullable(),
|
|
39
|
+
fromToken: z.string().nullable(),
|
|
40
|
+
toToken: z.string().nullable(),
|
|
41
|
+
expectedOut: z.string().nullable(),
|
|
42
|
+
amountInUsd: z.string().nullable(),
|
|
43
|
+
expectedOutUsd: z.string().nullable(),
|
|
44
|
+
// Display
|
|
45
|
+
qr: z.string().nullable(),
|
|
46
|
+
verification: VerificationResultSchema.nullable(),
|
|
47
|
+
verificationSourceUrl: z.string().nullable(),
|
|
48
|
+
expiresAt: z.string().nullable(),
|
|
49
|
+
depositMemo: z.string().nullable(),
|
|
50
|
+
// Identity
|
|
51
|
+
provider: z.string().nullable(),
|
|
52
|
+
swapId: z.string().nullable(),
|
|
53
|
+
swapNumber: z.string().nullable(),
|
|
54
|
+
// Contextual
|
|
55
|
+
extra: FlowContextExtraSchema.nullable(),
|
|
56
|
+
});
|
|
57
|
+
// Used by deposit-ready phases. Critical snapshot fields MUST be
|
|
58
|
+
// non-empty strings — Zod rejects "" and null at runtime.
|
|
59
|
+
const PopulatedFlowContextSchema = FlowContextBaseSchema.extend({
|
|
60
|
+
depositAddr: z.string().min(1, 'depositAddr is required for this phase'),
|
|
61
|
+
destAddress: z.string().min(1, 'destAddress is required for this phase'),
|
|
62
|
+
fromToken: z.string().min(1, 'fromToken is required for this phase'),
|
|
63
|
+
toToken: z.string().min(1, 'toToken is required for this phase'),
|
|
64
|
+
qr: z.string().min(1, 'qr is required for this phase'),
|
|
65
|
+
provider: z.string().min(1, 'provider is required for this phase'),
|
|
66
|
+
// `expectedOut` stays nullable here on purpose. It's display-only —
|
|
67
|
+
// populated from a /quotes round-trip that can legitimately fail
|
|
68
|
+
// (transient API hiccup, no maker available for the amount, atomicswap
|
|
69
|
+
// provider not in the quote set). The deposit, swap, and refund paths
|
|
70
|
+
// do not depend on knowing the exact expected output, so blocking
|
|
71
|
+
// `deposit-detected` on it would force the SDK to fail a swap that's
|
|
72
|
+
// otherwise progressing fine. UIs already handle null with a "—".
|
|
73
|
+
expectedOut: z.string().nullable(),
|
|
74
|
+
});
|
|
75
|
+
// Used by post-verification phases. Everything populated + verification
|
|
76
|
+
// MUST be a valid VerificationResult (non-null).
|
|
77
|
+
const VerifiedFlowContextSchema = PopulatedFlowContextSchema.extend({
|
|
78
|
+
verification: VerificationResultSchema,
|
|
79
|
+
});
|
|
80
|
+
// Re-export schemas for consumers that need them (tests, browser adapter)
|
|
81
|
+
export { FlowContextBaseSchema, PopulatedFlowContextSchema, VerifiedFlowContextSchema, FlowContextExtraSchema, VerificationResultSchema, VerificationCheckSchema, };
|
|
82
|
+
// Use safeParse — never throw. Return structured error listing every
|
|
83
|
+
// missing/invalid field. The engine calls these before emitting phases.
|
|
84
|
+
function buildValidationError(phase, zodError) {
|
|
85
|
+
const fields = zodError.issues.map((issue) => issue.path.join('.'));
|
|
86
|
+
const details = zodError.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`);
|
|
87
|
+
return {
|
|
88
|
+
phase,
|
|
89
|
+
fields,
|
|
90
|
+
message: `FlowContext validation failed for phase '${phase}': ${details.join('; ')}`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function validateBase(ctx, phase) {
|
|
94
|
+
const result = FlowContextBaseSchema.safeParse(ctx);
|
|
95
|
+
if (result.success)
|
|
96
|
+
return { ok: true, data: result.data };
|
|
97
|
+
return { ok: false, error: buildValidationError(phase, result.error) };
|
|
98
|
+
}
|
|
99
|
+
export function validatePopulated(ctx, phase) {
|
|
100
|
+
const result = PopulatedFlowContextSchema.safeParse(ctx);
|
|
101
|
+
if (result.success)
|
|
102
|
+
return { ok: true, data: result.data };
|
|
103
|
+
return { ok: false, error: buildValidationError(phase, result.error) };
|
|
104
|
+
}
|
|
105
|
+
export function validateVerified(ctx, phase) {
|
|
106
|
+
const result = VerifiedFlowContextSchema.safeParse(ctx);
|
|
107
|
+
if (result.success)
|
|
108
|
+
return { ok: true, data: result.data };
|
|
109
|
+
return { ok: false, error: buildValidationError(phase, result.error) };
|
|
110
|
+
}
|
|
111
|
+
const EMPTY_FLOW_CONTEXT = {
|
|
112
|
+
depositAddr: null,
|
|
113
|
+
destAddress: null,
|
|
114
|
+
refundAddress: null,
|
|
115
|
+
keystoreId: null,
|
|
116
|
+
depositAmount: null,
|
|
117
|
+
fromToken: null,
|
|
118
|
+
toToken: null,
|
|
119
|
+
expectedOut: null,
|
|
120
|
+
amountInUsd: null,
|
|
121
|
+
expectedOutUsd: null,
|
|
122
|
+
qr: null,
|
|
123
|
+
verification: null,
|
|
124
|
+
verificationSourceUrl: null,
|
|
125
|
+
expiresAt: null,
|
|
126
|
+
depositMemo: null,
|
|
127
|
+
provider: null,
|
|
128
|
+
swapId: null,
|
|
129
|
+
swapNumber: null,
|
|
130
|
+
extra: null,
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Create a new FlowContext with defaults, overriding with provided values.
|
|
134
|
+
* Null values in partial are applied (they mean "not yet known").
|
|
135
|
+
*/
|
|
136
|
+
export function createFlowContext(partial) {
|
|
137
|
+
return { ...EMPTY_FLOW_CONTEXT, ...partial };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Merge an update into an existing FlowContext.
|
|
141
|
+
* Only non-undefined keys in partial overwrite. Null IS a valid value
|
|
142
|
+
* (it means "reset to unknown").
|
|
143
|
+
*/
|
|
144
|
+
export function mergeFlowContext(current, partial) {
|
|
145
|
+
return { ...current, ...partial };
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=flow-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-context.js","sourceRoot":"","sources":["../../src/engine/flow-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { RequiredAction } from '../../types/index.js';
|
|
2
|
+
import type { FlowContext, PopulatedFlowContext, VerifiedFlowContext } from '../flow-context.js';
|
|
3
|
+
export interface AtomicIdlePhase {
|
|
4
|
+
readonly phase: 'idle';
|
|
5
|
+
readonly snapshot: null;
|
|
6
|
+
}
|
|
7
|
+
export interface AtomicKeygenPhase {
|
|
8
|
+
readonly phase: 'keygen';
|
|
9
|
+
readonly snapshot: FlowContext | null;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
}
|
|
12
|
+
export interface AtomicKeystoreSavedPhase {
|
|
13
|
+
readonly phase: 'keystore-saved';
|
|
14
|
+
readonly snapshot: FlowContext;
|
|
15
|
+
readonly message: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AtomicAwaitingDepositPhase {
|
|
18
|
+
readonly phase: 'awaiting-deposit';
|
|
19
|
+
readonly snapshot: PopulatedFlowContext;
|
|
20
|
+
readonly message: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AtomicDepositDetectedPhase {
|
|
23
|
+
readonly phase: 'deposit-detected';
|
|
24
|
+
readonly snapshot: PopulatedFlowContext;
|
|
25
|
+
readonly deposit: {
|
|
26
|
+
readonly txid: string;
|
|
27
|
+
readonly vout: number;
|
|
28
|
+
readonly value: number;
|
|
29
|
+
readonly utxos?: readonly {
|
|
30
|
+
readonly txid: string;
|
|
31
|
+
readonly vout: number;
|
|
32
|
+
readonly value: number;
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
35
|
+
readonly message: string;
|
|
36
|
+
}
|
|
37
|
+
export interface AtomicCreatingSwapPhase {
|
|
38
|
+
readonly phase: 'creating-swap';
|
|
39
|
+
readonly snapshot: FlowContext;
|
|
40
|
+
readonly message: string;
|
|
41
|
+
}
|
|
42
|
+
export interface AtomicVerifyingPhase {
|
|
43
|
+
readonly phase: 'verifying';
|
|
44
|
+
readonly snapshot: FlowContext;
|
|
45
|
+
readonly message: string;
|
|
46
|
+
}
|
|
47
|
+
export interface AtomicSigningPhase {
|
|
48
|
+
readonly phase: 'signing';
|
|
49
|
+
readonly snapshot: VerifiedFlowContext;
|
|
50
|
+
readonly message: string;
|
|
51
|
+
}
|
|
52
|
+
export interface AtomicFundingPhase {
|
|
53
|
+
readonly phase: 'funding';
|
|
54
|
+
readonly snapshot: VerifiedFlowContext;
|
|
55
|
+
readonly message: string;
|
|
56
|
+
}
|
|
57
|
+
export interface AtomicComputingEncsigPhase {
|
|
58
|
+
readonly phase: 'computing-encsig';
|
|
59
|
+
readonly snapshot: VerifiedFlowContext;
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}
|
|
62
|
+
export interface AtomicConfirmingPhase {
|
|
63
|
+
readonly phase: 'confirming';
|
|
64
|
+
readonly snapshot: VerifiedFlowContext;
|
|
65
|
+
readonly message: string;
|
|
66
|
+
}
|
|
67
|
+
export interface AtomicSwappingPhase {
|
|
68
|
+
readonly phase: 'swapping';
|
|
69
|
+
readonly snapshot: VerifiedFlowContext;
|
|
70
|
+
readonly message: string;
|
|
71
|
+
}
|
|
72
|
+
export interface AtomicSweepingPhase {
|
|
73
|
+
readonly phase: 'sweeping';
|
|
74
|
+
readonly snapshot: VerifiedFlowContext;
|
|
75
|
+
readonly message: string;
|
|
76
|
+
readonly sweepStep: 'get-outputs' | 'key-images' | 'submitting' | 'broadcasting';
|
|
77
|
+
}
|
|
78
|
+
export interface AtomicAwaitingUserActionPhase {
|
|
79
|
+
readonly phase: 'awaiting-user-action';
|
|
80
|
+
readonly snapshot: VerifiedFlowContext;
|
|
81
|
+
readonly requiredAction: RequiredAction;
|
|
82
|
+
readonly error: string | null;
|
|
83
|
+
}
|
|
84
|
+
export interface AtomicVerifyingCancelPhase {
|
|
85
|
+
readonly phase: 'verifying-cancel';
|
|
86
|
+
readonly snapshot: FlowContext;
|
|
87
|
+
readonly message: string;
|
|
88
|
+
}
|
|
89
|
+
export interface AtomicCancellingPhase {
|
|
90
|
+
readonly phase: 'cancelling';
|
|
91
|
+
readonly snapshot: FlowContext;
|
|
92
|
+
readonly message: string;
|
|
93
|
+
}
|
|
94
|
+
export interface AtomicRefundingPhase {
|
|
95
|
+
readonly phase: 'refunding';
|
|
96
|
+
readonly snapshot: FlowContext;
|
|
97
|
+
readonly message: string;
|
|
98
|
+
}
|
|
99
|
+
export interface AtomicCompletedPhase {
|
|
100
|
+
readonly phase: 'completed';
|
|
101
|
+
readonly snapshot: FlowContext;
|
|
102
|
+
readonly outputTxHash: string | null;
|
|
103
|
+
readonly actualOut: string;
|
|
104
|
+
readonly durationSec: number | null;
|
|
105
|
+
}
|
|
106
|
+
export interface AtomicRefundedPhase {
|
|
107
|
+
readonly phase: 'refunded';
|
|
108
|
+
readonly snapshot: FlowContext | null;
|
|
109
|
+
readonly swapId: string;
|
|
110
|
+
readonly refundTxid: string | null;
|
|
111
|
+
}
|
|
112
|
+
export interface AtomicCancelledPhase {
|
|
113
|
+
readonly phase: 'cancelled';
|
|
114
|
+
readonly snapshot: FlowContext | null;
|
|
115
|
+
readonly swapId: string | null;
|
|
116
|
+
readonly txCancelTxid: string | null;
|
|
117
|
+
}
|
|
118
|
+
export interface AtomicFailedPhase {
|
|
119
|
+
readonly phase: 'failed';
|
|
120
|
+
readonly snapshot: FlowContext | null;
|
|
121
|
+
readonly error: string;
|
|
122
|
+
}
|
|
123
|
+
export type AtomicFlowState = AtomicIdlePhase | AtomicKeygenPhase | AtomicKeystoreSavedPhase | AtomicAwaitingDepositPhase | AtomicDepositDetectedPhase | AtomicCreatingSwapPhase | AtomicVerifyingPhase | AtomicSigningPhase | AtomicFundingPhase | AtomicComputingEncsigPhase | AtomicConfirmingPhase | AtomicSwappingPhase | AtomicSweepingPhase | AtomicAwaitingUserActionPhase | AtomicVerifyingCancelPhase | AtomicCancellingPhase | AtomicRefundingPhase | AtomicCompletedPhase | AtomicRefundedPhase | AtomicCancelledPhase | AtomicFailedPhase;
|
|
124
|
+
//# sourceMappingURL=atomic-flow-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-flow-state.d.ts","sourceRoot":"","sources":["../../../src/engine/flows/atomic-flow-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-flow-state.js","sourceRoot":"","sources":["../../../src/engine/flows/atomic-flow-state.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ApiClient } from '../../api/index.js';
|
|
2
|
+
import type { PlatformAdapter } from '../platform.js';
|
|
3
|
+
import type { ResolvedEngineConfig } from '../miradex-engine.js';
|
|
4
|
+
import type { AtomicFlowState } from './atomic-flow-state.js';
|
|
5
|
+
export interface AtomicFlowOptions {
|
|
6
|
+
readonly pollMs?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class AtomicFlow {
|
|
9
|
+
private readonly api;
|
|
10
|
+
private readonly platform;
|
|
11
|
+
private readonly config;
|
|
12
|
+
private readonly emitFn;
|
|
13
|
+
private abortController;
|
|
14
|
+
private userActionResolver;
|
|
15
|
+
private keystore;
|
|
16
|
+
private deposit;
|
|
17
|
+
private keystoreId;
|
|
18
|
+
private lastEmittedState;
|
|
19
|
+
private flowCtx;
|
|
20
|
+
private lastProgressKey;
|
|
21
|
+
private readonly pollMs;
|
|
22
|
+
/**
|
|
23
|
+
* True once the driver has emitted a terminal phase (`completed`,
|
|
24
|
+
* `failed`, `refunded`, etc.). Used to suppress the post-driver
|
|
25
|
+
* `requiredAction` re-check that would otherwise trigger a phantom
|
|
26
|
+
* second sweep — the server has no scanner for the on-chain XMR sweep,
|
|
27
|
+
* so a fresh `getSwapDetail` right after the driver completes still
|
|
28
|
+
* reports `requiredAction.type === 'sweep'`.
|
|
29
|
+
*/
|
|
30
|
+
private hasReachedTerminal;
|
|
31
|
+
/**
|
|
32
|
+
* Optional maker pin forwarded to `coreResumeAtomicSwap` via
|
|
33
|
+
* `params.variantId`. Set by `start()` from `StartAtomicSwapParams`;
|
|
34
|
+
* unused (and irrelevant) on the resume path because the maker is
|
|
35
|
+
* already chosen at that point.
|
|
36
|
+
*/
|
|
37
|
+
private variantId;
|
|
38
|
+
constructor(api: ApiClient, platform: PlatformAdapter, config: ResolvedEngineConfig, emitFn: (state: AtomicFlowState) => void, options?: AtomicFlowOptions);
|
|
39
|
+
private get signal();
|
|
40
|
+
private get logger();
|
|
41
|
+
private setFlowContext;
|
|
42
|
+
/**
|
|
43
|
+
* Validate FlowContext as PopulatedFlowContext.
|
|
44
|
+
* On failure, emits a 'failed' phase with structured error and returns null.
|
|
45
|
+
*/
|
|
46
|
+
private requirePopulated;
|
|
47
|
+
/**
|
|
48
|
+
* Validate FlowContext as VerifiedFlowContext.
|
|
49
|
+
* On failure, emits a 'failed' phase with structured error and returns null.
|
|
50
|
+
*/
|
|
51
|
+
private requireVerified;
|
|
52
|
+
private emitError;
|
|
53
|
+
private transition;
|
|
54
|
+
cancel(): void;
|
|
55
|
+
start(params: {
|
|
56
|
+
readonly amount: string;
|
|
57
|
+
readonly destAddress: string;
|
|
58
|
+
readonly refundAddress: string;
|
|
59
|
+
readonly variantId?: string;
|
|
60
|
+
readonly existingKeystoreId?: string;
|
|
61
|
+
}): Promise<void>;
|
|
62
|
+
resumeFromKeystore(keystoreId: string, existingSwapId?: string): Promise<void>;
|
|
63
|
+
private fetchDetailWithRetry;
|
|
64
|
+
private driveSwapToCompletion;
|
|
65
|
+
private mapCoreProgress;
|
|
66
|
+
userCancel(): Promise<void>;
|
|
67
|
+
userRefund(): Promise<void>;
|
|
68
|
+
userRetrySweep(): Promise<void>;
|
|
69
|
+
private executeSweep;
|
|
70
|
+
private executeRefund;
|
|
71
|
+
private resolveLockAddress;
|
|
72
|
+
/**
|
|
73
|
+
* Read protocol params from the server response; fall back to the platform
|
|
74
|
+
* adapter's optional write-through cache when the server didn't return the
|
|
75
|
+
* refund encsig. On success from the server, populate the cache so later
|
|
76
|
+
* refunds survive a briefly-unreachable backend.
|
|
77
|
+
*/
|
|
78
|
+
private resolveProtocolParams;
|
|
79
|
+
private cacheProtocolParams;
|
|
80
|
+
private emitRefundAborted;
|
|
81
|
+
private pollUntilTerminal;
|
|
82
|
+
private emitTerminal;
|
|
83
|
+
private resumeActionLoop;
|
|
84
|
+
private checkAborted;
|
|
85
|
+
private handleError;
|
|
86
|
+
private getCurrentAwaitingActionState;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=atomic-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-flow.d.ts","sourceRoot":"","sources":["../../../src/engine/flows/atomic-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,wBAAwB,CAAC;AA2EnF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,UAAU;IA6BnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA/BzB,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAqB;gBAGnB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,EACzD,OAAO,CAAC,EAAE,iBAAiB;IAK7B,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,cAAc;IAMtB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IAWlB,MAAM,IAAI,IAAI;IAMR,KAAK,CAAC,MAAM,EAAE;QAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;KACtC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgLX,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA6NtE,oBAAoB;YAyBpB,qBAAqB;IA2EnC,OAAO,CAAC,eAAe;IAiLjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAOvB,YAAY;YA6EZ,aAAa;IA8M3B,OAAO,CAAC,kBAAkB;IAU1B;;;;;OAKG;YACW,qBAAqB;YAiCrB,mBAAmB;IAiBjC,OAAO,CAAC,iBAAiB;YAUX,iBAAiB;IA0C/B,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,6BAA6B;CAItC"}
|