@deserialize/multi-vm-wallet 1.3.0 → 1.3.1
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/.claude/settings.local.json +3 -1
- package/dist/evm/smartWallet.d.ts +1 -1
- package/dist/evm/smartWallet.js +1 -0
- package/dist/evm/smartWallet.js.map +1 -1
- package/dist/test.d.ts +4 -0
- package/dist/test.js +43 -19
- package/dist/test.js.map +1 -1
- package/package.json +3 -1
- package/utils/evm/smartWallet.ts +3 -1
- package/utils/test.ts +59 -19
- package/utils/evm/SMART_WALLET_EXAMPLES.ts.bak +0 -591
|
@@ -33,7 +33,7 @@ export declare class EVMSmartWallet {
|
|
|
33
33
|
* Initialize the smart wallet
|
|
34
34
|
* Creates the Kernel account and sets up delegation if needed
|
|
35
35
|
*/
|
|
36
|
-
initialize(): Promise<
|
|
36
|
+
initialize(): Promise<EVMSmartWallet>;
|
|
37
37
|
/**
|
|
38
38
|
* Get the smart account address
|
|
39
39
|
*/
|
package/dist/evm/smartWallet.js
CHANGED
|
@@ -70,6 +70,7 @@ class EVMSmartWallet {
|
|
|
70
70
|
entryPointVersion: this.options.entryPointVersion
|
|
71
71
|
});
|
|
72
72
|
console.log(`Smart wallet initialized: ${this.kernelAccount.address}`);
|
|
73
|
+
return this;
|
|
73
74
|
}
|
|
74
75
|
catch (error) {
|
|
75
76
|
throw new smartWallet_types_1.SmartWalletError(`Failed to initialize smart wallet: ${error instanceof Error ? error.message : 'Unknown error'}`, 'INIT_ERROR');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartWallet.js","sourceRoot":"","sources":["../../utils/evm/smartWallet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smartWallet.js","sourceRoot":"","sources":["../../utils/evm/smartWallet.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
package/dist/test.js
CHANGED
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const bs58_1 = __importDefault(require("bs58"));
|
|
7
7
|
const web3_js_1 = require("@solana/web3.js");
|
|
8
8
|
const evm_1 = require("./evm");
|
|
9
|
-
const transactionParsing_1 = require("./evm/transactionParsing");
|
|
10
|
-
const viem_1 = require("viem");
|
|
11
9
|
const chains_1 = require("viem/chains");
|
|
12
10
|
// const mnemonic = GenerateNewMnemonic()
|
|
13
11
|
// console.log('mnemonic: ', mnemonic);
|
|
@@ -18,6 +16,8 @@ const testUserKeyPair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(pK
|
|
|
18
16
|
const evePrivateKey = "0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318";
|
|
19
17
|
const evmPrivateKey2 = "0x0123456789012345678901234567890123456789012345678901234567890123";
|
|
20
18
|
const ogPrivKey = "d2d3f7117aa9a4c6e5d4affedd8a5ea624ffd82b2a1de81509e5913709b1ea72";
|
|
19
|
+
const evmPrivKey = "0xc9ca95aa5f40bae8b0f741ec89acc07b837590b2f9f818d3439df98c6e4f8dbe";
|
|
20
|
+
const evmPrivateKeyExposed = "0x92cccc7792024dcac5992e5d2986dade41770acfd3dab0fe98ee953ed1bf0c3a";
|
|
21
21
|
// const vm = new SVMVM(seed)
|
|
22
22
|
// const vmFromMnemonic = SVMVM.fromMnemonic(mnemonic)
|
|
23
23
|
// const keyFromMnemonic = vmFromMnemonic.generatePrivateKey(0)
|
|
@@ -36,8 +36,9 @@ const chainConfig = {
|
|
|
36
36
|
};
|
|
37
37
|
const evmChainConfig = {
|
|
38
38
|
chainId: 8453,
|
|
39
|
-
name: "
|
|
40
|
-
rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/lhoyb3hc9ccT9NA_y2cfA",
|
|
39
|
+
name: "Base",
|
|
40
|
+
// rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/lhoyb3hc9ccT9NA_y2cfA",
|
|
41
|
+
rpcUrl: chains_1.base.rpcUrls.default.http[0],
|
|
41
42
|
explorerUrl: "https://explorer.ethereum.com",
|
|
42
43
|
nativeToken: { name: "Ethereum", symbol: "ETH", decimals: 18 },
|
|
43
44
|
confirmationNo: 1,
|
|
@@ -55,13 +56,36 @@ const OgChainConfig = {
|
|
|
55
56
|
logoUrl: ""
|
|
56
57
|
};
|
|
57
58
|
// const wallet = new SVMChainWallet(chainConfig, testUserKeyPair, 0)
|
|
58
|
-
const wallet = new
|
|
59
|
-
|
|
59
|
+
// const wallet = new EVMChainWallet(evmChainConfig, evmPrivateKeyExposed, 0)
|
|
60
|
+
//IIFE
|
|
61
|
+
const walletA = new evm_1.EVMChainWallet(evmChainConfig, evmPrivateKeyExposed, 0); //wallet that has gas
|
|
62
|
+
const walletB = new evm_1.EVMChainWallet(evmChainConfig, evmPrivKey, 0); // wallet that wants its transactions sponsored
|
|
63
|
+
const USDC_ADDRESS = '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238';
|
|
64
|
+
const bundlerUrl = `https://api.pimlico.io/v2/${evmChainConfig.chainId}/rpc?apikey=pim_3UEhbTpS98H1XFm8p9kRxg`;
|
|
65
|
+
(async () => {
|
|
66
|
+
//GET TOKEN LOGO using @solana/spl-token-metadata
|
|
67
|
+
const walletANativeBalance = await walletA.getNativeBalance();
|
|
68
|
+
console.log('walletA native balance: ', walletANativeBalance);
|
|
69
|
+
const walletBNativeBalance = await walletB.getNativeBalance();
|
|
70
|
+
console.log('walletB native balance: ', walletBNativeBalance);
|
|
71
|
+
//wallet B USDC balance
|
|
72
|
+
const walletBUSDCBalance = await walletB.getTokenBalance(USDC_ADDRESS);
|
|
73
|
+
console.log('walletB USDC balance: ', walletBUSDCBalance);
|
|
74
|
+
//extend wallet A wallet to a smart wallet with AA support
|
|
75
|
+
const extendedWalletA = await walletA.extend({
|
|
76
|
+
bundlerUrl: bundlerUrl
|
|
77
|
+
});
|
|
78
|
+
console.log('extendedWalletA: ', extendedWalletA);
|
|
79
|
+
const initializedExtendedWalletA = await extendedWalletA.initialize();
|
|
80
|
+
console.log('initializedExtendedWalletA: ', initializedExtendedWalletA);
|
|
81
|
+
//sponsor a transaction for wallet B from extended wallet A
|
|
82
|
+
// const result = await initializedExtendedWalletA.sendSponsoredBatchTransaction({
|
|
83
|
+
// })
|
|
84
|
+
})();
|
|
60
85
|
// console.log('wallet: ', wallet);
|
|
61
86
|
// getTokenInfo(new PublicKey("9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump"), wallet.connection!).then(e => console.log('token info: ', e))
|
|
62
87
|
// wallet.discoverToken().then(e => console.log('discovered tokens: ', e))
|
|
63
88
|
// wallet.getNativeBalance().then(e => console.log('native balance: ', e))
|
|
64
|
-
console.log('address: ', wallet.address);
|
|
65
89
|
// const toBuy = new PublicKey("9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump")
|
|
66
90
|
// wallet.swap({
|
|
67
91
|
// name: NATIVE_MINT.toBase58(),
|
|
@@ -93,18 +117,18 @@ const connection = new web3_js_1.Connection(RPC_URL);
|
|
|
93
117
|
// }).catch((error: any) => {
|
|
94
118
|
// console.error("Error fetching transaction history:", error);
|
|
95
119
|
// });
|
|
96
|
-
const client =
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}).then((history) => {
|
|
104
|
-
|
|
105
|
-
}).catch((error) => {
|
|
106
|
-
|
|
107
|
-
});
|
|
120
|
+
// const client = createPublicClient({
|
|
121
|
+
// chain: base,
|
|
122
|
+
// transport: http(base.rpcUrls.default.http[0]),
|
|
123
|
+
// })
|
|
124
|
+
// getEVMTransactionHistory(client as PublicClient, "0x9C82CE0e125F61AdE50BC0c19638F6Ba93d71D5e", {
|
|
125
|
+
// startBlock: BigInt(37427020)
|
|
126
|
+
// // before: "0xabc..."
|
|
127
|
+
// }).then((history: any) => {
|
|
128
|
+
// console.log("EVM Transaction History:", history);
|
|
129
|
+
// }).catch((error: any) => {
|
|
130
|
+
// console.error("Error fetching EVM transaction history:", error);
|
|
131
|
+
// });
|
|
108
132
|
// discoverNFTs("0x498581ff718922c3f8e6a244956af099b2652b2b", evmChainConfig).then(nfts => {
|
|
109
133
|
// console.log("Discovered NFTs:", nfts);
|
|
110
134
|
// }).catch(error => {
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../utils/test.ts"],"names":[],"mappings":";;;;;AAGA,gDAA0B;AAE1B,6CAAiE;AAKjE,+BAAqD;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../utils/test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deserialize/multi-vm-wallet",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@types/bn.js": "^5.2.0",
|
|
6
6
|
"@types/crypto-js": "^4.2.2",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"@scure/bip39": "^2.0.1",
|
|
19
19
|
"@solana/spl-token": "^0.4.13",
|
|
20
20
|
"@solana/web3.js": "^1.98.4",
|
|
21
|
+
"@zerodev/permissions": "^5.6.3",
|
|
21
22
|
"bignumber.js": "^9.3.1",
|
|
22
23
|
"bn.js": "^5.2.2",
|
|
23
24
|
"bs58": "^6.0.0",
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
"debonk-evm-sever-sdk": "^1.4.0",
|
|
26
27
|
"ethers": "^6.15.0",
|
|
27
28
|
"promise-retry": "^2.0.1",
|
|
29
|
+
"tslib": "^2.8.1",
|
|
28
30
|
"tweetnacl": "^1.0.3",
|
|
29
31
|
"viem": "^2.43.4"
|
|
30
32
|
},
|
package/utils/evm/smartWallet.ts
CHANGED
|
@@ -95,7 +95,7 @@ export class EVMSmartWallet {
|
|
|
95
95
|
* Initialize the smart wallet
|
|
96
96
|
* Creates the Kernel account and sets up delegation if needed
|
|
97
97
|
*/
|
|
98
|
-
async initialize(): Promise<
|
|
98
|
+
async initialize(): Promise<EVMSmartWallet> {
|
|
99
99
|
try {
|
|
100
100
|
// Initialize AA service singleton with custom bundler URL
|
|
101
101
|
this.aaService = AccountAbstractionService.getInstance({
|
|
@@ -111,6 +111,8 @@ export class EVMSmartWallet {
|
|
|
111
111
|
});
|
|
112
112
|
|
|
113
113
|
console.log(`Smart wallet initialized: ${this.kernelAccount.address}`);
|
|
114
|
+
|
|
115
|
+
return this
|
|
114
116
|
} catch (error) {
|
|
115
117
|
throw new SmartWalletError(
|
|
116
118
|
`Failed to initialize smart wallet: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
package/utils/test.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { ChainWalletConfig } from "./types";
|
|
|
11
11
|
import { discoverNFTs, EVMChainWallet } from "./evm";
|
|
12
12
|
import { } from "./svm/transactionParsing";
|
|
13
13
|
import { getEVMTransactionHistory } from "./evm/transactionParsing";
|
|
14
|
-
import { createPublicClient, http, PublicClient } from "viem";
|
|
14
|
+
import { createPublicClient, Hex, http, PublicClient } from "viem";
|
|
15
15
|
import { base, baseGoerli } from "viem/chains";
|
|
16
16
|
import { discoverTokens, fetchWalletNfts, getTokenInfo } from "./svm/utils";
|
|
17
17
|
import { JsonRpcProvider } from "ethers";
|
|
@@ -31,6 +31,8 @@ const evePrivateKey = "0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01
|
|
|
31
31
|
const evmPrivateKey2 = "0x0123456789012345678901234567890123456789012345678901234567890123"
|
|
32
32
|
const ogPrivKey = "d2d3f7117aa9a4c6e5d4affedd8a5ea624ffd82b2a1de81509e5913709b1ea72"
|
|
33
33
|
|
|
34
|
+
const evmPrivKey = "0xc9ca95aa5f40bae8b0f741ec89acc07b837590b2f9f818d3439df98c6e4f8dbe"
|
|
35
|
+
const evmPrivateKeyExposed = "0x92cccc7792024dcac5992e5d2986dade41770acfd3dab0fe98ee953ed1bf0c3a"
|
|
34
36
|
// const vm = new SVMVM(seed)
|
|
35
37
|
|
|
36
38
|
|
|
@@ -53,8 +55,9 @@ const chainConfig: ChainWalletConfig = {
|
|
|
53
55
|
|
|
54
56
|
const evmChainConfig: ChainWalletConfig = {
|
|
55
57
|
chainId: 8453,
|
|
56
|
-
name: "
|
|
57
|
-
rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/lhoyb3hc9ccT9NA_y2cfA",
|
|
58
|
+
name: "Base",
|
|
59
|
+
// rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/lhoyb3hc9ccT9NA_y2cfA",
|
|
60
|
+
rpcUrl: base.rpcUrls.default.http[0],
|
|
58
61
|
explorerUrl: "https://explorer.ethereum.com",
|
|
59
62
|
nativeToken: { name: "Ethereum", symbol: "ETH", decimals: 18 },
|
|
60
63
|
confirmationNo: 1,
|
|
@@ -76,13 +79,50 @@ const OgChainConfig: ChainWalletConfig = {
|
|
|
76
79
|
|
|
77
80
|
|
|
78
81
|
// const wallet = new SVMChainWallet(chainConfig, testUserKeyPair, 0)
|
|
79
|
-
const wallet = new EVMChainWallet(
|
|
80
|
-
|
|
82
|
+
// const wallet = new EVMChainWallet(evmChainConfig, evmPrivateKeyExposed, 0)
|
|
83
|
+
|
|
84
|
+
//IIFE
|
|
85
|
+
const walletA = new EVMChainWallet(evmChainConfig, evmPrivateKeyExposed, 0); //wallet that has gas
|
|
86
|
+
const walletB = new EVMChainWallet(evmChainConfig, evmPrivKey, 0); // wallet that wants its transactions sponsored
|
|
87
|
+
const USDC_ADDRESS = '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238' as Hex;
|
|
88
|
+
const bundlerUrl = `https://api.pimlico.io/v2/${evmChainConfig.chainId}/rpc?apikey=pim_3UEhbTpS98H1XFm8p9kRxg`;
|
|
89
|
+
(async () => {
|
|
90
|
+
//GET TOKEN LOGO using @solana/spl-token-metadata
|
|
91
|
+
const walletANativeBalance = await walletA.getNativeBalance();
|
|
92
|
+
console.log('walletA native balance: ', walletANativeBalance);
|
|
93
|
+
|
|
94
|
+
const walletBNativeBalance = await walletB.getNativeBalance();
|
|
95
|
+
console.log('walletB native balance: ', walletBNativeBalance);
|
|
96
|
+
|
|
97
|
+
//wallet B USDC balance
|
|
98
|
+
const walletBUSDCBalance = await walletB.getTokenBalance(USDC_ADDRESS);
|
|
99
|
+
console.log('walletB USDC balance: ', walletBUSDCBalance);
|
|
100
|
+
|
|
101
|
+
//extend wallet A wallet to a smart wallet with AA support
|
|
102
|
+
const extendedWalletA = await walletA.extend({
|
|
103
|
+
bundlerUrl: bundlerUrl
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
console.log('extendedWalletA: ', extendedWalletA);
|
|
107
|
+
const initializedExtendedWalletA = await extendedWalletA.initialize()
|
|
108
|
+
|
|
109
|
+
console.log('initializedExtendedWalletA: ', initializedExtendedWalletA);
|
|
110
|
+
|
|
111
|
+
//sponsor a transaction for wallet B from extended wallet A
|
|
112
|
+
// const result = await initializedExtendedWalletA.sendSponsoredBatchTransaction({
|
|
113
|
+
|
|
114
|
+
// })
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
})();
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
81
121
|
// console.log('wallet: ', wallet);
|
|
82
122
|
// getTokenInfo(new PublicKey("9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump"), wallet.connection!).then(e => console.log('token info: ', e))
|
|
83
123
|
// wallet.discoverToken().then(e => console.log('discovered tokens: ', e))
|
|
84
124
|
// wallet.getNativeBalance().then(e => console.log('native balance: ', e))
|
|
85
|
-
|
|
125
|
+
|
|
86
126
|
// const toBuy = new PublicKey("9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump")
|
|
87
127
|
// wallet.swap({
|
|
88
128
|
// name: NATIVE_MINT.toBase58(),
|
|
@@ -125,19 +165,19 @@ const connection = new Connection(RPC_URL);
|
|
|
125
165
|
// }).catch((error: any) => {
|
|
126
166
|
// console.error("Error fetching transaction history:", error);
|
|
127
167
|
// });
|
|
128
|
-
const client = createPublicClient({
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
getEVMTransactionHistory(client as PublicClient, "0x9C82CE0e125F61AdE50BC0c19638F6Ba93d71D5e", {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}).then((history: any) => {
|
|
137
|
-
|
|
138
|
-
}).catch((error: any) => {
|
|
139
|
-
|
|
140
|
-
});
|
|
168
|
+
// const client = createPublicClient({
|
|
169
|
+
// chain: base,
|
|
170
|
+
// transport: http(base.rpcUrls.default.http[0]),
|
|
171
|
+
// })
|
|
172
|
+
|
|
173
|
+
// getEVMTransactionHistory(client as PublicClient, "0x9C82CE0e125F61AdE50BC0c19638F6Ba93d71D5e", {
|
|
174
|
+
// startBlock: BigInt(37427020)
|
|
175
|
+
// // before: "0xabc..."
|
|
176
|
+
// }).then((history: any) => {
|
|
177
|
+
// console.log("EVM Transaction History:", history);
|
|
178
|
+
// }).catch((error: any) => {
|
|
179
|
+
// console.error("Error fetching EVM transaction history:", error);
|
|
180
|
+
// });
|
|
141
181
|
|
|
142
182
|
// discoverNFTs("0x498581ff718922c3f8e6a244956af099b2652b2b", evmChainConfig).then(nfts => {
|
|
143
183
|
// console.log("Discovered NFTs:", nfts);
|
|
@@ -1,591 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Smart Wallet Usage Examples
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive examples demonstrating all smart wallet features
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { EVMChainWallet } from "./evm";
|
|
8
|
-
import { parseEther, parseUnits, encodeFunctionData, parseAbi } from "viem";
|
|
9
|
-
import { ChainWalletConfig } from "../types";
|
|
10
|
-
|
|
11
|
-
// ============================================
|
|
12
|
-
// Example 1: Basic Smart Wallet Setup
|
|
13
|
-
// ============================================
|
|
14
|
-
|
|
15
|
-
async function example1_BasicSetup() {
|
|
16
|
-
console.log("\n=== Example 1: Basic Setup ===\n");
|
|
17
|
-
|
|
18
|
-
// Create regular EVM wallet
|
|
19
|
-
const config: ChainWalletConfig = {
|
|
20
|
-
name: "Sepolia",
|
|
21
|
-
chainId: 11155111,
|
|
22
|
-
rpcUrl: "https://sepolia.infura.io/v3/YOUR_INFURA_KEY",
|
|
23
|
-
explorerUrl: "https://sepolia.etherscan.io",
|
|
24
|
-
nativeToken: {
|
|
25
|
-
name: "Ethereum",
|
|
26
|
-
symbol: "ETH",
|
|
27
|
-
decimals: 18,
|
|
28
|
-
address: "native"
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const privateKey = "0x..."; // Your private key
|
|
33
|
-
const evmWallet = new EVMChainWallet(config, privateKey, 0);
|
|
34
|
-
|
|
35
|
-
console.log("EOA Address:", evmWallet.address);
|
|
36
|
-
|
|
37
|
-
// Extend with smart wallet capabilities
|
|
38
|
-
const smartWallet = await evmWallet.extend({
|
|
39
|
-
bundlerProvider: "pimlico",
|
|
40
|
-
apiKey: process.env.PIMLICO_API_KEY!
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
console.log("Smart Wallet Address:", smartWallet.getAddress());
|
|
44
|
-
|
|
45
|
-
// Get account info
|
|
46
|
-
const info = await smartWallet.getAccountInfo();
|
|
47
|
-
console.log("Account Info:", {
|
|
48
|
-
address: info.address,
|
|
49
|
-
owner: info.ownerAddress,
|
|
50
|
-
chain: info.chain.name,
|
|
51
|
-
delegated: info.isDelegated,
|
|
52
|
-
balance: info.balance.toString()
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// ============================================
|
|
57
|
-
// Example 2: Single Transaction
|
|
58
|
-
// ============================================
|
|
59
|
-
|
|
60
|
-
async function example2_SingleTransaction(smartWallet: any) {
|
|
61
|
-
console.log("\n=== Example 2: Single Transaction ===\n");
|
|
62
|
-
|
|
63
|
-
const recipient = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
|
|
64
|
-
const amount = parseEther("0.01");
|
|
65
|
-
|
|
66
|
-
const result = await smartWallet.sendTransaction(recipient, amount);
|
|
67
|
-
|
|
68
|
-
if (result.success) {
|
|
69
|
-
console.log("✅ Transaction successful!");
|
|
70
|
-
console.log("UserOp Hash:", result.userOpHash);
|
|
71
|
-
console.log("Transaction Hash:", result.transactionHash);
|
|
72
|
-
} else {
|
|
73
|
-
console.error("❌ Transaction failed:", result.error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// ============================================
|
|
78
|
-
// Example 3: Batch Transactions
|
|
79
|
-
// ============================================
|
|
80
|
-
|
|
81
|
-
async function example3_BatchTransactions(smartWallet: any) {
|
|
82
|
-
console.log("\n=== Example 3: Batch Transactions ===\n");
|
|
83
|
-
|
|
84
|
-
// Send ETH to multiple recipients in ONE transaction
|
|
85
|
-
const recipients = [
|
|
86
|
-
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
|
87
|
-
"0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
|
|
88
|
-
"0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2"
|
|
89
|
-
];
|
|
90
|
-
|
|
91
|
-
const calls = recipients.map((recipient, i) =>
|
|
92
|
-
smartWallet.prepareCall(
|
|
93
|
-
recipient,
|
|
94
|
-
parseEther(`0.0${i + 1}`) // 0.01, 0.02, 0.03 ETH
|
|
95
|
-
)
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
console.log(`Sending to ${recipients.length} recipients in one transaction...`);
|
|
99
|
-
|
|
100
|
-
const result = await smartWallet.sendBatchTransaction(calls);
|
|
101
|
-
|
|
102
|
-
if (result.success) {
|
|
103
|
-
console.log("✅ Batch transaction successful!");
|
|
104
|
-
console.log("Transaction Hash:", result.transactionHash);
|
|
105
|
-
console.log("💰 Gas saved: ~80% compared to individual transactions");
|
|
106
|
-
} else {
|
|
107
|
-
console.error("❌ Batch transaction failed:", result.error);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// ============================================
|
|
112
|
-
// Example 4: Batch with Contract Interactions
|
|
113
|
-
// ============================================
|
|
114
|
-
|
|
115
|
-
async function example4_BatchWithContracts(smartWallet: any) {
|
|
116
|
-
console.log("\n=== Example 4: Batch with Contracts ===\n");
|
|
117
|
-
|
|
118
|
-
const USDC_ADDRESS = "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"; // Sepolia USDC
|
|
119
|
-
const recipient = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
|
|
120
|
-
|
|
121
|
-
// Prepare USDC transfer calldata
|
|
122
|
-
const transferCalldata = encodeFunctionData({
|
|
123
|
-
abi: parseAbi(["function transfer(address to, uint256 amount)"]),
|
|
124
|
-
functionName: "transfer",
|
|
125
|
-
args: [recipient, parseUnits("10", 6)] // 10 USDC
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
// Batch: Send ETH + Send USDC in one transaction
|
|
129
|
-
const calls = [
|
|
130
|
-
smartWallet.prepareCall(recipient, parseEther("0.01")),
|
|
131
|
-
smartWallet.prepareCall(USDC_ADDRESS, 0n, transferCalldata)
|
|
132
|
-
];
|
|
133
|
-
|
|
134
|
-
console.log("Sending ETH + USDC in one transaction...");
|
|
135
|
-
|
|
136
|
-
const result = await smartWallet.sendBatchTransaction(calls);
|
|
137
|
-
|
|
138
|
-
if (result.success) {
|
|
139
|
-
console.log("✅ Batch successful!");
|
|
140
|
-
console.log("Sent 0.01 ETH + 10 USDC in one transaction");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// ============================================
|
|
145
|
-
// Example 5: Session Keys - Complete Workflow
|
|
146
|
-
// ============================================
|
|
147
|
-
|
|
148
|
-
async function example5_SessionKeys(smartWallet: any) {
|
|
149
|
-
console.log("\n=== Example 5: Session Keys ===\n");
|
|
150
|
-
|
|
151
|
-
// STEP 1: Agent generates session key
|
|
152
|
-
console.log("Step 1: Agent generates session key");
|
|
153
|
-
const sessionKey = await smartWallet.generateSessionKey();
|
|
154
|
-
|
|
155
|
-
console.log("Session Key Address:", sessionKey.address);
|
|
156
|
-
console.log("Session Key Private Key:", sessionKey.privateKey);
|
|
157
|
-
console.log("⚠️ Store private key securely!");
|
|
158
|
-
|
|
159
|
-
// STEP 2: Owner approves session key with permissions
|
|
160
|
-
console.log("\nStep 2: Owner approves session key");
|
|
161
|
-
|
|
162
|
-
const USDC_ADDRESS = "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238";
|
|
163
|
-
|
|
164
|
-
const approval = await smartWallet.approveSessionKey({
|
|
165
|
-
sessionKeyAddress: sessionKey.address,
|
|
166
|
-
permissions: [
|
|
167
|
-
// Max 100 USDC per transfer
|
|
168
|
-
smartWallet.createUSDCPermission(USDC_ADDRESS, "100"),
|
|
169
|
-
// Max 0.1 ETH per transfer
|
|
170
|
-
smartWallet.createETHPermission("0.1")
|
|
171
|
-
]
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
console.log("✅ Session key approved!");
|
|
175
|
-
console.log("Approval string length:", approval.length);
|
|
176
|
-
console.log("Share this approval with the agent →", approval.substring(0, 50) + "...");
|
|
177
|
-
|
|
178
|
-
// STEP 3: Agent uses session key
|
|
179
|
-
console.log("\nStep 3: Agent uses session key");
|
|
180
|
-
|
|
181
|
-
// Recreate session key from private key
|
|
182
|
-
const recreatedKey = await smartWallet.recreateSessionKey(sessionKey.privateKey);
|
|
183
|
-
|
|
184
|
-
// Use the session key
|
|
185
|
-
await smartWallet.useSessionKey({
|
|
186
|
-
approval,
|
|
187
|
-
sessionKeySigner: recreatedKey.signer
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
console.log("✅ Now using session key");
|
|
191
|
-
console.log("Session key active:", smartWallet.isUsingSessionKey());
|
|
192
|
-
|
|
193
|
-
// Agent can now send transactions within limits
|
|
194
|
-
const recipient = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
|
|
195
|
-
|
|
196
|
-
const result = await smartWallet.sendTransaction(
|
|
197
|
-
recipient,
|
|
198
|
-
parseEther("0.05") // Within 0.1 ETH limit
|
|
199
|
-
);
|
|
200
|
-
|
|
201
|
-
if (result.success) {
|
|
202
|
-
console.log("✅ Transaction sent with session key!");
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// STEP 4: Clear session key
|
|
206
|
-
smartWallet.clearSessionKey();
|
|
207
|
-
console.log("\nSession key cleared:", !smartWallet.isUsingSessionKey());
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// ============================================
|
|
211
|
-
// Example 6: Session Keys - Sudo Mode
|
|
212
|
-
// ============================================
|
|
213
|
-
|
|
214
|
-
async function example6_SessionKeysSudo(smartWallet: any) {
|
|
215
|
-
console.log("\n=== Example 6: Session Keys (Sudo Mode) ===\n");
|
|
216
|
-
|
|
217
|
-
const sessionKey = await smartWallet.generateSessionKey();
|
|
218
|
-
|
|
219
|
-
// Approve with unrestricted sudo access
|
|
220
|
-
// ⚠️ Only use for testing or trusted agents!
|
|
221
|
-
const approval = await smartWallet.approveSessionKey({
|
|
222
|
-
sessionKeyAddress: sessionKey.address,
|
|
223
|
-
useSudoPolicy: true // Unrestricted access
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
console.log("✅ Session key approved with SUDO access");
|
|
227
|
-
console.log("⚠️ This session key has UNRESTRICTED access!");
|
|
228
|
-
|
|
229
|
-
await smartWallet.useSessionKey({
|
|
230
|
-
approval,
|
|
231
|
-
sessionKeySigner: sessionKey.signer
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
console.log("Session key can now perform any transaction");
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// ============================================
|
|
238
|
-
// Example 7: Module Management
|
|
239
|
-
// ============================================
|
|
240
|
-
|
|
241
|
-
async function example7_ModuleManagement(smartWallet: any) {
|
|
242
|
-
console.log("\n=== Example 7: Module Management ===\n");
|
|
243
|
-
|
|
244
|
-
const validatorAddress = "0x..."; // Your validator module address
|
|
245
|
-
|
|
246
|
-
// Check if module is installed
|
|
247
|
-
const isInstalled = await smartWallet.isModuleInstalled(
|
|
248
|
-
"validator",
|
|
249
|
-
validatorAddress
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
console.log("Module installed:", isInstalled);
|
|
253
|
-
|
|
254
|
-
if (!isInstalled) {
|
|
255
|
-
// Install module
|
|
256
|
-
console.log("Installing module...");
|
|
257
|
-
|
|
258
|
-
const result = await smartWallet.installModule({
|
|
259
|
-
moduleType: "validator",
|
|
260
|
-
moduleAddress: validatorAddress,
|
|
261
|
-
initData: "0x" // Module-specific init data
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
if (result.success) {
|
|
265
|
-
console.log("✅ Module installed!");
|
|
266
|
-
}
|
|
267
|
-
} else {
|
|
268
|
-
// Uninstall module
|
|
269
|
-
console.log("Uninstalling module...");
|
|
270
|
-
|
|
271
|
-
const result = await smartWallet.uninstallModule({
|
|
272
|
-
moduleType: "validator",
|
|
273
|
-
moduleAddress: validatorAddress
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
if (result.success) {
|
|
277
|
-
console.log("✅ Module uninstalled!");
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// ============================================
|
|
283
|
-
// Example 8: Batch Module Operations
|
|
284
|
-
// ============================================
|
|
285
|
-
|
|
286
|
-
async function example8_BatchModules(smartWallet: any) {
|
|
287
|
-
console.log("\n=== Example 8: Batch Module Operations ===\n");
|
|
288
|
-
|
|
289
|
-
const validator1 = "0x...";
|
|
290
|
-
const validator2 = "0x...";
|
|
291
|
-
const hook1 = "0x...";
|
|
292
|
-
|
|
293
|
-
// Install multiple modules in one transaction
|
|
294
|
-
const calls = [
|
|
295
|
-
smartWallet.prepareInstallModule({
|
|
296
|
-
moduleType: "validator",
|
|
297
|
-
moduleAddress: validator1
|
|
298
|
-
}),
|
|
299
|
-
smartWallet.prepareInstallModule({
|
|
300
|
-
moduleType: "validator",
|
|
301
|
-
moduleAddress: validator2
|
|
302
|
-
}),
|
|
303
|
-
smartWallet.prepareInstallModule({
|
|
304
|
-
moduleType: "hook",
|
|
305
|
-
moduleAddress: hook1
|
|
306
|
-
})
|
|
307
|
-
];
|
|
308
|
-
|
|
309
|
-
console.log("Installing 3 modules in one transaction...");
|
|
310
|
-
|
|
311
|
-
const result = await smartWallet.sendBatchTransaction(calls);
|
|
312
|
-
|
|
313
|
-
if (result.success) {
|
|
314
|
-
console.log("✅ All modules installed!");
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// ============================================
|
|
319
|
-
// Example 9: Multi-Signature
|
|
320
|
-
// ============================================
|
|
321
|
-
|
|
322
|
-
async function example9_MultiSignature(smartWallet: any) {
|
|
323
|
-
console.log("\n=== Example 9: Multi-Signature ===\n");
|
|
324
|
-
|
|
325
|
-
const owner1 = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
|
|
326
|
-
const owner2 = "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4";
|
|
327
|
-
const owner3 = "0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2";
|
|
328
|
-
|
|
329
|
-
// Enable 2-of-3 multi-sig
|
|
330
|
-
const result = await smartWallet.enableMultiSig({
|
|
331
|
-
owners: [owner1, owner2, owner3],
|
|
332
|
-
threshold: 2 // Require 2 signatures
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
if (result.success) {
|
|
336
|
-
console.log("✅ Multi-sig enabled!");
|
|
337
|
-
console.log("Threshold: 2 of 3 owners required");
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
// ============================================
|
|
342
|
-
// Example 10: Gas Sponsorship (Paymaster)
|
|
343
|
-
// ============================================
|
|
344
|
-
|
|
345
|
-
async function example10_Paymaster(smartWallet: any) {
|
|
346
|
-
console.log("\n=== Example 10: Gas Sponsorship ===\n");
|
|
347
|
-
|
|
348
|
-
const paymasterUrl = "https://api.pimlico.io/v2/sepolia/paymaster";
|
|
349
|
-
|
|
350
|
-
// Enable paymaster
|
|
351
|
-
smartWallet.setPaymaster(paymasterUrl);
|
|
352
|
-
|
|
353
|
-
console.log("✅ Paymaster enabled");
|
|
354
|
-
console.log("Has paymaster:", smartWallet.hasPaymaster());
|
|
355
|
-
|
|
356
|
-
// User doesn't pay gas!
|
|
357
|
-
const result = await smartWallet.sendTransaction(
|
|
358
|
-
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
|
359
|
-
parseEther("0.01")
|
|
360
|
-
);
|
|
361
|
-
|
|
362
|
-
if (result.success) {
|
|
363
|
-
console.log("✅ Transaction sponsored! User paid $0 in gas");
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// Disable paymaster
|
|
367
|
-
smartWallet.clearPaymaster();
|
|
368
|
-
console.log("Paymaster disabled");
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// ============================================
|
|
372
|
-
// Example 11: Check Account Status
|
|
373
|
-
// ============================================
|
|
374
|
-
|
|
375
|
-
async function example11_AccountStatus(smartWallet: any) {
|
|
376
|
-
console.log("\n=== Example 11: Account Status ===\n");
|
|
377
|
-
|
|
378
|
-
// Get full account info
|
|
379
|
-
const info = await smartWallet.getAccountInfo();
|
|
380
|
-
|
|
381
|
-
console.log("Account Information:");
|
|
382
|
-
console.log(" Address:", info.address);
|
|
383
|
-
console.log(" Owner:", info.ownerAddress);
|
|
384
|
-
console.log(" Chain:", info.chain.name, `(${info.chain.id})`);
|
|
385
|
-
console.log(" EntryPoint:", info.entryPointVersion);
|
|
386
|
-
console.log(" Delegated:", info.isDelegated);
|
|
387
|
-
console.log(" Balance:", info.balance.toString(), "wei");
|
|
388
|
-
|
|
389
|
-
// Get balance
|
|
390
|
-
const balance = await smartWallet.getBalance();
|
|
391
|
-
console.log("\nBalance:", balance.formatted, "ETH");
|
|
392
|
-
|
|
393
|
-
// Check delegation
|
|
394
|
-
const isDelegated = await smartWallet.isAccountDelegated();
|
|
395
|
-
console.log("Account delegated:", isDelegated);
|
|
396
|
-
|
|
397
|
-
// Get bundler info
|
|
398
|
-
const bundlerInfo = smartWallet.getBundlerInfo();
|
|
399
|
-
console.log("\nBundler:");
|
|
400
|
-
console.log(" Provider:", bundlerInfo.provider);
|
|
401
|
-
console.log(" URL:", bundlerInfo.url);
|
|
402
|
-
|
|
403
|
-
// Check session key status
|
|
404
|
-
console.log("\nSession key active:", smartWallet.isUsingSessionKey());
|
|
405
|
-
|
|
406
|
-
// Check paymaster status
|
|
407
|
-
console.log("Paymaster enabled:", smartWallet.hasPaymaster());
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
// ============================================
|
|
411
|
-
// Example 12: Dual Mode (EOA + Smart Wallet)
|
|
412
|
-
// ============================================
|
|
413
|
-
|
|
414
|
-
async function example12_DualMode() {
|
|
415
|
-
console.log("\n=== Example 12: Dual Mode ===\n");
|
|
416
|
-
|
|
417
|
-
const config: ChainWalletConfig = {
|
|
418
|
-
name: "Sepolia",
|
|
419
|
-
chainId: 11155111,
|
|
420
|
-
rpcUrl: "https://sepolia.infura.io/v3/YOUR_INFURA_KEY",
|
|
421
|
-
explorerUrl: "https://sepolia.etherscan.io",
|
|
422
|
-
nativeToken: {
|
|
423
|
-
name: "Ethereum",
|
|
424
|
-
symbol: "ETH",
|
|
425
|
-
decimals: 18,
|
|
426
|
-
address: "native"
|
|
427
|
-
}
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
const privateKey = "0x...";
|
|
431
|
-
const evmWallet = new EVMChainWallet(config, privateKey, 0);
|
|
432
|
-
|
|
433
|
-
// Enable smart wallet
|
|
434
|
-
const smartWallet = await evmWallet.extend({
|
|
435
|
-
bundlerProvider: "pimlico",
|
|
436
|
-
apiKey: process.env.PIMLICO_API_KEY!
|
|
437
|
-
});
|
|
438
|
-
|
|
439
|
-
console.log("EOA Address:", evmWallet.address);
|
|
440
|
-
console.log("Smart Wallet Address:", smartWallet.getAddress());
|
|
441
|
-
|
|
442
|
-
// Both modes work simultaneously!
|
|
443
|
-
|
|
444
|
-
// Use regular EOA for simple transfers
|
|
445
|
-
console.log("\n1. Using EOA (regular transaction):");
|
|
446
|
-
await evmWallet.transferNative("0x...", 0.01);
|
|
447
|
-
console.log("✅ EOA transaction sent");
|
|
448
|
-
|
|
449
|
-
// Use smart wallet for batch operations
|
|
450
|
-
console.log("\n2. Using Smart Wallet (batched UserOp):");
|
|
451
|
-
const calls = [
|
|
452
|
-
smartWallet.prepareCall("0x...", parseEther("0.01")),
|
|
453
|
-
smartWallet.prepareCall("0x...", parseEther("0.02"))
|
|
454
|
-
];
|
|
455
|
-
await smartWallet.sendBatchTransaction(calls);
|
|
456
|
-
console.log("✅ Smart wallet batch sent");
|
|
457
|
-
|
|
458
|
-
// Use regular EOA for swaps
|
|
459
|
-
console.log("\n3. Using EOA (swap):");
|
|
460
|
-
await evmWallet.swap(
|
|
461
|
-
{ address: "0xTokenIn", name: "TokenIn", symbol: "TKN", decimals: 18 },
|
|
462
|
-
"0xTokenOut",
|
|
463
|
-
1
|
|
464
|
-
);
|
|
465
|
-
console.log("✅ EOA swap executed");
|
|
466
|
-
|
|
467
|
-
console.log("\n✨ Both EOA and Smart Wallet work together!");
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
// ============================================
|
|
471
|
-
// Example 13: Error Handling
|
|
472
|
-
// ============================================
|
|
473
|
-
|
|
474
|
-
async function example13_ErrorHandling(smartWallet: any) {
|
|
475
|
-
console.log("\n=== Example 13: Error Handling ===\n");
|
|
476
|
-
|
|
477
|
-
try {
|
|
478
|
-
const result = await smartWallet.sendTransaction(
|
|
479
|
-
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
|
480
|
-
parseEther("1000") // Insufficient balance
|
|
481
|
-
);
|
|
482
|
-
|
|
483
|
-
if (result.success) {
|
|
484
|
-
console.log("✅ Success:", result.transactionHash);
|
|
485
|
-
} else {
|
|
486
|
-
console.log("❌ Transaction failed:", result.error);
|
|
487
|
-
|
|
488
|
-
// Handle specific errors
|
|
489
|
-
if (result.error?.includes("insufficient funds")) {
|
|
490
|
-
console.log("→ Account needs more ETH");
|
|
491
|
-
} else if (result.error?.includes("AA23")) {
|
|
492
|
-
console.log("→ UserOperation validation failed");
|
|
493
|
-
} else if (result.error?.includes("AA21")) {
|
|
494
|
-
console.log("→ UserOperation expired");
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
} catch (error: any) {
|
|
498
|
-
console.error("Unexpected error:", error.message);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
// ============================================
|
|
503
|
-
// Example 14: Automated Trading Bot
|
|
504
|
-
// ============================================
|
|
505
|
-
|
|
506
|
-
async function example14_TradingBot(smartWallet: any) {
|
|
507
|
-
console.log("\n=== Example 14: Automated Trading Bot ===\n");
|
|
508
|
-
|
|
509
|
-
// Generate session key for bot
|
|
510
|
-
const sessionKey = await smartWallet.generateSessionKey();
|
|
511
|
-
|
|
512
|
-
console.log("Bot session key:", sessionKey.address);
|
|
513
|
-
|
|
514
|
-
// Owner approves with trading limits
|
|
515
|
-
const approval = await smartWallet.approveSessionKey({
|
|
516
|
-
sessionKeyAddress: sessionKey.address,
|
|
517
|
-
permissions: [
|
|
518
|
-
smartWallet.createUSDCPermission(
|
|
519
|
-
"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
520
|
-
"1000" // Max 1000 USDC per trade
|
|
521
|
-
),
|
|
522
|
-
smartWallet.createETHPermission("1.0") // Max 1 ETH per trade
|
|
523
|
-
]
|
|
524
|
-
});
|
|
525
|
-
|
|
526
|
-
console.log("✅ Trading bot approved with limits");
|
|
527
|
-
|
|
528
|
-
// Bot uses session key
|
|
529
|
-
const botKey = await smartWallet.recreateSessionKey(sessionKey.privateKey);
|
|
530
|
-
await smartWallet.useSessionKey({
|
|
531
|
-
approval,
|
|
532
|
-
sessionKeySigner: botKey.signer
|
|
533
|
-
});
|
|
534
|
-
|
|
535
|
-
// Bot executes trades
|
|
536
|
-
console.log("\n🤖 Bot executing automated trades...");
|
|
537
|
-
|
|
538
|
-
const dexAddress = "0x..."; // DEX router address
|
|
539
|
-
const swapCalldata = "0x..."; // Swap transaction data
|
|
540
|
-
|
|
541
|
-
const result = await smartWallet.sendTransaction(dexAddress, 0n, swapCalldata);
|
|
542
|
-
|
|
543
|
-
if (result.success) {
|
|
544
|
-
console.log("✅ Bot trade executed:", result.transactionHash);
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
console.log("\n💡 Bot can trade within limits without owner approval!");
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
// ============================================
|
|
551
|
-
// Main Runner
|
|
552
|
-
// ============================================
|
|
553
|
-
|
|
554
|
-
async function runAllExamples() {
|
|
555
|
-
console.log("🚀 Smart Wallet Examples\n");
|
|
556
|
-
|
|
557
|
-
try {
|
|
558
|
-
// await example1_BasicSetup();
|
|
559
|
-
|
|
560
|
-
// Note: Uncomment individual examples to run them
|
|
561
|
-
// Make sure to provide valid private keys and API keys
|
|
562
|
-
|
|
563
|
-
console.log("\n✅ All examples completed!");
|
|
564
|
-
console.log("\nTo run an example:");
|
|
565
|
-
console.log("1. Uncomment the example in runAllExamples()");
|
|
566
|
-
console.log("2. Set your private key and API key");
|
|
567
|
-
console.log("3. Run: npx tsx SMART_WALLET_EXAMPLES.ts");
|
|
568
|
-
} catch (error) {
|
|
569
|
-
console.error("Error:", error);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
// Uncomment to run
|
|
574
|
-
// runAllExamples();
|
|
575
|
-
|
|
576
|
-
export {
|
|
577
|
-
example1_BasicSetup,
|
|
578
|
-
example2_SingleTransaction,
|
|
579
|
-
example3_BatchTransactions,
|
|
580
|
-
example4_BatchWithContracts,
|
|
581
|
-
example5_SessionKeys,
|
|
582
|
-
example6_SessionKeysSudo,
|
|
583
|
-
example7_ModuleManagement,
|
|
584
|
-
example8_BatchModules,
|
|
585
|
-
example9_MultiSignature,
|
|
586
|
-
example10_Paymaster,
|
|
587
|
-
example11_AccountStatus,
|
|
588
|
-
example12_DualMode,
|
|
589
|
-
example13_ErrorHandling,
|
|
590
|
-
example14_TradingBot
|
|
591
|
-
};
|