@wormhole-foundation/sdk-evm-core 0.5.0-alpha.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 (57) hide show
  1. package/dist/cjs/core.d.ts +24 -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/dist/esm/core.d.ts +24 -0
  30. package/dist/esm/core.d.ts.map +1 -0
  31. package/dist/esm/core.js +108 -0
  32. package/dist/esm/core.js.map +1 -0
  33. package/dist/esm/ethers-contracts/Implementation.d.ts +551 -0
  34. package/dist/esm/ethers-contracts/Implementation.d.ts.map +1 -0
  35. package/dist/esm/ethers-contracts/Implementation.js +2 -0
  36. package/dist/esm/ethers-contracts/Implementation.js.map +1 -0
  37. package/dist/esm/ethers-contracts/common.d.ts +51 -0
  38. package/dist/esm/ethers-contracts/common.d.ts.map +1 -0
  39. package/dist/esm/ethers-contracts/common.js +2 -0
  40. package/dist/esm/ethers-contracts/common.js.map +1 -0
  41. package/dist/esm/ethers-contracts/factories/Implementation__factory.d.ts +820 -0
  42. package/dist/esm/ethers-contracts/factories/Implementation__factory.d.ts.map +1 -0
  43. package/dist/esm/ethers-contracts/factories/Implementation__factory.js +1074 -0
  44. package/dist/esm/ethers-contracts/factories/Implementation__factory.js.map +1 -0
  45. package/dist/esm/ethers-contracts/factories/index.d.ts +2 -0
  46. package/dist/esm/ethers-contracts/factories/index.d.ts.map +1 -0
  47. package/dist/esm/ethers-contracts/factories/index.js +2 -0
  48. package/dist/esm/ethers-contracts/factories/index.js.map +1 -0
  49. package/dist/esm/ethers-contracts/index.d.ts +3 -0
  50. package/dist/esm/ethers-contracts/index.d.ts.map +1 -0
  51. package/dist/esm/ethers-contracts/index.js +3 -0
  52. package/dist/esm/ethers-contracts/index.js.map +1 -0
  53. package/dist/esm/index.d.ts +3 -0
  54. package/dist/esm/index.d.ts.map +1 -0
  55. package/dist/esm/index.js +7 -0
  56. package/dist/esm/index.js.map +1 -0
  57. package/package.json +59 -0
@@ -0,0 +1,24 @@
1
+ import { ChainsConfig, Contracts, Network, TxHash, VAA, WormholeCore, WormholeMessageId } from '@wormhole-foundation/sdk-connect';
2
+ import { Provider } from 'ethers';
3
+ import { Implementation, ImplementationInterface } from './ethers-contracts';
4
+ import { AnyEvmAddress, EvmChains, EvmPlatformType, EvmUnsignedTransaction } from '@wormhole-foundation/sdk-evm';
5
+ export declare class EvmWormholeCore<N extends Network, C extends EvmChains> implements WormholeCore<N, C> {
6
+ readonly network: N;
7
+ readonly chain: C;
8
+ readonly provider: Provider;
9
+ readonly contracts: Contracts;
10
+ readonly chainId: bigint;
11
+ readonly coreAddress: string;
12
+ readonly core: Implementation;
13
+ readonly coreIface: ImplementationInterface;
14
+ private constructor();
15
+ getMessageFee(): Promise<bigint>;
16
+ getGuardianSetIndex(): Promise<number>;
17
+ static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, EvmPlatformType>): Promise<EvmWormholeCore<N, EvmChains>>;
18
+ publishMessage(sender: AnyEvmAddress, message: Uint8Array, nonce: number, consistencyLevel: number): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
19
+ verifyMessage(sender: AnyEvmAddress, vaa: VAA): AsyncGenerator<never, void, unknown>;
20
+ parseTransaction(txid: TxHash): Promise<WormholeMessageId[]>;
21
+ parseMessages(txid: string): Promise<VAA[]>;
22
+ private createUnsignedTx;
23
+ }
24
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,EACH,YAAY,EACZ,iBAAiB,EAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EACL,aAAa,EAEb,SAAS,EAET,eAAe,EACf,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 _1 = require(".");
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 = _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 = _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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"}