Skip to content

ScriptHash ShortAddress EthAddress 之间关系

Miles Zhang edited this page May 26, 2022 · 3 revisions
  1. 一个 account 上链后会传有一个唯一的 account_id 和对应的 script_hash
  2. short address 是 script hash 的前 20bytes
  3. eth_address 是 layer2 account 的 script 中的 args 的最后 20bytes, 前面是roll_up_hash
  4. 目前由于特殊原因,合约是用的 short_address 来作为eth_address 使用的,所以合约的eth_address 其实是没有用的,然后user 类型的账户是用的eth_address
  5. udt 在 erc20 转让的时候,to_account_id 是合约的id,然后input 解析出来的接收地址其实是short_address, 需要转成eth_address
account id: 520
account_script_hash: 0x47872353d23904ddace99e2d14f6589c08cd47780d0e4f6c680d09c2e6d83c3a
account_short_address: 0x47872353d23904ddace99e2d14f6589c08cd4778
rollup_script_hash: 0x40d73f0d3c561fcaae330eabc030d8d96a9d0af36d0c5114883658a350cb9e3b
account script: 
  script: %{
    "args" => "0x40d73f0d3c561fcaae330eabc030d8d96a9d0af36d0c5114883658a350cb9e3b" <> "519d1f63343358c5e0cbf07c3710fc8e36cb5a83",
    "code_hash" => "0x1563080d175bf8ddd44a48e850cecf0c0b4575835756eb5ffd53ad830931b9f9",
    "hash_type" => "type"
  }
eth_address: 0x519d1f63343358c5e0cbf07c3710fc8e36cb5a83

v1.1 之后 short_address 已经移除, 从而EOA user 和 Contract user 都使用 eth_address 来作为唯一地址

Clone this wiki locally