@pushchain/core 0.1.1 → 0.1.3
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/README.md +1 -1
- package/package.json +1 -1
- package/src/lib/constants/chain.d.ts +2 -2
- package/src/lib/constants/chain.js +10 -10
- package/src/lib/constants/chain.js.map +1 -1
- package/src/lib/constants/enums.d.ts +12 -10
- package/src/lib/constants/enums.js +18 -16
- package/src/lib/constants/enums.js.map +1 -1
- package/src/lib/constants/index.d.ts +5 -3
- package/src/lib/constants/index.js +2 -2
- package/src/lib/constants/index.js.map +1 -1
- package/src/lib/constants/viem-push-testnet.d.ts +1 -1
- package/src/lib/constants/viem-push-testnet.js +5 -4
- package/src/lib/constants/viem-push-testnet.js.map +1 -1
- package/src/lib/generated/v1/tx.d.ts +1 -1
- package/src/lib/generated/v1/tx.js +141 -111
- package/src/lib/generated/v1/tx.js.map +1 -1
- package/src/lib/index.d.ts +1 -2
- package/src/lib/index.js +1 -3
- package/src/lib/index.js.map +1 -1
- package/src/lib/orchestrator/orchestrator.d.ts +6 -5
- package/src/lib/orchestrator/orchestrator.js +27 -21
- package/src/lib/orchestrator/orchestrator.js.map +1 -1
- package/src/lib/price-fetch/price-fetch.d.ts +2 -2
- package/src/lib/price-fetch/price-fetch.js +4 -5
- package/src/lib/price-fetch/price-fetch.js.map +1 -1
- package/src/lib/push-client/push-client.d.ts +1 -1
- package/src/lib/push-client/push-client.js +3 -3
- package/src/lib/push-client/push-client.js.map +1 -1
- package/src/lib/push-client/push-client.types.d.ts +2 -2
- package/src/lib/pushChain.d.ts +54 -9
- package/src/lib/pushChain.js +16 -4
- package/src/lib/pushChain.js.map +1 -1
- package/src/lib/universal/signer/signer.d.ts +16 -4
- package/src/lib/universal/signer/signer.js +90 -9
- package/src/lib/universal/signer/signer.js.map +1 -1
- package/src/lib/universal/signer/signer.types.d.ts +2 -0
- package/src/lib/universal/signer/signer.types.js +3 -0
- package/src/lib/universal/signer/signer.types.js.map +1 -0
- package/src/lib/universal/universal.types.d.ts +47 -2
- package/src/lib/utils.d.ts +9 -1
- package/src/lib/utils.js +8 -0
- package/src/lib/utils.js.map +1 -1
- package/src/lib/vm-client/evm-client.d.ts +2 -2
- package/src/lib/vm-client/evm-client.js +6 -5
- package/src/lib/vm-client/evm-client.js.map +1 -1
- package/src/lib/vm-client/svm-client.d.ts +1 -1
- package/src/lib/vm-client/svm-client.js +5 -4
- package/src/lib/vm-client/svm-client.js.map +1 -1
- package/src/lib/vm-client/vm-client.types.d.ts +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createUniversalSigner = createUniversalSigner;
|
|
4
|
+
exports.toUniversalFromKeyPair = toUniversalFromKeyPair;
|
|
5
|
+
exports.construct = construct;
|
|
4
6
|
exports.toUniversal = toUniversal;
|
|
5
7
|
const tslib_1 = require("tslib");
|
|
6
8
|
const viem_1 = require("viem");
|
|
7
|
-
const account_1 = require("../account/account");
|
|
8
|
-
const enums_1 = require("../../constants/enums");
|
|
9
9
|
const nacl = tslib_1.__importStar(require("tweetnacl"));
|
|
10
|
+
const enums_1 = require("../../constants/enums");
|
|
10
11
|
/**
|
|
11
12
|
* Creates a `UniversalSigner` object for signing messages and transactions
|
|
12
13
|
* on any supported chain.
|
|
@@ -26,10 +27,13 @@ const nacl = tslib_1.__importStar(require("tweetnacl"));
|
|
|
26
27
|
* signTransaction: async (data) => signRawTx(data),
|
|
27
28
|
* });
|
|
28
29
|
*/
|
|
29
|
-
function createUniversalSigner({
|
|
30
|
-
return
|
|
30
|
+
function createUniversalSigner({ account, signMessage, signTransaction, signTypedData, }) {
|
|
31
|
+
return {
|
|
32
|
+
account,
|
|
33
|
+
signMessage,
|
|
31
34
|
signTransaction,
|
|
32
|
-
signTypedData
|
|
35
|
+
signTypedData,
|
|
36
|
+
};
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
39
|
* Creates a UniversalSigner from either a viem WalletClient or Account instance.
|
|
@@ -38,12 +42,14 @@ function createUniversalSigner({ chain, address, signMessage, signTransaction, s
|
|
|
38
42
|
* @param {CHAIN} chain - The chain the signer will operate on
|
|
39
43
|
* @returns {Promise<UniversalSigner>} A signer object configured for the specified chain
|
|
40
44
|
*/
|
|
41
|
-
function
|
|
45
|
+
function toUniversalFromKeyPair(clientOrAccount_1, _a) {
|
|
42
46
|
return tslib_1.__awaiter(this, arguments, void 0, function* (clientOrAccount, { chain, library }) {
|
|
43
47
|
let address;
|
|
44
48
|
let signMessage;
|
|
45
49
|
let signTransaction;
|
|
46
50
|
let signTypedData;
|
|
51
|
+
// Check if signer has UID='custom', then we take signMessage, signTransaction, signTypedData, chain and address from the CustomUniversalSigner.
|
|
52
|
+
// If ViemSigner, convert ViemSigner to UniversalSigner.
|
|
47
53
|
switch (library) {
|
|
48
54
|
case enums_1.LIBRARY.ETHEREUM_VIEM: {
|
|
49
55
|
if ('getAddresses' in clientOrAccount) {
|
|
@@ -104,7 +110,7 @@ function toUniversal(clientOrAccount_1, _a) {
|
|
|
104
110
|
}
|
|
105
111
|
break;
|
|
106
112
|
}
|
|
107
|
-
case enums_1.LIBRARY.
|
|
113
|
+
case enums_1.LIBRARY.SOLANA_WEB3JS: {
|
|
108
114
|
// It's a Solana Keypair
|
|
109
115
|
const keypair = clientOrAccount;
|
|
110
116
|
if (chain !== enums_1.CHAIN.SOLANA_MAINNET &&
|
|
@@ -129,8 +135,10 @@ function toUniversal(clientOrAccount_1, _a) {
|
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
const universalSigner = {
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
account: {
|
|
139
|
+
address,
|
|
140
|
+
chain,
|
|
141
|
+
},
|
|
134
142
|
signMessage,
|
|
135
143
|
signTransaction,
|
|
136
144
|
signTypedData,
|
|
@@ -138,4 +146,77 @@ function toUniversal(clientOrAccount_1, _a) {
|
|
|
138
146
|
return createUniversalSigner(universalSigner);
|
|
139
147
|
});
|
|
140
148
|
}
|
|
149
|
+
// `signTypedData` is only mandatory for EVM Signers. For Solana this is not necessary.
|
|
150
|
+
function construct(account, options) {
|
|
151
|
+
const { signMessage, signTransaction, signTypedData } = options;
|
|
152
|
+
if (signTypedData &&
|
|
153
|
+
(account.chain === enums_1.CHAIN.SOLANA_MAINNET ||
|
|
154
|
+
account.chain === enums_1.CHAIN.SOLANA_TESTNET ||
|
|
155
|
+
account.chain === enums_1.CHAIN.SOLANA_DEVNET)) {
|
|
156
|
+
throw new Error('Typed data signing is not supported for Solana');
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
signerId: 'CustomGeneratedSigner',
|
|
160
|
+
account,
|
|
161
|
+
signMessage,
|
|
162
|
+
signTransaction,
|
|
163
|
+
signTypedData,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function toUniversal(signer) {
|
|
167
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
168
|
+
return createUniversalSigner(signer);
|
|
169
|
+
// if ('signerId' in signer) {
|
|
170
|
+
// return createUniversalSigner(signer);
|
|
171
|
+
// } else {
|
|
172
|
+
// if (isViemSigner(signer)) {
|
|
173
|
+
// return generateSkeletonFromViem(signer);
|
|
174
|
+
// } else {
|
|
175
|
+
// throw new Error('Unsupported signer type');
|
|
176
|
+
// }
|
|
177
|
+
// }
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// async function generateSkeletonFromEthers(
|
|
181
|
+
// signer: EthersV6SignerType
|
|
182
|
+
// ): Promise<UniversalSignerSkeleton> {
|
|
183
|
+
// return {
|
|
184
|
+
// signerId: 'EthersSigner',
|
|
185
|
+
// account: {
|
|
186
|
+
// address: await signer.getAddress(),
|
|
187
|
+
// chain: (await signer.provider.getNetwork()).chainId,
|
|
188
|
+
// },
|
|
189
|
+
// signMessage: async (data: Uint8Array) => {
|
|
190
|
+
// return hexToBytes(await signer.signMessage(data));
|
|
191
|
+
// },
|
|
192
|
+
// signTransaction: async (unsignedTx: Uint8Array) => {
|
|
193
|
+
// return hexToBytes(await signer.signTransaction(unsignedTx));
|
|
194
|
+
// },
|
|
195
|
+
// signTypedData: async ({ domain, types, primaryType, message }) => {
|
|
196
|
+
// return hexToBytes(
|
|
197
|
+
// await signer.signTypedData(domain, types, primaryType, message)
|
|
198
|
+
// );
|
|
199
|
+
// },
|
|
200
|
+
// };
|
|
201
|
+
// }
|
|
202
|
+
// function isViemSigner(
|
|
203
|
+
// signer: ViemSigner | EthersV5SignerType | EthersV6SignerType
|
|
204
|
+
// ) {
|
|
205
|
+
// return (
|
|
206
|
+
// typeof (signer as any).signTypedData === 'function' &&
|
|
207
|
+
// typeof (signer as any).getChainId === 'function' &&
|
|
208
|
+
// signer.signMessage.length === 1 && // Checking if the function takes one argument
|
|
209
|
+
// (signer as any).signTypedData.length === 1 // Checking if the function takes one argument
|
|
210
|
+
// );
|
|
211
|
+
// }
|
|
212
|
+
// function generateSkeletonFromViem(signer: ViemSigner): UniversalSignerSkeleton {
|
|
213
|
+
// return {
|
|
214
|
+
// signerId: 'ViemSigner',
|
|
215
|
+
// account: {
|
|
216
|
+
// address: signer.account['address'],
|
|
217
|
+
// chain: signer.account['chain'],
|
|
218
|
+
// },
|
|
219
|
+
// signMessage: signer.signMessage,
|
|
220
|
+
// };
|
|
221
|
+
// }
|
|
141
222
|
//# sourceMappingURL=signer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/universal/signer/signer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/universal/signer/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.types.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/universal/signer/signer.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { TypedData, TypedDataDomain } from '
|
|
1
|
+
import { TypedData, TypedDataDomain } from '../constants';
|
|
2
2
|
import { CHAIN } from '../constants/enums';
|
|
3
|
+
import { Keypair } from '@solana/web3.js';
|
|
3
4
|
/**
|
|
4
5
|
* A chain-agnostic account representation.
|
|
5
6
|
* Used to represent a wallet address along with its chain context.
|
|
@@ -14,11 +15,43 @@ export interface UniversalAccount {
|
|
|
14
15
|
*/
|
|
15
16
|
address: string;
|
|
16
17
|
}
|
|
18
|
+
export interface MetamaskSigner {
|
|
19
|
+
signMessage: (data: Uint8Array) => Promise<Uint8Array>;
|
|
20
|
+
signTransaction: (unsignedTx: Uint8Array) => Promise<Uint8Array>;
|
|
21
|
+
signTypedData: ({ domain, types, primaryType, message, }: {
|
|
22
|
+
domain: TypedDataDomain;
|
|
23
|
+
types: TypedData;
|
|
24
|
+
primaryType: string;
|
|
25
|
+
message: Record<string, any>;
|
|
26
|
+
}) => Promise<Uint8Array>;
|
|
27
|
+
}
|
|
28
|
+
export interface ViemSigner {
|
|
29
|
+
signTypedData: (args: {
|
|
30
|
+
account: any;
|
|
31
|
+
domain: any;
|
|
32
|
+
types: any;
|
|
33
|
+
primaryType: any;
|
|
34
|
+
message: any;
|
|
35
|
+
}) => Promise<`0x${string}`>;
|
|
36
|
+
getChainId: () => Promise<number>;
|
|
37
|
+
signMessage: (args: {
|
|
38
|
+
message: any;
|
|
39
|
+
account: any;
|
|
40
|
+
[key: string]: any;
|
|
41
|
+
}) => Promise<`0x${string}`>;
|
|
42
|
+
account: {
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
};
|
|
45
|
+
privateKey?: string;
|
|
46
|
+
provider?: any;
|
|
47
|
+
}
|
|
48
|
+
export type SolanaWeb3jsSigner = Keypair;
|
|
17
49
|
/**
|
|
18
50
|
* A signer capable of signing messages for a specific chain.
|
|
19
51
|
* Used to abstract away signing across multiple VM types.
|
|
20
52
|
*/
|
|
21
|
-
export interface UniversalSigner
|
|
53
|
+
export interface UniversalSigner {
|
|
54
|
+
account: UniversalAccount;
|
|
22
55
|
/**
|
|
23
56
|
* Signs an arbitrary data, provided as binary data.
|
|
24
57
|
*
|
|
@@ -50,3 +83,15 @@ export interface UniversalSigner extends UniversalAccount {
|
|
|
50
83
|
*/
|
|
51
84
|
signTransaction: (unsignedTx: Uint8Array) => Promise<Uint8Array>;
|
|
52
85
|
}
|
|
86
|
+
export interface UniversalSignerSkeleton {
|
|
87
|
+
signerId: string;
|
|
88
|
+
account: UniversalAccount;
|
|
89
|
+
signMessage: (data: Uint8Array) => Promise<Uint8Array>;
|
|
90
|
+
signTransaction: (unsignedTx: Uint8Array) => Promise<Uint8Array>;
|
|
91
|
+
signTypedData?: ({ domain, types, primaryType, message, }: {
|
|
92
|
+
domain: TypedDataDomain;
|
|
93
|
+
types: TypedData;
|
|
94
|
+
primaryType: string;
|
|
95
|
+
message: Record<string, any>;
|
|
96
|
+
}) => Promise<Uint8Array>;
|
|
97
|
+
}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toChainAgnostic, toUniversal as toUniversalAccount } from './universal/account';
|
|
2
|
-
import { toUniversal } from './universal/signer';
|
|
2
|
+
import { toUniversalFromKeyPair, construct, toUniversal } from './universal/signer';
|
|
3
3
|
/**
|
|
4
4
|
* @dev - THESE UTILS ARE EXPORTED TO SDK CONSUMER
|
|
5
5
|
* @dev - Make sure each exported fn has good comments to help out sdk consumer
|
|
@@ -44,6 +44,14 @@ export declare class Utils {
|
|
|
44
44
|
/**
|
|
45
45
|
* Converts various signer types (viem, ethers v6, Solana) into a UniversalSigner.
|
|
46
46
|
*/
|
|
47
|
+
toUniversalFromKeyPair: typeof toUniversalFromKeyPair;
|
|
48
|
+
/**
|
|
49
|
+
* Constructs a UniversalSignerSkeleton from raw signing functions.
|
|
50
|
+
*/
|
|
51
|
+
construct: typeof construct;
|
|
52
|
+
/**
|
|
53
|
+
* Converts a UniversalSignerSkeleton to a UniversalSigner.
|
|
54
|
+
*/
|
|
47
55
|
toUniversal: typeof toUniversal;
|
|
48
56
|
};
|
|
49
57
|
}
|
package/src/lib/utils.js
CHANGED
|
@@ -49,6 +49,14 @@ Utils.signer = {
|
|
|
49
49
|
/**
|
|
50
50
|
* Converts various signer types (viem, ethers v6, Solana) into a UniversalSigner.
|
|
51
51
|
*/
|
|
52
|
+
toUniversalFromKeyPair: signer_1.toUniversalFromKeyPair,
|
|
53
|
+
/**
|
|
54
|
+
* Constructs a UniversalSignerSkeleton from raw signing functions.
|
|
55
|
+
*/
|
|
56
|
+
construct: signer_1.construct,
|
|
57
|
+
/**
|
|
58
|
+
* Converts a UniversalSignerSkeleton to a UniversalSigner.
|
|
59
|
+
*/
|
|
52
60
|
toUniversal: signer_1.toUniversal,
|
|
53
61
|
};
|
|
54
62
|
//# sourceMappingURL=utils.js.map
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/utils.ts"],"names":[],"mappings":";;;AAAA,iDAG6B;AAC7B,+
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/utils.ts"],"names":[],"mappings":";;;AAAA,iDAG6B;AAC7B,+CAI4B;AAE5B;;;GAGG;AAEH;;;GAGG;AACH,MAAa,KAAK;;AAAlB,sBAgDC;AA/CQ,aAAO,GAAG;IACf;;;;;;;;;;;;;;;OAeG;IACH,eAAe,EAAf,yBAAe;IAEf;;;;;;;;;;OAUG;IACH,WAAW,EAAE,qBAAkB;CAChC,CAAC;AAEK,YAAM,GAAG;IACd;;OAEG;IACH,sBAAsB,EAAtB,+BAAsB;IACtB;;OAEG;IACH,SAAS,EAAT,kBAAS;IACT;;OAEG;IACH,WAAW,EAAX,oBAAW;CACZ,CAAC"}
|
|
@@ -12,7 +12,7 @@ import { PublicClient, Hex } from 'viem';
|
|
|
12
12
|
*/
|
|
13
13
|
export declare class EvmClient {
|
|
14
14
|
publicClient: PublicClient;
|
|
15
|
-
constructor({
|
|
15
|
+
constructor({ rpcUrls }: ClientOptions);
|
|
16
16
|
/**
|
|
17
17
|
* Returns the balance (in wei) of an EVM address.
|
|
18
18
|
*
|
|
@@ -138,7 +138,7 @@ export declare class EvmClient {
|
|
|
138
138
|
* });
|
|
139
139
|
*
|
|
140
140
|
* const gasEstimate = await evmClient.estimateGas({
|
|
141
|
-
* from: universalSigner.address as `0x${string}`,
|
|
141
|
+
* from: universalSigner.account.address as `0x${string}`,
|
|
142
142
|
* to: '0xContractAddress',
|
|
143
143
|
* data,
|
|
144
144
|
* value: BigInt(0),
|
|
@@ -13,9 +13,10 @@ const viem_1 = require("viem");
|
|
|
13
13
|
* });
|
|
14
14
|
*/
|
|
15
15
|
class EvmClient {
|
|
16
|
-
constructor({
|
|
16
|
+
constructor({ rpcUrls }) {
|
|
17
|
+
const transports = rpcUrls.map((rpcUrl) => (0, viem_1.http)(rpcUrl));
|
|
17
18
|
this.publicClient = (0, viem_1.createPublicClient)({
|
|
18
|
-
transport: (0, viem_1.
|
|
19
|
+
transport: (0, viem_1.fallback)(transports),
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
@@ -144,10 +145,10 @@ class EvmClient {
|
|
|
144
145
|
return tslib_1.__awaiter(this, arguments, void 0, function* ({ to, data, value = (0, viem_1.parseEther)('0'), signer, }) {
|
|
145
146
|
const [nonce, gas, feePerGas] = yield Promise.all([
|
|
146
147
|
this.publicClient.getTransactionCount({
|
|
147
|
-
address: signer.address,
|
|
148
|
+
address: signer.account.address,
|
|
148
149
|
}),
|
|
149
150
|
this.publicClient.estimateGas({
|
|
150
|
-
account: signer.address,
|
|
151
|
+
account: signer.account.address,
|
|
151
152
|
to,
|
|
152
153
|
data,
|
|
153
154
|
value,
|
|
@@ -199,7 +200,7 @@ class EvmClient {
|
|
|
199
200
|
* });
|
|
200
201
|
*
|
|
201
202
|
* const gasEstimate = await evmClient.estimateGas({
|
|
202
|
-
* from: universalSigner.address as `0x${string}`,
|
|
203
|
+
* from: universalSigner.account.address as `0x${string}`,
|
|
203
204
|
* to: '0xContractAddress',
|
|
204
205
|
* data,
|
|
205
206
|
* value: BigInt(0),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-client.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/vm-client/evm-client.ts"],"names":[],"mappings":";;;;AAMA,+
|
|
1
|
+
{"version":3,"file":"evm-client.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/vm-client/evm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { UniversalSigner } from '../universal/universal.types';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class SvmClient {
|
|
8
8
|
private readonly connection;
|
|
9
|
-
constructor({
|
|
9
|
+
constructor({ rpcUrls }: ClientOptions);
|
|
10
10
|
/**
|
|
11
11
|
* Returns the balance (in lamports) of a Solana address.
|
|
12
12
|
*/
|
|
@@ -8,8 +8,9 @@ const anchor_1 = require("@coral-xyz/anchor");
|
|
|
8
8
|
* Solana-compatible VM client for reading and writing SVM-based chains.
|
|
9
9
|
*/
|
|
10
10
|
class SvmClient {
|
|
11
|
-
constructor({
|
|
12
|
-
|
|
11
|
+
constructor({ rpcUrls }) {
|
|
12
|
+
// TODO: Add fallback like on viem.
|
|
13
|
+
this.connection = new web3_js_1.Connection(rpcUrls[0], 'confirmed');
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
16
|
* Returns the balance (in lamports) of a Solana address.
|
|
@@ -74,7 +75,7 @@ class SvmClient {
|
|
|
74
75
|
*/
|
|
75
76
|
sendTransaction(_a) {
|
|
76
77
|
return tslib_1.__awaiter(this, arguments, void 0, function* ({ instruction, signer, extraSigners = [], }) {
|
|
77
|
-
const feePayerPubkey = new web3_js_1.PublicKey(signer.address);
|
|
78
|
+
const feePayerPubkey = new web3_js_1.PublicKey(signer.account.address);
|
|
78
79
|
const { blockhash, lastValidBlockHeight } = yield this.connection.getLatestBlockhash('finalized');
|
|
79
80
|
const tx = new web3_js_1.Transaction({
|
|
80
81
|
feePayer: feePayerPubkey,
|
|
@@ -119,7 +120,7 @@ class SvmClient {
|
|
|
119
120
|
*/
|
|
120
121
|
estimateGas(_a) {
|
|
121
122
|
return tslib_1.__awaiter(this, arguments, void 0, function* ({ instructions, signer, }) {
|
|
122
|
-
const feePayer = new web3_js_1.PublicKey(signer.address);
|
|
123
|
+
const feePayer = new web3_js_1.PublicKey(signer.account.address);
|
|
123
124
|
const { blockhash, lastValidBlockHeight } = yield this.connection.getLatestBlockhash();
|
|
124
125
|
const tx = new web3_js_1.Transaction({ blockhash, lastValidBlockHeight, feePayer });
|
|
125
126
|
if (instructions.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svm-client.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/vm-client/svm-client.ts"],"names":[],"mappings":";;;;AAAA,6CAMyB;AAMzB,8CAAwE;AAGxE;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"svm-client.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/vm-client/svm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { Keypair, PublicKey } from '@solana/web3.js';
|
|
|
5
5
|
* Common options used by all VM clients (EVM, SVM, etc.)
|
|
6
6
|
*/
|
|
7
7
|
export interface ClientOptions {
|
|
8
|
-
|
|
8
|
+
rpcUrls: string[];
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Parameters for reading from a smart contract (read-only call).
|