1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
import type { Token } from '@fuel-bridge/solidity-contracts/typechain' ;
2
3
import type { TestEnvironment } from '@fuel-bridge/test-utils' ;
3
4
import {
@@ -19,7 +20,7 @@ import {
19
20
import chai from 'chai' ;
20
21
import { hexlify , toBeHex } from 'ethers' ;
21
22
import type { Signer } from 'ethers' ;
22
- import { Address , BN } from 'fuels' ;
23
+ import { Address , BN , AssetId } from 'fuels' ;
23
24
import type {
24
25
AbstractAddress ,
25
26
Contract ,
@@ -29,7 +30,7 @@ import type {
29
30
30
31
const { expect } = chai ;
31
32
32
- describe . only ( 'Bridging ERC20 tokens' , async function ( ) {
33
+ describe ( 'Bridging ERC20 tokens' , async function ( ) {
33
34
// Timeout 6 minutes
34
35
const DEFAULT_TIMEOUT_MS : number = 400_000 ;
35
36
const FUEL_MESSAGE_TIMEOUT_MS : number = 30_000 ;
@@ -62,7 +63,7 @@ describe.only('Bridging ERC20 tokens', async function () {
62
63
63
64
fuel_testContractId = fuel_testToken . id . toHexString ( ) ;
64
65
await env . eth . fuelERC20Gateway . setAssetIssuerId ( fuel_testContractId ) ;
65
- fuel_testAssetId = getTokenId ( fuel_testToken ) ;
66
+ fuel_testAssetId = getTokenId ( fuel_testToken , eth_testTokenAddress ) ;
66
67
67
68
const { value : expectedGatewayContractId } = await fuel_testToken . functions
68
69
. bridged_token_gateway ( )
@@ -112,7 +113,7 @@ describe.only('Bridging ERC20 tokens', async function () {
112
113
) ;
113
114
} ) ;
114
115
115
- it . only ( 'Bridge ERC20 via FuelERC20Gateway' , async ( ) => {
116
+ it ( 'Bridge ERC20 via FuelERC20Gateway' , async ( ) => {
116
117
// approve FuelERC20Gateway to spend the tokens
117
118
await eth_testToken
118
119
. connect ( ethereumTokenSender )
@@ -123,18 +124,6 @@ describe.only('Bridging ERC20 tokens', async function () {
123
124
. connect ( ethereumTokenSender )
124
125
. deposit ( fuelTokenReceiverAddress , eth_testTokenAddress , NUM_TOKENS ) ;
125
126
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
-
138
127
const receipt = await tx . wait ( ) ;
139
128
expect ( receipt . status ) . to . equal ( 1 ) ;
140
129
@@ -150,14 +139,6 @@ describe.only('Bridging ERC20 tokens', async function () {
150
139
fuelTokenMessageNonce = new BN ( event . args . nonce . toString ( ) ) ;
151
140
fuelTokenMessageReceiver = Address . fromB256 ( event . args . recipient ) ;
152
141
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
-
161
142
// check that the sender balance has decreased by the expected amount
162
143
const newSenderBalance = await eth_testToken . balanceOf (
163
144
ethereumTokenSenderAddress
@@ -166,7 +147,7 @@ describe.only('Bridging ERC20 tokens', async function () {
166
147
. true ;
167
148
} ) ;
168
149
169
- it . only ( 'Relay message from Ethereum on Fuel' , async ( ) => {
150
+ it ( 'Relay message from Ethereum on Fuel' , async ( ) => {
170
151
// override the default test timeout from 2000ms
171
152
this . timeout ( FUEL_MESSAGE_TIMEOUT_MS ) ;
172
153
@@ -178,13 +159,29 @@ describe.only('Bridging ERC20 tokens', async function () {
178
159
FUEL_MESSAGE_TIMEOUT_MS
179
160
) ;
180
161
expect ( message ) . to . not . be . null ;
181
- console . log ( hexlify ( message . data ) ) ;
162
+
182
163
const tx = await relayCommonMessage ( env . fuel . deployer , message , {
183
164
...FUEL_TX_PARAMS ,
184
165
maturity : undefined ,
185
166
} ) ;
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 ( ) ;
188
185
} ) ;
189
186
190
187
it ( 'Check ERC20 arrived on Fuel' , async ( ) => {
@@ -287,13 +284,16 @@ describe.only('Bridging ERC20 tokens', async function () {
287
284
const relayMessageParams = createRelayMessageParams ( withdrawMessageProof ) ;
288
285
289
286
// 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
+ ) ;
297
297
} ) ;
298
298
299
299
it ( 'Check ERC20 arrived on Ethereum' , async ( ) => {
0 commit comments