@wormhole-foundation/sdk-evm-core 0.5.0-alpha.2 → 0.5.0-alpha.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.
Files changed (29) hide show
  1. package/dist/cjs/core.d.ts +25 -0
  2. package/dist/cjs/core.d.ts.map +1 -0
  3. package/dist/cjs/core.js +112 -0
  4. package/dist/cjs/core.js.map +1 -0
  5. package/dist/cjs/ethers-contracts/Implementation.d.ts +551 -0
  6. package/dist/cjs/ethers-contracts/Implementation.d.ts.map +1 -0
  7. package/dist/cjs/ethers-contracts/Implementation.js +3 -0
  8. package/dist/cjs/ethers-contracts/Implementation.js.map +1 -0
  9. package/dist/cjs/ethers-contracts/common.d.ts +51 -0
  10. package/dist/cjs/ethers-contracts/common.d.ts.map +1 -0
  11. package/dist/cjs/ethers-contracts/common.js +3 -0
  12. package/dist/cjs/ethers-contracts/common.js.map +1 -0
  13. package/dist/cjs/ethers-contracts/factories/Implementation__factory.d.ts +820 -0
  14. package/dist/cjs/ethers-contracts/factories/Implementation__factory.d.ts.map +1 -0
  15. package/dist/cjs/ethers-contracts/factories/Implementation__factory.js +1078 -0
  16. package/dist/cjs/ethers-contracts/factories/Implementation__factory.js.map +1 -0
  17. package/dist/cjs/ethers-contracts/factories/index.d.ts +2 -0
  18. package/dist/cjs/ethers-contracts/factories/index.d.ts.map +1 -0
  19. package/dist/cjs/ethers-contracts/factories/index.js +18 -0
  20. package/dist/cjs/ethers-contracts/factories/index.js.map +1 -0
  21. package/dist/cjs/ethers-contracts/index.d.ts +3 -0
  22. package/dist/cjs/ethers-contracts/index.d.ts.map +1 -0
  23. package/dist/cjs/ethers-contracts/index.js +19 -0
  24. package/dist/cjs/ethers-contracts/index.js.map +1 -0
  25. package/dist/cjs/index.d.ts +3 -0
  26. package/dist/cjs/index.d.ts.map +1 -0
  27. package/dist/cjs/index.js +36 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/package.json +16 -7
@@ -0,0 +1,25 @@
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
+ private constructor();
16
+ getMessageFee(): Promise<bigint>;
17
+ getGuardianSetIndex(): Promise<number>;
18
+ static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, EvmPlatformType>): Promise<EvmWormholeCore<N, EvmChains>>;
19
+ publishMessage(sender: AnyEvmAddress, message: Uint8Array, nonce: number, consistencyLevel: number): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
20
+ verifyMessage(sender: AnyEvmAddress, vaa: VAA): AsyncGenerator<never, void, unknown>;
21
+ parseTransaction(txid: TxHash): Promise<WormholeMessageId[]>;
22
+ parseMessages(txid: string): Promise<VAA[]>;
23
+ private createUnsignedTx;
24
+ }
25
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
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;AAM1C,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;IAE5C,OAAO;IAuBD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;WAI/B,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;IAgBnB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG;IAI9C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA0B5D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiCjD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,112 @@
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
+ static async fromRpc(provider, config) {
36
+ const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
37
+ const conf = config[chain];
38
+ if (conf.network !== network)
39
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
40
+ return new EvmWormholeCore(network, chain, provider, conf.contracts);
41
+ }
42
+ async *publishMessage(sender, message, nonce, consistencyLevel) {
43
+ const senderAddr = new sdk_evm_1.EvmAddress(sender).toString();
44
+ const txReq = await this.core.publishMessage.populateTransaction(nonce, message, consistencyLevel);
45
+ yield this.createUnsignedTx((0, sdk_evm_1.addFrom)(txReq, senderAddr), 'WormholeCore.publishMessage');
46
+ }
47
+ async *verifyMessage(sender, vaa) {
48
+ throw new Error('Not implemented.');
49
+ }
50
+ async parseTransaction(txid) {
51
+ const receipt = await this.provider.getTransactionReceipt(txid);
52
+ if (receipt === null)
53
+ return [];
54
+ return receipt.logs
55
+ .filter((l) => {
56
+ return l.address === this.coreAddress;
57
+ })
58
+ .map((log) => {
59
+ const { topics, data } = log;
60
+ const parsed = this.coreIface.parseLog({
61
+ topics: topics.slice(),
62
+ data,
63
+ });
64
+ if (parsed === null)
65
+ return undefined;
66
+ const emitterAddress = new sdk_evm_1.EvmAddress(parsed.args['sender']);
67
+ return {
68
+ chain: this.chain,
69
+ emitter: emitterAddress.toUniversalAddress(),
70
+ sequence: parsed.args['sequence'],
71
+ };
72
+ })
73
+ .filter(sdk_connect_1.isWormholeMessageId);
74
+ }
75
+ async parseMessages(txid) {
76
+ const receipt = await this.provider.getTransactionReceipt(txid);
77
+ if (receipt === null)
78
+ throw new Error('Could not get transaction receipt');
79
+ const gsIdx = await this.getGuardianSetIndex();
80
+ return receipt.logs
81
+ .filter((l) => {
82
+ return l.address === this.coreAddress;
83
+ })
84
+ .map((log) => {
85
+ const { topics, data } = log;
86
+ const parsed = this.coreIface.parseLog({
87
+ topics: topics.slice(),
88
+ data,
89
+ });
90
+ if (parsed === null)
91
+ return undefined;
92
+ const emitterAddress = new sdk_evm_1.EvmAddress(parsed.args['sender']);
93
+ return (0, sdk_connect_1.createVAA)('Uint8Array', {
94
+ guardianSet: gsIdx,
95
+ timestamp: 0,
96
+ emitterChain: this.chain,
97
+ emitterAddress: emitterAddress.toUniversalAddress(),
98
+ consistencyLevel: Number(parsed.args['consistencyLevel']),
99
+ sequence: BigInt(parsed.args['sequence']),
100
+ nonce: Number(parsed.args['nonce']),
101
+ signatures: [],
102
+ payload: parsed.args['payload'],
103
+ });
104
+ })
105
+ .filter((vaa) => !!vaa);
106
+ }
107
+ createUnsignedTx(txReq, description, parallelizable = false) {
108
+ return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, parallelizable);
109
+ }
110
+ }
111
+ exports.EvmWormholeCore = EvmWormholeCore;
112
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}