@terkoizmy/intent-sdk 1.0.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 +258 -0
- package/dist/config/chains.d.ts +25 -0
- package/dist/config/chains.d.ts.map +1 -0
- package/dist/config/chains.js +85 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/config/default.d.ts +39 -0
- package/dist/config/default.d.ts.map +1 -0
- package/dist/config/default.js +46 -0
- package/dist/config/default.js.map +1 -0
- package/dist/config/testnets.d.ts +31 -0
- package/dist/config/testnets.d.ts.map +1 -0
- package/dist/config/testnets.js +99 -0
- package/dist/config/testnets.js.map +1 -0
- package/dist/errors/inventory-errors.d.ts +31 -0
- package/dist/errors/inventory-errors.d.ts.map +1 -0
- package/dist/errors/inventory-errors.js +45 -0
- package/dist/errors/inventory-errors.js.map +1 -0
- package/dist/errors/settlement-errors.d.ts +27 -0
- package/dist/errors/settlement-errors.d.ts.map +1 -0
- package/dist/errors/settlement-errors.js +39 -0
- package/dist/errors/settlement-errors.js.map +1 -0
- package/dist/errors/solver-errors.d.ts +45 -0
- package/dist/errors/solver-errors.d.ts.map +1 -0
- package/dist/errors/solver-errors.js +66 -0
- package/dist/errors/solver-errors.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/classifiers/intent-classifier.d.ts +40 -0
- package/dist/parser/classifiers/intent-classifier.d.ts.map +1 -0
- package/dist/parser/classifiers/intent-classifier.js +72 -0
- package/dist/parser/classifiers/intent-classifier.js.map +1 -0
- package/dist/parser/extractors/action.d.ts +32 -0
- package/dist/parser/extractors/action.d.ts.map +1 -0
- package/dist/parser/extractors/action.js +72 -0
- package/dist/parser/extractors/action.js.map +1 -0
- package/dist/parser/extractors/amount.d.ts +39 -0
- package/dist/parser/extractors/amount.d.ts.map +1 -0
- package/dist/parser/extractors/amount.js +113 -0
- package/dist/parser/extractors/amount.js.map +1 -0
- package/dist/parser/extractors/constraints.d.ts +37 -0
- package/dist/parser/extractors/constraints.d.ts.map +1 -0
- package/dist/parser/extractors/constraints.js +119 -0
- package/dist/parser/extractors/constraints.js.map +1 -0
- package/dist/parser/extractors/index.d.ts +5 -0
- package/dist/parser/extractors/index.d.ts.map +1 -0
- package/dist/parser/extractors/index.js +5 -0
- package/dist/parser/extractors/index.js.map +1 -0
- package/dist/parser/extractors/token.d.ts +24 -0
- package/dist/parser/extractors/token.d.ts.map +1 -0
- package/dist/parser/extractors/token.js +124 -0
- package/dist/parser/extractors/token.js.map +1 -0
- package/dist/parser/index.d.ts +125 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +293 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/template/bridge.d.ts +37 -0
- package/dist/parser/template/bridge.d.ts.map +1 -0
- package/dist/parser/template/bridge.js +80 -0
- package/dist/parser/template/bridge.js.map +1 -0
- package/dist/parser/template/claim.d.ts +15 -0
- package/dist/parser/template/claim.d.ts.map +1 -0
- package/dist/parser/template/claim.js +36 -0
- package/dist/parser/template/claim.js.map +1 -0
- package/dist/parser/template/index.d.ts +28 -0
- package/dist/parser/template/index.d.ts.map +1 -0
- package/dist/parser/template/index.js +50 -0
- package/dist/parser/template/index.js.map +1 -0
- package/dist/parser/template/nft.d.ts +3 -0
- package/dist/parser/template/nft.d.ts.map +1 -0
- package/dist/parser/template/nft.js +19 -0
- package/dist/parser/template/nft.js.map +1 -0
- package/dist/parser/template/send.d.ts +24 -0
- package/dist/parser/template/send.d.ts.map +1 -0
- package/dist/parser/template/send.js +61 -0
- package/dist/parser/template/send.js.map +1 -0
- package/dist/parser/template/swap.d.ts +3 -0
- package/dist/parser/template/swap.d.ts.map +1 -0
- package/dist/parser/template/swap.js +21 -0
- package/dist/parser/template/swap.js.map +1 -0
- package/dist/parser/template/unknown.d.ts +3 -0
- package/dist/parser/template/unknown.d.ts.map +1 -0
- package/dist/parser/template/unknown.js +11 -0
- package/dist/parser/template/unknown.js.map +1 -0
- package/dist/parser/template/yield.d.ts +3 -0
- package/dist/parser/template/yield.d.ts.map +1 -0
- package/dist/parser/template/yield.js +25 -0
- package/dist/parser/template/yield.js.map +1 -0
- package/dist/parser/utils/normalize.d.ts +41 -0
- package/dist/parser/utils/normalize.d.ts.map +1 -0
- package/dist/parser/utils/normalize.js +71 -0
- package/dist/parser/utils/normalize.js.map +1 -0
- package/dist/parser/utils/parser-helpers.d.ts +20 -0
- package/dist/parser/utils/parser-helpers.d.ts.map +1 -0
- package/dist/parser/utils/parser-helpers.js +282 -0
- package/dist/parser/utils/parser-helpers.js.map +1 -0
- package/dist/parser/validators/schema.d.ts +14 -0
- package/dist/parser/validators/schema.d.ts.map +1 -0
- package/dist/parser/validators/schema.js +81 -0
- package/dist/parser/validators/schema.js.map +1 -0
- package/dist/sdk-factory.d.ts +55 -0
- package/dist/sdk-factory.d.ts.map +1 -0
- package/dist/sdk-factory.js +49 -0
- package/dist/sdk-factory.js.map +1 -0
- package/dist/services/token-resolver.d.ts +142 -0
- package/dist/services/token-resolver.d.ts.map +1 -0
- package/dist/services/token-resolver.js +254 -0
- package/dist/services/token-resolver.js.map +1 -0
- package/dist/shared/chain-registry/chain-names.d.ts +22 -0
- package/dist/shared/chain-registry/chain-names.d.ts.map +1 -0
- package/dist/shared/chain-registry/chain-names.js +49 -0
- package/dist/shared/chain-registry/chain-names.js.map +1 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/arbitrum-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/base-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/base-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/base-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/base-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/ethereum.d.ts +7 -0
- package/dist/shared/chain-registry/configs/ethereum.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/ethereum.js +7 -0
- package/dist/shared/chain-registry/configs/ethereum.js.map +1 -0
- package/dist/shared/chain-registry/configs/polygon.d.ts +7 -0
- package/dist/shared/chain-registry/configs/polygon.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/polygon.js +7 -0
- package/dist/shared/chain-registry/configs/polygon.js.map +1 -0
- package/dist/shared/chain-registry/configs/sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/sepolia.js.map +1 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts +9 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.d.ts.map +1 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.js +9 -0
- package/dist/shared/chain-registry/configs/unichain-sepolia.js.map +1 -0
- package/dist/shared/chain-registry/registry.d.ts +50 -0
- package/dist/shared/chain-registry/registry.d.ts.map +1 -0
- package/dist/shared/chain-registry/registry.js +72 -0
- package/dist/shared/chain-registry/registry.js.map +1 -0
- package/dist/shared/rpc/provider-manager.d.ts +111 -0
- package/dist/shared/rpc/provider-manager.d.ts.map +1 -0
- package/dist/shared/rpc/provider-manager.js +116 -0
- package/dist/shared/rpc/provider-manager.js.map +1 -0
- package/dist/shared/rpc/viem-provider.d.ts +78 -0
- package/dist/shared/rpc/viem-provider.d.ts.map +1 -0
- package/dist/shared/rpc/viem-provider.js +187 -0
- package/dist/shared/rpc/viem-provider.js.map +1 -0
- package/dist/shared/token-registry/enrichment.d.ts +48 -0
- package/dist/shared/token-registry/enrichment.d.ts.map +1 -0
- package/dist/shared/token-registry/enrichment.js +69 -0
- package/dist/shared/token-registry/enrichment.js.map +1 -0
- package/dist/shared/token-registry/registry.d.ts +119 -0
- package/dist/shared/token-registry/registry.d.ts.map +1 -0
- package/dist/shared/token-registry/registry.js +200 -0
- package/dist/shared/token-registry/registry.js.map +1 -0
- package/dist/shared/utils/erc20-utils.d.ts +24 -0
- package/dist/shared/utils/erc20-utils.d.ts.map +1 -0
- package/dist/shared/utils/erc20-utils.js +31 -0
- package/dist/shared/utils/erc20-utils.js.map +1 -0
- package/dist/shared/utils/retry.d.ts +57 -0
- package/dist/shared/utils/retry.d.ts.map +1 -0
- package/dist/shared/utils/retry.js +104 -0
- package/dist/shared/utils/retry.js.map +1 -0
- package/dist/shared/wallet-manager/viem-signer.d.ts +68 -0
- package/dist/shared/wallet-manager/viem-signer.d.ts.map +1 -0
- package/dist/shared/wallet-manager/viem-signer.js +116 -0
- package/dist/shared/wallet-manager/viem-signer.js.map +1 -0
- package/dist/shared/wallet-manager/wallet-manager.d.ts +96 -0
- package/dist/shared/wallet-manager/wallet-manager.d.ts.map +1 -0
- package/dist/shared/wallet-manager/wallet-manager.js +104 -0
- package/dist/shared/wallet-manager/wallet-manager.js.map +1 -0
- package/dist/solver/agent/agent-config.d.ts +62 -0
- package/dist/solver/agent/agent-config.d.ts.map +1 -0
- package/dist/solver/agent/agent-config.js +59 -0
- package/dist/solver/agent/agent-config.js.map +1 -0
- package/dist/solver/agent/index.d.ts +6 -0
- package/dist/solver/agent/index.d.ts.map +1 -0
- package/dist/solver/agent/index.js +6 -0
- package/dist/solver/agent/index.js.map +1 -0
- package/dist/solver/agent/liquidity-agent.d.ts +118 -0
- package/dist/solver/agent/liquidity-agent.d.ts.map +1 -0
- package/dist/solver/agent/liquidity-agent.js +285 -0
- package/dist/solver/agent/liquidity-agent.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/index.d.ts +2 -0
- package/dist/solver/contracts/intent-settlement/index.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/index.js +2 -0
- package/dist/solver/contracts/intent-settlement/index.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts +22 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.js +58 -0
- package/dist/solver/contracts/intent-settlement/intent-settlement.js.map +1 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts +226 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.d.ts.map +1 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js +204 -0
- package/dist/solver/contracts/intent-settlement/viem-settlement-contract.js.map +1 -0
- package/dist/solver/index.d.ts +87 -0
- package/dist/solver/index.d.ts.map +1 -0
- package/dist/solver/index.js +167 -0
- package/dist/solver/index.js.map +1 -0
- package/dist/solver/inventory/index.d.ts +7 -0
- package/dist/solver/inventory/index.d.ts.map +1 -0
- package/dist/solver/inventory/index.js +7 -0
- package/dist/solver/inventory/index.js.map +1 -0
- package/dist/solver/inventory/inventory-manager.d.ts +135 -0
- package/dist/solver/inventory/inventory-manager.d.ts.map +1 -0
- package/dist/solver/inventory/inventory-manager.js +323 -0
- package/dist/solver/inventory/inventory-manager.js.map +1 -0
- package/dist/solver/inventory/inventory-monitor.d.ts +72 -0
- package/dist/solver/inventory/inventory-monitor.d.ts.map +1 -0
- package/dist/solver/inventory/inventory-monitor.js +123 -0
- package/dist/solver/inventory/inventory-monitor.js.map +1 -0
- package/dist/solver/inventory/rebalancer.d.ts +78 -0
- package/dist/solver/inventory/rebalancer.d.ts.map +1 -0
- package/dist/solver/inventory/rebalancer.js +210 -0
- package/dist/solver/inventory/rebalancer.js.map +1 -0
- package/dist/solver/mempool/index.d.ts +8 -0
- package/dist/solver/mempool/index.d.ts.map +1 -0
- package/dist/solver/mempool/index.js +8 -0
- package/dist/solver/mempool/index.js.map +1 -0
- package/dist/solver/mempool/intent-filter.d.ts +49 -0
- package/dist/solver/mempool/intent-filter.d.ts.map +1 -0
- package/dist/solver/mempool/intent-filter.js +75 -0
- package/dist/solver/mempool/intent-filter.js.map +1 -0
- package/dist/solver/mempool/mempool-client.d.ts +105 -0
- package/dist/solver/mempool/mempool-client.d.ts.map +1 -0
- package/dist/solver/mempool/mempool-client.js +161 -0
- package/dist/solver/mempool/mempool-client.js.map +1 -0
- package/dist/solver/mempool/mempool-monitor.d.ts +71 -0
- package/dist/solver/mempool/mempool-monitor.d.ts.map +1 -0
- package/dist/solver/mempool/mempool-monitor.js +127 -0
- package/dist/solver/mempool/mempool-monitor.js.map +1 -0
- package/dist/solver/mempool/solution-submitter.d.ts +41 -0
- package/dist/solver/mempool/solution-submitter.d.ts.map +1 -0
- package/dist/solver/mempool/solution-submitter.js +71 -0
- package/dist/solver/mempool/solution-submitter.js.map +1 -0
- package/dist/solver/monitoring/alert-manager.d.ts +43 -0
- package/dist/solver/monitoring/alert-manager.d.ts.map +1 -0
- package/dist/solver/monitoring/alert-manager.js +69 -0
- package/dist/solver/monitoring/alert-manager.js.map +1 -0
- package/dist/solver/monitoring/health-checker.d.ts +53 -0
- package/dist/solver/monitoring/health-checker.d.ts.map +1 -0
- package/dist/solver/monitoring/health-checker.js +94 -0
- package/dist/solver/monitoring/health-checker.js.map +1 -0
- package/dist/solver/monitoring/index.d.ts +7 -0
- package/dist/solver/monitoring/index.d.ts.map +1 -0
- package/dist/solver/monitoring/index.js +7 -0
- package/dist/solver/monitoring/index.js.map +1 -0
- package/dist/solver/monitoring/profit-tracker.d.ts +47 -0
- package/dist/solver/monitoring/profit-tracker.d.ts.map +1 -0
- package/dist/solver/monitoring/profit-tracker.js +112 -0
- package/dist/solver/monitoring/profit-tracker.js.map +1 -0
- package/dist/solver/pricing/dynamic-pricing.d.ts +86 -0
- package/dist/solver/pricing/dynamic-pricing.d.ts.map +1 -0
- package/dist/solver/pricing/dynamic-pricing.js +189 -0
- package/dist/solver/pricing/dynamic-pricing.js.map +1 -0
- package/dist/solver/pricing/fee-calculator.d.ts +101 -0
- package/dist/solver/pricing/fee-calculator.d.ts.map +1 -0
- package/dist/solver/pricing/fee-calculator.js +149 -0
- package/dist/solver/pricing/fee-calculator.js.map +1 -0
- package/dist/solver/pricing/index.d.ts +7 -0
- package/dist/solver/pricing/index.d.ts.map +1 -0
- package/dist/solver/pricing/index.js +7 -0
- package/dist/solver/pricing/index.js.map +1 -0
- package/dist/solver/pricing/slippage-capture.d.ts +47 -0
- package/dist/solver/pricing/slippage-capture.d.ts.map +1 -0
- package/dist/solver/pricing/slippage-capture.js +63 -0
- package/dist/solver/pricing/slippage-capture.js.map +1 -0
- package/dist/solver/protocols/aggregators/lifi.d.ts +109 -0
- package/dist/solver/protocols/aggregators/lifi.d.ts.map +1 -0
- package/dist/solver/protocols/aggregators/lifi.js +110 -0
- package/dist/solver/protocols/aggregators/lifi.js.map +1 -0
- package/dist/solver/protocols/aggregators/swing.d.ts +67 -0
- package/dist/solver/protocols/aggregators/swing.d.ts.map +1 -0
- package/dist/solver/protocols/aggregators/swing.js +212 -0
- package/dist/solver/protocols/aggregators/swing.js.map +1 -0
- package/dist/solver/protocols/base-protocol.d.ts +42 -0
- package/dist/solver/protocols/base-protocol.d.ts.map +1 -0
- package/dist/solver/protocols/base-protocol.js +16 -0
- package/dist/solver/protocols/base-protocol.js.map +1 -0
- package/dist/solver/protocols/index.d.ts +10 -0
- package/dist/solver/protocols/index.d.ts.map +1 -0
- package/dist/solver/protocols/index.js +10 -0
- package/dist/solver/protocols/index.js.map +1 -0
- package/dist/solver/protocols/lending/aave.d.ts +51 -0
- package/dist/solver/protocols/lending/aave.d.ts.map +1 -0
- package/dist/solver/protocols/lending/aave.js +172 -0
- package/dist/solver/protocols/lending/aave.js.map +1 -0
- package/dist/solver/protocols/protocol-registry.d.ts +28 -0
- package/dist/solver/protocols/protocol-registry.d.ts.map +1 -0
- package/dist/solver/protocols/protocol-registry.js +40 -0
- package/dist/solver/protocols/protocol-registry.js.map +1 -0
- package/dist/solver/settlement/index.d.ts +7 -0
- package/dist/solver/settlement/index.d.ts.map +1 -0
- package/dist/solver/settlement/index.js +7 -0
- package/dist/solver/settlement/index.js.map +1 -0
- package/dist/solver/settlement/live-settlement-manager.d.ts +62 -0
- package/dist/solver/settlement/live-settlement-manager.d.ts.map +1 -0
- package/dist/solver/settlement/live-settlement-manager.js +68 -0
- package/dist/solver/settlement/live-settlement-manager.js.map +1 -0
- package/dist/solver/settlement/proof-generator.d.ts +48 -0
- package/dist/solver/settlement/proof-generator.d.ts.map +1 -0
- package/dist/solver/settlement/proof-generator.js +100 -0
- package/dist/solver/settlement/proof-generator.js.map +1 -0
- package/dist/solver/settlement/proof-verifier.d.ts +31 -0
- package/dist/solver/settlement/proof-verifier.d.ts.map +1 -0
- package/dist/solver/settlement/proof-verifier.js +46 -0
- package/dist/solver/settlement/proof-verifier.js.map +1 -0
- package/dist/solver/settlement/settlement-manager.d.ts +97 -0
- package/dist/solver/settlement/settlement-manager.d.ts.map +1 -0
- package/dist/solver/settlement/settlement-manager.js +220 -0
- package/dist/solver/settlement/settlement-manager.js.map +1 -0
- package/dist/solver/types/agent.d.ts +92 -0
- package/dist/solver/types/agent.d.ts.map +1 -0
- package/dist/solver/types/agent.js +8 -0
- package/dist/solver/types/agent.js.map +1 -0
- package/dist/solver/types/execution.d.ts +70 -0
- package/dist/solver/types/execution.d.ts.map +1 -0
- package/dist/solver/types/execution.js +7 -0
- package/dist/solver/types/execution.js.map +1 -0
- package/dist/solver/types/index.d.ts +13 -0
- package/dist/solver/types/index.d.ts.map +1 -0
- package/dist/solver/types/index.js +13 -0
- package/dist/solver/types/index.js.map +1 -0
- package/dist/solver/types/intent.d.ts +82 -0
- package/dist/solver/types/intent.d.ts.map +1 -0
- package/dist/solver/types/intent.js +33 -0
- package/dist/solver/types/intent.js.map +1 -0
- package/dist/solver/types/inventory.d.ts +83 -0
- package/dist/solver/types/inventory.d.ts.map +1 -0
- package/dist/solver/types/inventory.js +8 -0
- package/dist/solver/types/inventory.js.map +1 -0
- package/dist/solver/types/pricing.d.ts +59 -0
- package/dist/solver/types/pricing.d.ts.map +1 -0
- package/dist/solver/types/pricing.js +8 -0
- package/dist/solver/types/pricing.js.map +1 -0
- package/dist/solver/types/settlement.d.ts +98 -0
- package/dist/solver/types/settlement.d.ts.map +1 -0
- package/dist/solver/types/settlement.js +9 -0
- package/dist/solver/types/settlement.js.map +1 -0
- package/dist/types/chain.d.ts +66 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/chain.js +7 -0
- package/dist/types/chain.js.map +1 -0
- package/dist/types/common.d.ts +44 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +8 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/entities.d.ts +61 -0
- package/dist/types/entities.d.ts.map +1 -0
- package/dist/types/entities.js +2 -0
- package/dist/types/entities.js.map +1 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/intent.d.ts +70 -0
- package/dist/types/intent.d.ts.map +1 -0
- package/dist/types/intent.js +2 -0
- package/dist/types/intent.js.map +1 -0
- package/dist/types/templates.d.ts +18 -0
- package/dist/types/templates.d.ts.map +1 -0
- package/dist/types/templates.js +2 -0
- package/dist/types/templates.js.map +1 -0
- package/dist/types/token.d.ts +132 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +8 -0
- package/dist/types/token.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages solver's wallet across multiple EVM chains.
|
|
5
|
+
* Single private key → multiple chain connections.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Ini adalah lightweight abstraction tanpa dependency ethers.js.
|
|
8
|
+
* Di Phase B+ akan di-extend dengan actual ethers.Wallet integration.
|
|
9
|
+
* Untuk sekarang, menyediakan interface dan basic key management.
|
|
10
|
+
*
|
|
11
|
+
* USAGE:
|
|
12
|
+
* const wallet = new WalletManager("0xprivatekey...", chainRegistry, providerManager);
|
|
13
|
+
* const address = wallet.getAddress();
|
|
14
|
+
* const sig = await wallet.signMessage("hello");
|
|
15
|
+
*/
|
|
16
|
+
import type { Address, ChainId, Hash } from "../../types/common";
|
|
17
|
+
/**
|
|
18
|
+
* Wallet signer interface
|
|
19
|
+
*
|
|
20
|
+
* Abstraction atas signing — bisa di-implement dengan ethers.js, viem, atau mock.
|
|
21
|
+
*/
|
|
22
|
+
export interface WalletSigner {
|
|
23
|
+
/** Get the wallet address */
|
|
24
|
+
getAddress(): Address;
|
|
25
|
+
/** Sign arbitrary message */
|
|
26
|
+
signMessage(message: string): Promise<string>;
|
|
27
|
+
/** Sign typed data (EIP-712) */
|
|
28
|
+
signTypedData?(domain: object, types: object, value: object): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Send a transaction (sign and broadcast).
|
|
31
|
+
*
|
|
32
|
+
* @param tx - Transaction payload
|
|
33
|
+
* @returns Transaction hash
|
|
34
|
+
*/
|
|
35
|
+
sendTransaction?(tx: {
|
|
36
|
+
to: Address;
|
|
37
|
+
data?: `0x${string}`;
|
|
38
|
+
value?: bigint;
|
|
39
|
+
gas?: bigint;
|
|
40
|
+
}): Promise<Hash | string>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* WalletManager
|
|
44
|
+
*
|
|
45
|
+
* Mengelola private key solver dan menyediakan signing capabilities.
|
|
46
|
+
* Address sama di semua EVM chains (derived dari private key).
|
|
47
|
+
*/
|
|
48
|
+
export declare class WalletManager {
|
|
49
|
+
private readonly privateKey;
|
|
50
|
+
private cachedAddress;
|
|
51
|
+
/**
|
|
52
|
+
* Custom signer factory — inject ethers.js or viem signer externally.
|
|
53
|
+
* Jika tidak disediakan, WalletManager hanya mengelola key storage.
|
|
54
|
+
*/
|
|
55
|
+
private signerFactory?;
|
|
56
|
+
constructor(privateKey: string, signerFactory?: (privateKey: string, chainId: ChainId) => WalletSigner);
|
|
57
|
+
/**
|
|
58
|
+
* Set or update the signer factory after instantiation.
|
|
59
|
+
*/
|
|
60
|
+
setSignerFactory(factory: (privateKey: string, chainId: ChainId) => WalletSigner): void;
|
|
61
|
+
/**
|
|
62
|
+
* Get solver's address (same across all EVM chains).
|
|
63
|
+
*
|
|
64
|
+
* Jika signer factory tersedia, derive dari signer.
|
|
65
|
+
* Otherwise, compute from private key secara manual.
|
|
66
|
+
*/
|
|
67
|
+
getAddress(): Address;
|
|
68
|
+
/**
|
|
69
|
+
* Sign an arbitrary message with the solver's private key.
|
|
70
|
+
*
|
|
71
|
+
* Requires signerFactory to be configured.
|
|
72
|
+
*/
|
|
73
|
+
signMessage(message: string): Promise<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Send a transaction using the solver's configured signer for the chain.
|
|
76
|
+
*/
|
|
77
|
+
sendTransaction(chainId: ChainId, tx: {
|
|
78
|
+
to: Address;
|
|
79
|
+
data?: `0x${string}`;
|
|
80
|
+
value?: bigint;
|
|
81
|
+
gas?: bigint;
|
|
82
|
+
}): Promise<Hash | string>;
|
|
83
|
+
/**
|
|
84
|
+
* Get a signer for a specific chain.
|
|
85
|
+
|
|
86
|
+
*
|
|
87
|
+
* The returned signer has the same address but is connected
|
|
88
|
+
* to the provider for the specified chain.
|
|
89
|
+
*/
|
|
90
|
+
getSigner(chainId: ChainId): WalletSigner;
|
|
91
|
+
/**
|
|
92
|
+
* Get private key (careful — only use internally).
|
|
93
|
+
*/
|
|
94
|
+
getPrivateKey(): string;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=wallet-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-manager.d.ts","sourceRoot":"","sources":["../../../src/shared/wallet-manager/wallet-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,6BAA6B;IAC7B,UAAU,IAAI,OAAO,CAAC;IAEtB,6BAA6B;IAC7B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,gCAAgC;IAChC,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,eAAe,CAAC,CAAC,EAAE,EAAE;QACjB,EAAE,EAAE,OAAO,CAAC;QACZ,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,aAAa,CAAwB;IAE7C;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAC,CAAyD;gBAG3E,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,YAAY;IAU1E;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,YAAY,GAAG,IAAI;IAKvF;;;;;OAKG;IACH,UAAU,IAAI,OAAO;IAkBrB;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnD;;OAEG;IACG,eAAe,CACjB,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACxE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IAQzB;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY;IAUzC;;OAEG;IACH,aAAa,IAAI,MAAM;CAG1B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages solver's wallet across multiple EVM chains.
|
|
5
|
+
* Single private key → multiple chain connections.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Ini adalah lightweight abstraction tanpa dependency ethers.js.
|
|
8
|
+
* Di Phase B+ akan di-extend dengan actual ethers.Wallet integration.
|
|
9
|
+
* Untuk sekarang, menyediakan interface dan basic key management.
|
|
10
|
+
*
|
|
11
|
+
* USAGE:
|
|
12
|
+
* const wallet = new WalletManager("0xprivatekey...", chainRegistry, providerManager);
|
|
13
|
+
* const address = wallet.getAddress();
|
|
14
|
+
* const sig = await wallet.signMessage("hello");
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* WalletManager
|
|
18
|
+
*
|
|
19
|
+
* Mengelola private key solver dan menyediakan signing capabilities.
|
|
20
|
+
* Address sama di semua EVM chains (derived dari private key).
|
|
21
|
+
*/
|
|
22
|
+
export class WalletManager {
|
|
23
|
+
privateKey;
|
|
24
|
+
cachedAddress = null;
|
|
25
|
+
/**
|
|
26
|
+
* Custom signer factory — inject ethers.js or viem signer externally.
|
|
27
|
+
* Jika tidak disediakan, WalletManager hanya mengelola key storage.
|
|
28
|
+
*/
|
|
29
|
+
signerFactory;
|
|
30
|
+
constructor(privateKey, signerFactory) {
|
|
31
|
+
if (!privateKey || !privateKey.startsWith("0x")) {
|
|
32
|
+
throw new Error("Private key must be a hex string starting with 0x");
|
|
33
|
+
}
|
|
34
|
+
this.privateKey = privateKey;
|
|
35
|
+
this.signerFactory = signerFactory;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set or update the signer factory after instantiation.
|
|
39
|
+
*/
|
|
40
|
+
setSignerFactory(factory) {
|
|
41
|
+
this.signerFactory = factory;
|
|
42
|
+
this.cachedAddress = null; // Invalidate cached address
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get solver's address (same across all EVM chains).
|
|
46
|
+
*
|
|
47
|
+
* Jika signer factory tersedia, derive dari signer.
|
|
48
|
+
* Otherwise, compute from private key secara manual.
|
|
49
|
+
*/
|
|
50
|
+
getAddress() {
|
|
51
|
+
if (this.cachedAddress)
|
|
52
|
+
return this.cachedAddress;
|
|
53
|
+
if (this.signerFactory) {
|
|
54
|
+
// Use signer factory to get address (any chain works, address is same)
|
|
55
|
+
const signer = this.signerFactory(this.privateKey, 1);
|
|
56
|
+
this.cachedAddress = signer.getAddress();
|
|
57
|
+
return this.cachedAddress;
|
|
58
|
+
}
|
|
59
|
+
// Placeholder: In production, derive from private key using elliptic curve
|
|
60
|
+
// For now, store as-is (actual derivation requires crypto library)
|
|
61
|
+
throw new Error("WalletManager requires a signerFactory to derive address. " +
|
|
62
|
+
"Provide one via constructor or use ethers.js integration.");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Sign an arbitrary message with the solver's private key.
|
|
66
|
+
*
|
|
67
|
+
* Requires signerFactory to be configured.
|
|
68
|
+
*/
|
|
69
|
+
async signMessage(message) {
|
|
70
|
+
const signer = this.getSigner(1); // Chain doesn't matter for signing
|
|
71
|
+
return signer.signMessage(message);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Send a transaction using the solver's configured signer for the chain.
|
|
75
|
+
*/
|
|
76
|
+
async sendTransaction(chainId, tx) {
|
|
77
|
+
const signer = this.getSigner(chainId);
|
|
78
|
+
if (!signer.sendTransaction) {
|
|
79
|
+
throw new Error(`Configured signer for chain ${chainId} does not support sendTransaction`);
|
|
80
|
+
}
|
|
81
|
+
return signer.sendTransaction(tx);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get a signer for a specific chain.
|
|
85
|
+
|
|
86
|
+
*
|
|
87
|
+
* The returned signer has the same address but is connected
|
|
88
|
+
* to the provider for the specified chain.
|
|
89
|
+
*/
|
|
90
|
+
getSigner(chainId) {
|
|
91
|
+
if (!this.signerFactory) {
|
|
92
|
+
throw new Error("WalletManager requires a signerFactory. " +
|
|
93
|
+
"Provide one via constructor.");
|
|
94
|
+
}
|
|
95
|
+
return this.signerFactory(this.privateKey, chainId);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get private key (careful — only use internally).
|
|
99
|
+
*/
|
|
100
|
+
getPrivateKey() {
|
|
101
|
+
return this.privateKey;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=wallet-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-manager.js","sourceRoot":"","sources":["../../../src/shared/wallet-manager/wallet-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACL,UAAU,CAAS;IAC5B,aAAa,GAAmB,IAAI,CAAC;IAE7C;;;OAGG;IACK,aAAa,CAA0D;IAE/E,YACI,UAAkB,EAClB,aAAsE;QAEtE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAA+D;QAC5E,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAC3D,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACN,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAElD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,uEAAuE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QAED,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,IAAI,KAAK,CACX,4DAA4D;YAC5D,2DAA2D,CAC9D,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACrE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACjB,OAAgB,EAChB,EAAuE;QAEvE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,mCAAmC,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,OAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,0CAA0C;gBAC1C,8BAA8B,CACjC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Config — Phase F
|
|
3
|
+
*
|
|
4
|
+
* Aggregates all sub-module configurations into a single
|
|
5
|
+
* LiquidityAgentConfig struct. Provides `buildAgentConfig()`
|
|
6
|
+
* that applies SDK defaults so callers only need to specify overrides.
|
|
7
|
+
*
|
|
8
|
+
* Used by: LiquidityAgent constructor
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentConfig } from "../types/agent";
|
|
11
|
+
import type { PricingConfig } from "../types/pricing";
|
|
12
|
+
import type { InventoryManagerConfig } from "../inventory/inventory-manager";
|
|
13
|
+
import type { SettlementConfig } from "../settlement/settlement-manager";
|
|
14
|
+
/**
|
|
15
|
+
* Full configuration for a LiquidityAgent instance.
|
|
16
|
+
*
|
|
17
|
+
* Combines agent identity, pricing engine config, inventory
|
|
18
|
+
* management config, and settlement config into a single object.
|
|
19
|
+
*
|
|
20
|
+
* EXAMPLE:
|
|
21
|
+
* const config = buildAgentConfig({
|
|
22
|
+
* agent: {
|
|
23
|
+
* name: "LiquidityBot-01",
|
|
24
|
+
* privateKey: "0xabc...",
|
|
25
|
+
* supportedChains: [1, 137],
|
|
26
|
+
* supportedTokens: ["USDC"],
|
|
27
|
+
* mode: "simulate",
|
|
28
|
+
* },
|
|
29
|
+
* contractAddress: "0xSettlementContractAddress",
|
|
30
|
+
* });
|
|
31
|
+
*/
|
|
32
|
+
export interface LiquidityAgentConfig {
|
|
33
|
+
/** Core agent identity and behavior */
|
|
34
|
+
agent: AgentConfig;
|
|
35
|
+
/** Fee calculation parameters */
|
|
36
|
+
pricing: PricingConfig;
|
|
37
|
+
/** Inventory reserve and management parameters */
|
|
38
|
+
inventory: InventoryManagerConfig;
|
|
39
|
+
/** Settlement confirmation and retry parameters */
|
|
40
|
+
settlement: SettlementConfig;
|
|
41
|
+
/** Deployed IntentSettlement contract address */
|
|
42
|
+
contractAddress: string;
|
|
43
|
+
/** Map of chainId → RPC URL for connecting to chains */
|
|
44
|
+
rpcUrls: Record<number, string>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build a complete LiquidityAgentConfig by merging partial overrides
|
|
48
|
+
* with SDK defaults.
|
|
49
|
+
*
|
|
50
|
+
* Only `agent.privateKey` and `contractAddress` are truly required
|
|
51
|
+
* for a real deployment; everything else has sensible defaults.
|
|
52
|
+
*
|
|
53
|
+
* @param partial - Partial config object. Nested objects are shallow-merged.
|
|
54
|
+
* @returns Fully populated LiquidityAgentConfig
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildAgentConfig(partial: Partial<LiquidityAgentConfig> & {
|
|
57
|
+
agent?: Partial<AgentConfig>;
|
|
58
|
+
pricing?: Partial<PricingConfig>;
|
|
59
|
+
inventory?: Partial<InventoryManagerConfig>;
|
|
60
|
+
settlement?: Partial<SettlementConfig>;
|
|
61
|
+
}): LiquidityAgentConfig;
|
|
62
|
+
//# sourceMappingURL=agent-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../../src/solver/agent/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAOzE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,oBAAoB;IACjC,uCAAuC;IACvC,KAAK,EAAE,WAAW,CAAC;IAEnB,iCAAiC;IACjC,OAAO,EAAE,aAAa,CAAC;IAEvB,kDAAkD;IAClD,SAAS,EAAE,sBAAsB,CAAC;IAElC,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,CAAC;IAE7B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IAExB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAqCD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1C,GACF,oBAAoB,CAStB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Config — Phase F
|
|
3
|
+
*
|
|
4
|
+
* Aggregates all sub-module configurations into a single
|
|
5
|
+
* LiquidityAgentConfig struct. Provides `buildAgentConfig()`
|
|
6
|
+
* that applies SDK defaults so callers only need to specify overrides.
|
|
7
|
+
*
|
|
8
|
+
* Used by: LiquidityAgent constructor
|
|
9
|
+
*/
|
|
10
|
+
// ─────────────────────────────────────────────
|
|
11
|
+
// Defaults
|
|
12
|
+
// ─────────────────────────────────────────────
|
|
13
|
+
const DEFAULT_AGENT = {
|
|
14
|
+
name: "LiquidityAgent",
|
|
15
|
+
privateKey: "0x0000000000000000000000000000000000000000000000000000000000000001",
|
|
16
|
+
supportedChains: [1, 137],
|
|
17
|
+
supportedTokens: ["USDC"],
|
|
18
|
+
mode: "simulate",
|
|
19
|
+
maxConcurrentIntents: 5,
|
|
20
|
+
intentTimeout: 3600,
|
|
21
|
+
};
|
|
22
|
+
const DEFAULT_PRICING = {
|
|
23
|
+
baseFeePercent: 0.005,
|
|
24
|
+
minFeeUSD: 1,
|
|
25
|
+
maxFeePercent: 0.03,
|
|
26
|
+
slippageSharePercent: 0.5,
|
|
27
|
+
};
|
|
28
|
+
const DEFAULT_INVENTORY = {
|
|
29
|
+
minReservePercent: 0.1,
|
|
30
|
+
};
|
|
31
|
+
const DEFAULT_SETTLEMENT = {
|
|
32
|
+
requiredConfirmations: 3,
|
|
33
|
+
maxClaimRetries: 3,
|
|
34
|
+
watchIntervalMs: 30_000,
|
|
35
|
+
};
|
|
36
|
+
// ─────────────────────────────────────────────
|
|
37
|
+
// Builder
|
|
38
|
+
// ─────────────────────────────────────────────
|
|
39
|
+
/**
|
|
40
|
+
* Build a complete LiquidityAgentConfig by merging partial overrides
|
|
41
|
+
* with SDK defaults.
|
|
42
|
+
*
|
|
43
|
+
* Only `agent.privateKey` and `contractAddress` are truly required
|
|
44
|
+
* for a real deployment; everything else has sensible defaults.
|
|
45
|
+
*
|
|
46
|
+
* @param partial - Partial config object. Nested objects are shallow-merged.
|
|
47
|
+
* @returns Fully populated LiquidityAgentConfig
|
|
48
|
+
*/
|
|
49
|
+
export function buildAgentConfig(partial) {
|
|
50
|
+
return {
|
|
51
|
+
agent: { ...DEFAULT_AGENT, ...(partial.agent ?? {}) },
|
|
52
|
+
pricing: { ...DEFAULT_PRICING, ...(partial.pricing ?? {}) },
|
|
53
|
+
inventory: { ...DEFAULT_INVENTORY, ...(partial.inventory ?? {}) },
|
|
54
|
+
settlement: { ...DEFAULT_SETTLEMENT, ...(partial.settlement ?? {}) },
|
|
55
|
+
contractAddress: partial.contractAddress ?? "0x0000000000000000000000000000000000000000",
|
|
56
|
+
rpcUrls: partial.rpcUrls ?? {},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=agent-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../../src/solver/agent/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkDH,gDAAgD;AAChD,WAAW;AACX,gDAAgD;AAEhD,MAAM,aAAa,GAAgB;IAC/B,IAAI,EAAE,gBAAgB;IACtB,UAAU,EAAE,oEAAoE;IAChF,eAAe,EAAE,CAAC,CAAC,EAAE,GAAG,CAAc;IACtC,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,IAAI,EAAE,UAAuB;IAC7B,oBAAoB,EAAE,CAAC;IACvB,aAAa,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,eAAe,GAAkB;IACnC,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,GAAG;CAC5B,CAAC;AAEF,MAAM,iBAAiB,GAA2B;IAC9C,iBAAiB,EAAE,GAAG;CACzB,CAAC;AAEF,MAAM,kBAAkB,GAAqB;IACzC,qBAAqB,EAAE,CAAC;IACxB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM;CAC1B,CAAC;AAEF,gDAAgD;AAChD,UAAU;AACV,gDAAgD;AAEhD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC5B,OAKC;IAED,OAAO;QACH,KAAK,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;QACrD,OAAO,EAAE,EAAE,GAAG,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;QAC3D,SAAS,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;QACjE,UAAU,EAAE,EAAE,GAAG,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;QACpE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,4CAA4C;QACxF,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KACjC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/solver/agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/solver/agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Liquidity Agent — Phase F
|
|
3
|
+
*
|
|
4
|
+
* Core orchestrator that ties together all solver subsystems
|
|
5
|
+
* (Inventory, Pricing, Settlement) into a single agent that can
|
|
6
|
+
* evaluate, price, and solve cross-chain bridge intents.
|
|
7
|
+
*
|
|
8
|
+
* Lifecycle:
|
|
9
|
+
* 1. new LiquidityAgent(deps, config)
|
|
10
|
+
* 2. await agent.initialize() → loads balances, derives address
|
|
11
|
+
* 3. agent.start() → begins watching settlements
|
|
12
|
+
* 4. await agent.solve(intent) → full solve cycle
|
|
13
|
+
* 5. agent.stop() → cleanup
|
|
14
|
+
*
|
|
15
|
+
* Used by: SDK consumer (examples/autonomous-agent.ts, Phase K)
|
|
16
|
+
*/
|
|
17
|
+
import type { Address } from "../../types/common";
|
|
18
|
+
import type { AgentStatus, SolutionResult } from "../types/agent";
|
|
19
|
+
import type { SolverIntent } from "../types/intent";
|
|
20
|
+
import type { PricingResult } from "../types/pricing";
|
|
21
|
+
import type { InventoryManager } from "../inventory/inventory-manager";
|
|
22
|
+
import type { DynamicPricing } from "../pricing/dynamic-pricing";
|
|
23
|
+
import type { SettlementManager } from "../settlement/settlement-manager";
|
|
24
|
+
import type { WalletManager } from "../../shared/wallet-manager/wallet-manager";
|
|
25
|
+
import type { LiquidityAgentConfig } from "./agent-config";
|
|
26
|
+
export declare class LiquidityAgent {
|
|
27
|
+
private readonly inventoryManager;
|
|
28
|
+
private readonly dynamicPricing;
|
|
29
|
+
private readonly settlementManager;
|
|
30
|
+
private readonly walletManager;
|
|
31
|
+
private readonly config;
|
|
32
|
+
private status;
|
|
33
|
+
private agentAddress;
|
|
34
|
+
constructor(inventoryManager: InventoryManager, dynamicPricing: DynamicPricing, settlementManager: SettlementManager, walletManager: WalletManager, config: LiquidityAgentConfig);
|
|
35
|
+
/**
|
|
36
|
+
* Initialize the agent: load on-chain balances and derive the agent address.
|
|
37
|
+
*
|
|
38
|
+
* Must be called before solve() / canSolve() / getQuote().
|
|
39
|
+
*/
|
|
40
|
+
initialize(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Check whether this agent can solve a given intent.
|
|
43
|
+
*
|
|
44
|
+
* Validation order:
|
|
45
|
+
* 1. Intent type must be "bridge"
|
|
46
|
+
* 2. Source and target chains must be in supportedChains
|
|
47
|
+
* 3. Token must be in supportedTokens
|
|
48
|
+
* 4. Intent must not be expired (deadline > now)
|
|
49
|
+
* 5. Inventory must have enough to fulfill (canFulfill)
|
|
50
|
+
*
|
|
51
|
+
* @param intent - SolverIntent to evaluate
|
|
52
|
+
* @returns true if solvable, false otherwise
|
|
53
|
+
*/
|
|
54
|
+
canSolve(intent: SolverIntent): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get a price quote for a given intent via the DynamicPricing engine.
|
|
57
|
+
*
|
|
58
|
+
* Does NOT lock inventory or execute anything.
|
|
59
|
+
*
|
|
60
|
+
* @param intent - SolverIntent to price
|
|
61
|
+
* @returns PricingResult with full fee breakdown
|
|
62
|
+
*/
|
|
63
|
+
getQuote(intent: SolverIntent): PricingResult;
|
|
64
|
+
/**
|
|
65
|
+
* Full solve cycle for a single intent.
|
|
66
|
+
*
|
|
67
|
+
* Steps:
|
|
68
|
+
* 1. Validate via canSolve()
|
|
69
|
+
* 2. Price via getQuote()
|
|
70
|
+
* 3. Check profitability (shouldReject)
|
|
71
|
+
* 4. Lock inventory on target chain
|
|
72
|
+
* 5. Send funds on target chain (simulate or live)
|
|
73
|
+
* 6. Confirm deduction from inventory
|
|
74
|
+
* 7. Trigger settlement (proof + claim)
|
|
75
|
+
* 8. Return SolutionResult
|
|
76
|
+
*
|
|
77
|
+
* On any failure after lock, inventory is unlocked automatically.
|
|
78
|
+
*
|
|
79
|
+
* @param intent - SolverIntent to solve
|
|
80
|
+
* @returns SolutionResult with success/error details
|
|
81
|
+
*/
|
|
82
|
+
solve(intent: SolverIntent): Promise<SolutionResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Start the agent: begin watching for pending settlements.
|
|
85
|
+
*
|
|
86
|
+
* @param _mempoolUrl - Reserved for Phase G mempool integration
|
|
87
|
+
*/
|
|
88
|
+
start(_mempoolUrl?: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Stop the agent: stop settlement watcher.
|
|
91
|
+
*/
|
|
92
|
+
stop(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get the current agent status.
|
|
95
|
+
*/
|
|
96
|
+
getStatus(): AgentStatus;
|
|
97
|
+
/**
|
|
98
|
+
* Get the agent's on-chain address.
|
|
99
|
+
*/
|
|
100
|
+
getAgentAddress(): Address | null;
|
|
101
|
+
/**
|
|
102
|
+
* Send funds to the intent recipient on the target chain.
|
|
103
|
+
*
|
|
104
|
+
* In **simulate** mode: generates a fake txHash from the intentId.
|
|
105
|
+
* In **live** mode: executes a real ERC-20 transfer via WalletManager.
|
|
106
|
+
*
|
|
107
|
+
* @param intent - The intent being solved
|
|
108
|
+
* @param bridgeIntent - Extracted bridge parameters
|
|
109
|
+
* @param _pricing - Pricing result (reserved for future gas limit calc)
|
|
110
|
+
* @returns Target chain transaction hash
|
|
111
|
+
*/
|
|
112
|
+
private sendOnTargetChain;
|
|
113
|
+
/**
|
|
114
|
+
* Build an error SolutionResult.
|
|
115
|
+
*/
|
|
116
|
+
private errorResult;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=liquidity-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidity-agent.d.ts","sourceRoot":"","sources":["../../../src/solver/agent/liquidity-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO3D,qBAAa,cAAc;IAKnB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAwB;gBAGvB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,oBAAoB;IAOjD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IA6BvC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa;IAI7C;;;;;;;;;;;;;;;;;OAiBG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAgH1D;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAKjC;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,eAAe,IAAI,OAAO,GAAG,IAAI;IAQjC;;;;;;;;;;OAUG;YACW,iBAAiB;IAqC/B;;OAEG;IACH,OAAO,CAAC,WAAW;CAqBtB"}
|