starknet官方做了自己的跨链桥StarkGate bridge,主要目的是从主网ETH跨链ERC20代币到starknet 网络。
- 用户调用L1的deposit函数,以转账金额和Starknet上接受地址为参数,L2定序器可能会等待足够的L1确认。L2的存款状态为NOT_RECEIVED。
- 一旦L2定序器收到足够区块确认,L2存款状态变为RECEIVED,在Starknet上调用handle_deposit函数触发存款。定序器在处理存款后,将状态变为ACCEPTED_ON_L2。
- Starknet的证明者证明有效后,会将该状态提交到L1。一旦等待足够区块确认后,L2的状态变为ACCEPTED_ON_L1。
我们知道StarkNet: StarkGate ETH Bridge主网跨链合约地址为:https://etherscan.io/address/0xae0ee0a63a2ce6baeeffe56e7714fb4efe48d419
我们以这一笔交易为例,分析别人是如何跨链的。
https://etherscan.io/tx/0xf9a13306f21df7fec81ec91b23c467445958c8fca303c65f34fb939be47ee647
我们看到地址0x324e221D0C51b8E7eF87345CBEf0db33f9366f67,从ETH主网转移了一笔6.25ETH到starknet主网,目标地址为0x07bdc0355a37da6f59b7d7fecf5474cbf116b66e7d10725ba0c7369a84060f8a
可以在区块浏览器查看该账户的Token Transfers记录
找到处理存款函数handle_deposit那一笔交易记录,如:https://starkscan.co/tx/0x07531b5c47975896254a566aee9aef5a09ccdf3a7716fecbb22ba389c25b7436
找到Track progress with Message Hash,点进去Message Hash:https://starkscan.co/message/0x851ec63c6d1db6805e3218ecb0c155afabb56ad2084cd72927dd009b0462ef93
切换到Message Logs的tab,找到交易类型Type为REGISTERED_ON_L1的交易,从Transaction Hash点击进去。
https://starkscan.co/eth-tx/0xf9a13306f21df7fec81ec91b23c467445958c8fca303c65f34fb939be47ee647
我看到了From的地址就是用户的ETH主网地址:0x324e221D0C51b8E7eF87345CBEf0db33f9366f67。
这样,我们就知道用户整个交易明细了。
内容仅作日常记录之用,不可视作投资建议。