Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion relayer-cli/src/utils/proof.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ interface MessageSentData {
to: {
id: string;
};
msgSender: {
id: string;
};
data: string;
}

Expand Down Expand Up @@ -34,12 +37,15 @@ const getMessageDataToRelay = async (
to {
id
}
msgSender {
id
}
data
}
}`
)) as MessageSentsDataResponse;

return [result[`messageSents`][0].to.id, result[`messageSents`][0].data];
return [result[`messageSents`][0].to.id, result[`messageSents`][0].msgSender.id, result[`messageSents`][0].data];
} catch (e) {
console.log(e);
return undefined;
Expand Down
2 changes: 1 addition & 1 deletion relayer-cli/src/utils/relay.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ describe("relay", () => {
fetchVeaOutbox = jest.fn().mockReturnValue(veaOutboxMock);

fetchProofAtCount = jest.fn().mockResolvedValue([]);
fetchMessageDataToRelay = jest.fn().mockResolvedValue(["to", "data"]);
fetchMessageDataToRelay = jest.fn().mockResolvedValue(["to", "from", "data"]);

mockWait = jest.fn().mockResolvedValue("receipt");
mockBatchSend = jest.fn().mockResolvedValue({ wait: mockWait });
Expand Down
15 changes: 8 additions & 7 deletions relayer-cli/src/utils/relay.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ const relay = async (chainId: number, nonce: number, network: Network) => {
getMessageDataToRelay(chainId, veaInboxAddress, nonce),
]);
if (!messageData) throw new DataError("relay message data");
const [to, data] = messageData;
const txn = await veaOutbox.sendMessage(proof, nonce, to, data);
const [to, from, data] = messageData;
const txn = await veaOutbox.sendMessage(proof, nonce, to, from, data);
const receipt = await txn.wait();
return receipt;
};
Expand Down Expand Up @@ -127,10 +127,10 @@ const relayBatch = async ({
fetchProofAtCount(chainId, nonce, count, veaInboxAddress),
fetchMessageDataToRelay(chainId, veaInboxAddress, nonce),
]);
const [to, data] = messageData;
const [to, from, data] = messageData;
try {
await veaOutbox.sendMessage.staticCall(proof, nonce, to, data);
const callData = veaOutbox.interface.encodeFunctionData("sendMessage", [proof, nonce, to, data]);
await veaOutbox.sendMessage.staticCall(proof, nonce, to, from, data);
const callData = veaOutbox.interface.encodeFunctionData("sendMessage", [proof, nonce, to, from, data]);
datas.push(callData);
targets.push(veaOutboxAddress);
values.push(0);
Expand All @@ -142,6 +142,7 @@ const relayBatch = async ({
}
}
if (batchMessages > 0) {
console.log(targets, datas);
const gasLimit = await batcher.batchSend.estimateGas(targets, values, datas);
const tx = await batcher.batchSend(targets, values, datas, { gasLimit });
const receipt = await tx.wait();
Expand Down Expand Up @@ -193,9 +194,9 @@ const relayAllFrom = async (
getProofAtCount(chainId, x, count, veaInboxAddress),
getMessageDataToRelay(chainId, veaInboxAddress, x),
]);
const [to, data] = messageData;
const [to, from, data] = messageData;

const callData = veaOutbox.interface.encodeFunctionData("sendMessage", [proof, x, to, data]);
const callData = veaOutbox.interface.encodeFunctionData("sendMessage", [proof, x, to, from, data]);
datas.push(callData);
targets.push(veaContracts[network].veaOutbox.address);
values.push(0);
Expand Down
10 changes: 5 additions & 5 deletions relayer-subgraph-inbox/src/vea-inbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ export function handleMessageSent(event: MessageSentEvent): void {
let _to = new ByteArray(20);
for (let i = 0; i < 20; i++) _to[i] = msgData[i + 8];

let dataLength = msgData.length - 28;
let _data = new ByteArray(dataLength);
for (let i = 0; i < dataLength; i++) _data[i] = msgData[i + 28];

let _msgSender = new ByteArray(20);
for (let i = 0; i < 20; i++) _msgSender[i] = _data[i + 16];
for (let i = 0; i < 20; i++) _msgSender[i] = msgData[i + 28];

let dataLength = msgData.length - 48;
let _data = new ByteArray(dataLength);
for (let i = 0; i < dataLength; i++) _data[i] = msgData[i + 48];

entity.inbox = event.address;
entity.nonce = BigInt.fromByteArray(_nonce.reverse() as ByteArray);
Expand Down
Loading