@deserialize/multi-vm-wallet 1.4.0 → 1.4.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/dist/IChainWallet.d.ts +1 -0
- package/dist/IChainWallet.js.map +1 -1
- package/dist/evm/evm.d.ts +3 -5
- package/dist/evm/evm.js +12 -7
- package/dist/evm/evm.js.map +1 -1
- package/dist/savings/index.js +1 -23
- package/dist/savings/index.js.map +1 -1
- package/dist/savings/saving-actions.d.ts +0 -29
- package/dist/savings/saving-actions.js +76 -54
- package/dist/savings/saving-actions.js.map +1 -1
- package/dist/svm/svm.d.ts +2 -0
- package/dist/svm/svm.js +6 -0
- package/dist/svm/svm.js.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +20 -0
- package/dist/utils.js.map +1 -1
- package/dist/vm.js.map +1 -1
- package/package.json +1 -1
- package/utils/IChainWallet.ts +2 -0
- package/utils/evm/evm.ts +18 -8
- package/utils/savings/index.ts +1 -28
- package/utils/savings/saving-actions.ts +92 -77
- package/utils/svm/svm.ts +8 -0
- package/utils/utils.ts +19 -2
- package/utils/vm.ts +1 -0
package/dist/IChainWallet.d.ts
CHANGED
|
@@ -21,4 +21,5 @@ export declare abstract class ChainWallet<AddressType, PrivateKeyType, Connectio
|
|
|
21
21
|
abstract getPrices(tokenAddresses: string[]): Promise<PriceResponse>;
|
|
22
22
|
getAddress(): AddressType;
|
|
23
23
|
getChainWalletConfig(): ChainWalletConfig;
|
|
24
|
+
abstract convertFromEntropyToPrivateKey(entropy: string): PrivateKeyType;
|
|
24
25
|
}
|
package/dist/IChainWallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IChainWallet.js","sourceRoot":"","sources":["../utils/IChainWallet.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;IACnB,UAAU,CAAiB;IACrC,MAAM,CAAoB;IAC1B,OAAO,CAAc;IACrB,KAAK,CAAoB;IACzB,UAAU,CAA4B;IAEtC,YAAY,MAAyB,EAAE,UAA0B,EAAE,KAAc;QAC7E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAEvB,CAAC;IAYD,+GAA+G;IAC/G,mEAAmE;IACnE,mFAAmF;IACnF,oDAAoD;IAEpD,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,oBAAoB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"IChainWallet.js","sourceRoot":"","sources":["../utils/IChainWallet.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;IACnB,UAAU,CAAiB;IACrC,MAAM,CAAoB;IAC1B,OAAO,CAAc;IACrB,KAAK,CAAoB;IACzB,UAAU,CAA4B;IAEtC,YAAY,MAAyB,EAAE,UAA0B,EAAE,KAAc;QAC7E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAEvB,CAAC;IAYD,+GAA+G;IAC/G,mEAAmE;IACnE,mFAAmF;IACnF,oDAAoD;IAEpD,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,oBAAoB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CAIJ;AAvCD,kCAuCC"}
|
package/dist/evm/evm.d.ts
CHANGED
|
@@ -7,11 +7,10 @@ import { ChainWallet } from "../IChainWallet";
|
|
|
7
7
|
import { Balance, ChainWalletConfig, UserTokenBalance, TokenInfo, TransactionResult, NFT } from "../types";
|
|
8
8
|
import { VM } from "../vm";
|
|
9
9
|
import { EVMTransactionHistoryItem } from "./transactionParsing";
|
|
10
|
-
import { Hex, WalletClient, PublicClient
|
|
10
|
+
import { Hex, WalletClient, PublicClient } from "viem";
|
|
11
11
|
import { EVMSmartWallet } from "./smartWallet";
|
|
12
12
|
import { SmartWalletOptions } from "./aa-service";
|
|
13
13
|
import { PriceResponse } from "../price.types";
|
|
14
|
-
import { SavingsManager } from "../savings/saving-actions";
|
|
15
14
|
export declare class EVMVM extends VM<string, string, PublicClient> {
|
|
16
15
|
derivationPath: string;
|
|
17
16
|
constructor(seed: string);
|
|
@@ -41,24 +40,23 @@ export declare class EVMVM extends VM<string, string, PublicClient> {
|
|
|
41
40
|
static validateAddress(address: string): boolean;
|
|
42
41
|
static getNativeBalance(address: string, connection: PublicClient): Promise<Balance>;
|
|
43
42
|
static getTokenBalance(address: string, tokenAddress: string, connection: PublicClient): Promise<Balance>;
|
|
43
|
+
static convertFromEntropyToPrivateKey: (entropy: string) => string;
|
|
44
44
|
}
|
|
45
45
|
export declare class EVMChainWallet extends ChainWallet<string, string, PublicClient> {
|
|
46
46
|
wallet: WalletClient;
|
|
47
47
|
private smartWallet?;
|
|
48
|
-
private savingsManager?;
|
|
49
|
-
private smartSavingsManager?;
|
|
50
48
|
constructor(config: ChainWalletConfig, privateKey: string, index: number);
|
|
51
49
|
/**
|
|
52
50
|
* Check if Account Abstraction is supported on this chain
|
|
53
51
|
* @returns true if aaSupport is enabled in config
|
|
54
52
|
*/
|
|
55
53
|
private isAASupportedByChain;
|
|
54
|
+
convertFromEntropyToPrivateKey: (entropy: string) => string;
|
|
56
55
|
/**
|
|
57
56
|
* Check if smart wallet is initialized and ready for AA operations
|
|
58
57
|
* @returns true if extend() has been called and smart wallet exists
|
|
59
58
|
*/
|
|
60
59
|
private isSmartWalletInitialized;
|
|
61
|
-
createSavingsManager(mnemonic: string, index: number | undefined, chain: ChainConfig): SavingsManager;
|
|
62
60
|
/**
|
|
63
61
|
* Validate that AA is available for sponsored transactions
|
|
64
62
|
* @throws Error with helpful message if AA is not available
|
package/dist/evm/evm.js
CHANGED
|
@@ -16,8 +16,6 @@ const viem_1 = require("viem");
|
|
|
16
16
|
const smartWallet_1 = require("./smartWallet");
|
|
17
17
|
const price_1 = require("../price");
|
|
18
18
|
const accounts_1 = require("viem/accounts");
|
|
19
|
-
// import { extendWalletClientWithSavings } from "../savings";
|
|
20
|
-
const saving_actions_1 = require("../savings/saving-actions");
|
|
21
19
|
class EVMVM extends vm_1.VM {
|
|
22
20
|
derivationPath = "m/44'/60'/0'/0/"; // Default EVM derivation path
|
|
23
21
|
constructor(seed) {
|
|
@@ -81,14 +79,18 @@ class EVMVM extends vm_1.VM {
|
|
|
81
79
|
// Implement token balance retrieval logic here
|
|
82
80
|
return await (0, utils_1.getTokenBalance)(tokenAddress, address, connection);
|
|
83
81
|
}
|
|
82
|
+
static convertFromEntropyToPrivateKey = (entropy) => {
|
|
83
|
+
return (0, viem_1.toHex)(entropy);
|
|
84
|
+
};
|
|
84
85
|
}
|
|
85
86
|
exports.EVMVM = EVMVM;
|
|
86
87
|
class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
87
88
|
wallet;
|
|
88
89
|
smartWallet;
|
|
89
|
-
savingsManager
|
|
90
|
-
smartSavingsManager
|
|
90
|
+
// private savingsManager?: SavingsManager
|
|
91
|
+
// private smartSavingsManager?: SmartSavingsManager
|
|
91
92
|
constructor(config, privateKey, index) {
|
|
93
|
+
privateKey = privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`;
|
|
92
94
|
super(config, privateKey, index);
|
|
93
95
|
this.connection = (0, viem_1.createPublicClient)({
|
|
94
96
|
chain: (0, utils_1.fromChainToViemChain)(config),
|
|
@@ -113,6 +115,9 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
113
115
|
isAASupportedByChain() {
|
|
114
116
|
return this.config.aaSupport?.enabled === true;
|
|
115
117
|
}
|
|
118
|
+
convertFromEntropyToPrivateKey = (entropy) => {
|
|
119
|
+
return (0, viem_1.toHex)(entropy);
|
|
120
|
+
};
|
|
116
121
|
/**
|
|
117
122
|
* Check if smart wallet is initialized and ready for AA operations
|
|
118
123
|
* @returns true if extend() has been called and smart wallet exists
|
|
@@ -120,9 +125,9 @@ class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
120
125
|
isSmartWalletInitialized() {
|
|
121
126
|
return !!this.smartWallet;
|
|
122
127
|
}
|
|
123
|
-
createSavingsManager(mnemonic, index = 0, chain) {
|
|
124
|
-
|
|
125
|
-
}
|
|
128
|
+
// createSavingsManager(mnemonic: string, index: number = 0, chain: ChainWalletConfig) {
|
|
129
|
+
// return new SavingsManager(mnemonic, index, (chain))
|
|
130
|
+
// }
|
|
126
131
|
/**
|
|
127
132
|
* Validate that AA is available for sponsored transactions
|
|
128
133
|
* @throws Error with helpful message if AA is not available
|
package/dist/evm/evm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gDAA0D;AAC1D,kDAA8C;AAE9C,8BAA2B;AAC3B,mCAAwD;AAExD,mCAkBiB;AACjB,6DAA2F;AAC3F,+
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":"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"}
|
package/dist/savings/index.js
CHANGED
|
@@ -1,25 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// import { SavingsActions } from "./saving-actions";
|
|
4
|
-
// export interface ExtendedWalletClient extends WalletClient {
|
|
5
|
-
// extendSavings?: (mnemonic: string, walletIndex?: number) => SavingsActions;
|
|
6
|
-
// savingsActions?: SavingsActions;
|
|
7
|
-
// }
|
|
8
|
-
// /**
|
|
9
|
-
// * Adds savings functionality to an existing WalletClient
|
|
10
|
-
// */
|
|
11
|
-
// export function extendWalletClientWithSavings(
|
|
12
|
-
// wallet: WalletClient,
|
|
13
|
-
// client: PublicClient,
|
|
14
|
-
// walletIndex: number = 0
|
|
15
|
-
// ): ExtendedWalletClient {
|
|
16
|
-
// const extended = wallet as ExtendedWalletClient;
|
|
17
|
-
// extended.extendSavings = (mnemonic: string, index: number = walletIndex) => {
|
|
18
|
-
// if (!extended.savingsActions) {
|
|
19
|
-
// extended.savingsActions = new SavingsActions(mnemonic, index);
|
|
20
|
-
// }
|
|
21
|
-
// return extended.savingsActions;
|
|
22
|
-
// };
|
|
23
|
-
// return extended;
|
|
24
|
-
// }
|
|
2
|
+
// export * from "./saving-actions"
|
|
25
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/savings/index.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/savings/index.ts"],"names":[],"mappings":";AAAA,mCAAmC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { WalletClient, PublicClient, ChainConfig } from "viem";
|
|
2
|
-
import { TransactionResult } from "../types";
|
|
3
|
-
/**
|
|
4
|
-
* Handles multi-pocket savings accounts for an EVM wallet
|
|
5
|
-
*/
|
|
6
|
-
export declare class SavingsManager {
|
|
7
|
-
private mnemonic;
|
|
8
|
-
private walletIndex;
|
|
9
|
-
private pockets;
|
|
10
|
-
constructor(mnemonic: string, walletIndex: number | undefined, chain: ChainConfig);
|
|
11
|
-
getTotalTokenBalanceOfAllPockets(tokens: string[], pockets: number[]): void;
|
|
12
|
-
getPocketTokenBalance(tokens: string[], pocket: number): void;
|
|
13
|
-
/**
|
|
14
|
-
* Derive a pocket (savings account) at accountIndex
|
|
15
|
-
*/
|
|
16
|
-
derivePocket(accountIndex: number): {
|
|
17
|
-
privateKey: string;
|
|
18
|
-
address: string;
|
|
19
|
-
derivationPath: string;
|
|
20
|
-
};
|
|
21
|
-
getPocket(accountIndex: number): {
|
|
22
|
-
privateKey: string;
|
|
23
|
-
address: string;
|
|
24
|
-
derivationPath: string;
|
|
25
|
-
};
|
|
26
|
-
transferToPocket(mainWallet: WalletClient, client: PublicClient, accountIndex: number, amount: string): Promise<TransactionResult>;
|
|
27
|
-
transferTokenToPocket(mainWallet: WalletClient, client: PublicClient, tokenAddress: string, accountIndex: number, amount: bigint): Promise<TransactionResult>;
|
|
28
|
-
verifyPocketAddress(accountIndex: number, storedAddress: string): boolean;
|
|
29
|
-
}
|
|
@@ -1,56 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
2
|
+
// import { EVMDeriveChildPrivateKey } from "../walletBip32";
|
|
3
|
+
// import { ethers } from "ethers";
|
|
4
|
+
// import { WalletClient, PublicClient, Hex, Chain } from "viem";
|
|
5
|
+
// import { } from "../utils";
|
|
6
|
+
// import { ChainWalletConfig, TransactionResult } from "../types";
|
|
7
|
+
// import { getNativeBalance, sendERC20Token, sendNativeToken } from "../evm";
|
|
8
|
+
// import { fetchPrices } from "../price";
|
|
9
|
+
// import { privateKeyToAccount } from "viem/accounts";
|
|
10
|
+
// /**
|
|
11
|
+
// * Handles multi-pocket savings accounts for an EVM wallet
|
|
12
|
+
// */
|
|
13
|
+
// export class BaseSavingsManager {
|
|
14
|
+
// private mnemonic: string;
|
|
15
|
+
// private walletIndex: number;
|
|
16
|
+
// chain: ChainWalletConfig
|
|
17
|
+
// private pockets: Map<number, { privateKey: string; address: string; derivationPath: string }> = new Map();
|
|
18
|
+
// constructor(mnemonic: string, walletIndex: number = 0, chain: ChainWalletConfig) {
|
|
19
|
+
// this.mnemonic = mnemonic;
|
|
20
|
+
// this.chain = chain
|
|
21
|
+
// this.walletIndex = walletIndex;
|
|
22
|
+
// }
|
|
23
|
+
// /**
|
|
24
|
+
// * Derive a pocket (savings account) at accountIndex
|
|
25
|
+
// */
|
|
26
|
+
// derivePocket(accountIndex: number) {
|
|
27
|
+
// const derivationPath = `m/44'/60'/${accountIndex}'/0/${this.walletIndex}`;
|
|
28
|
+
// const { privateKey } = EVMDeriveChildPrivateKey(this.mnemonic, this.walletIndex, `m/44'/60'/${accountIndex}'/0/`);
|
|
29
|
+
// const wallet = new ethers.Wallet(privateKey);
|
|
30
|
+
// const pocket = { privateKey, address: wallet.address, derivationPath };
|
|
31
|
+
// this.pockets.set(accountIndex, pocket);
|
|
32
|
+
// return pocket;
|
|
33
|
+
// }
|
|
34
|
+
// getPocket(accountIndex: number) {
|
|
35
|
+
// if (!this.pockets.has(accountIndex)) {
|
|
36
|
+
// return this.derivePocket(accountIndex);
|
|
37
|
+
// }
|
|
38
|
+
// return this.pockets.get(accountIndex)!;
|
|
39
|
+
// }
|
|
40
|
+
// async transferToPocket(
|
|
41
|
+
// mainWallet: WalletClient,
|
|
42
|
+
// client: PublicClient,
|
|
43
|
+
// accountIndex: number,
|
|
44
|
+
// amount: string
|
|
45
|
+
// ): Promise<TransactionResult> {
|
|
46
|
+
// const pocket = this.getPocket(accountIndex);
|
|
47
|
+
// return await sendNativeToken(mainWallet, client, pocket.address as Hex, amount, 5);
|
|
48
|
+
// }
|
|
49
|
+
// async transferTokenToPocket(
|
|
50
|
+
// mainWallet: WalletClient,
|
|
51
|
+
// client: PublicClient,
|
|
52
|
+
// tokenAddress: string,
|
|
53
|
+
// accountIndex: number,
|
|
54
|
+
// amount: bigint
|
|
55
|
+
// ): Promise<TransactionResult> {
|
|
56
|
+
// const pocket = this.getPocket(accountIndex);
|
|
57
|
+
// return await sendERC20Token(mainWallet, client, tokenAddress as Hex, pocket.address as Hex, amount, 5);
|
|
58
|
+
// }
|
|
59
|
+
// verifyPocketAddress(accountIndex: number, storedAddress: string) {
|
|
60
|
+
// const pocket = this.getPocket(accountIndex);
|
|
61
|
+
// return pocket.address.toLowerCase() === storedAddress.toLowerCase();
|
|
62
|
+
// }
|
|
63
|
+
// }
|
|
64
|
+
// export class SavingsManager extends BaseSavingsManager {
|
|
65
|
+
// constructor(mnemonic: string, walletIndex: number = 0, chain: ChainWalletConfig) {
|
|
66
|
+
// super(mnemonic, walletIndex, chain)
|
|
67
|
+
// }
|
|
68
|
+
// getTotalTokenBalanceOfAllPockets(tokens: string[], pockets: number[]) {
|
|
69
|
+
// const balances = pockets.map((p: number) => { })
|
|
70
|
+
// }
|
|
71
|
+
// getPocketTokenBalance(tokens: string[], pocket: number) {
|
|
72
|
+
// const account = privateKeyToAccount(`0x${this.derivePocket(pocket).privateKey}`)
|
|
73
|
+
// const balances = tokens.map((t: string) => {
|
|
74
|
+
// const nativeBalance = getNativeBalance(account.address)
|
|
75
|
+
// })
|
|
76
|
+
// }
|
|
77
|
+
// }
|
|
56
78
|
//# sourceMappingURL=saving-actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saving-actions.js","sourceRoot":"","sources":["../../utils/savings/saving-actions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"saving-actions.js","sourceRoot":"","sources":["../../utils/savings/saving-actions.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,mCAAmC;AACnC,iEAAiE;AACjE,8BAA8B;AAC9B,mEAAmE;AACnE,8EAA8E;AAC9E,0CAA0C;AAC1C,uDAAuD;AAEvD,MAAM;AACN,6DAA6D;AAC7D,MAAM;AACN,oCAAoC;AACpC,gCAAgC;AAChC,mCAAmC;AACnC,+BAA+B;AAC/B,iHAAiH;AAEjH,yFAAyF;AACzF,oCAAoC;AACpC,6BAA6B;AAC7B,0CAA0C;AAC1C,QAAQ;AAIR,UAAU;AACV,2DAA2D;AAC3D,UAAU;AACV,2CAA2C;AAC3C,qFAAqF;AACrF,6HAA6H;AAC7H,wDAAwD;AAExD,kFAAkF;AAClF,kDAAkD;AAClD,yBAAyB;AACzB,QAAQ;AAER,wCAAwC;AACxC,iDAAiD;AACjD,sDAAsD;AACtD,YAAY;AACZ,kDAAkD;AAClD,QAAQ;AACR,8BAA8B;AAC9B,oCAAoC;AACpC,gCAAgC;AAChC,gCAAgC;AAChC,yBAAyB;AACzB,sCAAsC;AACtC,uDAAuD;AACvD,8FAA8F;AAC9F,QAAQ;AAER,mCAAmC;AACnC,oCAAoC;AACpC,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,yBAAyB;AACzB,sCAAsC;AACtC,uDAAuD;AACvD,kHAAkH;AAClH,QAAQ;AAER,yEAAyE;AACzE,uDAAuD;AACvD,+EAA+E;AAC/E,QAAQ;AACR,IAAI;AAEJ,2DAA2D;AAE3D,yFAAyF;AACzF,8CAA8C;AAC9C,QAAQ;AACR,8EAA8E;AAE9E,2DAA2D;AAC3D,QAAQ;AAER,gEAAgE;AAChE,2FAA2F;AAC3F,uDAAuD;AACvD,sEAAsE;AAGtE,aAAa;AACb,QAAQ;AAER,IAAI"}
|
package/dist/svm/svm.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare class SVMVM extends VM<PublicKey, Keypair, Connection> {
|
|
|
19
19
|
}) => Promise<string>;
|
|
20
20
|
static signTransaction: (transaction: VersionedTransaction | Transaction, signers: Keypair) => Promise<VersionedTransaction | Transaction>;
|
|
21
21
|
static sendTransaction: (transaction: VersionedTransaction | Transaction, connection: Connection) => Promise<string>;
|
|
22
|
+
static convertFromEntropyToPrivateKey: (entropy: string) => Keypair;
|
|
22
23
|
generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath?: string): {
|
|
23
24
|
privateKey: Keypair;
|
|
24
25
|
index: number;
|
|
@@ -44,6 +45,7 @@ export declare class SVMVM extends VM<PublicKey, Keypair, Connection> {
|
|
|
44
45
|
export declare class SVMChainWallet extends ChainWallet<PublicKey, Keypair, Connection> {
|
|
45
46
|
constructor(config: ChainWalletConfig, privateKey: Keypair, index: number);
|
|
46
47
|
generateAddress(): PublicKey;
|
|
48
|
+
convertFromEntropyToPrivateKey: (entropy: string) => Keypair;
|
|
47
49
|
getNativeBalance(): Promise<Balance>;
|
|
48
50
|
getTokenBalance(tokenAddress: PublicKey): Promise<Balance>;
|
|
49
51
|
discoverToken(): Promise<UserTokenBalance<PublicKey>[]>;
|
package/dist/svm/svm.js
CHANGED
|
@@ -42,6 +42,9 @@ class SVMVM extends vm_1.VM {
|
|
|
42
42
|
static signAndSendTransaction = utils_1.signAndSendTransaction;
|
|
43
43
|
static signTransaction = utils_1.signTransaction;
|
|
44
44
|
static sendTransaction = utils_1.sendTransaction;
|
|
45
|
+
static convertFromEntropyToPrivateKey = (entropy) => {
|
|
46
|
+
return web3_js_1.Keypair.fromSeed(Buffer.from(entropy));
|
|
47
|
+
};
|
|
45
48
|
generatePrivateKey(index, seed, mnemonic, derivationPath = this.derivationPath) {
|
|
46
49
|
let _seed;
|
|
47
50
|
if (seed) {
|
|
@@ -95,6 +98,9 @@ class SVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
95
98
|
generateAddress() {
|
|
96
99
|
return this.address;
|
|
97
100
|
}
|
|
101
|
+
convertFromEntropyToPrivateKey = (entropy) => {
|
|
102
|
+
return web3_js_1.Keypair.fromSeed(Buffer.from(entropy));
|
|
103
|
+
};
|
|
98
104
|
async getNativeBalance() {
|
|
99
105
|
// Implement native balance retrieval logic here
|
|
100
106
|
return await SVMVM.getNativeBalance(this.address, this.connection);
|
package/dist/svm/svm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svm.js","sourceRoot":"","sources":["../../utils/svm/svm.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAoG;AACpG,gDAA0D;AAC1D,8BAA2B;AAC3B,kDAA8C;AAE9C,mCAiBiB;AACjB,kDAAuB;AACvB,0DAA6B;AAE7B,oCAAuC;AAEvC,6DAA2F;AAG3F,MAAa,KAAM,SAAQ,OAAkC;IACzD,YAAY,GAAG,oBAAY,CAAA;IAC3B,MAAM,CAAC,YAAY,GAAG,oBAAY,CAAA;IAClC,MAAM,CAAC,eAAe,CAAC,OAAkB;QACrC,IAAI,CAAC;YACD,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,KAAK,CAAA;QAEhB,CAAC;IACL,CAAC;IACD,cAAc,GAAG,aAAa,CAAC,CAAC,8BAA8B;IAE9D,YAAY,IAAY;QACpB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAkB,EAAE,UAAsB;QAC9D,OAAO,IAAA,2BAAmB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAkB,EAAE,YAAuB,EAAE,UAAsB;QAC5F,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAe,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,IAAI,eAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,eAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5J,CAAC;IAED,MAAM,CAAC,sBAAsB,GAAG,8BAAsB,CAAA;IAEtD,MAAM,CAAC,eAAe,GAAG,uBAAe,CAAA;IAExC,MAAM,CAAC,eAAe,GAAG,uBAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"svm.js","sourceRoot":"","sources":["../../utils/svm/svm.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { vmTypes } from "./types";
|
|
2
|
+
export declare const getPrivateKeyFromAnother: (privateKey: any, fromVm: vmTypes, toVm: vmTypes) => string | import("@solana/web3.js").Keypair | undefined;
|
package/dist/utils.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPrivateKeyFromAnother = void 0;
|
|
4
|
+
const evm_1 = require("./evm");
|
|
5
|
+
const svm_1 = require("./svm");
|
|
6
|
+
const sha2_1 = require("@noble/hashes/sha2");
|
|
7
|
+
const getPrivateKeyFromAnother = (privateKey, fromVm, toVm) => {
|
|
8
|
+
if (fromVm === "EVM") {
|
|
9
|
+
if (toVm === "SVM") {
|
|
10
|
+
return svm_1.SVMVM.convertFromEntropyToPrivateKey((0, sha2_1.sha256)(privateKey).toString());
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
else if (fromVm === "SVM") {
|
|
14
|
+
if (toVm === "EVM") {
|
|
15
|
+
return evm_1.EVMVM.convertFromEntropyToPrivateKey((0, sha2_1.sha256)(privateKey).toString());
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
throw new Error("No conversion available for this vms yet");
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports.getPrivateKeyFromAnother = getPrivateKeyFromAnother;
|
|
3
23
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils/utils.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils/utils.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAChD,+BAA8B;AAE9B,6CAA4C;AAGrC,MAAM,wBAAwB,GAAG,CAAC,UAAe,EAAE,MAAe,EAAE,IAAa,EAAE,EAAE;IAExF,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACnB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACjB,OAAO,WAAK,CAAC,8BAA8B,CAAC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACjB,OAAO,WAAK,CAAC,8BAA8B,CAAC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC/D,CAAC;AACL,CAAC,CAAA;AAbY,QAAA,wBAAwB,4BAapC"}
|
package/dist/vm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm.js","sourceRoot":"","sources":["../utils/vm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AACtC,0DAAiC;AAGjC,wBAAwB;AACxB,MAAsB,EAAE;IACV,IAAI,CAAS;IACvB,IAAI,CAAS;IAEb,YAAY,IAAY,EAAE,EAAW;QACjC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,MAAM,CAAC,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAA;IAED,MAAM,CAAC,YAAY;QACf,OAAO,mBAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe;IACxE,CAAC;IACD,MAAM,CAAC,SAAS,CACZ,QAAgB,EAChB,IAAY,EACZ,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,GAAG,GAAG,EAAE;QAElB,OAAO,mBAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC3D,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,6CAA6C;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,4BAA4B;QAExE,yDAAyD;QACzD,MAAM,SAAS,GAAG,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnE,iEAAiE;QACjE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,iBAAiB,CACpB,mBAA2B,EAC3B,QAAgB,EAChB,IAAY;QAEZ,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,qCAAqC;YACjF,MAAM,KAAK,GAAG,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAErD,qCAAqC;YACrC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAC9B,SAAS,GAAG,EAAE,CAAC,SAAS,CAAA;IACxB,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAA;IACxC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAA;;AA1D5C,
|
|
1
|
+
{"version":3,"file":"vm.js","sourceRoot":"","sources":["../utils/vm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AACtC,0DAAiC;AAGjC,wBAAwB;AACxB,MAAsB,EAAE;IACV,IAAI,CAAS;IACvB,IAAI,CAAS;IAEb,YAAY,IAAY,EAAE,EAAW;QACjC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,MAAM,CAAC,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAA;IAED,MAAM,CAAC,YAAY;QACf,OAAO,mBAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe;IACxE,CAAC;IACD,MAAM,CAAC,SAAS,CACZ,QAAgB,EAChB,IAAY,EACZ,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,GAAG,GAAG,EAAE;QAElB,OAAO,mBAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC3D,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,6CAA6C;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,4BAA4B;QAExE,yDAAyD;QACzD,MAAM,SAAS,GAAG,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEnE,iEAAiE;QACjE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,iBAAiB,CACpB,mBAA2B,EAC3B,QAAgB,EAChB,IAAY;QAEZ,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,qCAAqC;YACjF,MAAM,KAAK,GAAG,mBAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAErD,qCAAqC;YACrC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAC9B,SAAS,GAAG,EAAE,CAAC,SAAS,CAAA;IACxB,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAA;IACxC,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAA;;AA1D5C,gBAiFC"}
|
package/package.json
CHANGED
package/utils/IChainWallet.ts
CHANGED
package/utils/evm/evm.ts
CHANGED
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
fromChainToViemChain
|
|
31
31
|
} from "./utils";
|
|
32
32
|
import { EVMTransactionHistoryItem, getEVMTransactionHistory } from "./transactionParsing";
|
|
33
|
-
import { createPublicClient, Hex, http, parseEther, parseUnits, Call, walletActions, WalletClient, createWalletClient, Chain, ClientConfig, EIP1193RequestFn, TransportConfig, PublicClient, ChainConfig } from "viem";
|
|
33
|
+
import { createPublicClient, Hex, http, parseEther, parseUnits, Call, walletActions, WalletClient, createWalletClient, Chain, ClientConfig, EIP1193RequestFn, TransportConfig, PublicClient, ChainConfig, toHex } from "viem";
|
|
34
34
|
import { EVMSmartWallet } from "./smartWallet";
|
|
35
35
|
import { SmartWalletOptions } from "./aa-service";
|
|
36
36
|
|
|
@@ -45,9 +45,9 @@ import {
|
|
|
45
45
|
} from "../savings/types";
|
|
46
46
|
import { fetchPrices } from "../price";
|
|
47
47
|
import { PriceResponse } from "../price.types";
|
|
48
|
-
import { Account, privateKeyToAccount } from "viem/accounts";
|
|
48
|
+
import { Account, generatePrivateKey, privateKeyToAccount } from "viem/accounts";
|
|
49
49
|
// import { extendWalletClientWithSavings } from "../savings";
|
|
50
|
-
import { SavingsManager } from "../savings/saving-actions";
|
|
50
|
+
// import { SavingsManager } from "../savings/saving-actions";
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
interface DebonkQuoteResponse {
|
|
@@ -159,15 +159,20 @@ export class EVMVM extends VM<string, string, PublicClient> {
|
|
|
159
159
|
// Implement token balance retrieval logic here
|
|
160
160
|
return await getTokenBalance(tokenAddress as Hex, address as Hex, connection)
|
|
161
161
|
}
|
|
162
|
+
|
|
163
|
+
static convertFromEntropyToPrivateKey = (entropy: string): string => {
|
|
164
|
+
return toHex(entropy)
|
|
165
|
+
}
|
|
162
166
|
}
|
|
163
167
|
|
|
164
168
|
export class EVMChainWallet extends ChainWallet<string, string, PublicClient> {
|
|
165
169
|
wallet: WalletClient
|
|
166
170
|
private smartWallet?: EVMSmartWallet
|
|
167
|
-
private savingsManager?: SavingsManager
|
|
168
|
-
private smartSavingsManager?: SmartSavingsManager
|
|
171
|
+
// private savingsManager?: SavingsManager
|
|
172
|
+
// private smartSavingsManager?: SmartSavingsManager
|
|
169
173
|
|
|
170
174
|
constructor(config: ChainWalletConfig, privateKey: string, index: number) {
|
|
175
|
+
privateKey = privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`
|
|
171
176
|
super(config, privateKey, index);
|
|
172
177
|
this.connection = createPublicClient(
|
|
173
178
|
{
|
|
@@ -184,6 +189,7 @@ export class EVMChainWallet extends ChainWallet<string, string, PublicClient> {
|
|
|
184
189
|
|
|
185
190
|
this.address = account.address
|
|
186
191
|
this.privateKey = privateKey;
|
|
192
|
+
|
|
187
193
|
}
|
|
188
194
|
|
|
189
195
|
// ============================================
|
|
@@ -198,6 +204,10 @@ export class EVMChainWallet extends ChainWallet<string, string, PublicClient> {
|
|
|
198
204
|
return this.config.aaSupport?.enabled === true;
|
|
199
205
|
}
|
|
200
206
|
|
|
207
|
+
convertFromEntropyToPrivateKey = (entropy: string): string => {
|
|
208
|
+
return toHex(entropy)
|
|
209
|
+
}
|
|
210
|
+
|
|
201
211
|
/**
|
|
202
212
|
* Check if smart wallet is initialized and ready for AA operations
|
|
203
213
|
* @returns true if extend() has been called and smart wallet exists
|
|
@@ -206,9 +216,9 @@ export class EVMChainWallet extends ChainWallet<string, string, PublicClient> {
|
|
|
206
216
|
return !!this.smartWallet;
|
|
207
217
|
}
|
|
208
218
|
|
|
209
|
-
createSavingsManager(mnemonic: string, index: number = 0, chain:
|
|
210
|
-
|
|
211
|
-
}
|
|
219
|
+
// createSavingsManager(mnemonic: string, index: number = 0, chain: ChainWalletConfig) {
|
|
220
|
+
// return new SavingsManager(mnemonic, index, (chain))
|
|
221
|
+
// }
|
|
212
222
|
|
|
213
223
|
/**
|
|
214
224
|
* Validate that AA is available for sponsored transactions
|
package/utils/savings/index.ts
CHANGED
|
@@ -1,28 +1 @@
|
|
|
1
|
-
//
|
|
2
|
-
// import { SavingsActions } from "./saving-actions";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// export interface ExtendedWalletClient extends WalletClient {
|
|
6
|
-
// extendSavings?: (mnemonic: string, walletIndex?: number) => SavingsActions;
|
|
7
|
-
// savingsActions?: SavingsActions;
|
|
8
|
-
// }
|
|
9
|
-
|
|
10
|
-
// /**
|
|
11
|
-
// * Adds savings functionality to an existing WalletClient
|
|
12
|
-
// */
|
|
13
|
-
// export function extendWalletClientWithSavings(
|
|
14
|
-
// wallet: WalletClient,
|
|
15
|
-
// client: PublicClient,
|
|
16
|
-
// walletIndex: number = 0
|
|
17
|
-
// ): ExtendedWalletClient {
|
|
18
|
-
// const extended = wallet as ExtendedWalletClient;
|
|
19
|
-
|
|
20
|
-
// extended.extendSavings = (mnemonic: string, index: number = walletIndex) => {
|
|
21
|
-
// if (!extended.savingsActions) {
|
|
22
|
-
// extended.savingsActions = new SavingsActions(mnemonic, index);
|
|
23
|
-
// }
|
|
24
|
-
// return extended.savingsActions;
|
|
25
|
-
// };
|
|
26
|
-
|
|
27
|
-
// return extended;
|
|
28
|
-
// }
|
|
1
|
+
// export * from "./saving-actions"
|
|
@@ -1,77 +1,92 @@
|
|
|
1
|
-
import { EVMDeriveChildPrivateKey } from "../walletBip32";
|
|
2
|
-
import { ethers } from "ethers";
|
|
3
|
-
import { WalletClient, PublicClient, Hex,
|
|
4
|
-
import { } from "../utils";
|
|
5
|
-
import { TransactionResult } from "../types";
|
|
6
|
-
import { sendERC20Token, sendNativeToken } from "../evm";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
1
|
+
// import { EVMDeriveChildPrivateKey } from "../walletBip32";
|
|
2
|
+
// import { ethers } from "ethers";
|
|
3
|
+
// import { WalletClient, PublicClient, Hex, Chain } from "viem";
|
|
4
|
+
// import { } from "../utils";
|
|
5
|
+
// import { ChainWalletConfig, TransactionResult } from "../types";
|
|
6
|
+
// import { getNativeBalance, sendERC20Token, sendNativeToken } from "../evm";
|
|
7
|
+
// import { fetchPrices } from "../price";
|
|
8
|
+
// import { privateKeyToAccount } from "viem/accounts";
|
|
9
|
+
|
|
10
|
+
// /**
|
|
11
|
+
// * Handles multi-pocket savings accounts for an EVM wallet
|
|
12
|
+
// */
|
|
13
|
+
// export class BaseSavingsManager {
|
|
14
|
+
// private mnemonic: string;
|
|
15
|
+
// private walletIndex: number;
|
|
16
|
+
// chain: ChainWalletConfig
|
|
17
|
+
// private pockets: Map<number, { privateKey: string; address: string; derivationPath: string }> = new Map();
|
|
18
|
+
|
|
19
|
+
// constructor(mnemonic: string, walletIndex: number = 0, chain: ChainWalletConfig) {
|
|
20
|
+
// this.mnemonic = mnemonic;
|
|
21
|
+
// this.chain = chain
|
|
22
|
+
// this.walletIndex = walletIndex;
|
|
23
|
+
// }
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// /**
|
|
28
|
+
// * Derive a pocket (savings account) at accountIndex
|
|
29
|
+
// */
|
|
30
|
+
// derivePocket(accountIndex: number) {
|
|
31
|
+
// const derivationPath = `m/44'/60'/${accountIndex}'/0/${this.walletIndex}`;
|
|
32
|
+
// const { privateKey } = EVMDeriveChildPrivateKey(this.mnemonic, this.walletIndex, `m/44'/60'/${accountIndex}'/0/`);
|
|
33
|
+
// const wallet = new ethers.Wallet(privateKey);
|
|
34
|
+
|
|
35
|
+
// const pocket = { privateKey, address: wallet.address, derivationPath };
|
|
36
|
+
// this.pockets.set(accountIndex, pocket);
|
|
37
|
+
// return pocket;
|
|
38
|
+
// }
|
|
39
|
+
|
|
40
|
+
// getPocket(accountIndex: number) {
|
|
41
|
+
// if (!this.pockets.has(accountIndex)) {
|
|
42
|
+
// return this.derivePocket(accountIndex);
|
|
43
|
+
// }
|
|
44
|
+
// return this.pockets.get(accountIndex)!;
|
|
45
|
+
// }
|
|
46
|
+
// async transferToPocket(
|
|
47
|
+
// mainWallet: WalletClient,
|
|
48
|
+
// client: PublicClient,
|
|
49
|
+
// accountIndex: number,
|
|
50
|
+
// amount: string
|
|
51
|
+
// ): Promise<TransactionResult> {
|
|
52
|
+
// const pocket = this.getPocket(accountIndex);
|
|
53
|
+
// return await sendNativeToken(mainWallet, client, pocket.address as Hex, amount, 5);
|
|
54
|
+
// }
|
|
55
|
+
|
|
56
|
+
// async transferTokenToPocket(
|
|
57
|
+
// mainWallet: WalletClient,
|
|
58
|
+
// client: PublicClient,
|
|
59
|
+
// tokenAddress: string,
|
|
60
|
+
// accountIndex: number,
|
|
61
|
+
// amount: bigint
|
|
62
|
+
// ): Promise<TransactionResult> {
|
|
63
|
+
// const pocket = this.getPocket(accountIndex);
|
|
64
|
+
// return await sendERC20Token(mainWallet, client, tokenAddress as Hex, pocket.address as Hex, amount, 5);
|
|
65
|
+
// }
|
|
66
|
+
|
|
67
|
+
// verifyPocketAddress(accountIndex: number, storedAddress: string) {
|
|
68
|
+
// const pocket = this.getPocket(accountIndex);
|
|
69
|
+
// return pocket.address.toLowerCase() === storedAddress.toLowerCase();
|
|
70
|
+
// }
|
|
71
|
+
// }
|
|
72
|
+
|
|
73
|
+
// export class SavingsManager extends BaseSavingsManager {
|
|
74
|
+
|
|
75
|
+
// constructor(mnemonic: string, walletIndex: number = 0, chain: ChainWalletConfig) {
|
|
76
|
+
// super(mnemonic, walletIndex, chain)
|
|
77
|
+
// }
|
|
78
|
+
// getTotalTokenBalanceOfAllPockets(tokens: string[], pockets: number[]) {
|
|
79
|
+
|
|
80
|
+
// const balances = pockets.map((p: number) => { })
|
|
81
|
+
// }
|
|
82
|
+
|
|
83
|
+
// getPocketTokenBalance(tokens: string[], pocket: number) {
|
|
84
|
+
// const account = privateKeyToAccount(`0x${this.derivePocket(pocket).privateKey}`)
|
|
85
|
+
// const balances = tokens.map((t: string) => {
|
|
86
|
+
// const nativeBalance = getNativeBalance(account.address)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
// })
|
|
90
|
+
// }
|
|
91
|
+
|
|
92
|
+
// }
|
package/utils/svm/svm.ts
CHANGED
|
@@ -64,6 +64,10 @@ export class SVMVM extends VM<PublicKey, Keypair, Connection> {
|
|
|
64
64
|
|
|
65
65
|
static sendTransaction = sendTransaction
|
|
66
66
|
|
|
67
|
+
static convertFromEntropyToPrivateKey = (entropy: string): Keypair => {
|
|
68
|
+
return Keypair.fromSeed(Buffer.from(entropy))
|
|
69
|
+
}
|
|
70
|
+
|
|
67
71
|
|
|
68
72
|
generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath = this.derivationPath) {
|
|
69
73
|
let _seed: string
|
|
@@ -121,6 +125,10 @@ export class SVMChainWallet extends ChainWallet<PublicKey, Keypair, Connection>
|
|
|
121
125
|
generateAddress() {
|
|
122
126
|
return this.address;
|
|
123
127
|
}
|
|
128
|
+
|
|
129
|
+
convertFromEntropyToPrivateKey = (entropy: string): Keypair => {
|
|
130
|
+
return Keypair.fromSeed(Buffer.from(entropy))
|
|
131
|
+
}
|
|
124
132
|
async getNativeBalance(): Promise<Balance> {
|
|
125
133
|
// Implement native balance retrieval logic here
|
|
126
134
|
return await SVMVM.getNativeBalance(this.address, this.connection!)
|
package/utils/utils.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
-
import { getNativeBalance } from "./evm";
|
|
2
|
-
import {
|
|
1
|
+
import { EVMVM, getNativeBalance } from "./evm";
|
|
2
|
+
import { SVMVM } from "./svm";
|
|
3
|
+
import { ChainWalletConfig, vmTypes } from "./types";
|
|
4
|
+
import { sha256 } from "@noble/hashes/sha2";
|
|
3
5
|
|
|
6
|
+
|
|
7
|
+
export const getPrivateKeyFromAnother = (privateKey: any, fromVm: vmTypes, toVm: vmTypes) => {
|
|
8
|
+
|
|
9
|
+
if (fromVm === "EVM") {
|
|
10
|
+
if (toVm === "SVM") {
|
|
11
|
+
return SVMVM.convertFromEntropyToPrivateKey(sha256(privateKey).toString())
|
|
12
|
+
}
|
|
13
|
+
} else if (fromVm === "SVM") {
|
|
14
|
+
if (toVm === "EVM") {
|
|
15
|
+
return EVMVM.convertFromEntropyToPrivateKey(sha256(privateKey).toString())
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
throw new Error("No conversion available for this vms yet")
|
|
19
|
+
}
|
|
20
|
+
}
|