18
18
19
19
from typing import List , Dict
20
20
from web3 import Web3
21
+ from eth_account import Account
21
22
import solcx
22
23
import unittest
23
24
import time
24
25
25
26
# All addresses are automatically generated by anvil at startup
26
27
addresses = {
27
- "attester" : Web3 .toChecksumAddress ("0xbcd4042de499d14e55001ccbb24a551f3b954096" ),
28
- "eth_usdc_master_minter" : Web3 .toChecksumAddress ("0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" ),
29
- "eth_message_transmitter_deployer" : Web3 .toChecksumAddress ("0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc" ),
30
- "eth_token_messenger_deployer" : Web3 .toChecksumAddress ("0x90f79bf6eb2c4f870365e785982e1f101e93b906" ),
31
- "eth_token_minter_deployer" : Web3 .toChecksumAddress ("0x15d34aaf54267db7d7c367839aaf71a00a2c6a65" ),
32
- "eth_token_messenger_user" : Web3 .toChecksumAddress ("0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f" ),
33
- "eth_token_controller" : Web3 .toChecksumAddress ("0x71be63f3384f5fb98995898a86b02fb2426c5788" ),
34
- "avax_usdc_master_minter" : Web3 .toChecksumAddress ("0x70997970c51812dc3a010c7d01b50e0d17dc79c8" ),
35
- "avax_message_transmitter_deployer" : Web3 .toChecksumAddress ("0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc" ),
36
- "avax_token_messenger_deployer" : Web3 .toChecksumAddress ("0x976ea74026e726554db657fa54763abd0c3a0aa9" ),
37
- "avax_token_minter_deployer" : Web3 .toChecksumAddress ("0x14dc79964da2c08b23698b3d3cc7ca32193d9955" ),
38
- "avax_token_messenger_user" : Web3 .toChecksumAddress ("0xa0ee7a142d267c1f36714e4a8f75612f20a79720" ),
39
- "avax_token_controller" : Web3 .toChecksumAddress ("0xfabb0ac9d68b0b445fb7357272ff202c5651694a" ),
28
+ "attester" : Web3 .to_checksum_address ("0xbcd4042de499d14e55001ccbb24a551f3b954096" ),
29
+ "eth_usdc_master_minter" : Web3 .to_checksum_address ("0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" ),
30
+ "eth_message_transmitter_deployer" : Web3 .to_checksum_address ("0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc" ),
31
+ "eth_token_messenger_deployer" : Web3 .to_checksum_address ("0x90f79bf6eb2c4f870365e785982e1f101e93b906" ),
32
+ "eth_token_minter_deployer" : Web3 .to_checksum_address ("0x15d34aaf54267db7d7c367839aaf71a00a2c6a65" ),
33
+ "eth_token_messenger_user" : Web3 .to_checksum_address ("0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f" ),
34
+ "eth_token_controller" : Web3 .to_checksum_address ("0x71be63f3384f5fb98995898a86b02fb2426c5788" ),
35
+ "avax_usdc_master_minter" : Web3 .to_checksum_address ("0x70997970c51812dc3a010c7d01b50e0d17dc79c8" ),
36
+ "avax_message_transmitter_deployer" : Web3 .to_checksum_address ("0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc" ),
37
+ "avax_token_messenger_deployer" : Web3 .to_checksum_address ("0x976ea74026e726554db657fa54763abd0c3a0aa9" ),
38
+ "avax_token_minter_deployer" : Web3 .to_checksum_address ("0x14dc79964da2c08b23698b3d3cc7ca32193d9955" ),
39
+ "avax_token_messenger_user" : Web3 .to_checksum_address ("0xa0ee7a142d267c1f36714e4a8f75612f20a79720" ),
40
+ "avax_token_controller" : Web3 .to_checksum_address ("0xfabb0ac9d68b0b445fb7357272ff202c5651694a" ),
40
41
}
41
42
42
43
# All keys correspond with the addresses generated by anvil at startup
@@ -157,7 +158,7 @@ def to_32byte_hex(self, address):
157
158
"""
158
159
Converts a hex address to its zero-padded 32-byte representation.
159
160
"""
160
- return Web3 .toHex (Web3 .toBytes (hexstr = address ).rjust (32 , b'\0 ' ))
161
+ return Web3 .to_hex (Web3 .to_bytes (hexstr = address ).rjust (32 , b'\0 ' ))
161
162
162
163
def confirm_transaction (self , tx_hash , timeout = 30 ):
163
164
"""
@@ -178,7 +179,7 @@ def confirm_transaction(self, tx_hash, timeout=30):
178
179
def setUp (self ):
179
180
# Connect to node
180
181
self .w3 = Web3 (Web3 .HTTPProvider ('http://0.0.0.0:8545' ))
181
- assert self .w3 .isConnected ()
182
+ assert self .w3 .is_connected ()
182
183
183
184
# Deploy and initialize USDC on ETH
184
185
self .eth_usdc = self .deploy_contract_from_source ('lib/centre-tokens.git/contracts/v2/FiatTokenV2_1.sol' , 'FiatTokenV2_1' , '0.6.12' )
@@ -193,7 +194,7 @@ def setUp(self):
193
194
addresses ["eth_usdc_master_minter" ]
194
195
), "eth_usdc_master_minter" )
195
196
self .send_transaction (self .eth_usdc .functions .initializeV2 ("USDC" ), "eth_usdc_master_minter" )
196
- self .send_transaction (self .eth_usdc .functions .initializeV2_1 (Web3 .toChecksumAddress ("0xb794f5ea0ba39494ce839613fffba74279579268" )), "eth_usdc_master_minter" )
197
+ self .send_transaction (self .eth_usdc .functions .initializeV2_1 (Web3 .to_checksum_address ("0xb794f5ea0ba39494ce839613fffba74279579268" )), "eth_usdc_master_minter" )
197
198
198
199
# Deploy and initialize USDC on AVAX
199
200
self .avax_usdc = self .deploy_contract_from_source ('lib/centre-tokens.git/contracts/v2/FiatTokenV2_1.sol' , 'FiatTokenV2_1' , '0.6.12' )
@@ -208,7 +209,7 @@ def setUp(self):
208
209
addresses ["avax_usdc_master_minter" ]
209
210
), "avax_usdc_master_minter" )
210
211
self .send_transaction (self .avax_usdc .functions .initializeV2 ("USDC" ), "avax_usdc_master_minter" )
211
- self .send_transaction (self .avax_usdc .functions .initializeV2_1 (Web3 .toChecksumAddress ("0xb794f5ea0ba39494ce839613fffba74279579268" )), "avax_usdc_master_minter" )
212
+ self .send_transaction (self .avax_usdc .functions .initializeV2_1 (Web3 .to_checksum_address ("0xb794f5ea0ba39494ce839613fffba74279579268" )), "avax_usdc_master_minter" )
212
213
213
214
# Deploy and construct required token messenger contracts for ETH
214
215
self .eth_message = self .deploy_contract_from_source ('src/messages/Message.sol' , 'Message' )
@@ -274,9 +275,10 @@ def test_crosschain_transfer(self):
274
275
self .verify_balances (100 , 0 )
275
276
276
277
# parse MessageSent event emitted by avax_message_transmitter
277
- avax_message_sent_filter = self .avax_message_transmitter .events .MessageSent .createFilter (fromBlock = "0x0" )
278
+ avax_message_sent_filter = self .avax_message_transmitter .events .MessageSent .create_filter (fromBlock = "0x0" )
278
279
avax_message_bytes = avax_message_sent_filter .get_new_entries ()[0 ]['args' ]['message' ]
279
- avax_signed_message_bytes = self .w3 .eth .account .signHash (Web3 .keccak (avax_message_bytes ), keys ["attester" ]).signature
280
+ attester_account = Account .from_key (keys ["attester" ])
281
+ avax_signed_message_bytes = attester_account .signHash (Web3 .keccak (avax_message_bytes )).signature
280
282
281
283
# receiveMessage with eth_message_transmitter to eth_token_messenger_user
282
284
self .send_transaction (self .eth_message_transmitter .functions .receiveMessage (avax_message_bytes , avax_signed_message_bytes ), "eth_token_messenger_user" )
@@ -290,9 +292,9 @@ def test_crosschain_transfer(self):
290
292
self .verify_balances (100 , 0 )
291
293
292
294
# parse MessageSent event emitted by eth_message_transmitter
293
- eth_message_sent_filter = self .eth_message_transmitter .events .MessageSent .createFilter (fromBlock = "0x0" )
295
+ eth_message_sent_filter = self .eth_message_transmitter .events .MessageSent .create_filter (fromBlock = "0x0" )
294
296
eth_message_bytes = eth_message_sent_filter .get_new_entries ()[0 ]['args' ]['message' ]
295
- eth_signed_message_bytes = self . w3 . eth . account . signHash (Web3 .keccak (eth_message_bytes ), keys [ "attester" ] ).signature
297
+ eth_signed_message_bytes = attester_account . signHash (Web3 .keccak (eth_message_bytes )).signature
296
298
297
299
# receiveMessage with avax_message_transmitter to avax_token_messenger_user
298
300
self .send_transaction (self .avax_message_transmitter .functions .receiveMessage (eth_message_bytes , eth_signed_message_bytes ), "avax_token_messenger_user" )
0 commit comments