@pushchain/core 0.1.0 → 0.1.1
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/package.json +1 -1
- package/src/lib/constants/enums.d.ts +4 -0
- package/src/lib/constants/enums.js +6 -1
- package/src/lib/constants/enums.js.map +1 -1
- package/src/lib/constants/index.d.ts +39 -1
- package/src/lib/constants/index.js +3 -0
- package/src/lib/constants/index.js.map +1 -1
- package/src/lib/constants/viem-push-testnet.d.ts +38 -0
- package/src/lib/constants/viem-push-testnet.js +28 -0
- package/src/lib/constants/viem-push-testnet.js.map +1 -0
- package/src/lib/pushChain.d.ts +13 -8
- package/src/lib/pushChain.js +7 -5
- package/src/lib/pushChain.js.map +1 -1
- package/src/lib/universal/signer/signer.d.ts +5 -10
- package/src/lib/universal/signer/signer.js +83 -80
- package/src/lib/universal/signer/signer.js.map +1 -1
- package/src/lib/utils.d.ts +3 -7
- package/src/lib/utils.js +2 -6
- package/src/lib/utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VM = exports.CHAIN = exports.NETWORK = void 0;
|
|
3
|
+
exports.LIBRARY = exports.VM = exports.CHAIN = exports.NETWORK = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Specifies the Push Chain environment the SDK will connect to.
|
|
6
6
|
* Determines the RPC endpoints, contract addresses, and network context
|
|
@@ -37,4 +37,9 @@ var VM;
|
|
|
37
37
|
VM["EVM"] = "EVM";
|
|
38
38
|
VM["SVM"] = "SVM";
|
|
39
39
|
})(VM || (exports.VM = VM = {}));
|
|
40
|
+
var LIBRARY;
|
|
41
|
+
(function (LIBRARY) {
|
|
42
|
+
LIBRARY["ETHEREUM_VIEM"] = "viem";
|
|
43
|
+
LIBRARY["SOLANA_WEB3"] = "solana-web3";
|
|
44
|
+
})(LIBRARY || (exports.LIBRARY = LIBRARY = {}));
|
|
40
45
|
//# sourceMappingURL=enums.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/constants/enums.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB;AAED;;GAEG;AACH,IAAY,KAcX;AAdD,WAAY,KAAK;IACf,OAAO;IACP,sCAA6B,CAAA;IAC7B,sCAA6B,CAAA;IAC7B,wCAA+B,CAAA;IAE/B,WAAW;IACX,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IAErC,SAAS;IACT,0CAAiC,CAAA;IACjC,0CAAiC,CAAA;IACjC,wCAA+B,CAAA;AACjC,CAAC,EAdW,KAAK,qBAAL,KAAK,QAchB;AAED;;GAEG;AACH,IAAY,EAGX;AAHD,WAAY,EAAE;IACZ,iBAAW,CAAA;IACX,iBAAW,CAAA;AACb,CAAC,EAHW,EAAE,kBAAF,EAAE,QAGb"}
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/constants/enums.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB;AAED;;GAEG;AACH,IAAY,KAcX;AAdD,WAAY,KAAK;IACf,OAAO;IACP,sCAA6B,CAAA;IAC7B,sCAA6B,CAAA;IAC7B,wCAA+B,CAAA;IAE/B,WAAW;IACX,8CAAqC,CAAA;IACrC,8CAAqC,CAAA;IAErC,SAAS;IACT,0CAAiC,CAAA;IACjC,0CAAiC,CAAA;IACjC,wCAA+B,CAAA;AACjC,CAAC,EAdW,KAAK,qBAAL,KAAK,QAchB;AAED;;GAEG;AACH,IAAY,EAGX;AAHD,WAAY,EAAE;IACZ,iBAAW,CAAA;IACX,iBAAW,CAAA;AACb,CAAC,EAHW,EAAE,kBAAF,EAAE,QAGb;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,iCAAsB,CAAA;IACtB,sCAA2B,CAAA;AAC7B,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB"}
|
|
@@ -1,5 +1,43 @@
|
|
|
1
|
-
import { CHAIN, NETWORK } from './enums';
|
|
1
|
+
import { CHAIN, LIBRARY, NETWORK } from './enums';
|
|
2
2
|
export declare const CONSTANTS: {
|
|
3
3
|
NETWORK: typeof NETWORK;
|
|
4
4
|
CHAIN: typeof CHAIN;
|
|
5
|
+
VIEM_PUSH_TESTNET: {
|
|
6
|
+
blockExplorers: {
|
|
7
|
+
readonly default: {
|
|
8
|
+
readonly name: "Push Testnet Explorer";
|
|
9
|
+
readonly url: "https://explorer.dev.push.org/";
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
contracts?: import("viem").Prettify<{
|
|
13
|
+
[key: string]: import("viem").ChainContract | {
|
|
14
|
+
[sourceId: number]: import("viem").ChainContract | undefined;
|
|
15
|
+
} | undefined;
|
|
16
|
+
} & {
|
|
17
|
+
ensRegistry?: import("viem").ChainContract | undefined;
|
|
18
|
+
ensUniversalResolver?: import("viem").ChainContract | undefined;
|
|
19
|
+
multicall3?: import("viem").ChainContract | undefined;
|
|
20
|
+
universalSignatureVerifier?: import("viem").ChainContract | undefined;
|
|
21
|
+
}> | undefined;
|
|
22
|
+
ensTlds?: readonly string[] | undefined;
|
|
23
|
+
id: number;
|
|
24
|
+
name: "Push Testnet";
|
|
25
|
+
nativeCurrency: {
|
|
26
|
+
readonly decimals: 18;
|
|
27
|
+
readonly name: "nPUSH";
|
|
28
|
+
readonly symbol: "nPUSH";
|
|
29
|
+
};
|
|
30
|
+
rpcUrls: {
|
|
31
|
+
readonly default: {
|
|
32
|
+
readonly http: readonly [string];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
sourceId?: number | undefined;
|
|
36
|
+
testnet?: boolean | undefined;
|
|
37
|
+
custom?: Record<string, unknown> | undefined;
|
|
38
|
+
fees?: import("viem").ChainFees<undefined> | undefined;
|
|
39
|
+
formatters?: undefined;
|
|
40
|
+
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
|
41
|
+
};
|
|
42
|
+
LIBRARY: typeof LIBRARY;
|
|
5
43
|
};
|
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CONSTANTS = void 0;
|
|
4
4
|
const enums_1 = require("./enums");
|
|
5
|
+
const viem_push_testnet_1 = require("./viem-push-testnet");
|
|
5
6
|
// NOTE - Only include enums & constants which need to be exported to end user.
|
|
6
7
|
exports.CONSTANTS = {
|
|
7
8
|
NETWORK: enums_1.NETWORK,
|
|
8
9
|
CHAIN: enums_1.CHAIN,
|
|
10
|
+
VIEM_PUSH_TESTNET: viem_push_testnet_1.VIEM_PUSH_TESTNET,
|
|
11
|
+
LIBRARY: enums_1.LIBRARY,
|
|
9
12
|
};
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/constants/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/constants/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAClD,2DAAwD;AAExD,+EAA+E;AAClE,QAAA,SAAS,GAAG;IACvB,OAAO,EAAP,eAAO;IACP,KAAK,EAAL,aAAK;IACL,iBAAiB,EAAjB,qCAAiB;IACjB,OAAO,EAAP,eAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as viem from 'viem';
|
|
2
|
+
export declare const VIEM_PUSH_TESTNET: {
|
|
3
|
+
blockExplorers: {
|
|
4
|
+
readonly default: {
|
|
5
|
+
readonly name: "Push Testnet Explorer";
|
|
6
|
+
readonly url: "https://explorer.dev.push.org/";
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
contracts?: viem.Prettify<{
|
|
10
|
+
[key: string]: viem.ChainContract | {
|
|
11
|
+
[sourceId: number]: viem.ChainContract | undefined;
|
|
12
|
+
} | undefined;
|
|
13
|
+
} & {
|
|
14
|
+
ensRegistry?: viem.ChainContract | undefined;
|
|
15
|
+
ensUniversalResolver?: viem.ChainContract | undefined;
|
|
16
|
+
multicall3?: viem.ChainContract | undefined;
|
|
17
|
+
universalSignatureVerifier?: viem.ChainContract | undefined;
|
|
18
|
+
}> | undefined;
|
|
19
|
+
ensTlds?: readonly string[] | undefined;
|
|
20
|
+
id: number;
|
|
21
|
+
name: "Push Testnet";
|
|
22
|
+
nativeCurrency: {
|
|
23
|
+
readonly decimals: 18;
|
|
24
|
+
readonly name: "nPUSH";
|
|
25
|
+
readonly symbol: "nPUSH";
|
|
26
|
+
};
|
|
27
|
+
rpcUrls: {
|
|
28
|
+
readonly default: {
|
|
29
|
+
readonly http: readonly [string];
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
sourceId?: number | undefined;
|
|
33
|
+
testnet?: boolean | undefined;
|
|
34
|
+
custom?: Record<string, unknown> | undefined;
|
|
35
|
+
fees?: viem.ChainFees<undefined> | undefined;
|
|
36
|
+
formatters?: undefined;
|
|
37
|
+
serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
|
|
38
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VIEM_PUSH_TESTNET = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chain_1 = require("./chain");
|
|
6
|
+
const viem = tslib_1.__importStar(require("viem"));
|
|
7
|
+
// Define Push Chain networks as viem chains
|
|
8
|
+
exports.VIEM_PUSH_TESTNET = viem.defineChain({
|
|
9
|
+
id: parseInt(chain_1.CHAIN_INFO.PUSH_TESTNET.chainId),
|
|
10
|
+
name: 'Push Testnet',
|
|
11
|
+
nativeCurrency: {
|
|
12
|
+
decimals: 18,
|
|
13
|
+
name: 'nPUSH',
|
|
14
|
+
symbol: 'nPUSH',
|
|
15
|
+
},
|
|
16
|
+
rpcUrls: {
|
|
17
|
+
default: {
|
|
18
|
+
http: [chain_1.CHAIN_INFO.PUSH_TESTNET.defaultRPC],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
blockExplorers: {
|
|
22
|
+
default: {
|
|
23
|
+
name: 'Push Testnet Explorer',
|
|
24
|
+
url: 'https://explorer.dev.push.org/',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=viem-push-testnet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viem-push-testnet.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/constants/viem-push-testnet.ts"],"names":[],"mappings":";;;;AAAA,mCAAqC;AACrC,mDAA6B;AAE7B,4CAA4C;AAC/B,QAAA,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;IAChD,EAAE,EAAE,QAAQ,CAAC,kBAAU,CAAC,YAAY,CAAC,OAAO,CAAC;IAC7C,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;KAChB;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,kBAAU,CAAC,YAAY,CAAC,UAAU,CAAC;SAC3C;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,uBAAuB;YAC7B,GAAG,EAAE,gCAAgC;SACtC;KACF;CACF,CAAC,CAAC"}
|
package/src/lib/pushChain.d.ts
CHANGED
|
@@ -22,13 +22,18 @@ export declare class PushChain {
|
|
|
22
22
|
static viem: typeof viem;
|
|
23
23
|
private orchestartor;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Universal namespace containing core transaction and address computation methods
|
|
26
26
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
Universal: {
|
|
28
|
+
/**
|
|
29
|
+
* Executes a transaction on Push Chain
|
|
30
|
+
*/
|
|
31
|
+
sendTransaction: Orchestrator['execute'];
|
|
32
|
+
/**
|
|
33
|
+
* Computes the NMSC address for the universal signer on Push
|
|
34
|
+
*/
|
|
35
|
+
getNMSCAddress: Orchestrator['getNMSCAddress'];
|
|
36
|
+
};
|
|
32
37
|
private constructor();
|
|
33
38
|
/**
|
|
34
39
|
* @method initialize
|
|
@@ -37,14 +42,14 @@ export declare class PushChain {
|
|
|
37
42
|
* @param universalSigner
|
|
38
43
|
* @param options - Optional settings to configure the SDK instance.
|
|
39
44
|
* - network: PushChain network to target (e.g., TESTNET, MAINNET).
|
|
40
|
-
* -
|
|
45
|
+
* - rpcUrls: Custom RPC URLs mapped by chain IDs.
|
|
41
46
|
* - printTraces: Whether to print internal trace logs for debugging.
|
|
42
47
|
*
|
|
43
48
|
* @returns An initialized instance of PushChain.
|
|
44
49
|
*/
|
|
45
50
|
static initialize: (universalSigner: UniversalSigner, options?: {
|
|
46
51
|
network?: NETWORK;
|
|
47
|
-
|
|
52
|
+
rpcUrls?: Partial<Record<CHAIN, string>>;
|
|
48
53
|
printTraces?: boolean;
|
|
49
54
|
}) => Promise<PushChain>;
|
|
50
55
|
}
|
package/src/lib/pushChain.js
CHANGED
|
@@ -17,9 +17,11 @@ const viem = tslib_1.__importStar(require("viem"));
|
|
|
17
17
|
class PushChain {
|
|
18
18
|
constructor(orchestartor) {
|
|
19
19
|
this.orchestartor = orchestartor;
|
|
20
|
-
//
|
|
21
|
-
this.
|
|
22
|
-
|
|
20
|
+
// Initialize Universal namespace with bound methods
|
|
21
|
+
this.Universal = {
|
|
22
|
+
sendTransaction: this.orchestartor.execute.bind(this.orchestartor),
|
|
23
|
+
getNMSCAddress: this.orchestartor.getNMSCAddress.bind(this.orchestartor),
|
|
24
|
+
};
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
exports.PushChain = PushChain;
|
|
@@ -41,7 +43,7 @@ PushChain.viem = viem;
|
|
|
41
43
|
* @param universalSigner
|
|
42
44
|
* @param options - Optional settings to configure the SDK instance.
|
|
43
45
|
* - network: PushChain network to target (e.g., TESTNET, MAINNET).
|
|
44
|
-
* -
|
|
46
|
+
* - rpcUrls: Custom RPC URLs mapped by chain IDs.
|
|
45
47
|
* - printTraces: Whether to print internal trace logs for debugging.
|
|
46
48
|
*
|
|
47
49
|
* @returns An initialized instance of PushChain.
|
|
@@ -51,7 +53,7 @@ PushChain.initialize = (universalSigner, options) => tslib_1.__awaiter(void 0, v
|
|
|
51
53
|
/**
|
|
52
54
|
* Ensures the signer conforms to the UniversalSigner interface.
|
|
53
55
|
*/
|
|
54
|
-
(0, signer_1.createUniversalSigner)(universalSigner), (options === null || options === void 0 ? void 0 : options.network) || enums_1.NETWORK.TESTNET, (options === null || options === void 0 ? void 0 : options.
|
|
56
|
+
(0, signer_1.createUniversalSigner)(universalSigner), (options === null || options === void 0 ? void 0 : options.network) || enums_1.NETWORK.TESTNET, (options === null || options === void 0 ? void 0 : options.rpcUrls) || {}, (options === null || options === void 0 ? void 0 : options.printTraces) || false);
|
|
55
57
|
return new _a(orchestartor);
|
|
56
58
|
});
|
|
57
59
|
//# sourceMappingURL=pushChain.js.map
|
package/src/lib/pushChain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pushChain.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/pushChain.ts"],"names":[],"mappings":";;;;;AAAA,6CAAmD;AACnD,8DAA2D;AAC3D,+CAA2D;AAE3D,mCAAgC;AAChC,mDAA6B;AAE7B;;;;;GAKG;AACH,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"pushChain.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/pushChain.ts"],"names":[],"mappings":";;;;;AAAA,6CAAmD;AACnD,8DAA2D;AAC3D,+CAA2D;AAE3D,mCAAgC;AAChC,mDAA6B;AAE7B;;;;;GAKG;AACH,MAAa,SAAS;IA6BpB,YAAoB,YAA0B;QAC5C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,oDAAoD;QACpD,IAAI,CAAC,SAAS,GAAG;YACf,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAClE,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;SACzE,CAAC;IACJ,CAAC;;AArCH,8BAsEC;;AArEC;;;GAGG;AACW,eAAK,GAAG,aAAK,AAAR,CAAS;AAE5B;;;GAGG;AACI,cAAI,GAAG,IAAI,AAAP,CAAQ;AA4BnB;;;;;;;;;;;GAWG;AACI,oBAAU,GAAG,CAClB,eAAgC,EAChC,OAIC,EACD,EAAE;IACF,MAAM,YAAY,GAAG,IAAI,2BAAY;IACnC;;OAEG;IACH,IAAA,8BAAqB,EAAC,eAAe,CAAC,EACtC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,eAAO,CAAC,OAAO,EACnC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,EAAE,EACtB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,KAAK,CAC9B,CAAC;IACF,OAAO,IAAI,EAAS,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC,CAAA,AAlBgB,CAkBf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WalletClient, Account } from 'viem';
|
|
2
2
|
import { UniversalSigner } from '../universal.types';
|
|
3
|
-
import { CHAIN } from '../../constants/enums';
|
|
3
|
+
import { CHAIN, LIBRARY } from '../../constants/enums';
|
|
4
4
|
import { Keypair } from '@solana/web3.js';
|
|
5
5
|
/**
|
|
6
6
|
* Creates a `UniversalSigner` object for signing messages and transactions
|
|
@@ -29,12 +29,7 @@ export declare function createUniversalSigner({ chain, address, signMessage, sig
|
|
|
29
29
|
* @param {CHAIN} chain - The chain the signer will operate on
|
|
30
30
|
* @returns {Promise<UniversalSigner>} A signer object configured for the specified chain
|
|
31
31
|
*/
|
|
32
|
-
export declare function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* @param {Keypair} keypair - The Solana Keypair to create the signer from
|
|
37
|
-
* @param {CHAIN} chain - The chain the signer will operate on (should be a Solana chain)
|
|
38
|
-
* @returns {UniversalSigner} A signer object configured for Solana operations
|
|
39
|
-
*/
|
|
40
|
-
export declare function toUniversalFromSolanaKeypair(keypair: Keypair, chain: CHAIN): UniversalSigner;
|
|
32
|
+
export declare function toUniversal(clientOrAccount: WalletClient | Account | Keypair, { chain, library }: {
|
|
33
|
+
chain: CHAIN;
|
|
34
|
+
library: LIBRARY;
|
|
35
|
+
}): Promise<UniversalSigner>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createUniversalSigner = createUniversalSigner;
|
|
4
|
-
exports.
|
|
5
|
-
exports.toUniversalFromSolanaKeypair = toUniversalFromSolanaKeypair;
|
|
4
|
+
exports.toUniversal = toUniversal;
|
|
6
5
|
const tslib_1 = require("tslib");
|
|
7
6
|
const viem_1 = require("viem");
|
|
8
7
|
const account_1 = require("../account/account");
|
|
@@ -39,66 +38,95 @@ function createUniversalSigner({ chain, address, signMessage, signTransaction, s
|
|
|
39
38
|
* @param {CHAIN} chain - The chain the signer will operate on
|
|
40
39
|
* @returns {Promise<UniversalSigner>} A signer object configured for the specified chain
|
|
41
40
|
*/
|
|
42
|
-
function
|
|
43
|
-
return tslib_1.__awaiter(this,
|
|
41
|
+
function toUniversal(clientOrAccount_1, _a) {
|
|
42
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* (clientOrAccount, { chain, library }) {
|
|
44
43
|
let address;
|
|
45
44
|
let signMessage;
|
|
46
45
|
let signTransaction;
|
|
47
46
|
let signTypedData;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
domain,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
47
|
+
switch (library) {
|
|
48
|
+
case enums_1.LIBRARY.ETHEREUM_VIEM: {
|
|
49
|
+
if ('getAddresses' in clientOrAccount) {
|
|
50
|
+
// It's a WalletClient
|
|
51
|
+
address = (yield clientOrAccount.getAddresses())[0];
|
|
52
|
+
signMessage = (data) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const hexSig = yield clientOrAccount.signMessage({
|
|
54
|
+
account: clientOrAccount.account || address,
|
|
55
|
+
message: { raw: data },
|
|
56
|
+
});
|
|
57
|
+
return (0, viem_1.hexToBytes)(hexSig);
|
|
58
|
+
});
|
|
59
|
+
signTransaction = (unsignedTx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const tx = (0, viem_1.parseTransaction)((0, viem_1.bytesToHex)(unsignedTx));
|
|
61
|
+
const txHash = yield clientOrAccount.signTransaction(tx);
|
|
62
|
+
return (0, viem_1.hexToBytes)(txHash);
|
|
63
|
+
});
|
|
64
|
+
signTypedData = (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ domain, types, primaryType, message, }) {
|
|
65
|
+
const hexSig = yield clientOrAccount.signTypedData({
|
|
66
|
+
domain,
|
|
67
|
+
types,
|
|
68
|
+
primaryType,
|
|
69
|
+
message,
|
|
70
|
+
account: clientOrAccount.account || address,
|
|
71
|
+
});
|
|
72
|
+
return (0, viem_1.hexToBytes)(hexSig);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// It's an Account
|
|
77
|
+
const account = clientOrAccount;
|
|
78
|
+
if (!account.address ||
|
|
79
|
+
!account.signMessage ||
|
|
80
|
+
!account.signTransaction) {
|
|
81
|
+
throw new Error('Invalid Account instance: missing required properties');
|
|
82
|
+
}
|
|
83
|
+
address = account.address;
|
|
84
|
+
signMessage = (data) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
const hexSig = yield account.signMessage({
|
|
86
|
+
message: { raw: data },
|
|
87
|
+
});
|
|
88
|
+
return (0, viem_1.hexToBytes)(hexSig);
|
|
89
|
+
});
|
|
90
|
+
signTransaction = (unsignedTx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
const tx = (0, viem_1.parseTransaction)((0, viem_1.bytesToHex)(unsignedTx));
|
|
92
|
+
const hexSig = yield account.signTransaction(tx);
|
|
93
|
+
return (0, viem_1.hexToBytes)(hexSig);
|
|
94
|
+
});
|
|
95
|
+
signTypedData = (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ domain, types, primaryType, message, }) {
|
|
96
|
+
const hexSig = yield account.signTypedData({
|
|
97
|
+
domain,
|
|
98
|
+
types,
|
|
99
|
+
primaryType,
|
|
100
|
+
message,
|
|
101
|
+
});
|
|
102
|
+
return (0, viem_1.hexToBytes)(hexSig);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
80
106
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
107
|
+
case enums_1.LIBRARY.SOLANA_WEB3: {
|
|
108
|
+
// It's a Solana Keypair
|
|
109
|
+
const keypair = clientOrAccount;
|
|
110
|
+
if (chain !== enums_1.CHAIN.SOLANA_MAINNET &&
|
|
111
|
+
chain !== enums_1.CHAIN.SOLANA_TESTNET &&
|
|
112
|
+
chain !== enums_1.CHAIN.SOLANA_DEVNET) {
|
|
113
|
+
throw new Error('Invalid chain for Solana Keypair');
|
|
114
|
+
}
|
|
115
|
+
address = keypair.publicKey.toBase58();
|
|
116
|
+
signMessage = (data) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
return nacl.sign.detached(data, keypair.secretKey);
|
|
85
118
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
signTransaction = (unsignedTx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
const tx = (0, viem_1.parseTransaction)((0, viem_1.bytesToHex)(unsignedTx));
|
|
90
|
-
const hexSig = yield clientOrAccount.signTransaction(tx);
|
|
91
|
-
return (0, viem_1.hexToBytes)(hexSig);
|
|
92
|
-
});
|
|
93
|
-
signTypedData = (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ domain, types, primaryType, message, }) {
|
|
94
|
-
const hexSig = yield clientOrAccount.signTypedData({
|
|
95
|
-
domain,
|
|
96
|
-
types,
|
|
97
|
-
primaryType,
|
|
98
|
-
message,
|
|
119
|
+
signTransaction = (unsignedTx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
return nacl.sign.detached(unsignedTx, keypair.secretKey);
|
|
99
121
|
});
|
|
100
|
-
|
|
101
|
-
|
|
122
|
+
signTypedData = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
throw new Error('Typed data signing is not supported for Solana');
|
|
124
|
+
});
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
default: {
|
|
128
|
+
throw new Error(`Unsupported library: ${library}`);
|
|
129
|
+
}
|
|
102
130
|
}
|
|
103
131
|
const universalSigner = {
|
|
104
132
|
address,
|
|
@@ -110,29 +138,4 @@ function toUniversalFromViem(clientOrAccount, chain) {
|
|
|
110
138
|
return createUniversalSigner(universalSigner);
|
|
111
139
|
});
|
|
112
140
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Creates a UniversalSigner from a Solana Keypair.
|
|
115
|
-
*
|
|
116
|
-
* @param {Keypair} keypair - The Solana Keypair to create the signer from
|
|
117
|
-
* @param {CHAIN} chain - The chain the signer will operate on (should be a Solana chain)
|
|
118
|
-
* @returns {UniversalSigner} A signer object configured for Solana operations
|
|
119
|
-
*/
|
|
120
|
-
function toUniversalFromSolanaKeypair(keypair, chain) {
|
|
121
|
-
if (chain !== enums_1.CHAIN.SOLANA_MAINNET &&
|
|
122
|
-
chain !== enums_1.CHAIN.SOLANA_TESTNET &&
|
|
123
|
-
chain !== enums_1.CHAIN.SOLANA_DEVNET) {
|
|
124
|
-
throw new Error('Invalid chain for Solana Keypair');
|
|
125
|
-
}
|
|
126
|
-
const universalSigner = {
|
|
127
|
-
address: keypair.publicKey.toBase58(),
|
|
128
|
-
chain,
|
|
129
|
-
signMessage: (data) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
return nacl.sign.detached(data, keypair.secretKey);
|
|
131
|
-
}),
|
|
132
|
-
signTransaction: (unsignedTx) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
133
|
-
return nacl.sign.detached(unsignedTx, keypair.secretKey);
|
|
134
|
-
}),
|
|
135
|
-
};
|
|
136
|
-
return createUniversalSigner(universalSigner);
|
|
137
|
-
}
|
|
138
141
|
//# sourceMappingURL=signer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/universal/signer/signer.ts"],"names":[],"mappings":";;AAkCA,sDAaC;AASD,
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/universal/signer/signer.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toChainAgnostic, toUniversal as toUniversalAccount } from './universal/account';
|
|
2
|
-
import {
|
|
2
|
+
import { 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
|
|
@@ -42,12 +42,8 @@ export declare class Utils {
|
|
|
42
42
|
};
|
|
43
43
|
static signer: {
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Converts various signer types (viem, ethers v6, Solana) into a UniversalSigner.
|
|
46
46
|
*/
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Wraps a Solana Keypair into a UniversalSigner.
|
|
50
|
-
*/
|
|
51
|
-
toUniversalFromSolanaKeypair: typeof toUniversalFromSolanaKeypair;
|
|
47
|
+
toUniversal: typeof toUniversal;
|
|
52
48
|
};
|
|
53
49
|
}
|
package/src/lib/utils.js
CHANGED
|
@@ -47,12 +47,8 @@ Utils.account = {
|
|
|
47
47
|
};
|
|
48
48
|
Utils.signer = {
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Converts various signer types (viem, ethers v6, Solana) into a UniversalSigner.
|
|
51
51
|
*/
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Wraps a Solana Keypair into a UniversalSigner.
|
|
55
|
-
*/
|
|
56
|
-
toUniversalFromSolanaKeypair: signer_1.toUniversalFromSolanaKeypair,
|
|
52
|
+
toUniversal: signer_1.toUniversal,
|
|
57
53
|
};
|
|
58
54
|
//# 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,+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"}
|