Skip to content

Commit 884b5d1

Browse files
committed
test: adapt integration tests to new deposit arc
1 parent 518bec2 commit 884b5d1

File tree

3 files changed

+51
-42
lines changed

3 files changed

+51
-42
lines changed

packages/integration-tests/tests/bridge_erc20.ts

+35-35
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
12
import type { Token } from '@fuel-bridge/solidity-contracts/typechain';
23
import type { TestEnvironment } from '@fuel-bridge/test-utils';
34
import {
@@ -19,7 +20,7 @@ import {
1920
import chai from 'chai';
2021
import { hexlify, toBeHex } from 'ethers';
2122
import type { Signer } from 'ethers';
22-
import { Address, BN } from 'fuels';
23+
import { Address, BN, AssetId } from 'fuels';
2324
import type {
2425
AbstractAddress,
2526
Contract,
@@ -29,7 +30,7 @@ import type {
2930

3031
const { expect } = chai;
3132

32-
describe.only('Bridging ERC20 tokens', async function () {
33+
describe('Bridging ERC20 tokens', async function () {
3334
// Timeout 6 minutes
3435
const DEFAULT_TIMEOUT_MS: number = 400_000;
3536
const FUEL_MESSAGE_TIMEOUT_MS: number = 30_000;
@@ -62,7 +63,7 @@ describe.only('Bridging ERC20 tokens', async function () {
6263

6364
fuel_testContractId = fuel_testToken.id.toHexString();
6465
await env.eth.fuelERC20Gateway.setAssetIssuerId(fuel_testContractId);
65-
fuel_testAssetId = getTokenId(fuel_testToken);
66+
fuel_testAssetId = getTokenId(fuel_testToken, eth_testTokenAddress);
6667

6768
const { value: expectedGatewayContractId } = await fuel_testToken.functions
6869
.bridged_token_gateway()
@@ -112,7 +113,7 @@ describe.only('Bridging ERC20 tokens', async function () {
112113
);
113114
});
114115

115-
it.only('Bridge ERC20 via FuelERC20Gateway', async () => {
116+
it('Bridge ERC20 via FuelERC20Gateway', async () => {
116117
// approve FuelERC20Gateway to spend the tokens
117118
await eth_testToken
118119
.connect(ethereumTokenSender)
@@ -123,18 +124,6 @@ describe.only('Bridging ERC20 tokens', async function () {
123124
.connect(ethereumTokenSender)
124125
.deposit(fuelTokenReceiverAddress, eth_testTokenAddress, NUM_TOKENS);
125126

126-
console.log(
127-
'ethe bridge id: ',
128-
await env.eth.fuelERC20Gateway.getAddress()
129-
);
130-
console.log('fuel bridge id:', fuel_testContractId);
131-
console.log('deposit type: ', '0x00');
132-
console.log('token address:', await eth_testToken.getAddress());
133-
console.log('sender', await ethereumTokenSender.getAddress());
134-
console.log('recipient', fuelTokenReceiverAddress);
135-
console.log('deposit: ', NUM_TOKENS.toString(16));
136-
console.log('decimals: ', (await eth_testToken.decimals()).toString(16));
137-
138127
const receipt = await tx.wait();
139128
expect(receipt.status).to.equal(1);
140129

@@ -150,14 +139,6 @@ describe.only('Bridging ERC20 tokens', async function () {
150139
fuelTokenMessageNonce = new BN(event.args.nonce.toString());
151140
fuelTokenMessageReceiver = Address.fromB256(event.args.recipient);
152141

153-
console.log('MESSAGE_SENT EVENT');
154-
console.log('Sender', event.args.sender);
155-
console.log('Recipient', event.args.recipient);
156-
console.log('Nonce', event.args.nonce);
157-
console.log('Amount', event.args.amount);
158-
console.log('Event data', event.args.data);
159-
console.log('ETH block number', event.blockNumber);
160-
161142
// check that the sender balance has decreased by the expected amount
162143
const newSenderBalance = await eth_testToken.balanceOf(
163144
ethereumTokenSenderAddress
@@ -166,7 +147,7 @@ describe.only('Bridging ERC20 tokens', async function () {
166147
.true;
167148
});
168149

169-
it.only('Relay message from Ethereum on Fuel', async () => {
150+
it('Relay message from Ethereum on Fuel', async () => {
170151
// override the default test timeout from 2000ms
171152
this.timeout(FUEL_MESSAGE_TIMEOUT_MS);
172153

@@ -178,13 +159,29 @@ describe.only('Bridging ERC20 tokens', async function () {
178159
FUEL_MESSAGE_TIMEOUT_MS
179160
);
180161
expect(message).to.not.be.null;
181-
console.log(hexlify(message.data));
162+
182163
const tx = await relayCommonMessage(env.fuel.deployer, message, {
183164
...FUEL_TX_PARAMS,
184165
maturity: undefined,
185166
});
186-
// console.log('waitForResult');
187-
// expect((await tx.waitForResult()).status).to.equal('success');
167+
168+
const txResult = await tx.waitForResult();
169+
170+
expect(txResult.status).to.equal('success');
171+
expect(txResult.mintedAssets.length).to.equal(1);
172+
173+
const [mintedAsset] = txResult.mintedAssets;
174+
175+
expect(mintedAsset.assetId).to.equal(fuel_testAssetId);
176+
expect(mintedAsset.amount.toString()).to.equal(
177+
(NUM_TOKENS / DECIMAL_DIFF).toString()
178+
);
179+
});
180+
181+
it('Check metadata was registered', async () => {
182+
await fuel_testToken.functions
183+
.asset_to_l1_address({ value: fuel_testAssetId })
184+
.call();
188185
});
189186

190187
it('Check ERC20 arrived on Fuel', async () => {
@@ -287,13 +284,16 @@ describe.only('Bridging ERC20 tokens', async function () {
287284
const relayMessageParams = createRelayMessageParams(withdrawMessageProof);
288285

289286
// relay message
290-
await env.eth.fuelMessagePortal.relayMessage(
291-
relayMessageParams.message,
292-
relayMessageParams.rootBlockHeader,
293-
relayMessageParams.blockHeader,
294-
relayMessageParams.blockInHistoryProof,
295-
relayMessageParams.messageInBlockProof
296-
);
287+
288+
await env.eth.fuelMessagePortal
289+
.connect(env.eth.signers[0])
290+
.relayMessage(
291+
relayMessageParams.message,
292+
relayMessageParams.rootBlockHeader,
293+
relayMessageParams.blockHeader,
294+
relayMessageParams.blockInHistoryProof,
295+
relayMessageParams.messageInBlockProof
296+
);
297297
});
298298

299299
it('Check ERC20 arrived on Ethereum', async () => {
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1-
import { concat, sha256 } from 'ethers';
1+
import type { BytesLike } from 'ethers';
2+
import { concat, dataLength, sha256, zeroPadValue } from 'ethers';
23
import type { Contract } from 'fuels';
34
import { ZeroBytes32 } from 'fuels';
45

5-
export function getTokenId(contract: Contract, subId = ZeroBytes32) {
6-
return sha256(concat([contract.id.toHexString(), subId]));
6+
export function getTokenId(
7+
contract: Contract,
8+
tokenAddress: BytesLike,
9+
tokenId: BytesLike = ZeroBytes32
10+
) {
11+
if (dataLength(tokenAddress) < 32)
12+
tokenAddress = zeroPadValue(tokenAddress, 32);
13+
14+
if (dataLength(tokenId) < 32) tokenId = zeroPadValue(tokenId, 32);
15+
16+
const subId = sha256(concat([tokenAddress, tokenId]));
17+
const assetId = sha256(concat([contract.id.toHexString(), subId]));
18+
19+
return assetId;
720
}

packages/test-utils/src/utils/fuels/relayCommonMessage.ts

-4
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,5 @@ export async function relayCommonMessage(
170170
txParams || {}
171171
);
172172

173-
console.log(transaction);
174-
console.log(hexlify((transaction.inputs[0] as any).data!));
175-
console.log((transaction.inputs[0] as any).predicate.length);
176-
177173
return relayer.sendTransaction(transaction);
178174
}

0 commit comments

Comments
 (0)