@wormhole-foundation/sdk-evm-core 4.22.0-beta.0 → 5.0.0-beta.0

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 (30) hide show
  1. package/package.json +11 -29
  2. package/dist/cjs/core.d.ts +0 -26
  3. package/dist/cjs/core.d.ts.map +0 -1
  4. package/dist/cjs/core.js +0 -125
  5. package/dist/cjs/core.js.map +0 -1
  6. package/dist/cjs/ethers-contracts/Implementation.d.ts +0 -551
  7. package/dist/cjs/ethers-contracts/Implementation.d.ts.map +0 -1
  8. package/dist/cjs/ethers-contracts/Implementation.js +0 -3
  9. package/dist/cjs/ethers-contracts/Implementation.js.map +0 -1
  10. package/dist/cjs/ethers-contracts/common.d.ts +0 -51
  11. package/dist/cjs/ethers-contracts/common.d.ts.map +0 -1
  12. package/dist/cjs/ethers-contracts/common.js +0 -3
  13. package/dist/cjs/ethers-contracts/common.js.map +0 -1
  14. package/dist/cjs/ethers-contracts/factories/Implementation__factory.d.ts +0 -820
  15. package/dist/cjs/ethers-contracts/factories/Implementation__factory.d.ts.map +0 -1
  16. package/dist/cjs/ethers-contracts/factories/Implementation__factory.js +0 -1078
  17. package/dist/cjs/ethers-contracts/factories/Implementation__factory.js.map +0 -1
  18. package/dist/cjs/ethers-contracts/factories/index.d.ts +0 -2
  19. package/dist/cjs/ethers-contracts/factories/index.d.ts.map +0 -1
  20. package/dist/cjs/ethers-contracts/factories/index.js +0 -18
  21. package/dist/cjs/ethers-contracts/factories/index.js.map +0 -1
  22. package/dist/cjs/ethers-contracts/index.d.ts +0 -3
  23. package/dist/cjs/ethers-contracts/index.d.ts.map +0 -1
  24. package/dist/cjs/ethers-contracts/index.js +0 -19
  25. package/dist/cjs/ethers-contracts/index.js.map +0 -1
  26. package/dist/cjs/index.d.ts +0 -3
  27. package/dist/cjs/index.d.ts.map +0 -1
  28. package/dist/cjs/index.js +0 -36
  29. package/dist/cjs/index.js.map +0 -1
  30. package/dist/cjs/package.json +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wormhole-foundation/sdk-evm-core",
3
- "version": "4.22.0-beta.0",
3
+ "version": "5.0.0-beta.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/wormhole-foundation/wormhole-sdk-ts.git"
@@ -13,13 +13,12 @@
13
13
  "test": "tests"
14
14
  },
15
15
  "license": "Apache-2.0",
16
- "main": "./dist/cjs/index.js",
17
- "types": "./dist/cjs/index.d.ts",
16
+ "main": "./dist/esm/index.js",
17
+ "types": "./dist/esm/index.d.ts",
18
18
  "module": "./dist/esm/index.js",
19
19
  "description": "SDK for EVM chains, used in conjunction with @wormhole-foundation/sdk",
20
20
  "files": [
21
- "dist/esm",
22
- "dist/cjs"
21
+ "dist/esm"
23
22
  ],
24
23
  "keywords": [
25
24
  "wormhole",
@@ -35,47 +34,30 @@
35
34
  "evm"
36
35
  ],
37
36
  "engines": {
38
- "node": ">=16"
37
+ "node": ">=20.19"
39
38
  },
40
39
  "sideEffects": [
41
- "./dist/cjs/index.js",
42
40
  "./dist/esm/index.js"
43
41
  ],
44
42
  "scripts": {
45
- "build:cjs": "tsc -p ./tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
46
43
  "build:esm": "tsc -p ./tsconfig.esm.json",
47
- "build": "npm run build:esm && npm run build:cjs",
44
+ "build": "npm run build:esm",
48
45
  "rebuild": "npm run clean && npm run build",
49
46
  "clean": "rm -rf ./dist && rm -rf ./.turbo",
50
47
  "lint": "npm run prettier && eslint --fix ./src --ext .ts",
51
48
  "prettier": "prettier --write ./src"
52
49
  },
53
50
  "dependencies": {
54
- "@wormhole-foundation/sdk-connect": "4.22.0-beta.0",
55
- "@wormhole-foundation/sdk-evm": "4.22.0-beta.0",
51
+ "@wormhole-foundation/sdk-connect": "5.0.0-beta.0",
52
+ "@wormhole-foundation/sdk-evm": "5.0.0-beta.0",
56
53
  "ethers": "^6.5.1"
57
54
  },
58
55
  "type": "module",
59
56
  "exports": {
60
57
  ".": {
61
- "react-native": {
62
- "import": "./dist/esm/index.js",
63
- "require": "./dist/cjs/index.js",
64
- "types": "./dist/cjs/index.d.ts",
65
- "default": "./dist/cjs/index.js"
66
- },
67
- "import": {
68
- "types": "./dist/esm/index.d.ts",
69
- "default": "./dist/esm/index.js"
70
- },
71
- "require": {
72
- "types": "./dist/cjs/index.d.ts",
73
- "default": "./dist/cjs/index.js"
74
- },
75
- "default": {
76
- "types": "./dist/cjs/index.d.ts",
77
- "default": "./dist/cjs/index.js"
78
- }
58
+ "types": "./dist/esm/index.d.ts",
59
+ "import": "./dist/esm/index.js",
60
+ "default": "./dist/esm/index.js"
79
61
  }
80
62
  }
81
63
  }
@@ -1,26 +0,0 @@
1
- import type { ChainsConfig, Contracts, Network, TxHash, VAA, WormholeCore, WormholeMessageId } from '@wormhole-foundation/sdk-connect';
2
- import type { Provider } from 'ethers';
3
- import type { Implementation, ImplementationInterface } from './ethers-contracts/index.js';
4
- import type { AnyEvmAddress, EvmChains, EvmPlatformType } from '@wormhole-foundation/sdk-evm';
5
- import { EvmUnsignedTransaction } from '@wormhole-foundation/sdk-evm';
6
- export declare class EvmWormholeCore<N extends Network, C extends EvmChains> implements WormholeCore<N, C> {
7
- readonly network: N;
8
- readonly chain: C;
9
- readonly provider: Provider;
10
- readonly contracts: Contracts;
11
- readonly chainId: bigint;
12
- readonly coreAddress: string;
13
- readonly core: Implementation;
14
- readonly coreIface: ImplementationInterface;
15
- constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
16
- getMessageFee(): Promise<bigint>;
17
- getGuardianSetIndex(): Promise<number>;
18
- getGuardianSet(index: number): Promise<WormholeCore.GuardianSet>;
19
- static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, EvmPlatformType>): Promise<EvmWormholeCore<N, EvmChains>>;
20
- publishMessage(sender: AnyEvmAddress, message: Uint8Array, nonce: number, consistencyLevel: number): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
21
- verifyMessage(sender: AnyEvmAddress, vaa: VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
22
- parseTransaction(txid: TxHash): Promise<WormholeMessageId[]>;
23
- parseMessages(txid: string): Promise<VAA<"Uint8Array">[]>;
24
- private createUnsignedTx;
25
- }
26
- //# sourceMappingURL=core.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,EACH,YAAY,EACZ,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAE3D,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACjE,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAU3B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAX/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAGjC,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;IAmBzB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;WASzD,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAelC,cAAc,CACnB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM;IAoBnB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG;IAW9C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA0B5D,aAAa,CAAC,IAAI,EAAE,MAAM;IAiChC,OAAO,CAAC,gBAAgB;CAazB"}
package/dist/cjs/core.js DELETED
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EvmWormholeCore = void 0;
4
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
- const index_js_1 = require("./index.js");
6
- const sdk_evm_1 = require("@wormhole-foundation/sdk-evm");
7
- class EvmWormholeCore {
8
- network;
9
- chain;
10
- provider;
11
- contracts;
12
- chainId;
13
- coreAddress;
14
- core;
15
- coreIface;
16
- constructor(network, chain, provider, contracts) {
17
- this.network = network;
18
- this.chain = chain;
19
- this.provider = provider;
20
- this.contracts = contracts;
21
- this.chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
22
- this.coreIface = index_js_1.ethers_contracts.Implementation__factory.createInterface();
23
- const address = this.contracts.coreBridge;
24
- if (!address)
25
- throw new Error('Core bridge address not found');
26
- this.coreAddress = address;
27
- this.core = index_js_1.ethers_contracts.Implementation__factory.connect(address, provider);
28
- }
29
- async getMessageFee() {
30
- return await this.core.messageFee.staticCall();
31
- }
32
- async getGuardianSetIndex() {
33
- return Number(await this.core.getCurrentGuardianSetIndex.staticCall());
34
- }
35
- async getGuardianSet(index) {
36
- const guardianSet = await this.core.getGuardianSet(index);
37
- return {
38
- index: index,
39
- keys: guardianSet[0],
40
- expiry: guardianSet[1],
41
- };
42
- }
43
- static async fromRpc(provider, config) {
44
- const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
45
- const conf = config[chain];
46
- if (conf.network !== network)
47
- throw new Error(`Network mismatch: ${conf.network} != ${network}`);
48
- return new EvmWormholeCore(network, chain, provider, conf.contracts);
49
- }
50
- async *publishMessage(sender, message, nonce, consistencyLevel) {
51
- const senderAddr = new sdk_evm_1.EvmAddress(sender).toString();
52
- const messageFee = await this.getMessageFee();
53
- const txReq = await this.core.publishMessage.populateTransaction(nonce, message, consistencyLevel, {
54
- value: messageFee,
55
- });
56
- yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddr), 'WormholeCore.publishMessage');
57
- }
58
- async *verifyMessage(sender, vaa) {
59
- const senderAddr = new sdk_evm_1.EvmAddress(sender).toString();
60
- const txReq = await this.core.parseAndVerifyVM.populateTransaction((0, sdk_connect_1.serialize)(vaa));
61
- yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddr), 'WormholeCore.verifyMessage');
62
- }
63
- async parseTransaction(txid) {
64
- const receipt = await this.provider.getTransactionReceipt(txid);
65
- if (receipt === null)
66
- return [];
67
- return receipt.logs
68
- .filter((l) => {
69
- return l.address === this.coreAddress;
70
- })
71
- .map((log) => {
72
- const { topics, data } = log;
73
- const parsed = this.coreIface.parseLog({
74
- topics: topics.slice(),
75
- data,
76
- });
77
- if (parsed === null)
78
- return undefined;
79
- const emitterAddress = new sdk_evm_1.EvmAddress(parsed.args['sender']);
80
- return {
81
- chain: this.chain,
82
- emitter: emitterAddress.toUniversalAddress(),
83
- sequence: parsed.args['sequence'],
84
- };
85
- })
86
- .filter(sdk_connect_1.isWormholeMessageId);
87
- }
88
- async parseMessages(txid) {
89
- const receipt = await this.provider.getTransactionReceipt(txid);
90
- if (receipt === null)
91
- throw new Error('Could not get transaction receipt');
92
- const gsIdx = await this.getGuardianSetIndex();
93
- return receipt.logs
94
- .filter((l) => {
95
- return l.address === this.coreAddress;
96
- })
97
- .map((log) => {
98
- const { topics, data } = log;
99
- const parsed = this.coreIface.parseLog({
100
- topics: topics.slice(),
101
- data,
102
- });
103
- if (parsed === null)
104
- return null;
105
- const emitterAddress = new sdk_evm_1.EvmAddress(parsed.args['sender']);
106
- return (0, sdk_connect_1.createVAA)('Uint8Array', {
107
- guardianSet: gsIdx, // TODO: should we get this from the contract on init?
108
- timestamp: 0, // TODO: Would need to get the full block to get the timestamp
109
- emitterChain: this.chain,
110
- emitterAddress: emitterAddress.toUniversalAddress(),
111
- consistencyLevel: Number(parsed.args['consistencyLevel']),
112
- sequence: BigInt(parsed.args['sequence']),
113
- nonce: Number(parsed.args['nonce']),
114
- signatures: [],
115
- payload: sdk_connect_1.encoding.hex.decode(parsed.args['payload']),
116
- });
117
- })
118
- .filter((vaa) => !!vaa);
119
- }
120
- createUnsignedTx(txReq, description, parallelizable = false) {
121
- return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
122
- }
123
- }
124
- exports.EvmWormholeCore = EvmWormholeCore;
125
- //# sourceMappingURL=core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}