@deserialize/multi-vm-wallet 1.0.37 → 1.0.44
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/constant.d.ts +2 -0
- package/dist/constant.js +55 -0
- package/dist/constant.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/svm/transactionSender.js +6 -2
- package/dist/svm/transactionSender.js.map +1 -1
- package/dist/svm/utils.js +159 -20
- package/dist/svm/utils.js.map +1 -1
- package/dist/test.d.ts +2 -0
- package/dist/test.js +42 -0
- package/dist/test.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/utils/constant.ts +55 -0
- package/utils/index.ts +2 -1
- package/utils/svm/transactionSender.ts +7 -2
- package/utils/svm/utils.ts +201 -29
- package/utils/test.ts +49 -0
- package/utils/types.ts +2 -0
package/dist/test.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.testUserKeyPair = void 0;
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
9
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
10
|
+
const bip32_1 = require("./bip32");
|
|
11
|
+
const svm_1 = require("./svm");
|
|
12
|
+
const vm_1 = require("./vm");
|
|
13
|
+
const mnemonic = (0, bip32_1.GenerateNewMnemonic)();
|
|
14
|
+
console.log('mnemonic: ', mnemonic);
|
|
15
|
+
const seed = vm_1.VM.mnemonicToSeed(mnemonic);
|
|
16
|
+
const pKey = "4QxETeX9pndiF1XNghUiDTnZnHq3cfjmuPLBJysrgocsLq1yb8w96aPWALa8ZnRZWmDU4wM8Tg8d1ZRVVByj7uXE";
|
|
17
|
+
exports.testUserKeyPair = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(pKey));
|
|
18
|
+
const vm = new svm_1.SVMVM(seed);
|
|
19
|
+
// const vmFromMnemonic = SVMVM.fromMnemonic(mnemonic)
|
|
20
|
+
// const keyFromMnemonic = vmFromMnemonic.generatePrivateKey(0)
|
|
21
|
+
// console.log('keyFromMnemonic: ', keyFromMnemonic.privateKey.publicKey);
|
|
22
|
+
const key = vm.generatePrivateKey(0);
|
|
23
|
+
console.log('key: ', key.privateKey.publicKey);
|
|
24
|
+
const chainConfig = {
|
|
25
|
+
chainId: "solana-mainnet",
|
|
26
|
+
name: "Solana",
|
|
27
|
+
rpcUrl: "https://solana-mainnet.g.alchemy.com/v2/vB5mKztdJeFdz9RkW99Qf",
|
|
28
|
+
explorerUrl: "https://explorer.solana.com",
|
|
29
|
+
nativeToken: { name: "Solana", symbol: "SOL", decimals: 9 },
|
|
30
|
+
confirmationNo: 1,
|
|
31
|
+
};
|
|
32
|
+
const wallet = new svm_1.SVMChainWallet(chainConfig, exports.testUserKeyPair, key.index);
|
|
33
|
+
const toBuy = new web3_js_1.PublicKey("9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump");
|
|
34
|
+
wallet.swap({
|
|
35
|
+
name: spl_token_1.NATIVE_MINT.toBase58(),
|
|
36
|
+
address: spl_token_1.NATIVE_MINT.toBase58(),
|
|
37
|
+
symbol: spl_token_1.NATIVE_MINT.toBase58(),
|
|
38
|
+
decimals: 9
|
|
39
|
+
}, toBuy, 0.005).then(res => console.log(res));
|
|
40
|
+
// console.log('wal: ', wal.address);
|
|
41
|
+
// wal.getNativeBalance().then(e => console.log(e))
|
|
42
|
+
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../utils/test.ts"],"names":[],"mappings":";;;;;;AAEA,6CAAqD;AACrD,gDAA0B;AAC1B,iDAAgD;AAChD,mCAA8C;AAC9C,+BAA8C;AAC9C,6BAA0B;AAE1B,MAAM,QAAQ,GAAG,IAAA,2BAAmB,GAAE,CAAA;AAGtC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAEpC,MAAM,IAAI,GAAG,OAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;AACxC,MAAM,IAAI,GAAG,0FAA0F,CAAA;AAE1F,QAAA,eAAe,GAAG,iBAAO,CAAC,aAAa,CAAC,cAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,MAAM,EAAE,GAAG,IAAI,WAAK,CAAC,IAAI,CAAC,CAAA;AAC1B,sDAAsD;AACtD,+DAA+D;AAC/D,0EAA0E;AAC1E,MAAM,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;AACpC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAsB;IACnC,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,+DAA+D;IACvE,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC3D,cAAc,EAAE,CAAC;CAEpB,CAAA;AAGD,MAAM,MAAM,GAAG,IAAI,oBAAc,CAAC,WAAW,EAAE,uBAAe,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AAC1E,MAAM,KAAK,GAAG,IAAI,mBAAS,CAAC,8CAA8C,CAAC,CAAA;AAC3E,MAAM,CAAC,IAAI,CAAC;IACR,IAAI,EAAE,uBAAW,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,uBAAW,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,uBAAW,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC;CACd,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAG/C,qCAAqC;AACrC,mDAAmD"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../utils/types.ts"],"names":[],"mappings":";;;AACA,+BAA8B;AAC9B,+BAA8B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../utils/types.ts"],"names":[],"mappings":";;;AACA,+BAA8B;AAC9B,+BAA8B;AA+CjB,QAAA,YAAY,GAAG;IACxB,KAAK,EAAE,WAAK;IACZ,KAAK,EAAE,WAAK;CACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ChainWalletConfig } from "./types";
|
|
2
|
+
|
|
3
|
+
export const DefaultChains: ChainWalletConfig[] = [{
|
|
4
|
+
chainId: 501,
|
|
5
|
+
name: "Solana Mainnet",
|
|
6
|
+
rpcUrl: "https://api.mainnet-beta.solana.com",
|
|
7
|
+
explorerUrl: "https://explorer.solana.com", // e.g. Solana Explorer
|
|
8
|
+
nativeToken: {
|
|
9
|
+
name: "Solana",
|
|
10
|
+
symbol: "SOL",
|
|
11
|
+
decimals: 9,
|
|
12
|
+
},
|
|
13
|
+
testnet: false,
|
|
14
|
+
logoUrl: "https://cryptologos.cc/logos/solana-sol-logo.png?v=040"
|
|
15
|
+
}
|
|
16
|
+
, {
|
|
17
|
+
chainId: 1,
|
|
18
|
+
name: "Ethereum Mainnet",
|
|
19
|
+
rpcUrl: "https://cloudflare-eth.com",
|
|
20
|
+
explorerUrl: "https://etherscan.io",
|
|
21
|
+
nativeToken: {
|
|
22
|
+
name: "Ether",
|
|
23
|
+
symbol: "ETH",
|
|
24
|
+
decimals: 18,
|
|
25
|
+
},
|
|
26
|
+
testnet: false,
|
|
27
|
+
logoUrl: "https://cryptologos.cc/logos/ethereum-eth-logo.png?v=040"
|
|
28
|
+
}, {
|
|
29
|
+
chainId: 56,
|
|
30
|
+
name: "BNB Smart Chain Mainnet",
|
|
31
|
+
rpcUrl: "https://bsc-dataseed.binance.org/",
|
|
32
|
+
explorerUrl: "https://bscscan.com",
|
|
33
|
+
nativeToken: {
|
|
34
|
+
name: "Binance Coin",
|
|
35
|
+
symbol: "BNB",
|
|
36
|
+
decimals: 18,
|
|
37
|
+
},
|
|
38
|
+
testnet: false,
|
|
39
|
+
logoUrl: "https://cryptologos.cc/logos/bnb-bnb-logo.png?v=040"
|
|
40
|
+
}, {
|
|
41
|
+
chainId: 501,
|
|
42
|
+
name: "Eclipse Mainnet",
|
|
43
|
+
rpcUrl: "https://mainnetbeta-rpc.eclipse.xyz",
|
|
44
|
+
explorerUrl: "https://explorer.eclipse.xyz/", // e.g. Solana Explorer
|
|
45
|
+
nativeToken: {
|
|
46
|
+
name: "Eclipse",
|
|
47
|
+
symbol: "ETH",
|
|
48
|
+
decimals: 9,
|
|
49
|
+
},
|
|
50
|
+
testnet: false,
|
|
51
|
+
logoUrl: "https://raw.githubusercontent.com/hyperlane-xyz/hyperlane-registry/a86c3b432b6f9ad7272ae09859f20eb3ade3bd6e/deployments/warp_routes/ES/logo.svg"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
]
|
package/utils/index.ts
CHANGED
|
@@ -26,6 +26,7 @@ export async function transactionSenderAndConfirmationWaiter({
|
|
|
26
26
|
serializedTransaction,
|
|
27
27
|
SEND_OPTIONS
|
|
28
28
|
);
|
|
29
|
+
console.log('initial send txid: ', txid);
|
|
29
30
|
|
|
30
31
|
const controller = new AbortController();
|
|
31
32
|
const abortSignal = controller.signal;
|
|
@@ -51,7 +52,8 @@ export async function transactionSenderAndConfirmationWaiter({
|
|
|
51
52
|
blockhashWithExpiryBlockHeight.lastValidBlockHeight - 150;
|
|
52
53
|
|
|
53
54
|
// this would throw TransactionExpiredBlockheightExceededError
|
|
54
|
-
|
|
55
|
+
// console.log("conforming the transaction ....")
|
|
56
|
+
const res = await Promise.race([
|
|
55
57
|
connection.confirmTransaction(
|
|
56
58
|
{
|
|
57
59
|
...blockhashWithExpiryBlockHeight,
|
|
@@ -74,10 +76,13 @@ export async function transactionSenderAndConfirmationWaiter({
|
|
|
74
76
|
}
|
|
75
77
|
}),
|
|
76
78
|
]);
|
|
79
|
+
console.log('res: ', res);
|
|
80
|
+
|
|
77
81
|
} catch (e) {
|
|
82
|
+
console.log('e: ', e);
|
|
78
83
|
if (e instanceof TransactionExpiredBlockheightExceededError) {
|
|
79
84
|
// we consume this error and getTransaction would return null
|
|
80
|
-
return null;
|
|
85
|
+
// return null;
|
|
81
86
|
} else {
|
|
82
87
|
// invalid state from web3.js
|
|
83
88
|
throw e;
|