@deserialize/multi-vm-wallet 1.0.2 → 1.0.4
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 +17 -0
- package/dist/IChainWallet.js +23 -0
- package/dist/IChainWallet.js.map +1 -0
- package/dist/bip32.d.ts +11 -0
- package/dist/bip32.js +100 -0
- package/dist/bip32.js.map +1 -0
- package/dist/evm/evm.d.ts +56 -0
- package/dist/evm/evm.js +257 -0
- package/dist/evm/evm.js.map +1 -0
- package/dist/evm/index.d.ts +2 -0
- package/dist/evm/index.js +19 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/evm/utils.d.ts +214 -0
- package/dist/evm/utils.js +538 -0
- package/dist/evm/utils.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/old.d.ts +0 -0
- package/dist/old.js +885 -0
- package/dist/old.js.map +1 -0
- package/dist/svm/index.d.ts +1 -0
- package/dist/svm/index.js +18 -0
- package/dist/svm/index.js.map +1 -0
- package/dist/svm/svm.d.ts +37 -0
- package/dist/svm/svm.js +181 -0
- package/dist/svm/svm.js.map +1 -0
- package/dist/svm/transactionSender.d.ts +8 -0
- package/dist/svm/transactionSender.js +88 -0
- package/dist/svm/transactionSender.js.map +1 -0
- package/dist/svm/utils.d.ts +85 -0
- package/dist/svm/utils.js +470 -0
- package/dist/svm/utils.js.map +1 -0
- 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 +44 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/vm.d.ts +23 -0
- package/dist/vm.js +89 -0
- package/dist/vm.js.map +1 -0
- package/package.json +4 -1
- package/tsconfig.json +11 -111
- package/utils/evm/evm.ts +58 -3
- package/utils/old.ts +1005 -0
- package/utils/svm/svm.ts +29 -12
- package/utils/svm/transactionSender.ts +7 -2
- package/utils/svm/utils.ts +222 -29
- package/utils/test.ts +49 -0
- package/utils/vm.ts +50 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult } from "./types";
|
|
2
|
+
export declare abstract class ChainWallet<AddressType, PrivateKeyType, ConnectionType> {
|
|
3
|
+
protected privateKey: PrivateKeyType;
|
|
4
|
+
config: ChainWalletConfig;
|
|
5
|
+
address: AddressType;
|
|
6
|
+
index: number | undefined;
|
|
7
|
+
connection: ConnectionType | undefined;
|
|
8
|
+
constructor(config: ChainWalletConfig, privateKey: PrivateKeyType, index?: number);
|
|
9
|
+
abstract generateAddress(privateKey: PrivateKeyType): AddressType;
|
|
10
|
+
abstract getNativeBalance(): Promise<Balance>;
|
|
11
|
+
abstract getTokenBalance(tokenAddress: AddressType): Promise<Balance>;
|
|
12
|
+
abstract transferNative(to: AddressType, amount: number): Promise<TransactionResult>;
|
|
13
|
+
abstract transferToken(tokenAddress: TokenInfo, to: AddressType, amount: number): Promise<TransactionResult>;
|
|
14
|
+
abstract swap(tokenAddress: TokenInfo, to: AddressType, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
15
|
+
getAddress(): AddressType;
|
|
16
|
+
getChainWalletConfig(): ChainWalletConfig;
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainWallet = void 0;
|
|
4
|
+
class ChainWallet {
|
|
5
|
+
constructor(config, privateKey, index) {
|
|
6
|
+
this.config = config;
|
|
7
|
+
this.privateKey = privateKey;
|
|
8
|
+
this.address = this.generateAddress(privateKey);
|
|
9
|
+
this.index = index;
|
|
10
|
+
}
|
|
11
|
+
// abstract transferNFT(contractAddress: AddressType, tokenId: string, to: string): Promise<TransactionResult>;
|
|
12
|
+
// abstract getTokenInfo(tokenAddress: string): Promise<TokenInfo>;
|
|
13
|
+
// abstract getNFTInfo(contractAddress: string, tokenId: string): Promise<NFTInfo>;
|
|
14
|
+
// abstract getTransactionHistory(): Promise<any[]>;
|
|
15
|
+
getAddress() {
|
|
16
|
+
return this.address;
|
|
17
|
+
}
|
|
18
|
+
getChainWalletConfig() {
|
|
19
|
+
return this.config;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ChainWallet = ChainWallet;
|
|
23
|
+
//# sourceMappingURL=IChainWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IChainWallet.js","sourceRoot":"","sources":["../utils/IChainWallet.ts"],"names":[],"mappings":";;;AAEA,MAAsB,WAAW;IAO7B,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;IASD,+GAA+G;IAC/G,mEAAmE;IACnE,mFAAmF;IACnF,oDAAoD;IAEpD,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CAEJ;AAnCD,kCAmCC"}
|
package/dist/bip32.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BIP32Interface } from "bip32";
|
|
2
|
+
import { Keypair } from "@solana/web3.js";
|
|
3
|
+
export declare function GenerateNewMnemonic(): string;
|
|
4
|
+
export declare function ValidateMnemonic(mnemonic: string): true;
|
|
5
|
+
export declare function GenerateSeed(_mnemonic?: string): string;
|
|
6
|
+
export declare function getSeedNode(seed: string): BIP32Interface;
|
|
7
|
+
export declare function EVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): {
|
|
8
|
+
privateKey: string;
|
|
9
|
+
publicKey: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function SVMDeriveChildPrivateKey(seed: string, index: number, derivationPath: string): Keypair;
|
package/dist/bip32.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GenerateNewMnemonic = GenerateNewMnemonic;
|
|
40
|
+
exports.ValidateMnemonic = ValidateMnemonic;
|
|
41
|
+
exports.GenerateSeed = GenerateSeed;
|
|
42
|
+
exports.getSeedNode = getSeedNode;
|
|
43
|
+
exports.EVMDeriveChildPrivateKey = EVMDeriveChildPrivateKey;
|
|
44
|
+
exports.SVMDeriveChildPrivateKey = SVMDeriveChildPrivateKey;
|
|
45
|
+
const bip39 = __importStar(require("bip39"));
|
|
46
|
+
const bip32_1 = __importDefault(require("bip32"));
|
|
47
|
+
const ecc = __importStar(require("tiny-secp256k1"));
|
|
48
|
+
const ed25519 = __importStar(require("ed25519-hd-key"));
|
|
49
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
50
|
+
const bip32 = (0, bip32_1.default)(ecc);
|
|
51
|
+
// export function getPublicKeyFromSeed(seed: string, index: number) {
|
|
52
|
+
// const node = getSeedNode(seed);
|
|
53
|
+
// const { publicKey } = deriveChildPrivateKey(node, index);
|
|
54
|
+
// return publicKey;
|
|
55
|
+
// }
|
|
56
|
+
// export function getPrivateKeyFromSeed(seed: string, index: number) {
|
|
57
|
+
// const node = getSeedNode(seed);
|
|
58
|
+
// const keyPair = deriveChildPrivateKey(node, index);
|
|
59
|
+
// return keyPair.privateKey;
|
|
60
|
+
// }
|
|
61
|
+
function GenerateNewMnemonic() {
|
|
62
|
+
const mnemonic = bip39.generateMnemonic();
|
|
63
|
+
return mnemonic;
|
|
64
|
+
}
|
|
65
|
+
function ValidateMnemonic(mnemonic) {
|
|
66
|
+
const isValid = bip39.validateMnemonic(mnemonic);
|
|
67
|
+
if (!isValid) {
|
|
68
|
+
throw new Error("Invalid mnemonic");
|
|
69
|
+
}
|
|
70
|
+
return isValid;
|
|
71
|
+
}
|
|
72
|
+
function GenerateSeed(_mnemonic) {
|
|
73
|
+
const mnemonic = _mnemonic || bip39.generateMnemonic();
|
|
74
|
+
const seed = bip39.mnemonicToSeedSync(mnemonic);
|
|
75
|
+
const seedString = seed.toString("hex");
|
|
76
|
+
return seedString;
|
|
77
|
+
}
|
|
78
|
+
function getSeedNode(seed) {
|
|
79
|
+
const bip32 = (0, bip32_1.default)(ecc);
|
|
80
|
+
const restoredSeedBuffer = Buffer.from(seed, "hex");
|
|
81
|
+
const node = bip32.fromSeed(restoredSeedBuffer);
|
|
82
|
+
return node;
|
|
83
|
+
}
|
|
84
|
+
//EVM
|
|
85
|
+
function EVMDeriveChildPrivateKey(seed, index, derivationPath) {
|
|
86
|
+
const node = getSeedNode(seed);
|
|
87
|
+
const child = node.derivePath(`${derivationPath}${index}'`);
|
|
88
|
+
const privateKey = child.privateKey.toString("hex");
|
|
89
|
+
const publicKey = child.publicKey.toString("hex");
|
|
90
|
+
return { privateKey, publicKey };
|
|
91
|
+
}
|
|
92
|
+
//SVM
|
|
93
|
+
function SVMDeriveChildPrivateKey(seed, index, derivationPath) {
|
|
94
|
+
const path = `${derivationPath}${index}'`;
|
|
95
|
+
// Derive a seed from the given path
|
|
96
|
+
const derivedSeed = ed25519.derivePath(path, seed).key;
|
|
97
|
+
const derivedKeyPair = web3_js_1.Keypair.fromSeed(derivedSeed);
|
|
98
|
+
return derivedKeyPair;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=bip32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32.js","sourceRoot":"","sources":["../utils/bip32.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,kDAGC;AACD,4CAMC;AACD,oCAKC;AAED,kCAKC;AAID,4DAMC;AAKD,4DAMC;AAjED,6CAA+B;AAC/B,kDAAiC;AACjC,oDAAsC;AAEtC,wDAA0C;AAC1C,6CAA0C;AAE1C,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,GAAG,CAAC,CAAC;AAGhC,sEAAsE;AACtE,sCAAsC;AACtC,gEAAgE;AAChE,wBAAwB;AACxB,IAAI;AACJ,uEAAuE;AACvE,sCAAsC;AACtC,0DAA0D;AAC1D,iCAAiC;AACjC,IAAI;AAEJ,SAAgB,mBAAmB;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAgB,YAAY,CAAC,SAAkB;IAC3C,MAAM,QAAQ,GAAG,SAAS,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,GAAG,CAAC,CAAC;IAChC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,IAAI,GAAmB,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,KAAK;AACL,SAAgB,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,cAAsB;IACxF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC;AAID,KAAK;AACL,SAAgB,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,cAAsB;IACxF,MAAM,IAAI,GAAG,GAAG,cAAc,GAAG,KAAK,GAAG,CAAC;IAC1C,oCAAoC;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;IACvD,MAAM,cAAc,GAAG,iBAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param phrase this is the pass phrase for this vm
|
|
4
|
+
* this is a class that will be responsible for creating several evm wallets code
|
|
5
|
+
*/
|
|
6
|
+
import { ChainWallet } from "../IChainWallet";
|
|
7
|
+
import { Balance, ChainWalletConfig, TokenInfo, TransactionResult } from "../types";
|
|
8
|
+
import { VM } from "../vm";
|
|
9
|
+
import { JsonRpcProvider, Wallet } from "ethers";
|
|
10
|
+
export declare const createEvmVmPrivateKey: (phrase: string) => void;
|
|
11
|
+
export declare class EVMVM extends VM<string, string, JsonRpcProvider> {
|
|
12
|
+
derivationPath: string;
|
|
13
|
+
constructor(seed: string);
|
|
14
|
+
generatePrivateKey(index: number, seed?: string, mnemonic?: string, derivationPath?: string): {
|
|
15
|
+
privateKey: string;
|
|
16
|
+
index: number;
|
|
17
|
+
};
|
|
18
|
+
static fromMnemonic(mnemonic: string): VM<string, string, JsonRpcProvider>;
|
|
19
|
+
static validateAddress(address: string): boolean;
|
|
20
|
+
static getNativeBalance(address: string, connection: JsonRpcProvider): Promise<Balance>;
|
|
21
|
+
static getTokenBalance(address: string, tokenAddress: string, connection: JsonRpcProvider): Promise<Balance>;
|
|
22
|
+
}
|
|
23
|
+
export declare class EVMChainWallet extends ChainWallet<string, string, JsonRpcProvider> {
|
|
24
|
+
constructor(config: ChainWalletConfig, privateKey: string, index: number);
|
|
25
|
+
getWallet(): Wallet;
|
|
26
|
+
generateAddress(): string;
|
|
27
|
+
getNativeBalance(): Promise<Balance>;
|
|
28
|
+
getTokenBalance(tokenAddress: string): Promise<Balance>;
|
|
29
|
+
transferNative(to: string, amount: number): Promise<TransactionResult>;
|
|
30
|
+
transferToken(tokenAddress: TokenInfo, to: string, amount: number): Promise<TransactionResult>;
|
|
31
|
+
swap(tokenAddress: TokenInfo, to: string, amount: number, slippage?: number): Promise<TransactionResult>;
|
|
32
|
+
performCompleteSwap(tokenIn: TokenInfo, tokenOut: TokenInfo, amount: number, slippage?: number, recipient?: string, deadline?: number): Promise<TransactionResult>;
|
|
33
|
+
getSwapQuote(tokenIn: TokenInfo, tokenOut: TokenInfo, amount: number): Promise<{
|
|
34
|
+
amountOut: string;
|
|
35
|
+
priceImpact: string;
|
|
36
|
+
gasEstimate: string;
|
|
37
|
+
route: string[];
|
|
38
|
+
}>;
|
|
39
|
+
approveToken(params: {
|
|
40
|
+
tokenAddress: string;
|
|
41
|
+
spender: string;
|
|
42
|
+
amountRaw: string | bigint;
|
|
43
|
+
confirmations?: number;
|
|
44
|
+
gasLimit?: string | bigint;
|
|
45
|
+
}): Promise<TransactionResult>;
|
|
46
|
+
executeContractMethod(params: {
|
|
47
|
+
contractAddress: string;
|
|
48
|
+
abi: any[];
|
|
49
|
+
methodName: string;
|
|
50
|
+
methodParams?: any[];
|
|
51
|
+
value?: string | bigint;
|
|
52
|
+
gasLimit?: string | bigint;
|
|
53
|
+
confirmations?: number;
|
|
54
|
+
}): Promise<TransactionResult>;
|
|
55
|
+
signMessage(message: string): Promise<string>;
|
|
56
|
+
}
|
package/dist/evm/evm.js
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param phrase this is the pass phrase for this vm
|
|
5
|
+
* this is a class that will be responsible for creating several evm wallets code
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.EVMChainWallet = exports.EVMVM = exports.createEvmVmPrivateKey = void 0;
|
|
12
|
+
const bip32_1 = require("../bip32");
|
|
13
|
+
const IChainWallet_1 = require("../IChainWallet");
|
|
14
|
+
const vm_1 = require("../vm");
|
|
15
|
+
const ethers_1 = require("ethers");
|
|
16
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
|
+
const createEvmVmPrivateKey = (phrase) => { };
|
|
19
|
+
exports.createEvmVmPrivateKey = createEvmVmPrivateKey;
|
|
20
|
+
class EVMVM extends vm_1.VM {
|
|
21
|
+
constructor(seed) {
|
|
22
|
+
super(seed, "EVM");
|
|
23
|
+
this.derivationPath = "m/44'/60'/0'/0/"; // Default EVM derivation path
|
|
24
|
+
}
|
|
25
|
+
generatePrivateKey(index, seed, mnemonic, derivationPath = this.derivationPath) {
|
|
26
|
+
let _seed;
|
|
27
|
+
if (seed) {
|
|
28
|
+
_seed = seed;
|
|
29
|
+
}
|
|
30
|
+
else if (mnemonic) {
|
|
31
|
+
_seed = vm_1.VM.mnemonicToSeed(mnemonic);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
_seed = this.seed;
|
|
35
|
+
}
|
|
36
|
+
const privateKey = (0, bip32_1.EVMDeriveChildPrivateKey)(_seed, index, derivationPath).privateKey;
|
|
37
|
+
return { privateKey, index };
|
|
38
|
+
}
|
|
39
|
+
static fromMnemonic(mnemonic) {
|
|
40
|
+
const seed = vm_1.VM.mnemonicToSeed(mnemonic);
|
|
41
|
+
return new EVMVM(seed);
|
|
42
|
+
}
|
|
43
|
+
static validateAddress(address) {
|
|
44
|
+
return ethers_1.ethers.isAddress(address);
|
|
45
|
+
}
|
|
46
|
+
static async getNativeBalance(address, connection) {
|
|
47
|
+
// Implement native balance retrieval logic here
|
|
48
|
+
return await (0, utils_1.getNativeBalance)(address, connection);
|
|
49
|
+
}
|
|
50
|
+
static async getTokenBalance(address, tokenAddress, connection) {
|
|
51
|
+
// Implement token balance retrieval logic here
|
|
52
|
+
return await (0, utils_1.getTokenBalance)(tokenAddress, address, connection);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.EVMVM = EVMVM;
|
|
56
|
+
class EVMChainWallet extends IChainWallet_1.ChainWallet {
|
|
57
|
+
constructor(config, privateKey, index) {
|
|
58
|
+
super(config, privateKey, index);
|
|
59
|
+
const wallet = new ethers_1.Wallet(privateKey);
|
|
60
|
+
this.address = wallet.address;
|
|
61
|
+
this.privateKey = privateKey;
|
|
62
|
+
this.connection = new ethers_1.JsonRpcProvider(config.rpcUrl);
|
|
63
|
+
}
|
|
64
|
+
getWallet() {
|
|
65
|
+
return new ethers_1.Wallet(this.privateKey, this.connection);
|
|
66
|
+
}
|
|
67
|
+
generateAddress() {
|
|
68
|
+
return this.address;
|
|
69
|
+
}
|
|
70
|
+
async getNativeBalance() {
|
|
71
|
+
// Implement native balance retrieval logic here
|
|
72
|
+
return await EVMVM.getNativeBalance(this.address, this.connection);
|
|
73
|
+
}
|
|
74
|
+
async getTokenBalance(tokenAddress) {
|
|
75
|
+
// Implement token balance retrieval logic here
|
|
76
|
+
return await EVMVM.getTokenBalance(this.address, tokenAddress, this.connection);
|
|
77
|
+
}
|
|
78
|
+
async transferNative(to, amount) {
|
|
79
|
+
// Implement native transfer logic here
|
|
80
|
+
const wallet = this.getWallet();
|
|
81
|
+
return await (0, utils_1.sendNativeToken)(wallet, to, amount.toString(), undefined, this.config.confirmationNo || 5);
|
|
82
|
+
}
|
|
83
|
+
async transferToken(tokenAddress, to, amount) {
|
|
84
|
+
// Implement token transfer logic here
|
|
85
|
+
const wallet = this.getWallet();
|
|
86
|
+
return await (0, utils_1.sendERC20Token)(wallet, tokenAddress.address, to, amount.toString(), undefined, this.config.confirmationNo || 5);
|
|
87
|
+
}
|
|
88
|
+
// Updated swap method signature to match base class so created another method to use it inside swap
|
|
89
|
+
async swap(tokenAddress, to, amount, slippage = 50) {
|
|
90
|
+
if (amount <= 0) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
hash: "",
|
|
94
|
+
error: "Amount must be greater than 0"
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const tokenOut = {
|
|
98
|
+
address: to,
|
|
99
|
+
name: '',
|
|
100
|
+
symbol: '',
|
|
101
|
+
decimals: 18
|
|
102
|
+
};
|
|
103
|
+
return await this.performCompleteSwap(tokenAddress, tokenOut, amount, slippage);
|
|
104
|
+
}
|
|
105
|
+
async performCompleteSwap(tokenIn, tokenOut, amount, slippage = 50, recipient, deadline) {
|
|
106
|
+
try {
|
|
107
|
+
const wallet = this.getWallet();
|
|
108
|
+
const chainId = (await this.connection.getNetwork()).chainId.toString();
|
|
109
|
+
console.log(` Starting swap on chain ${chainId}:`, {
|
|
110
|
+
from: tokenIn.symbol || tokenIn.address,
|
|
111
|
+
to: tokenOut.symbol || tokenOut.address,
|
|
112
|
+
amount: amount,
|
|
113
|
+
slippage: `${slippage / 100}%`
|
|
114
|
+
});
|
|
115
|
+
if (!(0, utils_1.isChainSupportedByKyber)(chainId)) {
|
|
116
|
+
throw new Error(`Chain ${chainId} is not supported by KyberSwap`);
|
|
117
|
+
}
|
|
118
|
+
const isNativeIn = tokenIn.address === 'native' ||
|
|
119
|
+
tokenIn.address.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
120
|
+
const isNativeOut = tokenOut.address === 'native' ||
|
|
121
|
+
tokenOut.address.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
122
|
+
let tokenInDecimals = 18;
|
|
123
|
+
if (!isNativeIn && tokenIn.decimals) {
|
|
124
|
+
tokenInDecimals = tokenIn.decimals;
|
|
125
|
+
}
|
|
126
|
+
else if (!isNativeIn) {
|
|
127
|
+
const tokenBalance = await this.getTokenBalance(tokenIn.address);
|
|
128
|
+
tokenInDecimals = tokenBalance.decimal;
|
|
129
|
+
}
|
|
130
|
+
const { tokenInAddress, tokenOutAddress, formattedAmountIn } = (0, utils_1.prepareSwapParams)(tokenIn.address, tokenOut.address, amount.toString(), tokenInDecimals, isNativeIn, isNativeOut);
|
|
131
|
+
console.log('Swap parameters:', {
|
|
132
|
+
tokenInAddress,
|
|
133
|
+
tokenOutAddress,
|
|
134
|
+
formattedAmountIn,
|
|
135
|
+
tokenInDecimals
|
|
136
|
+
});
|
|
137
|
+
if (isNativeIn) {
|
|
138
|
+
const nativeBalance = await this.getNativeBalance();
|
|
139
|
+
const requiredAmount = new bn_js_1.default(formattedAmountIn);
|
|
140
|
+
if (nativeBalance.balance.lt(requiredAmount)) {
|
|
141
|
+
throw new Error(`Insufficient native balance. Required: ${amount}, Available: ${nativeBalance.formatted}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const tokenBalance = await this.getTokenBalance(tokenIn.address);
|
|
146
|
+
const requiredAmount = new bn_js_1.default(formattedAmountIn);
|
|
147
|
+
if (tokenBalance.balance.lt(requiredAmount)) {
|
|
148
|
+
throw new Error(`Insufficient token balance. Required: ${amount}, Available: ${tokenBalance.formatted}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const swapTx = await (0, utils_1.performSwap)({
|
|
152
|
+
chainId,
|
|
153
|
+
tokenIn: tokenInAddress,
|
|
154
|
+
tokenOut: tokenOutAddress,
|
|
155
|
+
amountIn: formattedAmountIn,
|
|
156
|
+
sender: this.address,
|
|
157
|
+
recipient: recipient || this.address,
|
|
158
|
+
slippageTolerance: slippage,
|
|
159
|
+
deadline: deadline ? Math.floor(Date.now() / 1000) + deadline : Math.floor(Date.now() / 1000) + 1200, // 20 minutes default
|
|
160
|
+
clientId: 'EVMChainWallet'
|
|
161
|
+
});
|
|
162
|
+
console.log('Swap transaction prepared:', {
|
|
163
|
+
to: swapTx.to,
|
|
164
|
+
dataLength: swapTx.data?.length || 0,
|
|
165
|
+
gasLimit: swapTx.gasLimit?.toString(),
|
|
166
|
+
value: swapTx.value?.toString()
|
|
167
|
+
});
|
|
168
|
+
if (!isNativeIn) {
|
|
169
|
+
console.log('Checking token approval...');
|
|
170
|
+
const approvalResult = await (0, utils_1.checkAndApprove)(wallet, tokenIn.address, swapTx.to, formattedAmountIn, undefined, undefined, this.config.confirmationNo || 1);
|
|
171
|
+
if (approvalResult.approvalNeeded && approvalResult.approvalResult) {
|
|
172
|
+
if (!approvalResult.approvalResult.success) {
|
|
173
|
+
throw new Error('Token approval failed');
|
|
174
|
+
}
|
|
175
|
+
console.log('Token approval successful');
|
|
176
|
+
}
|
|
177
|
+
else if (approvalResult.approvalNeeded) {
|
|
178
|
+
throw new Error('Token approval was needed but failed');
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
console.log('Token approval not needed - sufficient allowance');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const result = await (0, utils_1.signSendAndConfirm)(wallet, {
|
|
185
|
+
to: swapTx.to,
|
|
186
|
+
data: swapTx.data,
|
|
187
|
+
value: swapTx.value || '0',
|
|
188
|
+
gasLimit: swapTx.gasLimit
|
|
189
|
+
}, this.config.confirmationNo || 1);
|
|
190
|
+
if (result.success) {
|
|
191
|
+
console.log(' Swap completed successfully:', {
|
|
192
|
+
hash: result.hash,
|
|
193
|
+
gasUsed: result.gasUsed?.toString(),
|
|
194
|
+
blockNumber: result.blockNumber
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
console.log(' Swap failed:', result);
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
console.error('Swap failed:', error);
|
|
204
|
+
throw new Error(`Swap failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
async getSwapQuote(tokenIn, tokenOut, amount) {
|
|
208
|
+
try {
|
|
209
|
+
const chainId = (await this.connection.getNetwork()).chainId.toString();
|
|
210
|
+
if (!(0, utils_1.isChainSupportedByKyber)(chainId)) {
|
|
211
|
+
throw new Error(`Chain ${chainId} is not supported by KyberSwap`);
|
|
212
|
+
}
|
|
213
|
+
const isNativeIn = tokenIn.address === 'native' ||
|
|
214
|
+
tokenIn.address.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
215
|
+
const isNativeOut = tokenOut.address === 'native' ||
|
|
216
|
+
tokenOut.address.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
217
|
+
let tokenInDecimals = 18;
|
|
218
|
+
if (!isNativeIn && tokenIn.decimals) {
|
|
219
|
+
tokenInDecimals = tokenIn.decimals;
|
|
220
|
+
}
|
|
221
|
+
else if (!isNativeIn) {
|
|
222
|
+
const tokenBalance = await this.getTokenBalance(tokenIn.address);
|
|
223
|
+
tokenInDecimals = tokenBalance.decimal;
|
|
224
|
+
}
|
|
225
|
+
const { tokenInAddress, tokenOutAddress, formattedAmountIn } = (0, utils_1.prepareSwapParams)(tokenIn.address, tokenOut.address, amount.toString(), tokenInDecimals, isNativeIn, isNativeOut);
|
|
226
|
+
throw new Error("Quote functionality requires direct API integration - use the swap method for full execution");
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
console.error('Error getting swap quote:', error);
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
async approveToken(params) {
|
|
234
|
+
const signer = this.getWallet();
|
|
235
|
+
const r = await (0, utils_1.approveToken)(signer, params.tokenAddress, params.spender, params.amountRaw, params.gasLimit, params.confirmations ?? this.config.confirmationNo ?? 1);
|
|
236
|
+
return {
|
|
237
|
+
hash: r.hash,
|
|
238
|
+
success: r.success,
|
|
239
|
+
error: r.error,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
async executeContractMethod(params) {
|
|
243
|
+
const signer = this.getWallet();
|
|
244
|
+
const r = await (0, utils_1.executeContractMethod)(signer, params.contractAddress, params.abi, params.methodName, params.methodParams ?? [], params.value);
|
|
245
|
+
return {
|
|
246
|
+
hash: r.hash,
|
|
247
|
+
success: r.success,
|
|
248
|
+
error: r.error,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
async signMessage(message) {
|
|
252
|
+
const signer = this.getWallet();
|
|
253
|
+
return signer.signMessage(message);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.EVMChainWallet = EVMChainWallet;
|
|
257
|
+
//# sourceMappingURL=evm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../utils/evm/evm.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,oCAAiE;AACjE,kDAA8C;AAE9C,8BAA2B;AAC3B,mCAAyD;AACzD,kDAAuB;AACvB,mCAeiB;AAEV,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE,GAAG,CAAC,CAAA;AAA/C,QAAA,qBAAqB,yBAA0B;AAE5D,MAAa,KAAM,SAAQ,OAAmC;IAG1D,YAAY,IAAY;QACpB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAHvB,mBAAc,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;IAIlE,CAAC;IAGD,kBAAkB,CAAC,KAAa,EAAE,IAAa,EAAE,QAAiB,EAAE,cAAc,GAAG,IAAI,CAAC,cAAc;QACpG,IAAI,KAAa,CAAA;QAEjB,IAAI,IAAI,EAAE,CAAC;YACP,KAAK,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,KAAK,GAAG,OAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,gCAAwB,EAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,UAAU,CAAC;QACrF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,OAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAe;QAClC,OAAO,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,UAA2B;QACtE,gDAAgD;QAChD,OAAO,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,YAAoB,EAAE,UAA2B;QAC3F,+CAA+C;QAC/C,OAAO,MAAM,IAAA,uBAAe,EAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACnE,CAAC;CACJ;AAvCD,sBAuCC;AAED,MAAa,cAAe,SAAQ,0BAA4C;IAC5E,YAAY,MAAyB,EAAE,UAAkB,EAAE,KAAa;QACpE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB;QACtC,+CAA+C;QAC/C,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,MAAc;QAC3C,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,IAAA,uBAAe,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAC3G,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAuB,EAAE,EAAU,EAAE,MAAc;QACnE,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,IAAA,sBAAc,EAAC,MAAM,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA;IAChI,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,IAAI,CACN,YAAuB,EACvB,EAAU,EACV,MAAc,EACd,WAAmB,EAAE;QAErB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,+BAA+B;aACzC,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAc;YACxB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;SACf,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,mBAAmB,CACrB,OAAkB,EAClB,QAAmB,EACnB,MAAc,EACd,WAAmB,EAAE,EACrB,SAAkB,EAClB,QAAiB;QAEjB,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAW,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEzE,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,GAAG,EAAE;gBAC/C,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO;gBACvC,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO;gBACvC,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,GAAG,QAAQ,GAAG,GAAG,GAAG;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,gCAAgC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC3C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YAEpF,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;YACvC,CAAC;iBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAA,yBAAiB,EAC5E,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,OAAO,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,eAAe,EACf,UAAU,EACV,WAAW,CACd,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC5B,cAAc;gBACd,eAAe;gBACf,iBAAiB;gBACjB,eAAe;aAClB,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,cAAc,GAAG,IAAI,eAAE,CAAC,iBAAiB,CAAC,CAAC;gBACjD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,gBAAgB,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,cAAc,GAAG,IAAI,eAAE,CAAC,iBAAiB,CAAC,CAAC;gBACjD,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,gBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC;gBAC7B,OAAO;gBACP,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO;gBACpC,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,qBAAqB;gBAC3H,QAAQ,EAAE,gBAAgB;aAC7B,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE;gBACtC,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACrC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAe,EACxC,MAAM,EACN,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,EAAE,EACT,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAClC,CAAC;gBAEF,IAAI,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;oBACjE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;wBACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC7C,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAkB,EACnC,MAAM,EACN;gBACI,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC5B,EACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAClC,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;oBACzC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;oBACnC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAClC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,MAAM,CAAC;QAElB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChG,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CACd,OAAkB,EAClB,QAAmB,EACnB,MAAc;QAOd,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,UAAW,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEzE,IAAI,CAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,gCAAgC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAC3C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4CAA4C,CAAC;YAEpF,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;YACvC,CAAC;iBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjE,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAA,yBAAiB,EAC5E,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,OAAO,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,eAAe,EACf,UAAU,EACV,WAAW,CACd,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAEpH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,MAMlB;QACG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,MAAM,IAAA,oBAAY,EACxB,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAC1D,CAAA;QACD,OAAO;YACH,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAG,CAAS,CAAC,KAAK;SAC1B,CAAA;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAQ3B;QACG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,CAAC,GAAG,MAAM,IAAA,6BAAqB,EACjC,MAAM,EACN,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,IAAI,EAAE,EACzB,MAAM,CAAC,KAAK,CACf,CAAA;QACD,OAAO;YACH,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAG,CAAS,CAAC,KAAK;SAC1B,CAAA;IACL,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,OAAe;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;CACJ;AA1SD,wCA0SC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./evm"), exports);
|
|
18
|
+
__exportStar(require("./utils"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/evm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,0CAAuB"}
|