@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.
Files changed (50) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/lib/constants/chain.d.ts +2 -2
  4. package/src/lib/constants/chain.js +10 -10
  5. package/src/lib/constants/chain.js.map +1 -1
  6. package/src/lib/constants/enums.d.ts +12 -10
  7. package/src/lib/constants/enums.js +18 -16
  8. package/src/lib/constants/enums.js.map +1 -1
  9. package/src/lib/constants/index.d.ts +5 -3
  10. package/src/lib/constants/index.js +2 -2
  11. package/src/lib/constants/index.js.map +1 -1
  12. package/src/lib/constants/viem-push-testnet.d.ts +1 -1
  13. package/src/lib/constants/viem-push-testnet.js +5 -4
  14. package/src/lib/constants/viem-push-testnet.js.map +1 -1
  15. package/src/lib/generated/v1/tx.d.ts +1 -1
  16. package/src/lib/generated/v1/tx.js +141 -111
  17. package/src/lib/generated/v1/tx.js.map +1 -1
  18. package/src/lib/index.d.ts +1 -2
  19. package/src/lib/index.js +1 -3
  20. package/src/lib/index.js.map +1 -1
  21. package/src/lib/orchestrator/orchestrator.d.ts +6 -5
  22. package/src/lib/orchestrator/orchestrator.js +27 -21
  23. package/src/lib/orchestrator/orchestrator.js.map +1 -1
  24. package/src/lib/price-fetch/price-fetch.d.ts +2 -2
  25. package/src/lib/price-fetch/price-fetch.js +4 -5
  26. package/src/lib/price-fetch/price-fetch.js.map +1 -1
  27. package/src/lib/push-client/push-client.d.ts +1 -1
  28. package/src/lib/push-client/push-client.js +3 -3
  29. package/src/lib/push-client/push-client.js.map +1 -1
  30. package/src/lib/push-client/push-client.types.d.ts +2 -2
  31. package/src/lib/pushChain.d.ts +54 -9
  32. package/src/lib/pushChain.js +16 -4
  33. package/src/lib/pushChain.js.map +1 -1
  34. package/src/lib/universal/signer/signer.d.ts +16 -4
  35. package/src/lib/universal/signer/signer.js +90 -9
  36. package/src/lib/universal/signer/signer.js.map +1 -1
  37. package/src/lib/universal/signer/signer.types.d.ts +2 -0
  38. package/src/lib/universal/signer/signer.types.js +3 -0
  39. package/src/lib/universal/signer/signer.types.js.map +1 -0
  40. package/src/lib/universal/universal.types.d.ts +47 -2
  41. package/src/lib/utils.d.ts +9 -1
  42. package/src/lib/utils.js +8 -0
  43. package/src/lib/utils.js.map +1 -1
  44. package/src/lib/vm-client/evm-client.d.ts +2 -2
  45. package/src/lib/vm-client/evm-client.js +6 -5
  46. package/src/lib/vm-client/evm-client.js.map +1 -1
  47. package/src/lib/vm-client/svm-client.d.ts +1 -1
  48. package/src/lib/vm-client/svm-client.js +5 -4
  49. package/src/lib/vm-client/svm-client.js.map +1 -1
  50. 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({ chain, address, signMessage, signTransaction, signTypedData, }) {
30
- return Object.assign(Object.assign({}, (0, account_1.createUniversalAccount)({ chain, address })), { signMessage,
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 toUniversal(clientOrAccount_1, _a) {
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.SOLANA_WEB3: {
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
- address,
133
- chain,
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":"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"}
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,2 @@
1
+ import { TypedData, TypedDataDomain } from 'viem';
2
+ export type { TypedDataDomain, TypedData };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=signer.types.js.map
@@ -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 'viem';
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 extends UniversalAccount {
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
+ }
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/utils.ts"],"names":[],"mappings":";;;AAAA,iDAG6B;AAC7B,+CAAiD;AAEjD;;;GAGG;AAEH;;;GAGG;AACH,MAAa,KAAK;;AAAlB,sBAwCC;AAvCQ,aAAO,GAAG;IACf;;;;;;;;;;;;;;;OAeG;IACH,eAAe,EAAf,yBAAe;IAEf;;;;;;;;;;OAUG;IACH,WAAW,EAAE,qBAAkB;CAChC,CAAC;AAEK,YAAM,GAAG;IACd;;OAEG;IACH,WAAW,EAAX,oBAAW;CACZ,CAAC"}
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({ rpcUrl }: ClientOptions);
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({ rpcUrl }) {
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.http)(rpcUrl),
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":"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"}
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({ rpcUrl }: ClientOptions);
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({ rpcUrl }) {
12
- this.connection = new web3_js_1.Connection(rpcUrl, 'confirmed');
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":"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"}
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
- rpcUrl: string;
8
+ rpcUrls: string[];
9
9
  }
10
10
  /**
11
11
  * Parameters for reading from a smart contract (read-only call).