amped-defi 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/README.md +757 -0
- package/dist/__mocks__/@sodax/sdk.d.ts +24 -0
- package/dist/__mocks__/@sodax/sdk.d.ts.map +1 -0
- package/dist/__mocks__/@sodax/sdk.js +24 -0
- package/dist/__mocks__/@sodax/sdk.js.map +1 -0
- package/dist/__tests__/setup.d.ts +4 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +32 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +281 -0
- package/dist/index.js.map +1 -0
- package/dist/policy/policyEngine.d.ts +119 -0
- package/dist/policy/policyEngine.d.ts.map +1 -0
- package/dist/policy/policyEngine.js +322 -0
- package/dist/policy/policyEngine.js.map +1 -0
- package/dist/providers/spokeProviderFactory.d.ts +38 -0
- package/dist/providers/spokeProviderFactory.d.ts.map +1 -0
- package/dist/providers/spokeProviderFactory.js +212 -0
- package/dist/providers/spokeProviderFactory.js.map +1 -0
- package/dist/sodax/client.d.ts +34 -0
- package/dist/sodax/client.d.ts.map +1 -0
- package/dist/sodax/client.js +99 -0
- package/dist/sodax/client.js.map +1 -0
- package/dist/tools/bridge.d.ts +105 -0
- package/dist/tools/bridge.d.ts.map +1 -0
- package/dist/tools/bridge.js +334 -0
- package/dist/tools/bridge.js.map +1 -0
- package/dist/tools/discovery.d.ts +141 -0
- package/dist/tools/discovery.d.ts.map +1 -0
- package/dist/tools/discovery.js +777 -0
- package/dist/tools/discovery.js.map +1 -0
- package/dist/tools/moneyMarket.d.ts +227 -0
- package/dist/tools/moneyMarket.d.ts.map +1 -0
- package/dist/tools/moneyMarket.js +867 -0
- package/dist/tools/moneyMarket.js.map +1 -0
- package/dist/tools/portfolio.d.ts +43 -0
- package/dist/tools/portfolio.d.ts.map +1 -0
- package/dist/tools/portfolio.js +538 -0
- package/dist/tools/portfolio.js.map +1 -0
- package/dist/tools/swap.d.ts +71 -0
- package/dist/tools/swap.d.ts.map +1 -0
- package/dist/tools/swap.js +762 -0
- package/dist/tools/swap.js.map +1 -0
- package/dist/tools/walletManagement.d.ts +80 -0
- package/dist/tools/walletManagement.d.ts.map +1 -0
- package/dist/tools/walletManagement.js +289 -0
- package/dist/tools/walletManagement.js.map +1 -0
- package/dist/types.d.ts +205 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errorUtils.d.ts +2 -0
- package/dist/utils/errorUtils.d.ts.map +1 -0
- package/dist/utils/errorUtils.js +19 -0
- package/dist/utils/errorUtils.js.map +1 -0
- package/dist/utils/errors.d.ts +144 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +310 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/positionAggregator.d.ts +122 -0
- package/dist/utils/positionAggregator.d.ts.map +1 -0
- package/dist/utils/positionAggregator.js +377 -0
- package/dist/utils/positionAggregator.js.map +1 -0
- package/dist/utils/priceService.d.ts +45 -0
- package/dist/utils/priceService.d.ts.map +1 -0
- package/dist/utils/priceService.js +108 -0
- package/dist/utils/priceService.js.map +1 -0
- package/dist/utils/sodaxApi.d.ts +92 -0
- package/dist/utils/sodaxApi.d.ts.map +1 -0
- package/dist/utils/sodaxApi.js +143 -0
- package/dist/utils/sodaxApi.js.map +1 -0
- package/dist/utils/tokenResolver.d.ts +54 -0
- package/dist/utils/tokenResolver.d.ts.map +1 -0
- package/dist/utils/tokenResolver.js +252 -0
- package/dist/utils/tokenResolver.js.map +1 -0
- package/dist/wallet/backendConfig.d.ts +37 -0
- package/dist/wallet/backendConfig.d.ts.map +1 -0
- package/dist/wallet/backendConfig.js +125 -0
- package/dist/wallet/backendConfig.js.map +1 -0
- package/dist/wallet/backends/BankrBackend.d.ts +73 -0
- package/dist/wallet/backends/BankrBackend.d.ts.map +1 -0
- package/dist/wallet/backends/BankrBackend.js +315 -0
- package/dist/wallet/backends/BankrBackend.js.map +1 -0
- package/dist/wallet/backends/BankrWalletProvider.d.ts +75 -0
- package/dist/wallet/backends/BankrWalletProvider.d.ts.map +1 -0
- package/dist/wallet/backends/BankrWalletProvider.js +243 -0
- package/dist/wallet/backends/BankrWalletProvider.js.map +1 -0
- package/dist/wallet/backends/EnvBackend.d.ts +50 -0
- package/dist/wallet/backends/EnvBackend.d.ts.map +1 -0
- package/dist/wallet/backends/EnvBackend.js +114 -0
- package/dist/wallet/backends/EnvBackend.js.map +1 -0
- package/dist/wallet/backends/EvmWalletSkillBackend.d.ts +40 -0
- package/dist/wallet/backends/EvmWalletSkillBackend.d.ts.map +1 -0
- package/dist/wallet/backends/EvmWalletSkillBackend.js +81 -0
- package/dist/wallet/backends/EvmWalletSkillBackend.js.map +1 -0
- package/dist/wallet/backends/index.d.ts +10 -0
- package/dist/wallet/backends/index.d.ts.map +1 -0
- package/dist/wallet/backends/index.js +10 -0
- package/dist/wallet/backends/index.js.map +1 -0
- package/dist/wallet/index.d.ts +9 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +12 -0
- package/dist/wallet/index.js.map +1 -0
- package/dist/wallet/providers/AmpedWalletProvider.d.ts +107 -0
- package/dist/wallet/providers/AmpedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/providers/AmpedWalletProvider.js +208 -0
- package/dist/wallet/providers/AmpedWalletProvider.js.map +1 -0
- package/dist/wallet/providers/BankrBackend.d.ts +105 -0
- package/dist/wallet/providers/BankrBackend.d.ts.map +1 -0
- package/dist/wallet/providers/BankrBackend.js +327 -0
- package/dist/wallet/providers/BankrBackend.js.map +1 -0
- package/dist/wallet/providers/LocalKeyBackend.d.ts +62 -0
- package/dist/wallet/providers/LocalKeyBackend.d.ts.map +1 -0
- package/dist/wallet/providers/LocalKeyBackend.js +152 -0
- package/dist/wallet/providers/LocalKeyBackend.js.map +1 -0
- package/dist/wallet/providers/chainConfig.d.ts +209 -0
- package/dist/wallet/providers/chainConfig.d.ts.map +1 -0
- package/dist/wallet/providers/chainConfig.js +175 -0
- package/dist/wallet/providers/chainConfig.js.map +1 -0
- package/dist/wallet/providers/index.d.ts +30 -0
- package/dist/wallet/providers/index.d.ts.map +1 -0
- package/dist/wallet/providers/index.js +32 -0
- package/dist/wallet/providers/index.js.map +1 -0
- package/dist/wallet/providers/types.d.ts +156 -0
- package/dist/wallet/providers/types.d.ts.map +1 -0
- package/dist/wallet/providers/types.js +11 -0
- package/dist/wallet/providers/types.js.map +1 -0
- package/dist/wallet/skillWalletAdapter.d.ts +96 -0
- package/dist/wallet/skillWalletAdapter.d.ts.map +1 -0
- package/dist/wallet/skillWalletAdapter.js +280 -0
- package/dist/wallet/skillWalletAdapter.js.map +1 -0
- package/dist/wallet/types.d.ts +134 -0
- package/dist/wallet/types.d.ts.map +1 -0
- package/dist/wallet/types.js +138 -0
- package/dist/wallet/types.js.map +1 -0
- package/dist/wallet/walletManager.d.ts +111 -0
- package/dist/wallet/walletManager.d.ts.map +1 -0
- package/dist/wallet/walletManager.js +476 -0
- package/dist/wallet/walletManager.js.map +1 -0
- package/dist/wallet/walletRegistry.d.ts +95 -0
- package/dist/wallet/walletRegistry.d.ts.map +1 -0
- package/dist/wallet/walletRegistry.js +184 -0
- package/dist/wallet/walletRegistry.js.map +1 -0
- package/index.js +2 -0
- package/openclaw.plugin.json +37 -0
- package/package.json +69 -0
- package/src/__mocks__/@sodax/sdk.ts +28 -0
- package/src/__tests__/errors.test.ts +238 -0
- package/src/__tests__/policyEngine.test.ts +354 -0
- package/src/__tests__/positionAggregator.test.ts +271 -0
- package/src/__tests__/setup.ts +35 -0
- package/src/__tests__/sodaxApi.test.ts +203 -0
- package/src/__tests__/walletRegistry.test.ts +155 -0
- package/src/index.ts +376 -0
- package/src/policy/policyEngine.ts +389 -0
- package/src/providers/spokeProviderFactory.ts +283 -0
- package/src/sodax/client.ts +113 -0
- package/src/tools/bridge.ts +425 -0
- package/src/tools/discovery.ts +989 -0
- package/src/tools/moneyMarket.ts +1265 -0
- package/src/tools/portfolio.ts +697 -0
- package/src/tools/swap.ts +926 -0
- package/src/tools/walletManagement.ts +359 -0
- package/src/types.ts +228 -0
- package/src/utils/errorUtils.ts +16 -0
- package/src/utils/errors.ts +396 -0
- package/src/utils/positionAggregator.ts +559 -0
- package/src/utils/priceService.ts +153 -0
- package/src/utils/sodaxApi.ts +261 -0
- package/src/utils/tokenResolver.ts +286 -0
- package/src/wallet/backendConfig.ts +151 -0
- package/src/wallet/backends/BankrBackend.ts +399 -0
- package/src/wallet/backends/BankrWalletProvider.ts +329 -0
- package/src/wallet/backends/EnvBackend.ts +149 -0
- package/src/wallet/backends/EvmWalletSkillBackend.ts +110 -0
- package/src/wallet/backends/index.ts +10 -0
- package/src/wallet/index.ts +14 -0
- package/src/wallet/providers/AmpedWalletProvider.ts +267 -0
- package/src/wallet/providers/BankrBackend.ts +407 -0
- package/src/wallet/providers/LocalKeyBackend.ts +184 -0
- package/src/wallet/providers/chainConfig.ts +194 -0
- package/src/wallet/providers/index.ts +62 -0
- package/src/wallet/providers/types.ts +186 -0
- package/src/wallet/skillWalletAdapter.ts +335 -0
- package/src/wallet/types.ts +248 -0
- package/src/wallet/walletManager.ts +561 -0
- package/src/wallet/walletRegistry.ts +216 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amped Wallet Provider
|
|
3
|
+
*
|
|
4
|
+
* Custom wallet provider implementing IEvmWalletProvider from @sodax/types.
|
|
5
|
+
*
|
|
6
|
+
* This replaces wallet-sdk-core's EvmWalletProvider with a more flexible
|
|
7
|
+
* implementation that:
|
|
8
|
+
* 1. Supports all chains including LightLink and HyperEVM
|
|
9
|
+
* 2. Has pluggable backends (local keys, Bankr, etc.)
|
|
10
|
+
* 3. Provides a unified interface for the SODAX SDK
|
|
11
|
+
*
|
|
12
|
+
* Architecture:
|
|
13
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
14
|
+
* \u2502 AmpedWalletProvider \u2502
|
|
15
|
+
* \u2502 (implements IEvmWalletProvider) \u2502
|
|
16
|
+
* \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524
|
|
17
|
+
* \u2502 - SDK-compatible interface \u2502
|
|
18
|
+
* \u2502 - Chain resolution (all chains) \u2502
|
|
19
|
+
* \u2502 - Transaction formatting \u2502
|
|
20
|
+
* \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
21
|
+
* \u2502
|
|
22
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
23
|
+
* \u25bc \u25bc
|
|
24
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
25
|
+
* \u2502 LocalKeyBack. \u2502 \u2502 BankrBackend \u2502
|
|
26
|
+
* \u2502 (evm-wallet) \u2502 \u2502 (API calls) \u2502
|
|
27
|
+
* \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
28
|
+
*/
|
|
29
|
+
import { createPublicClient, type Hash, type Address } from 'viem';
|
|
30
|
+
import type { EvmRawTransaction, EvmRawTransactionReceipt } from '@sodax/types';
|
|
31
|
+
import type { IWalletBackend, WalletBackendConfig, WalletBackendType, IAmpedWalletProvider, BankrBackendConfig } from './types';
|
|
32
|
+
/**
|
|
33
|
+
* Amped Wallet Provider
|
|
34
|
+
*
|
|
35
|
+
* A drop-in replacement for wallet-sdk-core's EvmWalletProvider
|
|
36
|
+
* that supports all SODAX chains including LightLink and HyperEVM.
|
|
37
|
+
*/
|
|
38
|
+
export declare class AmpedWalletProvider implements IAmpedWalletProvider {
|
|
39
|
+
readonly publicClient: ReturnType<typeof createPublicClient>;
|
|
40
|
+
private readonly backend;
|
|
41
|
+
private readonly chainId;
|
|
42
|
+
private constructor();
|
|
43
|
+
/**
|
|
44
|
+
* Create an AmpedWalletProvider with a local key backend
|
|
45
|
+
*
|
|
46
|
+
* @param config - Configuration matching EvmWalletProvider's PrivateKeyEvmWalletConfig
|
|
47
|
+
* @returns AmpedWalletProvider instance
|
|
48
|
+
*/
|
|
49
|
+
static fromPrivateKey(config: {
|
|
50
|
+
privateKey: `0x${string}`;
|
|
51
|
+
chainId: string | number;
|
|
52
|
+
rpcUrl?: string;
|
|
53
|
+
}): Promise<AmpedWalletProvider>;
|
|
54
|
+
/**
|
|
55
|
+
* Create an AmpedWalletProvider with a Bankr backend
|
|
56
|
+
*
|
|
57
|
+
* @param config - Bankr backend configuration
|
|
58
|
+
* @returns AmpedWalletProvider instance
|
|
59
|
+
*/
|
|
60
|
+
static fromBankr(config: {
|
|
61
|
+
bankrApiUrl: string;
|
|
62
|
+
bankrApiKey: string;
|
|
63
|
+
userAddress: Address;
|
|
64
|
+
chainId: string | number;
|
|
65
|
+
rpcUrl?: string;
|
|
66
|
+
policy?: BankrBackendConfig['policy'];
|
|
67
|
+
}): Promise<AmpedWalletProvider>;
|
|
68
|
+
/**
|
|
69
|
+
* Create from generic backend configuration
|
|
70
|
+
*/
|
|
71
|
+
static fromConfig(config: WalletBackendConfig): Promise<AmpedWalletProvider>;
|
|
72
|
+
/**
|
|
73
|
+
* Get the wallet address
|
|
74
|
+
*/
|
|
75
|
+
getWalletAddress(): Promise<Address>;
|
|
76
|
+
/**
|
|
77
|
+
* Send a transaction
|
|
78
|
+
*
|
|
79
|
+
* Converts SDK's EvmRawTransaction format to internal format
|
|
80
|
+
* and delegates to the backend.
|
|
81
|
+
*/
|
|
82
|
+
sendTransaction(evmRawTx: EvmRawTransaction): Promise<Hash>;
|
|
83
|
+
/**
|
|
84
|
+
* Wait for transaction receipt
|
|
85
|
+
*
|
|
86
|
+
* Converts internal receipt format to SDK's EvmRawTransactionReceipt format.
|
|
87
|
+
*/
|
|
88
|
+
waitForTransactionReceipt(txHash: Hash): Promise<EvmRawTransactionReceipt>;
|
|
89
|
+
/**
|
|
90
|
+
* Get the underlying backend
|
|
91
|
+
*/
|
|
92
|
+
getBackend(): IWalletBackend;
|
|
93
|
+
/**
|
|
94
|
+
* Get the backend type
|
|
95
|
+
*/
|
|
96
|
+
getBackendType(): WalletBackendType;
|
|
97
|
+
/**
|
|
98
|
+
* Check if ready for transactions
|
|
99
|
+
*/
|
|
100
|
+
isReady(): Promise<boolean>;
|
|
101
|
+
/**
|
|
102
|
+
* Get chain ID
|
|
103
|
+
*/
|
|
104
|
+
getChainId(): number;
|
|
105
|
+
}
|
|
106
|
+
export type { IAmpedWalletProvider };
|
|
107
|
+
//# sourceMappingURL=AmpedWalletProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmpedWalletProvider.d.ts","sourceRoot":"","sources":["../../../src/wallet/providers/AmpedWalletProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,kBAAkB,EAElB,KAAK,IAAI,EACT,KAAK,OAAO,EACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAEV,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAKjB;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAE7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO;IASP;;;;;OAKG;WACU,cAAc,CAAC,MAAM,EAAE;QAClC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmBhC;;;;;OAKG;WACU,SAAS,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0BhC;;OAEG;WACU,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2BlF;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE;;;;OAIG;IACG,yBAAyB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAkChF;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,cAAc,IAAI,iBAAiB;IAInC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;OAEG;IACH,UAAU,IAAI,MAAM;CAGrB;AAGD,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amped Wallet Provider
|
|
3
|
+
*
|
|
4
|
+
* Custom wallet provider implementing IEvmWalletProvider from @sodax/types.
|
|
5
|
+
*
|
|
6
|
+
* This replaces wallet-sdk-core's EvmWalletProvider with a more flexible
|
|
7
|
+
* implementation that:
|
|
8
|
+
* 1. Supports all chains including LightLink and HyperEVM
|
|
9
|
+
* 2. Has pluggable backends (local keys, Bankr, etc.)
|
|
10
|
+
* 3. Provides a unified interface for the SODAX SDK
|
|
11
|
+
*
|
|
12
|
+
* Architecture:
|
|
13
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
14
|
+
* \u2502 AmpedWalletProvider \u2502
|
|
15
|
+
* \u2502 (implements IEvmWalletProvider) \u2502
|
|
16
|
+
* \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524
|
|
17
|
+
* \u2502 - SDK-compatible interface \u2502
|
|
18
|
+
* \u2502 - Chain resolution (all chains) \u2502
|
|
19
|
+
* \u2502 - Transaction formatting \u2502
|
|
20
|
+
* \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
21
|
+
* \u2502
|
|
22
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
23
|
+
* \u25bc \u25bc
|
|
24
|
+
* \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
|
|
25
|
+
* \u2502 LocalKeyBack. \u2502 \u2502 BankrBackend \u2502
|
|
26
|
+
* \u2502 (evm-wallet) \u2502 \u2502 (API calls) \u2502
|
|
27
|
+
* \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
28
|
+
*/
|
|
29
|
+
import { createPublicClient, http, } from 'viem';
|
|
30
|
+
import { createLocalKeyBackend } from './LocalKeyBackend';
|
|
31
|
+
import { createBankrBackend } from './BankrBackend';
|
|
32
|
+
import { getViemChain, getDefaultRpcUrl, resolveChainId } from './chainConfig';
|
|
33
|
+
/**
|
|
34
|
+
* Amped Wallet Provider
|
|
35
|
+
*
|
|
36
|
+
* A drop-in replacement for wallet-sdk-core's EvmWalletProvider
|
|
37
|
+
* that supports all SODAX chains including LightLink and HyperEVM.
|
|
38
|
+
*/
|
|
39
|
+
export class AmpedWalletProvider {
|
|
40
|
+
publicClient;
|
|
41
|
+
backend;
|
|
42
|
+
chainId;
|
|
43
|
+
constructor(backend, publicClient) {
|
|
44
|
+
this.backend = backend;
|
|
45
|
+
this.publicClient = publicClient;
|
|
46
|
+
this.chainId = backend.getChainId();
|
|
47
|
+
console.log(`[AmpedWalletProvider] Initialized with ${backend.type} backend`);
|
|
48
|
+
console.log(`[AmpedWalletProvider] Chain ID: ${this.chainId}`);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create an AmpedWalletProvider with a local key backend
|
|
52
|
+
*
|
|
53
|
+
* @param config - Configuration matching EvmWalletProvider's PrivateKeyEvmWalletConfig
|
|
54
|
+
* @returns AmpedWalletProvider instance
|
|
55
|
+
*/
|
|
56
|
+
static async fromPrivateKey(config) {
|
|
57
|
+
const chainId = resolveChainId(config.chainId);
|
|
58
|
+
const rpcUrl = config.rpcUrl || getDefaultRpcUrl(chainId);
|
|
59
|
+
const chain = getViemChain(chainId);
|
|
60
|
+
// Create backend
|
|
61
|
+
const backend = await createLocalKeyBackend({
|
|
62
|
+
type: 'localKey',
|
|
63
|
+
privateKey: config.privateKey,
|
|
64
|
+
chainId: config.chainId,
|
|
65
|
+
rpcUrl,
|
|
66
|
+
});
|
|
67
|
+
// Use the backend's public client
|
|
68
|
+
const publicClient = backend.getPublicClient();
|
|
69
|
+
return new AmpedWalletProvider(backend, publicClient);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create an AmpedWalletProvider with a Bankr backend
|
|
73
|
+
*
|
|
74
|
+
* @param config - Bankr backend configuration
|
|
75
|
+
* @returns AmpedWalletProvider instance
|
|
76
|
+
*/
|
|
77
|
+
static async fromBankr(config) {
|
|
78
|
+
const chainId = resolveChainId(config.chainId);
|
|
79
|
+
const rpcUrl = config.rpcUrl || getDefaultRpcUrl(chainId);
|
|
80
|
+
const chain = getViemChain(chainId);
|
|
81
|
+
// Create backend
|
|
82
|
+
const backend = await createBankrBackend({
|
|
83
|
+
type: 'bankr',
|
|
84
|
+
bankrApiUrl: config.bankrApiUrl,
|
|
85
|
+
bankrApiKey: config.bankrApiKey,
|
|
86
|
+
userAddress: config.userAddress,
|
|
87
|
+
chainId: config.chainId,
|
|
88
|
+
rpcUrl,
|
|
89
|
+
policy: config.policy,
|
|
90
|
+
});
|
|
91
|
+
// Create public client (for read operations)
|
|
92
|
+
// Bankr backend doesn't have its own public client
|
|
93
|
+
const publicClient = createPublicClient({
|
|
94
|
+
chain,
|
|
95
|
+
transport: http(rpcUrl),
|
|
96
|
+
}); // Type cast needed due to viem's strict typing
|
|
97
|
+
return new AmpedWalletProvider(backend, publicClient);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create from generic backend configuration
|
|
101
|
+
*/
|
|
102
|
+
static async fromConfig(config) {
|
|
103
|
+
switch (config.type) {
|
|
104
|
+
case 'localKey':
|
|
105
|
+
return AmpedWalletProvider.fromPrivateKey({
|
|
106
|
+
privateKey: config.privateKey,
|
|
107
|
+
chainId: config.chainId,
|
|
108
|
+
rpcUrl: config.rpcUrl,
|
|
109
|
+
});
|
|
110
|
+
case 'bankr':
|
|
111
|
+
const bankrConfig = config;
|
|
112
|
+
return AmpedWalletProvider.fromBankr({
|
|
113
|
+
bankrApiUrl: bankrConfig.bankrApiUrl,
|
|
114
|
+
bankrApiKey: bankrConfig.bankrApiKey,
|
|
115
|
+
userAddress: bankrConfig.userAddress,
|
|
116
|
+
chainId: config.chainId,
|
|
117
|
+
rpcUrl: config.rpcUrl,
|
|
118
|
+
policy: bankrConfig.policy,
|
|
119
|
+
});
|
|
120
|
+
default:
|
|
121
|
+
throw new Error(`Unsupported backend type: ${config.type}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ===== IEvmWalletProvider Implementation =====
|
|
125
|
+
/**
|
|
126
|
+
* Get the wallet address
|
|
127
|
+
*/
|
|
128
|
+
async getWalletAddress() {
|
|
129
|
+
return this.backend.getAddress();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Send a transaction
|
|
133
|
+
*
|
|
134
|
+
* Converts SDK's EvmRawTransaction format to internal format
|
|
135
|
+
* and delegates to the backend.
|
|
136
|
+
*/
|
|
137
|
+
async sendTransaction(evmRawTx) {
|
|
138
|
+
console.log(`[AmpedWalletProvider] sendTransaction`);
|
|
139
|
+
console.log(`[AmpedWalletProvider] From: ${evmRawTx.from}`);
|
|
140
|
+
console.log(`[AmpedWalletProvider] To: ${evmRawTx.to}`);
|
|
141
|
+
console.log(`[AmpedWalletProvider] Value: ${evmRawTx.value}`);
|
|
142
|
+
return this.backend.sendTransaction({
|
|
143
|
+
to: evmRawTx.to,
|
|
144
|
+
value: evmRawTx.value,
|
|
145
|
+
data: evmRawTx.data,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Wait for transaction receipt
|
|
150
|
+
*
|
|
151
|
+
* Converts internal receipt format to SDK's EvmRawTransactionReceipt format.
|
|
152
|
+
*/
|
|
153
|
+
async waitForTransactionReceipt(txHash) {
|
|
154
|
+
console.log(`[AmpedWalletProvider] waitForTransactionReceipt: ${txHash}`);
|
|
155
|
+
const receipt = await this.backend.waitForTransaction(txHash);
|
|
156
|
+
// Convert to SDK format
|
|
157
|
+
return {
|
|
158
|
+
transactionHash: receipt.transactionHash,
|
|
159
|
+
transactionIndex: '0x0', // Not tracked in our simplified receipt
|
|
160
|
+
blockHash: receipt.blockHash,
|
|
161
|
+
blockNumber: `0x${receipt.blockNumber.toString(16)}`,
|
|
162
|
+
from: receipt.from,
|
|
163
|
+
to: receipt.to,
|
|
164
|
+
cumulativeGasUsed: '0x0', // Not tracked
|
|
165
|
+
gasUsed: `0x${receipt.gasUsed.toString(16)}`,
|
|
166
|
+
contractAddress: null, // Would need to check if this was a deployment
|
|
167
|
+
logs: receipt.logs.map(log => ({
|
|
168
|
+
address: log.address,
|
|
169
|
+
topics: log.topics,
|
|
170
|
+
data: log.data,
|
|
171
|
+
blockHash: receipt.blockHash,
|
|
172
|
+
blockNumber: `0x${receipt.blockNumber.toString(16)}`,
|
|
173
|
+
logIndex: '0x0',
|
|
174
|
+
transactionHash: receipt.transactionHash,
|
|
175
|
+
transactionIndex: '0x0',
|
|
176
|
+
removed: false,
|
|
177
|
+
})),
|
|
178
|
+
logsBloom: '0x',
|
|
179
|
+
status: receipt.status === 'success' ? '0x1' : '0x0',
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
// ===== IAmpedWalletProvider Extensions =====
|
|
183
|
+
/**
|
|
184
|
+
* Get the underlying backend
|
|
185
|
+
*/
|
|
186
|
+
getBackend() {
|
|
187
|
+
return this.backend;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get the backend type
|
|
191
|
+
*/
|
|
192
|
+
getBackendType() {
|
|
193
|
+
return this.backend.type;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Check if ready for transactions
|
|
197
|
+
*/
|
|
198
|
+
async isReady() {
|
|
199
|
+
return this.backend.isReady();
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get chain ID
|
|
203
|
+
*/
|
|
204
|
+
getChainId() {
|
|
205
|
+
return this.chainId;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=AmpedWalletProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmpedWalletProvider.js","sourceRoot":"","sources":["../../../src/wallet/providers/AmpedWalletProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bankr Backend - Transaction Execution Layer
|
|
3
|
+
*
|
|
4
|
+
* CRITICAL: This backend is for EXECUTION ONLY, not routing.
|
|
5
|
+
*
|
|
6
|
+
* Architecture:
|
|
7
|
+
* SODAX SDK (routing) → BankrBackend (execution) → Blockchain
|
|
8
|
+
*
|
|
9
|
+
* What Bankr DOES:
|
|
10
|
+
* ✓ Signs the pre-computed transaction from SODAX
|
|
11
|
+
* ✓ Submits to blockchain via Bankr API
|
|
12
|
+
* ✓ Returns transaction hash
|
|
13
|
+
*
|
|
14
|
+
* What Bankr does NOT do:
|
|
15
|
+
* ✗ NO routing decisions
|
|
16
|
+
* ✗ NO DeFi protocol selection
|
|
17
|
+
* ✗ NO swap optimization
|
|
18
|
+
* ✗ NO interpretation of intent
|
|
19
|
+
*
|
|
20
|
+
* The SODAX SDK always handles routing logic. Bankr receives the exact
|
|
21
|
+
* transaction data (to, data, value, chainId) and submits it verbatim.
|
|
22
|
+
*
|
|
23
|
+
* @see SKILL.md "Transaction Execution Architecture" section
|
|
24
|
+
*/
|
|
25
|
+
import type { Hash, Address } from 'viem';
|
|
26
|
+
import type { IWalletBackend, BankrBackendConfig, TransactionRequest, TransactionReceipt } from './types';
|
|
27
|
+
/**
|
|
28
|
+
* Bankr execution backend
|
|
29
|
+
*
|
|
30
|
+
* Delegates transaction execution to Bankr's Agent API.
|
|
31
|
+
* The agent never has direct access to private keys.
|
|
32
|
+
*/
|
|
33
|
+
export declare class BankrBackend implements IWalletBackend {
|
|
34
|
+
readonly type: "bankr";
|
|
35
|
+
private readonly apiUrl;
|
|
36
|
+
private readonly apiKey;
|
|
37
|
+
private readonly userAddress;
|
|
38
|
+
private readonly chainId;
|
|
39
|
+
private readonly policy?;
|
|
40
|
+
private readonly pollIntervalMs;
|
|
41
|
+
private readonly maxPollAttempts;
|
|
42
|
+
constructor(config: BankrBackendConfig);
|
|
43
|
+
/**
|
|
44
|
+
* Get the wallet address (Bankr-provisioned)
|
|
45
|
+
*/
|
|
46
|
+
getAddress(): Promise<Address>;
|
|
47
|
+
/**
|
|
48
|
+
* Send a transaction via Bankr Agent API
|
|
49
|
+
*
|
|
50
|
+
* Formats the transaction as a natural language prompt and submits
|
|
51
|
+
* to Bankr's async job system.
|
|
52
|
+
*/
|
|
53
|
+
sendTransaction(tx: TransactionRequest): Promise<Hash>;
|
|
54
|
+
/**
|
|
55
|
+
* Wait for transaction confirmation
|
|
56
|
+
*
|
|
57
|
+
* Note: With Bankr, the transaction is already confirmed when we get
|
|
58
|
+
* the response. This method exists for interface compatibility but
|
|
59
|
+
* returns a minimal receipt.
|
|
60
|
+
*/
|
|
61
|
+
waitForTransaction(txHash: Hash): Promise<TransactionReceipt>;
|
|
62
|
+
/**
|
|
63
|
+
* Check if backend is ready
|
|
64
|
+
*
|
|
65
|
+
* Verifies Bankr API connectivity with a simple balance query.
|
|
66
|
+
*/
|
|
67
|
+
isReady(): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Get the chain ID
|
|
70
|
+
*/
|
|
71
|
+
getChainId(): number;
|
|
72
|
+
/**
|
|
73
|
+
* Submit a job to Bankr Agent API
|
|
74
|
+
*/
|
|
75
|
+
private submitJob;
|
|
76
|
+
/**
|
|
77
|
+
* Poll for job completion
|
|
78
|
+
*/
|
|
79
|
+
private pollJobUntilComplete;
|
|
80
|
+
/**
|
|
81
|
+
* Get job status from Bankr API
|
|
82
|
+
*/
|
|
83
|
+
private getJobStatus;
|
|
84
|
+
/**
|
|
85
|
+
* Extract transaction hash from Bankr response
|
|
86
|
+
*
|
|
87
|
+
* The response may contain the tx hash in various formats:
|
|
88
|
+
* - In richData array
|
|
89
|
+
* - In the response text (e.g., "Transaction hash: 0x...")
|
|
90
|
+
*/
|
|
91
|
+
private extractTransactionHash;
|
|
92
|
+
/**
|
|
93
|
+
* Validate transaction against policy
|
|
94
|
+
*/
|
|
95
|
+
private validatePolicy;
|
|
96
|
+
/**
|
|
97
|
+
* Sleep helper
|
|
98
|
+
*/
|
|
99
|
+
private sleep;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a BankrBackend from configuration
|
|
103
|
+
*/
|
|
104
|
+
export declare function createBankrBackend(config: BankrBackendConfig): Promise<BankrBackend>;
|
|
105
|
+
//# sourceMappingURL=BankrBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankrBackend.d.ts","sourceRoot":"","sources":["../../../src/wallet/providers/BankrBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAqDjB;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,cAAc;IACjD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA+B;IAGvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAO;gBAE3B,MAAM,EAAE,kBAAkB;IAYtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;;;;OAKG;IACG,eAAe,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C5D;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBnE;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBjC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;YACW,SAAS;IAwBvB;;OAEG;YACW,oBAAoB;IAwClC;;OAEG;YACW,YAAY;IAgB1B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;OAEG;YACW,cAAc;IAoB5B;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAU1F"}
|