@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.
- package/dist/cjs/consts.d.ts +1 -0
- package/dist/cjs/consts.d.ts.map +1 -1
- package/dist/cjs/consts.js +9 -1
- package/dist/cjs/consts.js.map +1 -1
- package/dist/cjs/domain/messageProver/solanaProver.d.ts.map +1 -1
- package/dist/cjs/domain/messageProver/solanaProver.js +0 -9
- package/dist/cjs/domain/messageProver/solanaProver.js.map +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts +3 -2
- package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts.map +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.js +200 -53
- package/dist/cjs/domain/solanaInstructionBuilder/solanaInstructionBuilder.js.map +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts.map +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js +1 -1
- package/dist/cjs/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js.map +1 -1
- package/dist/cjs/evm/baseBridgeExecutor.d.ts.map +1 -1
- package/dist/cjs/evm/baseBridgeExecutor.js +2 -3
- package/dist/cjs/evm/baseBridgeExecutor.js.map +1 -1
- package/dist/cjs/routes/baseBridgeBase.d.ts +2 -1
- package/dist/cjs/routes/baseBridgeBase.d.ts.map +1 -1
- package/dist/cjs/routes/baseBridgeBase.js +4 -1
- package/dist/cjs/routes/baseBridgeBase.js.map +1 -1
- package/dist/cjs/routes/baseBridgeRoute.d.ts +1 -1
- package/dist/cjs/routes/baseBridgeRoute.d.ts.map +1 -1
- package/dist/cjs/routes/baseBridgeRoute.js +3 -1
- package/dist/cjs/routes/baseBridgeRoute.js.map +1 -1
- package/dist/cjs/routes/helpers.d.ts.map +1 -1
- package/dist/cjs/routes/helpers.js +1 -6
- package/dist/cjs/routes/helpers.js.map +1 -1
- package/dist/cjs/svm/baseBridgeExecutor.d.ts +2 -1
- package/dist/cjs/svm/baseBridgeExecutor.d.ts.map +1 -1
- package/dist/cjs/svm/baseBridgeExecutor.js +67 -3
- package/dist/cjs/svm/baseBridgeExecutor.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/consts.d.ts +1 -0
- package/dist/esm/consts.d.ts.map +1 -1
- package/dist/esm/consts.js +8 -0
- package/dist/esm/consts.js.map +1 -1
- package/dist/esm/domain/messageProver/solanaProver.d.ts.map +1 -1
- package/dist/esm/domain/messageProver/solanaProver.js +0 -9
- package/dist/esm/domain/messageProver/solanaProver.js.map +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts +3 -2
- package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.d.ts.map +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.js +200 -53
- package/dist/esm/domain/solanaInstructionBuilder/solanaInstructionBuilder.js.map +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.d.ts.map +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js +1 -1
- package/dist/esm/domain/solanaInstructionBuilder/tests/fakes/fakeSolanaInstructionBuilder.js.map +1 -1
- package/dist/esm/evm/baseBridgeExecutor.d.ts.map +1 -1
- package/dist/esm/evm/baseBridgeExecutor.js +2 -3
- package/dist/esm/evm/baseBridgeExecutor.js.map +1 -1
- package/dist/esm/routes/baseBridgeBase.d.ts +2 -1
- package/dist/esm/routes/baseBridgeBase.d.ts.map +1 -1
- package/dist/esm/routes/baseBridgeBase.js +4 -1
- package/dist/esm/routes/baseBridgeBase.js.map +1 -1
- package/dist/esm/routes/baseBridgeRoute.d.ts +1 -1
- package/dist/esm/routes/baseBridgeRoute.d.ts.map +1 -1
- package/dist/esm/routes/baseBridgeRoute.js +3 -1
- package/dist/esm/routes/baseBridgeRoute.js.map +1 -1
- package/dist/esm/routes/helpers.d.ts.map +1 -1
- package/dist/esm/routes/helpers.js +1 -6
- package/dist/esm/routes/helpers.js.map +1 -1
- package/dist/esm/svm/baseBridgeExecutor.d.ts +2 -1
- package/dist/esm/svm/baseBridgeExecutor.d.ts.map +1 -1
- package/dist/esm/svm/baseBridgeExecutor.js +68 -4
- package/dist/esm/svm/baseBridgeExecutor.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/cjs/domain/messageProver/messageProver.d.ts +0 -29
- package/dist/cjs/domain/messageProver/messageProver.d.ts.map +0 -1
- package/dist/cjs/domain/messageProver/messageProver.js +0 -99
- package/dist/cjs/domain/messageProver/messageProver.js.map +0 -1
- package/dist/esm/domain/messageProver/messageProver.d.ts +0 -29
- package/dist/esm/domain/messageProver/messageProver.d.ts.map +0 -1
- package/dist/esm/domain/messageProver/messageProver.js +0 -95
- package/dist/esm/domain/messageProver/messageProver.js.map +0 -1
package/package.json
CHANGED
|
@@ -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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"}
|