@wormhole-labs/base-bridge-executor-route 0.0.1-beta.0 → 0.0.1-beta.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.
Files changed (37) hide show
  1. package/dist/cjs/evm/baseBridgeExecutor.d.ts.map +1 -1
  2. package/dist/cjs/evm/baseBridgeExecutor.js +2 -2
  3. package/dist/cjs/evm/baseBridgeExecutor.js.map +1 -1
  4. package/dist/cjs/routes/baseBridgeBase.d.ts +2 -1
  5. package/dist/cjs/routes/baseBridgeBase.d.ts.map +1 -1
  6. package/dist/cjs/routes/baseBridgeBase.js.map +1 -1
  7. package/dist/cjs/routes/baseBridgeRoute.d.ts +1 -1
  8. package/dist/cjs/routes/baseBridgeRoute.d.ts.map +1 -1
  9. package/dist/cjs/routes/baseBridgeRoute.js +3 -1
  10. package/dist/cjs/routes/baseBridgeRoute.js.map +1 -1
  11. package/dist/cjs/routes/helpers.d.ts.map +1 -1
  12. package/dist/cjs/routes/helpers.js +1 -6
  13. package/dist/cjs/routes/helpers.js.map +1 -1
  14. package/dist/esm/evm/baseBridgeExecutor.d.ts.map +1 -1
  15. package/dist/esm/evm/baseBridgeExecutor.js +2 -2
  16. package/dist/esm/evm/baseBridgeExecutor.js.map +1 -1
  17. package/dist/esm/routes/baseBridgeBase.d.ts +2 -1
  18. package/dist/esm/routes/baseBridgeBase.d.ts.map +1 -1
  19. package/dist/esm/routes/baseBridgeBase.js.map +1 -1
  20. package/dist/esm/routes/baseBridgeRoute.d.ts +1 -1
  21. package/dist/esm/routes/baseBridgeRoute.d.ts.map +1 -1
  22. package/dist/esm/routes/baseBridgeRoute.js +3 -1
  23. package/dist/esm/routes/baseBridgeRoute.js.map +1 -1
  24. package/dist/esm/routes/helpers.d.ts.map +1 -1
  25. package/dist/esm/routes/helpers.js +1 -6
  26. package/dist/esm/routes/helpers.js.map +1 -1
  27. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  28. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  29. package/package.json +1 -1
  30. package/dist/cjs/domain/messageProver/messageProver.d.ts +0 -29
  31. package/dist/cjs/domain/messageProver/messageProver.d.ts.map +0 -1
  32. package/dist/cjs/domain/messageProver/messageProver.js +0 -99
  33. package/dist/cjs/domain/messageProver/messageProver.js.map +0 -1
  34. package/dist/esm/domain/messageProver/messageProver.d.ts +0 -29
  35. package/dist/esm/domain/messageProver/messageProver.d.ts.map +0 -1
  36. package/dist/esm/domain/messageProver/messageProver.js +0 -95
  37. package/dist/esm/domain/messageProver/messageProver.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wormhole-labs/base-bridge-executor-route",
3
- "version": "0.0.1-beta.0",
3
+ "version": "0.0.1-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -1,29 +0,0 @@
1
- import { ChainContext, Network, TransactionId } from "@wormhole-foundation/sdk-connect";
2
- export interface TransferInitializedData {
3
- localToken: string;
4
- remoteToken: string;
5
- to: string;
6
- amount: string;
7
- }
8
- export interface ProofData {
9
- messageHash: string;
10
- mmrRoot: string;
11
- nonce: bigint;
12
- sender: string;
13
- data: string;
14
- proof: string[];
15
- outgoingMessagePubkey?: string;
16
- messageType?: number;
17
- transferInitializedData: TransferInitializedData;
18
- }
19
- export interface MessageProver {
20
- prove(sourceTx: TransactionId, bridgeBlockNumber: bigint): Promise<ProofData>;
21
- }
22
- export declare class BaseProver implements MessageProver {
23
- private readonly bridgeContractAddress;
24
- private readonly bridgeAbi;
25
- private readonly chainContext;
26
- constructor(bridgeContractAddress: string, bridgeAbi: any, chainContext: ChainContext<Network>);
27
- prove(sourceTx: TransactionId, bridgeBlockNumber: bigint): Promise<ProofData>;
28
- }
29
- //# sourceMappingURL=messageProver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageProver.d.ts","sourceRoot":"","sources":["../../../../src/domain/messageProver/messageProver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,aAAa,EACd,MAAM,kCAAkC,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,uBAAuB,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC/E;AAED,qBAAa,UAAW,YAAW,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC;IAGhD,KAAK,CACT,QAAQ,EAAE,aAAa,EACvB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,SAAS,CAAC;CAgGtB"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseProver = void 0;
4
- const viem_1 = require("viem");
5
- const chains_1 = require("viem/chains");
6
- const utils_1 = require("viem/utils");
7
- class BaseProver {
8
- bridgeContractAddress;
9
- bridgeAbi;
10
- chainContext;
11
- constructor(bridgeContractAddress, bridgeAbi, chainContext) {
12
- this.bridgeContractAddress = bridgeContractAddress;
13
- this.bridgeAbi = bridgeAbi;
14
- this.chainContext = chainContext;
15
- }
16
- async prove(sourceTx, bridgeBlockNumber) {
17
- const chain = this.chainContext.network === "Mainnet" ? chains_1.base : chains_1.baseSepolia;
18
- const rpcUrl = this.chainContext.config.rpc;
19
- const publicClient = (0, viem_1.createPublicClient)({
20
- chain,
21
- transport: (0, viem_1.http)(rpcUrl),
22
- });
23
- const txReceipt = await publicClient.getTransactionReceipt({
24
- hash: sourceTx.txid,
25
- });
26
- const messageInitiatedEvents = txReceipt.logs
27
- .map((log) => {
28
- if (bridgeBlockNumber < log.blockNumber) {
29
- throw new Error(`Transaction not finalized yet: ${bridgeBlockNumber} < ${log.blockNumber}`);
30
- }
31
- try {
32
- const decodedLog = (0, utils_1.decodeEventLog)({
33
- abi: this.bridgeAbi,
34
- data: log.data,
35
- topics: log.topics,
36
- });
37
- return decodedLog.eventName === "MessageInitiated"
38
- ? {
39
- messageHash: decodedLog.args.messageHash,
40
- mmrRoot: decodedLog.args.mmrRoot,
41
- message: decodedLog.args.message,
42
- }
43
- : null;
44
- }
45
- catch {
46
- return null;
47
- }
48
- })
49
- .filter((event) => event !== null);
50
- if (messageInitiatedEvents.length !== 1) {
51
- throw new Error("Unexpected number of MessageInitiated events detected");
52
- }
53
- const event = messageInitiatedEvents[0];
54
- const transferInitializedEvents = txReceipt.logs
55
- .map((log) => {
56
- try {
57
- const decodedLog = (0, utils_1.decodeEventLog)({
58
- abi: this.bridgeAbi,
59
- data: log.data,
60
- topics: log.topics,
61
- });
62
- return decodedLog.eventName === "TransferInitialized"
63
- ? {
64
- localToken: decodedLog.args.localToken,
65
- remoteToken: decodedLog.args.remoteToken,
66
- to: decodedLog.args.to,
67
- amount: decodedLog.args.amount.toString(),
68
- }
69
- : null;
70
- }
71
- catch {
72
- return null;
73
- }
74
- })
75
- .filter((event) => event !== null);
76
- if (transferInitializedEvents.length !== 1) {
77
- throw new Error("Unexpected number of TransferInitialized events detected");
78
- }
79
- const transferInitializedData = transferInitializedEvents[0];
80
- const rawProof = await publicClient.readContract({
81
- address: this.bridgeContractAddress,
82
- abi: this.bridgeAbi,
83
- functionName: "generateProof",
84
- args: [event.message.nonce],
85
- blockNumber: bridgeBlockNumber,
86
- });
87
- return {
88
- messageHash: event.messageHash,
89
- mmrRoot: event.mmrRoot,
90
- nonce: event.message.nonce,
91
- sender: event.message.sender,
92
- data: event.message.data,
93
- proof: rawProof,
94
- transferInitializedData,
95
- };
96
- }
97
- }
98
- exports.BaseProver = BaseProver;
99
- //# sourceMappingURL=messageProver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageProver.js","sourceRoot":"","sources":["../../../../src/domain/messageProver/messageProver.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { ChainContext, Network, TransactionId } from "@wormhole-foundation/sdk-connect";
2
- export interface TransferInitializedData {
3
- localToken: string;
4
- remoteToken: string;
5
- to: string;
6
- amount: string;
7
- }
8
- export interface ProofData {
9
- messageHash: string;
10
- mmrRoot: string;
11
- nonce: bigint;
12
- sender: string;
13
- data: string;
14
- proof: string[];
15
- outgoingMessagePubkey?: string;
16
- messageType?: number;
17
- transferInitializedData: TransferInitializedData;
18
- }
19
- export interface MessageProver {
20
- prove(sourceTx: TransactionId, bridgeBlockNumber: bigint): Promise<ProofData>;
21
- }
22
- export declare class BaseProver implements MessageProver {
23
- private readonly bridgeContractAddress;
24
- private readonly bridgeAbi;
25
- private readonly chainContext;
26
- constructor(bridgeContractAddress: string, bridgeAbi: any, chainContext: ChainContext<Network>);
27
- prove(sourceTx: TransactionId, bridgeBlockNumber: bigint): Promise<ProofData>;
28
- }
29
- //# sourceMappingURL=messageProver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageProver.d.ts","sourceRoot":"","sources":["../../../../src/domain/messageProver/messageProver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,aAAa,EACd,MAAM,kCAAkC,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,uBAAuB,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC/E;AAED,qBAAa,UAAW,YAAW,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,qBAAqB,EAAE,MAAM,EAC7B,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC;IAGhD,KAAK,CACT,QAAQ,EAAE,aAAa,EACvB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,SAAS,CAAC;CAgGtB"}
@@ -1,95 +0,0 @@
1
- import { createPublicClient, http } from "viem";
2
- import { base, baseSepolia } from "viem/chains";
3
- import { decodeEventLog } from "viem/utils";
4
- export class BaseProver {
5
- bridgeContractAddress;
6
- bridgeAbi;
7
- chainContext;
8
- constructor(bridgeContractAddress, bridgeAbi, chainContext) {
9
- this.bridgeContractAddress = bridgeContractAddress;
10
- this.bridgeAbi = bridgeAbi;
11
- this.chainContext = chainContext;
12
- }
13
- async prove(sourceTx, bridgeBlockNumber) {
14
- const chain = this.chainContext.network === "Mainnet" ? base : baseSepolia;
15
- const rpcUrl = this.chainContext.config.rpc;
16
- const publicClient = createPublicClient({
17
- chain,
18
- transport: http(rpcUrl),
19
- });
20
- const txReceipt = await publicClient.getTransactionReceipt({
21
- hash: sourceTx.txid,
22
- });
23
- const messageInitiatedEvents = txReceipt.logs
24
- .map((log) => {
25
- if (bridgeBlockNumber < log.blockNumber) {
26
- throw new Error(`Transaction not finalized yet: ${bridgeBlockNumber} < ${log.blockNumber}`);
27
- }
28
- try {
29
- const decodedLog = decodeEventLog({
30
- abi: this.bridgeAbi,
31
- data: log.data,
32
- topics: log.topics,
33
- });
34
- return decodedLog.eventName === "MessageInitiated"
35
- ? {
36
- messageHash: decodedLog.args.messageHash,
37
- mmrRoot: decodedLog.args.mmrRoot,
38
- message: decodedLog.args.message,
39
- }
40
- : null;
41
- }
42
- catch {
43
- return null;
44
- }
45
- })
46
- .filter((event) => event !== null);
47
- if (messageInitiatedEvents.length !== 1) {
48
- throw new Error("Unexpected number of MessageInitiated events detected");
49
- }
50
- const event = messageInitiatedEvents[0];
51
- const transferInitializedEvents = txReceipt.logs
52
- .map((log) => {
53
- try {
54
- const decodedLog = decodeEventLog({
55
- abi: this.bridgeAbi,
56
- data: log.data,
57
- topics: log.topics,
58
- });
59
- return decodedLog.eventName === "TransferInitialized"
60
- ? {
61
- localToken: decodedLog.args.localToken,
62
- remoteToken: decodedLog.args.remoteToken,
63
- to: decodedLog.args.to,
64
- amount: decodedLog.args.amount.toString(),
65
- }
66
- : null;
67
- }
68
- catch {
69
- return null;
70
- }
71
- })
72
- .filter((event) => event !== null);
73
- if (transferInitializedEvents.length !== 1) {
74
- throw new Error("Unexpected number of TransferInitialized events detected");
75
- }
76
- const transferInitializedData = transferInitializedEvents[0];
77
- const rawProof = await publicClient.readContract({
78
- address: this.bridgeContractAddress,
79
- abi: this.bridgeAbi,
80
- functionName: "generateProof",
81
- args: [event.message.nonce],
82
- blockNumber: bridgeBlockNumber,
83
- });
84
- return {
85
- messageHash: event.messageHash,
86
- mmrRoot: event.mmrRoot,
87
- nonce: event.message.nonce,
88
- sender: event.message.sender,
89
- data: event.message.data,
90
- proof: rawProof,
91
- transferInitializedData,
92
- };
93
- }
94
- }
95
- //# sourceMappingURL=messageProver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messageProver.js","sourceRoot":"","sources":["../../../../src/domain/messageProver/messageProver.ts"],"names":[],"mappings":"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"}