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,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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,MAAM,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;QACxB,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;KACrB,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAEjC,6BAA6B;IAC7B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE9D;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,4BAA4B;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,iCAAiC;IACjC,UAAU,IAAI,cAAc,CAAC;IAE7B,2BAA2B;IAC3B,cAAc,IAAI,iBAAiB,CAAC;IAEpC,sCAAsC;IACtC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B,mBAAmB;IACnB,UAAU,IAAI,MAAM,CAAC;CACtB"}
|
|
@@ -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"}
|