@wormhole-labs/base-bridge-executor-route 0.0.1-beta.0 → 0.0.1-beta.2

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 (81) hide show
  1. package/dist/cjs/consts.d.ts +1 -0
  2. package/dist/cjs/consts.d.ts.map +1 -1
  3. package/dist/cjs/consts.js +9 -1
  4. package/dist/cjs/consts.js.map +1 -1
  5. package/dist/cjs/domain/messageProver/solanaProver.d.ts.map +1 -1
  6. package/dist/cjs/domain/messageProver/solanaProver.js +0 -9
  7. package/dist/cjs/domain/messageProver/solanaProver.js.map +1 -1
  8. package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts +3 -2
  9. package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts.map +1 -1
  10. package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.js +200 -53
  11. package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.js.map +1 -1
  12. package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts +1 -1
  13. package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts.map +1 -1
  14. package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js +1 -1
  15. package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js.map +1 -1
  16. package/dist/cjs/evm/baseBridgeExecutor.d.ts.map +1 -1
  17. package/dist/cjs/evm/baseBridgeExecutor.js +2 -3
  18. package/dist/cjs/evm/baseBridgeExecutor.js.map +1 -1
  19. package/dist/cjs/routes/baseBridgeBase.d.ts +2 -1
  20. package/dist/cjs/routes/baseBridgeBase.d.ts.map +1 -1
  21. package/dist/cjs/routes/baseBridgeBase.js +4 -1
  22. package/dist/cjs/routes/baseBridgeBase.js.map +1 -1
  23. package/dist/cjs/routes/baseBridgeRoute.d.ts +1 -1
  24. package/dist/cjs/routes/baseBridgeRoute.d.ts.map +1 -1
  25. package/dist/cjs/routes/baseBridgeRoute.js +3 -1
  26. package/dist/cjs/routes/baseBridgeRoute.js.map +1 -1
  27. package/dist/cjs/routes/helpers.d.ts.map +1 -1
  28. package/dist/cjs/routes/helpers.js +1 -6
  29. package/dist/cjs/routes/helpers.js.map +1 -1
  30. package/dist/cjs/svm/baseBridgeExecutor.d.ts +2 -1
  31. package/dist/cjs/svm/baseBridgeExecutor.d.ts.map +1 -1
  32. package/dist/cjs/svm/baseBridgeExecutor.js +67 -3
  33. package/dist/cjs/svm/baseBridgeExecutor.js.map +1 -1
  34. package/dist/cjs/types.d.ts +2 -1
  35. package/dist/cjs/types.d.ts.map +1 -1
  36. package/dist/esm/consts.d.ts +1 -0
  37. package/dist/esm/consts.d.ts.map +1 -1
  38. package/dist/esm/consts.js +8 -0
  39. package/dist/esm/consts.js.map +1 -1
  40. package/dist/esm/domain/messageProver/solanaProver.d.ts.map +1 -1
  41. package/dist/esm/domain/messageProver/solanaProver.js +0 -9
  42. package/dist/esm/domain/messageProver/solanaProver.js.map +1 -1
  43. package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts +3 -2
  44. package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts.map +1 -1
  45. package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.js +200 -53
  46. package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.js.map +1 -1
  47. package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts +1 -1
  48. package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts.map +1 -1
  49. package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js +1 -1
  50. package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js.map +1 -1
  51. package/dist/esm/evm/baseBridgeExecutor.d.ts.map +1 -1
  52. package/dist/esm/evm/baseBridgeExecutor.js +2 -3
  53. package/dist/esm/evm/baseBridgeExecutor.js.map +1 -1
  54. package/dist/esm/routes/baseBridgeBase.d.ts +2 -1
  55. package/dist/esm/routes/baseBridgeBase.d.ts.map +1 -1
  56. package/dist/esm/routes/baseBridgeBase.js +4 -1
  57. package/dist/esm/routes/baseBridgeBase.js.map +1 -1
  58. package/dist/esm/routes/baseBridgeRoute.d.ts +1 -1
  59. package/dist/esm/routes/baseBridgeRoute.d.ts.map +1 -1
  60. package/dist/esm/routes/baseBridgeRoute.js +3 -1
  61. package/dist/esm/routes/baseBridgeRoute.js.map +1 -1
  62. package/dist/esm/routes/helpers.d.ts.map +1 -1
  63. package/dist/esm/routes/helpers.js +1 -6
  64. package/dist/esm/routes/helpers.js.map +1 -1
  65. package/dist/esm/svm/baseBridgeExecutor.d.ts +2 -1
  66. package/dist/esm/svm/baseBridgeExecutor.d.ts.map +1 -1
  67. package/dist/esm/svm/baseBridgeExecutor.js +68 -4
  68. package/dist/esm/svm/baseBridgeExecutor.js.map +1 -1
  69. package/dist/esm/types.d.ts +2 -1
  70. package/dist/esm/types.d.ts.map +1 -1
  71. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  72. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  73. package/package.json +1 -1
  74. package/dist/cjs/domain/messageProver/messageProver.d.ts +0 -29
  75. package/dist/cjs/domain/messageProver/messageProver.d.ts.map +0 -1
  76. package/dist/cjs/domain/messageProver/messageProver.js +0 -99
  77. package/dist/cjs/domain/messageProver/messageProver.js.map +0 -1
  78. package/dist/esm/domain/messageProver/messageProver.d.ts +0 -29
  79. package/dist/esm/domain/messageProver/messageProver.d.ts.map +0 -1
  80. package/dist/esm/domain/messageProver/messageProver.js +0 -95
  81. 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.2",
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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"}