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,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bankr Wallet Provider for SODAX SDK
|
|
3
|
+
*
|
|
4
|
+
* Implements IEvmWalletProvider interface to allow SODAX SDK
|
|
5
|
+
* to execute transactions through Bankr's API.
|
|
6
|
+
*
|
|
7
|
+
* Instead of signing locally, transactions are submitted to Bankr
|
|
8
|
+
* which signs and broadcasts them server-side.
|
|
9
|
+
*
|
|
10
|
+
* Supported chains: Ethereum (1), Polygon (137), Base (8453)
|
|
11
|
+
*/
|
|
12
|
+
import { createPublicClient, http } from 'viem';
|
|
13
|
+
import { mainnet, polygon, base } from 'viem/chains';
|
|
14
|
+
/**
|
|
15
|
+
* Chain configurations for Bankr
|
|
16
|
+
*/
|
|
17
|
+
const BANKR_CHAINS = {
|
|
18
|
+
1: { chain: mainnet, name: 'ethereum' },
|
|
19
|
+
137: { chain: polygon, name: 'polygon' },
|
|
20
|
+
8453: { chain: base, name: 'base' },
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Bankr Wallet Provider
|
|
24
|
+
*
|
|
25
|
+
* Implements IEvmWalletProvider for use with SODAX SDK's SpokeProvider.
|
|
26
|
+
* Transactions are signed and broadcast via Bankr's Agent API.
|
|
27
|
+
*/
|
|
28
|
+
export class BankrWalletProvider {
|
|
29
|
+
publicClient;
|
|
30
|
+
apiUrl;
|
|
31
|
+
apiKey;
|
|
32
|
+
chainId;
|
|
33
|
+
cachedAddress;
|
|
34
|
+
// Polling configuration
|
|
35
|
+
pollIntervalMs = 2000;
|
|
36
|
+
maxPollAttempts = 150; // 5 minutes max
|
|
37
|
+
constructor(config) {
|
|
38
|
+
this.apiKey = config.apiKey;
|
|
39
|
+
this.apiUrl = config.apiUrl || 'https://api.bankr.bot';
|
|
40
|
+
this.chainId = config.chainId;
|
|
41
|
+
this.cachedAddress = config.cachedAddress || null;
|
|
42
|
+
// Validate chain support
|
|
43
|
+
const chainConfig = BANKR_CHAINS[config.chainId];
|
|
44
|
+
if (!chainConfig) {
|
|
45
|
+
throw new Error(`Bankr does not support chainId ${config.chainId}. ` +
|
|
46
|
+
`Supported: Ethereum (1), Polygon (137), Base (8453)`);
|
|
47
|
+
}
|
|
48
|
+
// Create public client for read operations
|
|
49
|
+
this.publicClient = createPublicClient({
|
|
50
|
+
chain: chainConfig.chain,
|
|
51
|
+
transport: http(config.rpcUrl),
|
|
52
|
+
});
|
|
53
|
+
console.log(`[BankrWalletProvider] Initialized for ${chainConfig.name} (${config.chainId})`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the Bankr wallet address
|
|
57
|
+
*/
|
|
58
|
+
async getWalletAddress() {
|
|
59
|
+
if (this.cachedAddress)
|
|
60
|
+
return this.cachedAddress;
|
|
61
|
+
console.log('[BankrWalletProvider] Fetching wallet address from Bankr...');
|
|
62
|
+
try {
|
|
63
|
+
const response = await this.submitAndWait('What is my EVM wallet address?');
|
|
64
|
+
// Extract address from response
|
|
65
|
+
const addressMatch = response.match(/0x[a-fA-F0-9]{40}/);
|
|
66
|
+
if (!addressMatch) {
|
|
67
|
+
throw new Error('Could not parse wallet address from Bankr response');
|
|
68
|
+
}
|
|
69
|
+
this.cachedAddress = addressMatch[0];
|
|
70
|
+
console.log(`[BankrWalletProvider] Wallet address: ${this.cachedAddress}`);
|
|
71
|
+
return this.cachedAddress;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.error('[BankrWalletProvider] Failed to get address:', error);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Send a transaction via Bankr
|
|
80
|
+
*
|
|
81
|
+
* This is the key method - it receives raw transaction data from SODAX SDK
|
|
82
|
+
* and submits it to Bankr for signing and broadcasting.
|
|
83
|
+
*/
|
|
84
|
+
async sendTransaction(evmRawTx) {
|
|
85
|
+
console.log('[BankrWalletProvider] Sending transaction via Bankr');
|
|
86
|
+
console.log(`[BankrWalletProvider] To: ${evmRawTx.to}`);
|
|
87
|
+
console.log(`[BankrWalletProvider] Value: ${evmRawTx.value}`);
|
|
88
|
+
console.log(`[BankrWalletProvider] Data: ${evmRawTx.data.slice(0, 20)}...`);
|
|
89
|
+
// Format transaction for Bankr's arbitrary transaction endpoint
|
|
90
|
+
const txJson = JSON.stringify({
|
|
91
|
+
to: evmRawTx.to,
|
|
92
|
+
data: evmRawTx.data,
|
|
93
|
+
value: evmRawTx.value.toString(),
|
|
94
|
+
chainId: this.chainId,
|
|
95
|
+
}, null, 2);
|
|
96
|
+
// Use the documented prompt format
|
|
97
|
+
const prompt = `Submit this transaction:
|
|
98
|
+
${txJson}`;
|
|
99
|
+
console.log('[BankrWalletProvider] Submitting to Bankr API...');
|
|
100
|
+
const result = await this.submitAndWaitForJob(prompt);
|
|
101
|
+
// Extract transaction hash from response
|
|
102
|
+
const txHash = this.extractTransactionHash(result);
|
|
103
|
+
if (!txHash) {
|
|
104
|
+
const errorMsg = result.error || result.response || 'Unknown error';
|
|
105
|
+
throw new Error(`Transaction failed: ${errorMsg}`);
|
|
106
|
+
}
|
|
107
|
+
console.log(`[BankrWalletProvider] Transaction hash: ${txHash}`);
|
|
108
|
+
return txHash;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Wait for transaction receipt
|
|
112
|
+
*
|
|
113
|
+
* Uses the public client to query the blockchain directly.
|
|
114
|
+
*/
|
|
115
|
+
async waitForTransactionReceipt(txHash) {
|
|
116
|
+
console.log(`[BankrWalletProvider] Waiting for receipt: ${txHash}`);
|
|
117
|
+
const receipt = await this.publicClient.waitForTransactionReceipt({
|
|
118
|
+
hash: txHash,
|
|
119
|
+
timeout: 120_000, // 2 minutes
|
|
120
|
+
});
|
|
121
|
+
// Convert viem receipt to SODAX format
|
|
122
|
+
return {
|
|
123
|
+
transactionHash: receipt.transactionHash,
|
|
124
|
+
transactionIndex: `0x${receipt.transactionIndex.toString(16)}`,
|
|
125
|
+
blockHash: receipt.blockHash,
|
|
126
|
+
blockNumber: `0x${receipt.blockNumber.toString(16)}`,
|
|
127
|
+
from: receipt.from,
|
|
128
|
+
to: receipt.to,
|
|
129
|
+
cumulativeGasUsed: `0x${receipt.cumulativeGasUsed.toString(16)}`,
|
|
130
|
+
gasUsed: `0x${receipt.gasUsed.toString(16)}`,
|
|
131
|
+
contractAddress: receipt.contractAddress,
|
|
132
|
+
logs: receipt.logs.map(log => ({
|
|
133
|
+
address: log.address,
|
|
134
|
+
topics: log.topics || [],
|
|
135
|
+
data: log.data,
|
|
136
|
+
blockHash: log.blockHash,
|
|
137
|
+
blockNumber: log.blockNumber ? `0x${log.blockNumber.toString(16)}` : null,
|
|
138
|
+
logIndex: log.logIndex !== null ? `0x${log.logIndex.toString(16)}` : null,
|
|
139
|
+
transactionHash: log.transactionHash,
|
|
140
|
+
transactionIndex: log.transactionIndex !== null ? `0x${log.transactionIndex.toString(16)}` : null,
|
|
141
|
+
removed: log.removed,
|
|
142
|
+
})),
|
|
143
|
+
logsBloom: receipt.logsBloom,
|
|
144
|
+
status: receipt.status === 'success' ? '0x1' : '0x0',
|
|
145
|
+
type: receipt.type,
|
|
146
|
+
effectiveGasPrice: receipt.effectiveGasPrice ? `0x${receipt.effectiveGasPrice.toString(16)}` : undefined,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Submit prompt and wait for text response
|
|
151
|
+
*/
|
|
152
|
+
async submitAndWait(prompt) {
|
|
153
|
+
const result = await this.submitAndWaitForJob(prompt);
|
|
154
|
+
return result.response || '';
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Submit prompt and wait for job completion
|
|
158
|
+
*/
|
|
159
|
+
async submitAndWaitForJob(prompt) {
|
|
160
|
+
// Submit job
|
|
161
|
+
const submitResponse = await fetch(`${this.apiUrl}/agent/prompt`, {
|
|
162
|
+
method: 'POST',
|
|
163
|
+
headers: {
|
|
164
|
+
'X-API-Key': this.apiKey,
|
|
165
|
+
'Content-Type': 'application/json',
|
|
166
|
+
},
|
|
167
|
+
body: JSON.stringify({ prompt }),
|
|
168
|
+
});
|
|
169
|
+
if (!submitResponse.ok) {
|
|
170
|
+
const error = await submitResponse.text();
|
|
171
|
+
throw new Error(`Failed to submit job: ${submitResponse.status} ${error}`);
|
|
172
|
+
}
|
|
173
|
+
const submitData = await submitResponse.json();
|
|
174
|
+
if (!submitData.success || !submitData.jobId) {
|
|
175
|
+
throw new Error(`Invalid job response: ${JSON.stringify(submitData)}`);
|
|
176
|
+
}
|
|
177
|
+
const jobId = submitData.jobId;
|
|
178
|
+
console.log(`[BankrWalletProvider] Job submitted: ${jobId}`);
|
|
179
|
+
// Poll for completion
|
|
180
|
+
let lastStatus = '';
|
|
181
|
+
for (let attempt = 0; attempt < this.maxPollAttempts; attempt++) {
|
|
182
|
+
await this.sleep(this.pollIntervalMs);
|
|
183
|
+
const statusResponse = await fetch(`${this.apiUrl}/agent/job/${jobId}`, {
|
|
184
|
+
method: 'GET',
|
|
185
|
+
headers: { 'X-API-Key': this.apiKey },
|
|
186
|
+
});
|
|
187
|
+
if (!statusResponse.ok) {
|
|
188
|
+
const error = await statusResponse.text();
|
|
189
|
+
throw new Error(`Failed to get job status: ${statusResponse.status} ${error}`);
|
|
190
|
+
}
|
|
191
|
+
const result = await statusResponse.json();
|
|
192
|
+
// Log status changes
|
|
193
|
+
if (result.status !== lastStatus) {
|
|
194
|
+
console.log(`[BankrWalletProvider] Job ${jobId}: ${result.status}`);
|
|
195
|
+
lastStatus = result.status;
|
|
196
|
+
}
|
|
197
|
+
// Check terminal states
|
|
198
|
+
switch (result.status) {
|
|
199
|
+
case 'completed':
|
|
200
|
+
return result;
|
|
201
|
+
case 'failed':
|
|
202
|
+
throw new Error(`Job failed: ${result.error || 'Unknown error'}`);
|
|
203
|
+
case 'cancelled':
|
|
204
|
+
throw new Error(`Job was cancelled`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
throw new Error(`Job ${jobId} timed out`);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Extract transaction hash from Bankr response
|
|
211
|
+
*/
|
|
212
|
+
extractTransactionHash(result) {
|
|
213
|
+
// Check richData for transaction info
|
|
214
|
+
if (result.richData) {
|
|
215
|
+
for (const item of result.richData) {
|
|
216
|
+
if (item.transactionHash)
|
|
217
|
+
return item.transactionHash;
|
|
218
|
+
if (item.txHash)
|
|
219
|
+
return item.txHash;
|
|
220
|
+
if (item.hash)
|
|
221
|
+
return item.hash;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Try to extract from response text
|
|
225
|
+
if (result.response) {
|
|
226
|
+
// Look for 0x + 64 hex chars
|
|
227
|
+
const hashMatch = result.response.match(/0x[a-fA-F0-9]{64}/);
|
|
228
|
+
if (hashMatch)
|
|
229
|
+
return hashMatch[0];
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
sleep(ms) {
|
|
234
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Create a BankrWalletProvider
|
|
239
|
+
*/
|
|
240
|
+
export function createBankrWalletProvider(config) {
|
|
241
|
+
return new BankrWalletProvider(config);
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=BankrWalletProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankrWalletProvider.js","sourceRoot":"","sources":["../../../src/wallet/backends/BankrWalletProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Variable Backend
|
|
3
|
+
*
|
|
4
|
+
* Loads wallet from environment variables:
|
|
5
|
+
* - AMPED_OC_WALLETS_JSON: JSON with wallet configs
|
|
6
|
+
* - Or individual env vars for address/privateKey
|
|
7
|
+
*/
|
|
8
|
+
import type { Address } from 'viem';
|
|
9
|
+
import type { IWalletBackend } from '../types';
|
|
10
|
+
/**
|
|
11
|
+
* Environment variable backend configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface EnvBackendConfig {
|
|
14
|
+
nickname: string;
|
|
15
|
+
address?: Address;
|
|
16
|
+
privateKey?: `0x${string}`;
|
|
17
|
+
envVar?: string;
|
|
18
|
+
chains?: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Environment variable wallet backend
|
|
22
|
+
* Supports all SODAX chains (local key signing)
|
|
23
|
+
*/
|
|
24
|
+
export declare class EnvBackend implements IWalletBackend {
|
|
25
|
+
readonly type: "env";
|
|
26
|
+
readonly nickname: string;
|
|
27
|
+
readonly supportedChains: readonly string[];
|
|
28
|
+
private address;
|
|
29
|
+
private privateKey;
|
|
30
|
+
private envVar;
|
|
31
|
+
constructor(config: EnvBackendConfig);
|
|
32
|
+
/**
|
|
33
|
+
* Load wallet from environment variable if needed
|
|
34
|
+
*/
|
|
35
|
+
private loadFromEnv;
|
|
36
|
+
getAddress(): Promise<Address>;
|
|
37
|
+
supportsChain(chainId: string): boolean;
|
|
38
|
+
getPrivateKey(): Promise<`0x${string}`>;
|
|
39
|
+
isReady(): Promise<boolean>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create env backend from direct config
|
|
43
|
+
*/
|
|
44
|
+
export declare function createEnvBackend(config: EnvBackendConfig): EnvBackend;
|
|
45
|
+
/**
|
|
46
|
+
* Load wallets from AMPED_OC_WALLETS_JSON environment variable
|
|
47
|
+
* Returns multiple backends keyed by wallet name
|
|
48
|
+
*/
|
|
49
|
+
export declare function loadWalletsFromEnv(): Map<string, EnvBackend>;
|
|
50
|
+
//# sourceMappingURL=EnvBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvBackend.d.ts","sourceRoot":"","sources":["../../../src/wallet/backends/EnvBackend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAW/C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,gBAAgB;IAcpC;;OAEG;IACH,OAAO,CAAC,WAAW;IA0Bb,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjC,aAAa,IAAI,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAKvC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAQlC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAErE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CA0B5D"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Variable Backend
|
|
3
|
+
*
|
|
4
|
+
* Loads wallet from environment variables:
|
|
5
|
+
* - AMPED_OC_WALLETS_JSON: JSON with wallet configs
|
|
6
|
+
* - Or individual env vars for address/privateKey
|
|
7
|
+
*/
|
|
8
|
+
import { SODAX_SUPPORTED_CHAINS } from '../types';
|
|
9
|
+
/**
|
|
10
|
+
* Environment variable wallet backend
|
|
11
|
+
* Supports all SODAX chains (local key signing)
|
|
12
|
+
*/
|
|
13
|
+
export class EnvBackend {
|
|
14
|
+
type = 'env';
|
|
15
|
+
nickname;
|
|
16
|
+
supportedChains;
|
|
17
|
+
address = null;
|
|
18
|
+
privateKey = null;
|
|
19
|
+
envVar = null;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.nickname = config.nickname;
|
|
22
|
+
this.supportedChains = config.chains || [...SODAX_SUPPORTED_CHAINS];
|
|
23
|
+
if (config.address && config.privateKey) {
|
|
24
|
+
// Direct address/key provided
|
|
25
|
+
this.address = config.address;
|
|
26
|
+
this.privateKey = config.privateKey;
|
|
27
|
+
}
|
|
28
|
+
else if (config.envVar) {
|
|
29
|
+
// Will load from env var
|
|
30
|
+
this.envVar = config.envVar;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Load wallet from environment variable if needed
|
|
35
|
+
*/
|
|
36
|
+
loadFromEnv() {
|
|
37
|
+
if (this.address && this.privateKey) {
|
|
38
|
+
return { address: this.address, privateKey: this.privateKey };
|
|
39
|
+
}
|
|
40
|
+
if (this.envVar) {
|
|
41
|
+
const envValue = process.env[this.envVar];
|
|
42
|
+
if (!envValue) {
|
|
43
|
+
throw new Error(`Environment variable ${this.envVar} not set`);
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const data = JSON.parse(envValue);
|
|
47
|
+
this.address = data.address;
|
|
48
|
+
this.privateKey = (data.privateKey.startsWith('0x')
|
|
49
|
+
? data.privateKey
|
|
50
|
+
: `0x${data.privateKey}`);
|
|
51
|
+
return { address: this.address, privateKey: this.privateKey };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new Error(`Failed to parse ${this.envVar}: ${error}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`No wallet configuration for "${this.nickname}"`);
|
|
58
|
+
}
|
|
59
|
+
async getAddress() {
|
|
60
|
+
const { address } = this.loadFromEnv();
|
|
61
|
+
return address;
|
|
62
|
+
}
|
|
63
|
+
supportsChain(chainId) {
|
|
64
|
+
return this.supportedChains.includes(chainId);
|
|
65
|
+
}
|
|
66
|
+
async getPrivateKey() {
|
|
67
|
+
const { privateKey } = this.loadFromEnv();
|
|
68
|
+
return privateKey;
|
|
69
|
+
}
|
|
70
|
+
async isReady() {
|
|
71
|
+
try {
|
|
72
|
+
this.loadFromEnv();
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create env backend from direct config
|
|
82
|
+
*/
|
|
83
|
+
export function createEnvBackend(config) {
|
|
84
|
+
return new EnvBackend(config);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Load wallets from AMPED_OC_WALLETS_JSON environment variable
|
|
88
|
+
* Returns multiple backends keyed by wallet name
|
|
89
|
+
*/
|
|
90
|
+
export function loadWalletsFromEnv() {
|
|
91
|
+
const wallets = new Map();
|
|
92
|
+
const walletsJson = process.env.AMPED_OC_WALLETS_JSON;
|
|
93
|
+
if (!walletsJson)
|
|
94
|
+
return wallets;
|
|
95
|
+
try {
|
|
96
|
+
const parsed = JSON.parse(walletsJson);
|
|
97
|
+
for (const [name, wallet] of Object.entries(parsed)) {
|
|
98
|
+
const backend = new EnvBackend({
|
|
99
|
+
nickname: name,
|
|
100
|
+
address: wallet.address,
|
|
101
|
+
privateKey: (wallet.privateKey.startsWith('0x')
|
|
102
|
+
? wallet.privateKey
|
|
103
|
+
: `0x${wallet.privateKey}`),
|
|
104
|
+
});
|
|
105
|
+
wallets.set(name.toLowerCase(), backend);
|
|
106
|
+
}
|
|
107
|
+
console.log(`[EnvBackend] Loaded ${wallets.size} wallet(s) from AMPED_OC_WALLETS_JSON`);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.warn(`[EnvBackend] Failed to parse AMPED_OC_WALLETS_JSON: ${error}`);
|
|
111
|
+
}
|
|
112
|
+
return wallets;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=EnvBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvBackend.js","sourceRoot":"","sources":["../../../src/wallet/backends/EnvBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVM Wallet Skill Backend
|
|
3
|
+
*
|
|
4
|
+
* Loads wallet from ~/.evm-wallet.json (created by evm-wallet-skill)
|
|
5
|
+
*/
|
|
6
|
+
import type { Address } from 'viem';
|
|
7
|
+
import type { IWalletBackend } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Backend for evm-wallet-skill wallets
|
|
10
|
+
* Supports all SODAX chains (local key signing)
|
|
11
|
+
*/
|
|
12
|
+
export declare class EvmWalletSkillBackend implements IWalletBackend {
|
|
13
|
+
readonly type: "evm-wallet-skill";
|
|
14
|
+
readonly nickname: string;
|
|
15
|
+
readonly supportedChains: readonly string[];
|
|
16
|
+
private walletPath;
|
|
17
|
+
private cachedWallet;
|
|
18
|
+
constructor(options: {
|
|
19
|
+
nickname: string;
|
|
20
|
+
path?: string;
|
|
21
|
+
chains?: string[];
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Load wallet from file (cached)
|
|
25
|
+
*/
|
|
26
|
+
private loadWallet;
|
|
27
|
+
getAddress(): Promise<Address>;
|
|
28
|
+
supportsChain(chainId: string): boolean;
|
|
29
|
+
getPrivateKey(): Promise<`0x${string}`>;
|
|
30
|
+
isReady(): Promise<boolean>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create an evm-wallet-skill backend
|
|
34
|
+
*/
|
|
35
|
+
export declare function createEvmWalletSkillBackend(options?: {
|
|
36
|
+
nickname?: string;
|
|
37
|
+
path?: string;
|
|
38
|
+
chains?: string[];
|
|
39
|
+
}): EvmWalletSkillBackend;
|
|
40
|
+
//# sourceMappingURL=EvmWalletSkillBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmWalletSkillBackend.d.ts","sourceRoot":"","sources":["../../../src/wallet/backends/EvmWalletSkillBackend.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAgB/C;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAE5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA8B;gBAEtC,OAAO,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB;IAMD;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBZ,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjC,aAAa,IAAI,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;IAMvC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAQlC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACd,GAAG,qBAAqB,CAM7B"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EVM Wallet Skill Backend
|
|
3
|
+
*
|
|
4
|
+
* Loads wallet from ~/.evm-wallet.json (created by evm-wallet-skill)
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync } from 'fs';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { homedir } from 'os';
|
|
9
|
+
import { SODAX_SUPPORTED_CHAINS } from '../types';
|
|
10
|
+
/**
|
|
11
|
+
* Default path to evm-wallet-skill wallet file
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_WALLET_PATH = join(homedir(), '.evm-wallet.json');
|
|
14
|
+
/**
|
|
15
|
+
* Backend for evm-wallet-skill wallets
|
|
16
|
+
* Supports all SODAX chains (local key signing)
|
|
17
|
+
*/
|
|
18
|
+
export class EvmWalletSkillBackend {
|
|
19
|
+
type = 'evm-wallet-skill';
|
|
20
|
+
nickname;
|
|
21
|
+
supportedChains;
|
|
22
|
+
walletPath;
|
|
23
|
+
cachedWallet = null;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.nickname = options.nickname;
|
|
26
|
+
this.walletPath = options.path || DEFAULT_WALLET_PATH;
|
|
27
|
+
this.supportedChains = options.chains || [...SODAX_SUPPORTED_CHAINS];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load wallet from file (cached)
|
|
31
|
+
*/
|
|
32
|
+
loadWallet() {
|
|
33
|
+
if (this.cachedWallet)
|
|
34
|
+
return this.cachedWallet;
|
|
35
|
+
if (!existsSync(this.walletPath)) {
|
|
36
|
+
throw new Error(`Wallet file not found: ${this.walletPath}\n` +
|
|
37
|
+
`Run: git clone https://github.com/amped-finance/evm-wallet-skill.git ~/.openclaw/skills/evm-wallet-skill\n` +
|
|
38
|
+
` cd ~/.openclaw/skills/evm-wallet-skill && npm install && node src/setup.js`);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const content = readFileSync(this.walletPath, 'utf-8');
|
|
42
|
+
this.cachedWallet = JSON.parse(content);
|
|
43
|
+
return this.cachedWallet;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
throw new Error(`Failed to load wallet from ${this.walletPath}: ${error}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async getAddress() {
|
|
50
|
+
const wallet = this.loadWallet();
|
|
51
|
+
return wallet.address;
|
|
52
|
+
}
|
|
53
|
+
supportsChain(chainId) {
|
|
54
|
+
return this.supportedChains.includes(chainId);
|
|
55
|
+
}
|
|
56
|
+
async getPrivateKey() {
|
|
57
|
+
const wallet = this.loadWallet();
|
|
58
|
+
const key = wallet.privateKey;
|
|
59
|
+
return key.startsWith('0x') ? key : `0x${key}`;
|
|
60
|
+
}
|
|
61
|
+
async isReady() {
|
|
62
|
+
try {
|
|
63
|
+
this.loadWallet();
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create an evm-wallet-skill backend
|
|
73
|
+
*/
|
|
74
|
+
export function createEvmWalletSkillBackend(options = {}) {
|
|
75
|
+
return new EvmWalletSkillBackend({
|
|
76
|
+
nickname: options.nickname || 'main',
|
|
77
|
+
path: options.path,
|
|
78
|
+
chains: options.chains,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=EvmWalletSkillBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmWalletSkillBackend.js","sourceRoot":"","sources":["../../../src/wallet/backends/EvmWalletSkillBackend.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAUhE;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,kBAA2B,CAAC;IACnC,QAAQ,CAAS;IACjB,eAAe,CAAoB;IAEpC,UAAU,CAAS;IACnB,YAAY,GAAyB,IAAI,CAAC;IAElD,YAAY,OAIX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,mBAAmB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,UAAU,IAAI;gBAC7C,4GAA4G;gBAC5G,iFAAiF,CAClF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAkB,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;QAC9B,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,EAAmB,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAIxC,EAAE;IACJ,OAAO,IAAI,qBAAqB,CAAC;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Backends
|
|
3
|
+
*
|
|
4
|
+
* Export all wallet backend implementations
|
|
5
|
+
*/
|
|
6
|
+
export { EvmWalletSkillBackend, createEvmWalletSkillBackend } from './EvmWalletSkillBackend';
|
|
7
|
+
export { BankrBackend, createBankrBackend, type BankrBackendConfig } from './BankrBackend';
|
|
8
|
+
export { EnvBackend, createEnvBackend, loadWalletsFromEnv, type EnvBackendConfig } from './EnvBackend';
|
|
9
|
+
export { BankrWalletProvider, createBankrWalletProvider, type BankrWalletProviderConfig } from './BankrWalletProvider';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/backends/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Backends
|
|
3
|
+
*
|
|
4
|
+
* Export all wallet backend implementations
|
|
5
|
+
*/
|
|
6
|
+
export { EvmWalletSkillBackend, createEvmWalletSkillBackend } from './EvmWalletSkillBackend';
|
|
7
|
+
export { BankrBackend, createBankrBackend } from './BankrBackend';
|
|
8
|
+
export { EnvBackend, createEnvBackend, loadWalletsFromEnv } from './EnvBackend';
|
|
9
|
+
export { BankrWalletProvider, createBankrWalletProvider } from './BankrWalletProvider';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/backends/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA2B,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAyB,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAkC,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Module
|
|
3
|
+
*
|
|
4
|
+
* Multi-source wallet management with nicknames
|
|
5
|
+
*/
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './backends';
|
|
8
|
+
export { WalletManager, getWalletManager, resetWalletManager } from './walletManager';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Module
|
|
3
|
+
*
|
|
4
|
+
* Multi-source wallet management with nicknames
|
|
5
|
+
*/
|
|
6
|
+
// Types
|
|
7
|
+
export * from './types';
|
|
8
|
+
// Backends
|
|
9
|
+
export * from './backends';
|
|
10
|
+
// Manager
|
|
11
|
+
export { WalletManager, getWalletManager, resetWalletManager } from './walletManager';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,WAAW;AACX,cAAc,YAAY,CAAC;AAE3B,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|