@deserialize/multi-vm-wallet 1.0.32 → 1.0.33
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/evm/utils.d.ts +13 -6
- package/dist/svm/svm.d.ts +1 -1
- package/dist/svm/svm.js +7 -7
- package/dist/svm/svm.js.map +1 -1
- package/package.json +2 -1
- package/utils/svm/svm.ts +7 -8
package/dist/evm/utils.d.ts
CHANGED
|
@@ -110,19 +110,24 @@ export declare const getTokenBalance: (tokenAddress: string, walletAddress: stri
|
|
|
110
110
|
/**
|
|
111
111
|
* Sign, send, and confirm any EVM transaction
|
|
112
112
|
*/
|
|
113
|
-
export declare const signSendAndConfirm: (wallet: Wallet,
|
|
113
|
+
export declare const signSendAndConfirm: (wallet: Wallet, // Connected wallet (private key + provider)
|
|
114
|
+
transactionParams: TransactionParams, confirmations?: number, // Number of confirmations to wait for
|
|
115
|
+
timeout?: number) => Promise<TransactionResult>;
|
|
114
116
|
/**
|
|
115
117
|
* Send native token (ETH, BNB, MATIC, etc.)
|
|
116
118
|
*/
|
|
117
|
-
export declare const sendNativeToken: (wallet: Wallet, to: string, amount: string | bigint,
|
|
119
|
+
export declare const sendNativeToken: (wallet: Wallet, to: string, amount: string | bigint, // Amount in wei
|
|
120
|
+
gasLimit?: string | bigint, confirmations?: number) => Promise<TransactionResult>;
|
|
118
121
|
/**
|
|
119
122
|
* Send ERC-20 token
|
|
120
123
|
*/
|
|
121
|
-
export declare const sendERC20Token: (wallet: Wallet, tokenAddress: string, to: string, amount: string | bigint,
|
|
124
|
+
export declare const sendERC20Token: (wallet: Wallet, tokenAddress: string, to: string, amount: string | bigint, // Amount in token's smallest unit
|
|
125
|
+
gasLimit?: string | bigint, confirmations?: number) => Promise<TransactionResult>;
|
|
122
126
|
/**
|
|
123
127
|
* Execute any contract method
|
|
124
128
|
*/
|
|
125
|
-
export declare const executeContractMethod: (wallet: Wallet, contractAddress: string, abi: any[], methodName: string, methodParams?: any[], value?: string | bigint,
|
|
129
|
+
export declare const executeContractMethod: (wallet: Wallet, contractAddress: string, abi: any[], methodName: string, methodParams?: any[], value?: string | bigint, // For payable methods
|
|
130
|
+
gasLimit?: string | bigint, confirmations?: number) => Promise<TransactionResult>;
|
|
126
131
|
/**
|
|
127
132
|
* Get current gas prices (both legacy and EIP-1559)
|
|
128
133
|
*/
|
|
@@ -150,7 +155,8 @@ export declare const isAllowanceSufficient: (tokenAddress: string, owner: string
|
|
|
150
155
|
/**
|
|
151
156
|
* Approve ERC-20 token spending
|
|
152
157
|
*/
|
|
153
|
-
export declare const approveToken: (wallet: Wallet, tokenAddress: string, spender: string, amount: string | bigint,
|
|
158
|
+
export declare const approveToken: (wallet: Wallet, tokenAddress: string, spender: string, amount: string | bigint, // Amount to approve, use MaxUint256 for unlimited
|
|
159
|
+
gasLimit?: string | bigint, confirmations?: number) => Promise<TransactionResult>;
|
|
154
160
|
/**
|
|
155
161
|
* Approve unlimited token spending (MaxUint256)
|
|
156
162
|
*/
|
|
@@ -158,7 +164,8 @@ export declare const approveTokenUnlimited: (wallet: Wallet, tokenAddress: strin
|
|
|
158
164
|
/**
|
|
159
165
|
* Check allowance and approve if necessary
|
|
160
166
|
*/
|
|
161
|
-
export declare const checkAndApprove: (wallet: Wallet, tokenAddress: string, spender: string, requiredAmount: string | bigint, approvalAmount?: string | bigint,
|
|
167
|
+
export declare const checkAndApprove: (wallet: Wallet, tokenAddress: string, spender: string, requiredAmount: string | bigint, approvalAmount?: string | bigint, // If not provided, will approve exactly the required amount
|
|
168
|
+
gasLimit?: string | bigint, confirmations?: number) => Promise<{
|
|
162
169
|
approvalNeeded: boolean;
|
|
163
170
|
currentAllowance: bigint;
|
|
164
171
|
approvalResult?: TransactionResult;
|
package/dist/svm/svm.d.ts
CHANGED
package/dist/svm/svm.js
CHANGED
|
@@ -10,6 +10,8 @@ const vm_1 = require("../vm");
|
|
|
10
10
|
const IChainWallet_1 = require("../IChainWallet");
|
|
11
11
|
const utils_1 = require("./utils");
|
|
12
12
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
13
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
14
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
13
15
|
class SVMVM extends vm_1.VM {
|
|
14
16
|
constructor(seed) {
|
|
15
17
|
super(seed, "SVM");
|
|
@@ -52,6 +54,11 @@ SVMVM.signAndSendTransaction = utils_1.signAndSendTransaction;
|
|
|
52
54
|
class SVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
53
55
|
constructor(config, privateKey, index) {
|
|
54
56
|
super(config, privateKey, index);
|
|
57
|
+
this.signMessage = (message, signer) => {
|
|
58
|
+
const messageBytes = new TextEncoder().encode(message);
|
|
59
|
+
const signature = tweetnacl_1.default.sign.detached(messageBytes, signer.secretKey);
|
|
60
|
+
return bs58_1.default.encode(signature);
|
|
61
|
+
};
|
|
55
62
|
this.address = privateKey.publicKey;
|
|
56
63
|
this.privateKey = privateKey;
|
|
57
64
|
this.connection = new web3_js_1.Connection(config.rpcUrl);
|
|
@@ -163,13 +170,6 @@ class SVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
|
163
170
|
};
|
|
164
171
|
}
|
|
165
172
|
}
|
|
166
|
-
async signMessage(message) {
|
|
167
|
-
const signer = this.privateKey;
|
|
168
|
-
if (!signer) {
|
|
169
|
-
throw new Error('No signer available to sign message');
|
|
170
|
-
}
|
|
171
|
-
return await signer.signMessage(message);
|
|
172
|
-
}
|
|
173
173
|
}
|
|
174
174
|
exports.SVMChainWallet = SVMChainWallet;
|
|
175
175
|
//# sourceMappingURL=svm.js.map
|
package/dist/svm/svm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svm.js","sourceRoot":"","sources":["../../utils/svm/svm.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAiE;AACjE,oCAAoD;AACpD,8BAA2B;AAC3B,kDAA8C;AAE9C,mCAYiB;AACjB,kDAAuB;
|
|
1
|
+
{"version":3,"file":"svm.js","sourceRoot":"","sources":["../../utils/svm/svm.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.0.
|
|
3
|
+
"version": "1.0.33",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@types/bn.js": "^5.2.0",
|
|
6
6
|
"@types/node": "^24.2.1",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"bip32": "^4.0.0",
|
|
15
15
|
"bip39": "^3.1.0",
|
|
16
16
|
"bn.js": "^5.2.2",
|
|
17
|
+
"bs58": "^6.0.0",
|
|
17
18
|
"ed25519-hd-key": "^1.3.0",
|
|
18
19
|
"ethers": "^6.15.0",
|
|
19
20
|
"promise-retry": "^2.0.1",
|
package/utils/svm/svm.ts
CHANGED
|
@@ -17,6 +17,8 @@ import {
|
|
|
17
17
|
JupiterQuoteResponse
|
|
18
18
|
} from "./utils";
|
|
19
19
|
import BN from "bn.js";
|
|
20
|
+
import nacl from "tweetnacl";
|
|
21
|
+
import base58 from "bs58";
|
|
20
22
|
|
|
21
23
|
export class SVMVM extends VM<PublicKey, Keypair, Connection> {
|
|
22
24
|
derivationPath = "m/44'/501'/"; // Default SVM derivation path
|
|
@@ -210,12 +212,9 @@ export class SVMChainWallet extends ChainWallet<PublicKey, Keypair, Connection>
|
|
|
210
212
|
};
|
|
211
213
|
}
|
|
212
214
|
}
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return await (signer as any).signMessage(message);
|
|
219
|
-
}
|
|
220
|
-
|
|
215
|
+
signMessage = (message: string, signer: Keypair) => {
|
|
216
|
+
const messageBytes = new TextEncoder().encode(message);
|
|
217
|
+
const signature = nacl.sign.detached(messageBytes, signer.secretKey);
|
|
218
|
+
return base58.encode(signature);
|
|
219
|
+
};
|
|
221
220
|
}
|