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.
Files changed (189) hide show
  1. package/README.md +757 -0
  2. package/dist/__mocks__/@sodax/sdk.d.ts +24 -0
  3. package/dist/__mocks__/@sodax/sdk.d.ts.map +1 -0
  4. package/dist/__mocks__/@sodax/sdk.js +24 -0
  5. package/dist/__mocks__/@sodax/sdk.js.map +1 -0
  6. package/dist/__tests__/setup.d.ts +4 -0
  7. package/dist/__tests__/setup.d.ts.map +1 -0
  8. package/dist/__tests__/setup.js +32 -0
  9. package/dist/__tests__/setup.js.map +1 -0
  10. package/dist/index.d.ts +66 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +281 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/policy/policyEngine.d.ts +119 -0
  15. package/dist/policy/policyEngine.d.ts.map +1 -0
  16. package/dist/policy/policyEngine.js +322 -0
  17. package/dist/policy/policyEngine.js.map +1 -0
  18. package/dist/providers/spokeProviderFactory.d.ts +38 -0
  19. package/dist/providers/spokeProviderFactory.d.ts.map +1 -0
  20. package/dist/providers/spokeProviderFactory.js +212 -0
  21. package/dist/providers/spokeProviderFactory.js.map +1 -0
  22. package/dist/sodax/client.d.ts +34 -0
  23. package/dist/sodax/client.d.ts.map +1 -0
  24. package/dist/sodax/client.js +99 -0
  25. package/dist/sodax/client.js.map +1 -0
  26. package/dist/tools/bridge.d.ts +105 -0
  27. package/dist/tools/bridge.d.ts.map +1 -0
  28. package/dist/tools/bridge.js +334 -0
  29. package/dist/tools/bridge.js.map +1 -0
  30. package/dist/tools/discovery.d.ts +141 -0
  31. package/dist/tools/discovery.d.ts.map +1 -0
  32. package/dist/tools/discovery.js +777 -0
  33. package/dist/tools/discovery.js.map +1 -0
  34. package/dist/tools/moneyMarket.d.ts +227 -0
  35. package/dist/tools/moneyMarket.d.ts.map +1 -0
  36. package/dist/tools/moneyMarket.js +867 -0
  37. package/dist/tools/moneyMarket.js.map +1 -0
  38. package/dist/tools/portfolio.d.ts +43 -0
  39. package/dist/tools/portfolio.d.ts.map +1 -0
  40. package/dist/tools/portfolio.js +538 -0
  41. package/dist/tools/portfolio.js.map +1 -0
  42. package/dist/tools/swap.d.ts +71 -0
  43. package/dist/tools/swap.d.ts.map +1 -0
  44. package/dist/tools/swap.js +762 -0
  45. package/dist/tools/swap.js.map +1 -0
  46. package/dist/tools/walletManagement.d.ts +80 -0
  47. package/dist/tools/walletManagement.d.ts.map +1 -0
  48. package/dist/tools/walletManagement.js +289 -0
  49. package/dist/tools/walletManagement.js.map +1 -0
  50. package/dist/types.d.ts +205 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +5 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/utils/errorUtils.d.ts +2 -0
  55. package/dist/utils/errorUtils.d.ts.map +1 -0
  56. package/dist/utils/errorUtils.js +19 -0
  57. package/dist/utils/errorUtils.js.map +1 -0
  58. package/dist/utils/errors.d.ts +144 -0
  59. package/dist/utils/errors.d.ts.map +1 -0
  60. package/dist/utils/errors.js +310 -0
  61. package/dist/utils/errors.js.map +1 -0
  62. package/dist/utils/positionAggregator.d.ts +122 -0
  63. package/dist/utils/positionAggregator.d.ts.map +1 -0
  64. package/dist/utils/positionAggregator.js +377 -0
  65. package/dist/utils/positionAggregator.js.map +1 -0
  66. package/dist/utils/priceService.d.ts +45 -0
  67. package/dist/utils/priceService.d.ts.map +1 -0
  68. package/dist/utils/priceService.js +108 -0
  69. package/dist/utils/priceService.js.map +1 -0
  70. package/dist/utils/sodaxApi.d.ts +92 -0
  71. package/dist/utils/sodaxApi.d.ts.map +1 -0
  72. package/dist/utils/sodaxApi.js +143 -0
  73. package/dist/utils/sodaxApi.js.map +1 -0
  74. package/dist/utils/tokenResolver.d.ts +54 -0
  75. package/dist/utils/tokenResolver.d.ts.map +1 -0
  76. package/dist/utils/tokenResolver.js +252 -0
  77. package/dist/utils/tokenResolver.js.map +1 -0
  78. package/dist/wallet/backendConfig.d.ts +37 -0
  79. package/dist/wallet/backendConfig.d.ts.map +1 -0
  80. package/dist/wallet/backendConfig.js +125 -0
  81. package/dist/wallet/backendConfig.js.map +1 -0
  82. package/dist/wallet/backends/BankrBackend.d.ts +73 -0
  83. package/dist/wallet/backends/BankrBackend.d.ts.map +1 -0
  84. package/dist/wallet/backends/BankrBackend.js +315 -0
  85. package/dist/wallet/backends/BankrBackend.js.map +1 -0
  86. package/dist/wallet/backends/BankrWalletProvider.d.ts +75 -0
  87. package/dist/wallet/backends/BankrWalletProvider.d.ts.map +1 -0
  88. package/dist/wallet/backends/BankrWalletProvider.js +243 -0
  89. package/dist/wallet/backends/BankrWalletProvider.js.map +1 -0
  90. package/dist/wallet/backends/EnvBackend.d.ts +50 -0
  91. package/dist/wallet/backends/EnvBackend.d.ts.map +1 -0
  92. package/dist/wallet/backends/EnvBackend.js +114 -0
  93. package/dist/wallet/backends/EnvBackend.js.map +1 -0
  94. package/dist/wallet/backends/EvmWalletSkillBackend.d.ts +40 -0
  95. package/dist/wallet/backends/EvmWalletSkillBackend.d.ts.map +1 -0
  96. package/dist/wallet/backends/EvmWalletSkillBackend.js +81 -0
  97. package/dist/wallet/backends/EvmWalletSkillBackend.js.map +1 -0
  98. package/dist/wallet/backends/index.d.ts +10 -0
  99. package/dist/wallet/backends/index.d.ts.map +1 -0
  100. package/dist/wallet/backends/index.js +10 -0
  101. package/dist/wallet/backends/index.js.map +1 -0
  102. package/dist/wallet/index.d.ts +9 -0
  103. package/dist/wallet/index.d.ts.map +1 -0
  104. package/dist/wallet/index.js +12 -0
  105. package/dist/wallet/index.js.map +1 -0
  106. package/dist/wallet/providers/AmpedWalletProvider.d.ts +107 -0
  107. package/dist/wallet/providers/AmpedWalletProvider.d.ts.map +1 -0
  108. package/dist/wallet/providers/AmpedWalletProvider.js +208 -0
  109. package/dist/wallet/providers/AmpedWalletProvider.js.map +1 -0
  110. package/dist/wallet/providers/BankrBackend.d.ts +105 -0
  111. package/dist/wallet/providers/BankrBackend.d.ts.map +1 -0
  112. package/dist/wallet/providers/BankrBackend.js +327 -0
  113. package/dist/wallet/providers/BankrBackend.js.map +1 -0
  114. package/dist/wallet/providers/LocalKeyBackend.d.ts +62 -0
  115. package/dist/wallet/providers/LocalKeyBackend.d.ts.map +1 -0
  116. package/dist/wallet/providers/LocalKeyBackend.js +152 -0
  117. package/dist/wallet/providers/LocalKeyBackend.js.map +1 -0
  118. package/dist/wallet/providers/chainConfig.d.ts +209 -0
  119. package/dist/wallet/providers/chainConfig.d.ts.map +1 -0
  120. package/dist/wallet/providers/chainConfig.js +175 -0
  121. package/dist/wallet/providers/chainConfig.js.map +1 -0
  122. package/dist/wallet/providers/index.d.ts +30 -0
  123. package/dist/wallet/providers/index.d.ts.map +1 -0
  124. package/dist/wallet/providers/index.js +32 -0
  125. package/dist/wallet/providers/index.js.map +1 -0
  126. package/dist/wallet/providers/types.d.ts +156 -0
  127. package/dist/wallet/providers/types.d.ts.map +1 -0
  128. package/dist/wallet/providers/types.js +11 -0
  129. package/dist/wallet/providers/types.js.map +1 -0
  130. package/dist/wallet/skillWalletAdapter.d.ts +96 -0
  131. package/dist/wallet/skillWalletAdapter.d.ts.map +1 -0
  132. package/dist/wallet/skillWalletAdapter.js +280 -0
  133. package/dist/wallet/skillWalletAdapter.js.map +1 -0
  134. package/dist/wallet/types.d.ts +134 -0
  135. package/dist/wallet/types.d.ts.map +1 -0
  136. package/dist/wallet/types.js +138 -0
  137. package/dist/wallet/types.js.map +1 -0
  138. package/dist/wallet/walletManager.d.ts +111 -0
  139. package/dist/wallet/walletManager.d.ts.map +1 -0
  140. package/dist/wallet/walletManager.js +476 -0
  141. package/dist/wallet/walletManager.js.map +1 -0
  142. package/dist/wallet/walletRegistry.d.ts +95 -0
  143. package/dist/wallet/walletRegistry.d.ts.map +1 -0
  144. package/dist/wallet/walletRegistry.js +184 -0
  145. package/dist/wallet/walletRegistry.js.map +1 -0
  146. package/index.js +2 -0
  147. package/openclaw.plugin.json +37 -0
  148. package/package.json +69 -0
  149. package/src/__mocks__/@sodax/sdk.ts +28 -0
  150. package/src/__tests__/errors.test.ts +238 -0
  151. package/src/__tests__/policyEngine.test.ts +354 -0
  152. package/src/__tests__/positionAggregator.test.ts +271 -0
  153. package/src/__tests__/setup.ts +35 -0
  154. package/src/__tests__/sodaxApi.test.ts +203 -0
  155. package/src/__tests__/walletRegistry.test.ts +155 -0
  156. package/src/index.ts +376 -0
  157. package/src/policy/policyEngine.ts +389 -0
  158. package/src/providers/spokeProviderFactory.ts +283 -0
  159. package/src/sodax/client.ts +113 -0
  160. package/src/tools/bridge.ts +425 -0
  161. package/src/tools/discovery.ts +989 -0
  162. package/src/tools/moneyMarket.ts +1265 -0
  163. package/src/tools/portfolio.ts +697 -0
  164. package/src/tools/swap.ts +926 -0
  165. package/src/tools/walletManagement.ts +359 -0
  166. package/src/types.ts +228 -0
  167. package/src/utils/errorUtils.ts +16 -0
  168. package/src/utils/errors.ts +396 -0
  169. package/src/utils/positionAggregator.ts +559 -0
  170. package/src/utils/priceService.ts +153 -0
  171. package/src/utils/sodaxApi.ts +261 -0
  172. package/src/utils/tokenResolver.ts +286 -0
  173. package/src/wallet/backendConfig.ts +151 -0
  174. package/src/wallet/backends/BankrBackend.ts +399 -0
  175. package/src/wallet/backends/BankrWalletProvider.ts +329 -0
  176. package/src/wallet/backends/EnvBackend.ts +149 -0
  177. package/src/wallet/backends/EvmWalletSkillBackend.ts +110 -0
  178. package/src/wallet/backends/index.ts +10 -0
  179. package/src/wallet/index.ts +14 -0
  180. package/src/wallet/providers/AmpedWalletProvider.ts +267 -0
  181. package/src/wallet/providers/BankrBackend.ts +407 -0
  182. package/src/wallet/providers/LocalKeyBackend.ts +184 -0
  183. package/src/wallet/providers/chainConfig.ts +194 -0
  184. package/src/wallet/providers/index.ts +62 -0
  185. package/src/wallet/providers/types.ts +186 -0
  186. package/src/wallet/skillWalletAdapter.ts +335 -0
  187. package/src/wallet/types.ts +248 -0
  188. package/src/wallet/walletManager.ts +561 -0
  189. package/src/wallet/walletRegistry.ts +216 -0
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Chain Configuration for Amped Wallet Provider
3
+ *
4
+ * Complete chain configuration for all SODAX-supported EVM chains.
5
+ *
6
+ * Note: We maintain our own chain definitions to avoid viem version
7
+ * mismatches with @sodax/wallet-sdk-core. The SDK's getEvmViemChain()
8
+ * is used as a fallback for future chain additions.
9
+ */
10
+ import { type Chain } from 'viem';
11
+ /**
12
+ * Chain ID constants matching @sodax/types
13
+ */
14
+ export declare const CHAIN_IDS: {
15
+ readonly ETHEREUM: 1;
16
+ readonly ARBITRUM: 42161;
17
+ readonly OPTIMISM: 10;
18
+ readonly BASE: 8453;
19
+ readonly POLYGON: 137;
20
+ readonly BSC: 56;
21
+ readonly AVALANCHE: 43114;
22
+ readonly SONIC: 146;
23
+ readonly LIGHTLINK: 1890;
24
+ readonly HYPEREVM: 999;
25
+ readonly KAIA: 8217;
26
+ };
27
+ /**
28
+ * SDK chain ID format mapping (e.g., 'ethereum', '0x2105.base')
29
+ */
30
+ export declare const SDK_CHAIN_ID_MAP: Record<string, number>;
31
+ /**
32
+ * HyperEVM chain definition
33
+ * Matches @sodax/wallet-sdk-core hyper definition
34
+ */
35
+ export declare const hyper: {
36
+ blockExplorers: {
37
+ readonly default: {
38
+ readonly name: "HyperEVMScan";
39
+ readonly url: "https://hyperevmscan.io/";
40
+ };
41
+ };
42
+ blockTime?: number | undefined;
43
+ contracts: {
44
+ readonly multicall3: {
45
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
46
+ readonly blockCreated: 13051;
47
+ };
48
+ };
49
+ ensTlds?: readonly string[] | undefined;
50
+ id: 999;
51
+ name: "HyperEVM";
52
+ nativeCurrency: {
53
+ readonly decimals: 18;
54
+ readonly name: "HYPE";
55
+ readonly symbol: "HYPE";
56
+ };
57
+ experimental_preconfirmationTime?: number | undefined;
58
+ rpcUrls: {
59
+ readonly default: {
60
+ readonly http: readonly ["https://rpc.hyperliquid.xyz/evm"];
61
+ };
62
+ };
63
+ sourceId?: number | undefined;
64
+ testnet?: boolean | undefined;
65
+ custom?: Record<string, unknown>;
66
+ extendSchema?: Record<string, unknown>;
67
+ fees?: import("viem").ChainFees<undefined>;
68
+ formatters?: undefined;
69
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
70
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
71
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
72
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
73
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
74
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
75
+ }] | undefined;
76
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable>;
77
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
78
+ extend: <const extended_1 extends Record<string, unknown>>(extended: extended_1) => import("viem").Assign<import("viem").Assign<Chain<undefined>, {
79
+ readonly id: 999;
80
+ readonly name: "HyperEVM";
81
+ readonly nativeCurrency: {
82
+ readonly decimals: 18;
83
+ readonly name: "HYPE";
84
+ readonly symbol: "HYPE";
85
+ };
86
+ readonly rpcUrls: {
87
+ readonly default: {
88
+ readonly http: readonly ["https://rpc.hyperliquid.xyz/evm"];
89
+ };
90
+ };
91
+ readonly blockExplorers: {
92
+ readonly default: {
93
+ readonly name: "HyperEVMScan";
94
+ readonly url: "https://hyperevmscan.io/";
95
+ };
96
+ };
97
+ readonly contracts: {
98
+ readonly multicall3: {
99
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
100
+ readonly blockCreated: 13051;
101
+ };
102
+ };
103
+ }>, extended_1>;
104
+ };
105
+ /**
106
+ * Kaia chain definition
107
+ */
108
+ export declare const kaia: {
109
+ blockExplorers: {
110
+ readonly default: {
111
+ readonly name: "KaiaScan";
112
+ readonly url: "https://kaiascan.io/";
113
+ };
114
+ };
115
+ blockTime?: number | undefined;
116
+ contracts?: import("viem").Prettify<{
117
+ [key: string]: import("viem").ChainContract | {
118
+ [sourceId: number]: import("viem").ChainContract | undefined;
119
+ } | undefined;
120
+ } & {
121
+ ensRegistry?: import("viem").ChainContract | undefined;
122
+ ensUniversalResolver?: import("viem").ChainContract | undefined;
123
+ multicall3?: import("viem").ChainContract | undefined;
124
+ erc6492Verifier?: import("viem").ChainContract | undefined;
125
+ }> | undefined;
126
+ ensTlds?: readonly string[] | undefined;
127
+ id: 8217;
128
+ name: "Kaia";
129
+ nativeCurrency: {
130
+ readonly decimals: 18;
131
+ readonly name: "KAIA";
132
+ readonly symbol: "KAIA";
133
+ };
134
+ experimental_preconfirmationTime?: number | undefined;
135
+ rpcUrls: {
136
+ readonly default: {
137
+ readonly http: readonly ["https://public-en.node.kaia.io"];
138
+ };
139
+ };
140
+ sourceId?: number | undefined;
141
+ testnet?: boolean | undefined;
142
+ custom?: Record<string, unknown>;
143
+ extendSchema?: Record<string, unknown>;
144
+ fees?: import("viem").ChainFees<undefined>;
145
+ formatters?: undefined;
146
+ prepareTransactionRequest?: ((args: import("viem").PrepareTransactionRequestParameters, options: {
147
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
148
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | [fn: ((args: import("viem").PrepareTransactionRequestParameters, options: {
149
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
150
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>) | undefined, options: {
151
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
152
+ }] | undefined;
153
+ serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable>;
154
+ verifyHash?: ((client: import("viem").Client, parameters: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>) | undefined;
155
+ extend: <const extended_1 extends Record<string, unknown>>(extended: extended_1) => import("viem").Assign<import("viem").Assign<Chain<undefined>, {
156
+ readonly id: 8217;
157
+ readonly name: "Kaia";
158
+ readonly nativeCurrency: {
159
+ readonly decimals: 18;
160
+ readonly name: "KAIA";
161
+ readonly symbol: "KAIA";
162
+ };
163
+ readonly rpcUrls: {
164
+ readonly default: {
165
+ readonly http: readonly ["https://public-en.node.kaia.io"];
166
+ };
167
+ };
168
+ readonly blockExplorers: {
169
+ readonly default: {
170
+ readonly name: "KaiaScan";
171
+ readonly url: "https://kaiascan.io/";
172
+ };
173
+ };
174
+ }>, extended_1>;
175
+ };
176
+ /**
177
+ * Default RPC URLs for all supported chains
178
+ */
179
+ /**
180
+ * FALLBACK RPC URLs for all supported chains
181
+ * Primary RPCs should come from evm-wallet-skill (chains.js)
182
+ * @see https://github.com/amped-finance/evm-wallet-skill
183
+ */
184
+ export declare const DEFAULT_RPC_URLS: Record<number, string>;
185
+ /**
186
+ * Resolve SDK chain ID format to numeric chain ID
187
+ */
188
+ export declare function resolveChainId(sdkChainId: string | number): number;
189
+ /**
190
+ * Get viem Chain configuration for a chain ID
191
+ */
192
+ export declare function getViemChain(chainId: string | number): Chain;
193
+ /**
194
+ * Get default RPC URL for a chain
195
+ */
196
+ export declare function getDefaultRpcUrl(chainId: string | number): string;
197
+ /**
198
+ * Check if a chain is supported
199
+ */
200
+ export declare function isChainSupported(chainId: string | number): boolean;
201
+ /**
202
+ * Get all supported chain IDs
203
+ */
204
+ export declare function getSupportedChainIds(): number[];
205
+ /**
206
+ * Get chain name
207
+ */
208
+ export declare function getChainName(chainId: string | number): string;
209
+ //# sourceMappingURL=chainConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainConfig.d.ts","sourceRoot":"","sources":["../../../src/wallet/providers/chainConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAa/C;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;mBAdhB,CAAD;4BAEE,CAAC;kBACY,CAAC;uBAEM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAerB,CAAC;AAmBH;;GAEG;AACH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYnD,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAelE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAK5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAOlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Chain Configuration for Amped Wallet Provider
3
+ *
4
+ * Complete chain configuration for all SODAX-supported EVM chains.
5
+ *
6
+ * Note: We maintain our own chain definitions to avoid viem version
7
+ * mismatches with @sodax/wallet-sdk-core. The SDK's getEvmViemChain()
8
+ * is used as a fallback for future chain additions.
9
+ */
10
+ import { defineChain } from 'viem';
11
+ import { mainnet, arbitrum, optimism, base, polygon, bsc, avalanche, sonic, lightlinkPhoenix, } from 'viem/chains';
12
+ /**
13
+ * Chain ID constants matching @sodax/types
14
+ */
15
+ export const CHAIN_IDS = {
16
+ ETHEREUM: 1,
17
+ ARBITRUM: 42161,
18
+ OPTIMISM: 10,
19
+ BASE: 8453,
20
+ POLYGON: 137,
21
+ BSC: 56,
22
+ AVALANCHE: 43114,
23
+ SONIC: 146,
24
+ LIGHTLINK: 1890,
25
+ HYPEREVM: 999,
26
+ KAIA: 8217,
27
+ };
28
+ /**
29
+ * SDK chain ID format mapping (e.g., 'ethereum', '0x2105.base')
30
+ */
31
+ export const SDK_CHAIN_ID_MAP = {
32
+ 'ethereum': CHAIN_IDS.ETHEREUM,
33
+ 'arbitrum': CHAIN_IDS.ARBITRUM,
34
+ '0xa4b1.arbitrum': CHAIN_IDS.ARBITRUM,
35
+ 'optimism': CHAIN_IDS.OPTIMISM,
36
+ '0xa.optimism': CHAIN_IDS.OPTIMISM,
37
+ 'base': CHAIN_IDS.BASE,
38
+ '0x2105.base': CHAIN_IDS.BASE,
39
+ 'polygon': CHAIN_IDS.POLYGON,
40
+ '0x89.polygon': CHAIN_IDS.POLYGON,
41
+ 'bsc': CHAIN_IDS.BSC,
42
+ '0x38.bsc': CHAIN_IDS.BSC,
43
+ 'avalanche': CHAIN_IDS.AVALANCHE,
44
+ 'avax': CHAIN_IDS.AVALANCHE,
45
+ '0xa86a.avax': CHAIN_IDS.AVALANCHE,
46
+ 'sonic': CHAIN_IDS.SONIC,
47
+ 'lightlink': CHAIN_IDS.LIGHTLINK,
48
+ 'hyperevm': CHAIN_IDS.HYPEREVM,
49
+ 'hyper': CHAIN_IDS.HYPEREVM,
50
+ 'kaia': CHAIN_IDS.KAIA,
51
+ '0x2019.kaia': CHAIN_IDS.KAIA,
52
+ };
53
+ /**
54
+ * HyperEVM chain definition
55
+ * Matches @sodax/wallet-sdk-core hyper definition
56
+ */
57
+ export const hyper = defineChain({
58
+ id: CHAIN_IDS.HYPEREVM,
59
+ name: 'HyperEVM',
60
+ nativeCurrency: { decimals: 18, name: 'HYPE', symbol: 'HYPE' },
61
+ rpcUrls: { default: { http: ['https://rpc.hyperliquid.xyz/evm'] } },
62
+ blockExplorers: { default: { name: 'HyperEVMScan', url: 'https://hyperevmscan.io/' } },
63
+ contracts: { multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11', blockCreated: 13051 } },
64
+ });
65
+ /**
66
+ * Kaia chain definition
67
+ */
68
+ export const kaia = defineChain({
69
+ id: CHAIN_IDS.KAIA,
70
+ name: 'Kaia',
71
+ nativeCurrency: { decimals: 18, name: 'KAIA', symbol: 'KAIA' },
72
+ rpcUrls: { default: { http: ['https://public-en.node.kaia.io'] } },
73
+ blockExplorers: { default: { name: 'KaiaScan', url: 'https://kaiascan.io/' } },
74
+ });
75
+ /**
76
+ * Chain configuration by numeric ID
77
+ */
78
+ const CHAIN_CONFIG = {
79
+ [CHAIN_IDS.ETHEREUM]: mainnet,
80
+ [CHAIN_IDS.ARBITRUM]: arbitrum,
81
+ [CHAIN_IDS.OPTIMISM]: optimism,
82
+ [CHAIN_IDS.BASE]: base,
83
+ [CHAIN_IDS.POLYGON]: polygon,
84
+ [CHAIN_IDS.BSC]: bsc,
85
+ [CHAIN_IDS.AVALANCHE]: avalanche,
86
+ [CHAIN_IDS.SONIC]: sonic,
87
+ [CHAIN_IDS.LIGHTLINK]: lightlinkPhoenix,
88
+ [CHAIN_IDS.HYPEREVM]: hyper,
89
+ [CHAIN_IDS.KAIA]: kaia,
90
+ };
91
+ /**
92
+ * Default RPC URLs for all supported chains
93
+ */
94
+ /**
95
+ * FALLBACK RPC URLs for all supported chains
96
+ * Primary RPCs should come from evm-wallet-skill (chains.js)
97
+ * @see https://github.com/amped-finance/evm-wallet-skill
98
+ */
99
+ export const DEFAULT_RPC_URLS = {
100
+ [CHAIN_IDS.ETHEREUM]: 'https://ethereum.publicnode.com',
101
+ [CHAIN_IDS.ARBITRUM]: 'https://arb1.arbitrum.io/rpc',
102
+ [CHAIN_IDS.OPTIMISM]: 'https://mainnet.optimism.io',
103
+ [CHAIN_IDS.BASE]: 'https://mainnet.base.org',
104
+ [CHAIN_IDS.POLYGON]: 'https://polygon-bor-rpc.publicnode.com',
105
+ [CHAIN_IDS.BSC]: 'https://bsc-dataseed.binance.org',
106
+ [CHAIN_IDS.AVALANCHE]: 'https://api.avax.network/ext/bc/C/rpc',
107
+ [CHAIN_IDS.SONIC]: 'https://rpc.soniclabs.com',
108
+ [CHAIN_IDS.LIGHTLINK]: 'https://replicator.phoenix.lightlink.io/rpc/v1',
109
+ [CHAIN_IDS.HYPEREVM]: 'https://rpc.hyperliquid.xyz/evm',
110
+ [CHAIN_IDS.KAIA]: 'https://public-en.node.kaia.io',
111
+ };
112
+ /**
113
+ * Resolve SDK chain ID format to numeric chain ID
114
+ */
115
+ export function resolveChainId(sdkChainId) {
116
+ if (typeof sdkChainId === 'number')
117
+ return sdkChainId;
118
+ const lower = sdkChainId.toLowerCase();
119
+ if (SDK_CHAIN_ID_MAP[lower] !== undefined)
120
+ return SDK_CHAIN_ID_MAP[lower];
121
+ if (lower.startsWith('0x')) {
122
+ const parsed = parseInt(lower, 16);
123
+ if (!isNaN(parsed))
124
+ return parsed;
125
+ }
126
+ const parsed = parseInt(sdkChainId, 10);
127
+ if (!isNaN(parsed))
128
+ return parsed;
129
+ throw new Error(`Unable to resolve chain ID: ${sdkChainId}`);
130
+ }
131
+ /**
132
+ * Get viem Chain configuration for a chain ID
133
+ */
134
+ export function getViemChain(chainId) {
135
+ const numericId = resolveChainId(chainId);
136
+ const chain = CHAIN_CONFIG[numericId];
137
+ if (!chain)
138
+ throw new Error(`Unsupported chain ID: ${chainId} (resolved to ${numericId})`);
139
+ return chain;
140
+ }
141
+ /**
142
+ * Get default RPC URL for a chain
143
+ */
144
+ export function getDefaultRpcUrl(chainId) {
145
+ const numericId = resolveChainId(chainId);
146
+ const rpcUrl = DEFAULT_RPC_URLS[numericId];
147
+ if (!rpcUrl)
148
+ throw new Error(`No default RPC URL for chain ID: ${chainId}`);
149
+ return rpcUrl;
150
+ }
151
+ /**
152
+ * Check if a chain is supported
153
+ */
154
+ export function isChainSupported(chainId) {
155
+ try {
156
+ getViemChain(chainId);
157
+ return true;
158
+ }
159
+ catch {
160
+ return false;
161
+ }
162
+ }
163
+ /**
164
+ * Get all supported chain IDs
165
+ */
166
+ export function getSupportedChainIds() {
167
+ return Object.keys(CHAIN_CONFIG).map(Number);
168
+ }
169
+ /**
170
+ * Get chain name
171
+ */
172
+ export function getChainName(chainId) {
173
+ return getViemChain(chainId).name;
174
+ }
175
+ //# sourceMappingURL=chainConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainConfig.js","sourceRoot":"","sources":["../../../src/wallet/providers/chainConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Wallet Providers
3
+ *
4
+ * Pluggable wallet backend architecture for Amped DeFi plugin.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { AmpedWalletProvider } from './wallet/providers';
9
+ *
10
+ * // Create with local private key (evm-wallet-skill compatible)
11
+ * const provider = await AmpedWalletProvider.fromPrivateKey({
12
+ * privateKey: '0x...',
13
+ * chainId: 'lightlink',
14
+ * });
15
+ *
16
+ * // Or create with Bankr backend
17
+ * const bankrProvider = await AmpedWalletProvider.fromBankr({
18
+ * bankrApiUrl: 'https://api.bankr.xyz',
19
+ * bankrApiKey: 'your-api-key',
20
+ * userAddress: '0x...',
21
+ * chainId: 'base',
22
+ * });
23
+ * ```
24
+ */
25
+ export { AmpedWalletProvider } from './AmpedWalletProvider';
26
+ export { LocalKeyBackend, createLocalKeyBackend } from './LocalKeyBackend';
27
+ export { BankrBackend, createBankrBackend } from './BankrBackend';
28
+ export { CHAIN_IDS, SDK_CHAIN_ID_MAP, DEFAULT_RPC_URLS, hyper, resolveChainId, getViemChain, getDefaultRpcUrl, isChainSupported, getSupportedChainIds, getChainName, } from './chainConfig';
29
+ export type { WalletBackendType, WalletBackendBaseConfig, LocalKeyBackendConfig, BankrBackendConfig, PrivyBackendConfig, SmartWalletBackendConfig, WalletBackendConfig, TransactionRequest, TransactionReceipt, IWalletBackend, WalletBackendFactory, AmpedWalletProviderConfig, IAmpedWalletProvider, } from './types';
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Wallet Providers
3
+ *
4
+ * Pluggable wallet backend architecture for Amped DeFi plugin.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { AmpedWalletProvider } from './wallet/providers';
9
+ *
10
+ * // Create with local private key (evm-wallet-skill compatible)
11
+ * const provider = await AmpedWalletProvider.fromPrivateKey({
12
+ * privateKey: '0x...',
13
+ * chainId: 'lightlink',
14
+ * });
15
+ *
16
+ * // Or create with Bankr backend
17
+ * const bankrProvider = await AmpedWalletProvider.fromBankr({
18
+ * bankrApiUrl: 'https://api.bankr.xyz',
19
+ * bankrApiKey: 'your-api-key',
20
+ * userAddress: '0x...',
21
+ * chainId: 'base',
22
+ * });
23
+ * ```
24
+ */
25
+ // Main provider
26
+ export { AmpedWalletProvider } from './AmpedWalletProvider';
27
+ // Backends
28
+ export { LocalKeyBackend, createLocalKeyBackend } from './LocalKeyBackend';
29
+ export { BankrBackend, createBankrBackend } from './BankrBackend';
30
+ // Chain configuration
31
+ export { CHAIN_IDS, SDK_CHAIN_ID_MAP, DEFAULT_RPC_URLS, hyper, resolveChainId, getViemChain, getDefaultRpcUrl, isChainSupported, getSupportedChainIds, getChainName, } from './chainConfig';
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAElE,sBAAsB;AACtB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,eAAe,CAAC"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Wallet Provider Types
3
+ *
4
+ * Interfaces for the pluggable wallet backend architecture.
5
+ * Allows the same AmpedWalletProvider to work with:
6
+ * - Local private keys (evm-wallet-skill)
7
+ * - Bankr execution API
8
+ * - Future: Privy, smart contract wallets, etc.
9
+ */
10
+ import type { Hash, Address } from 'viem';
11
+ import type { IEvmWalletProvider } from '@sodax/types';
12
+ /**
13
+ * Wallet backend type identifiers
14
+ */
15
+ export type WalletBackendType = 'localKey' | 'bankr' | 'privy' | 'smartWallet';
16
+ /**
17
+ * Base configuration for all backends
18
+ */
19
+ export interface WalletBackendBaseConfig {
20
+ type: WalletBackendType;
21
+ chainId: string | number;
22
+ rpcUrl?: string;
23
+ }
24
+ /**
25
+ * Configuration for local private key backend
26
+ */
27
+ export interface LocalKeyBackendConfig extends WalletBackendBaseConfig {
28
+ type: 'localKey';
29
+ privateKey: `0x${string}`;
30
+ }
31
+ /**
32
+ * Configuration for Bankr execution backend
33
+ */
34
+ export interface BankrBackendConfig extends WalletBackendBaseConfig {
35
+ type: 'bankr';
36
+ bankrApiUrl: string;
37
+ bankrApiKey: string;
38
+ userAddress: Address;
39
+ /** Optional: policy limits for transactions */
40
+ policy?: {
41
+ maxValuePerTx?: bigint;
42
+ maxDailyVolume?: bigint;
43
+ allowedContracts?: Address[];
44
+ };
45
+ }
46
+ /**
47
+ * Configuration for Privy server wallet backend (future)
48
+ */
49
+ export interface PrivyBackendConfig extends WalletBackendBaseConfig {
50
+ type: 'privy';
51
+ appId: string;
52
+ appSecret: string;
53
+ walletId: string;
54
+ }
55
+ /**
56
+ * Configuration for smart contract wallet backend (future)
57
+ */
58
+ export interface SmartWalletBackendConfig extends WalletBackendBaseConfig {
59
+ type: 'smartWallet';
60
+ walletAddress: Address;
61
+ sessionKey: `0x${string}`;
62
+ entryPointAddress: Address;
63
+ }
64
+ /**
65
+ * Union of all backend configurations
66
+ */
67
+ export type WalletBackendConfig = LocalKeyBackendConfig | BankrBackendConfig | PrivyBackendConfig | SmartWalletBackendConfig;
68
+ /**
69
+ * Transaction request (simplified)
70
+ */
71
+ export interface TransactionRequest {
72
+ to: Address;
73
+ value?: bigint;
74
+ data?: `0x${string}`;
75
+ gasLimit?: bigint;
76
+ gasPrice?: bigint;
77
+ maxFeePerGas?: bigint;
78
+ maxPriorityFeePerGas?: bigint;
79
+ nonce?: number;
80
+ }
81
+ /**
82
+ * Transaction receipt (simplified)
83
+ */
84
+ export interface TransactionReceipt {
85
+ transactionHash: Hash;
86
+ blockNumber: bigint;
87
+ blockHash: Hash;
88
+ from: Address;
89
+ to: Address | null;
90
+ gasUsed: bigint;
91
+ status: 'success' | 'reverted';
92
+ logs: Array<{
93
+ address: Address;
94
+ topics: `0x${string}`[];
95
+ data: `0x${string}`;
96
+ }>;
97
+ }
98
+ /**
99
+ * Wallet backend interface
100
+ *
101
+ * All wallet backends must implement this interface.
102
+ * This allows AmpedWalletProvider to delegate to different backends
103
+ * without changing its own implementation.
104
+ */
105
+ export interface IWalletBackend {
106
+ /** Backend type identifier */
107
+ readonly type: WalletBackendType;
108
+ /** Get the wallet address */
109
+ getAddress(): Promise<Address>;
110
+ /**
111
+ * Send a transaction and return the transaction hash
112
+ * The backend is responsible for signing and submitting the transaction.
113
+ */
114
+ sendTransaction(tx: TransactionRequest): Promise<Hash>;
115
+ /**
116
+ * Wait for a transaction to be confirmed
117
+ * Returns when the transaction is included in a block.
118
+ */
119
+ waitForTransaction(txHash: Hash): Promise<TransactionReceipt>;
120
+ /**
121
+ * Check if the backend can execute transactions
122
+ * (e.g., Bankr backend may need API connectivity)
123
+ */
124
+ isReady(): Promise<boolean>;
125
+ /**
126
+ * Get the numeric chain ID this backend is configured for
127
+ */
128
+ getChainId(): number;
129
+ }
130
+ /**
131
+ * Factory function type for creating backends
132
+ */
133
+ export type WalletBackendFactory = (config: WalletBackendConfig) => Promise<IWalletBackend>;
134
+ /**
135
+ * Amped Wallet Provider configuration
136
+ */
137
+ export interface AmpedWalletProviderConfig {
138
+ /** Backend configuration */
139
+ backend: WalletBackendConfig;
140
+ /** Optional custom RPC URL (overrides chain default) */
141
+ rpcUrl?: string;
142
+ }
143
+ /**
144
+ * Extended IEvmWalletProvider with Amped-specific methods
145
+ */
146
+ export interface IAmpedWalletProvider extends IEvmWalletProvider {
147
+ /** Get the underlying backend */
148
+ getBackend(): IWalletBackend;
149
+ /** Get the backend type */
150
+ getBackendType(): WalletBackendType;
151
+ /** Check if ready for transactions */
152
+ isReady(): Promise<boolean>;
153
+ /** Get chain ID */
154
+ getChainId(): number;
155
+ }
156
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/wallet/providers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Wallet Provider Types
3
+ *
4
+ * Interfaces for the pluggable wallet backend architecture.
5
+ * Allows the same AmpedWalletProvider to work with:
6
+ * - Local private keys (evm-wallet-skill)
7
+ * - Bankr execution API
8
+ * - Future: Privy, smart contract wallets, etc.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/wallet/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}