@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
339 lines (338 loc) • 10.3 kB
text/typescript
export const BtcRelayAbi = [
{
"type": "impl",
"name": "BtcRelayImpl",
"interface_name": "btc_relay::IBtcRelay"
},
{
"type": "struct",
"name": "btc_relay::structs::blockheader::BlockHeader",
"members": [
{
"name": "reversed_version",
"type": "core::integer::u32"
},
{
"name": "previous_blockhash",
"type": "[core::integer::u32; 8]"
},
{
"name": "merkle_root",
"type": "[core::integer::u32; 8]"
},
{
"name": "reversed_timestamp",
"type": "core::integer::u32"
},
{
"name": "nbits",
"type": "core::integer::u32"
},
{
"name": "nonce",
"type": "core::integer::u32"
}
]
},
{
"type": "struct",
"name": "core::array::Span::<btc_relay::structs::blockheader::BlockHeader>",
"members": [
{
"name": "snapshot",
"type": "@core::array::Array::<btc_relay::structs::blockheader::BlockHeader>"
}
]
},
{
"type": "struct",
"name": "core::integer::u256",
"members": [
{
"name": "low",
"type": "core::integer::u128"
},
{
"name": "high",
"type": "core::integer::u128"
}
]
},
{
"type": "struct",
"name": "btc_relay::structs::stored_blockheader::StoredBlockHeader",
"members": [
{
"name": "blockheader",
"type": "btc_relay::structs::blockheader::BlockHeader"
},
{
"name": "block_hash",
"type": "[core::integer::u32; 8]"
},
{
"name": "chain_work",
"type": "core::integer::u256"
},
{
"name": "block_height",
"type": "core::integer::u32"
},
{
"name": "last_diff_adjustment",
"type": "core::integer::u32"
},
{
"name": "prev_block_timestamps",
"type": "[core::integer::u32; 10]"
}
]
},
{
"type": "interface",
"name": "btc_relay::IBtcRelay",
"items": [
{
"type": "function",
"name": "submit_main_blockheaders",
"inputs": [
{
"name": "block_headers",
"type": "core::array::Span::<btc_relay::structs::blockheader::BlockHeader>"
},
{
"name": "stored_header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader"
}
],
"outputs": [],
"state_mutability": "external"
},
{
"type": "function",
"name": "submit_short_fork_blockheaders",
"inputs": [
{
"name": "block_headers",
"type": "core::array::Span::<btc_relay::structs::blockheader::BlockHeader>"
},
{
"name": "stored_header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader"
}
],
"outputs": [],
"state_mutability": "external"
},
{
"type": "function",
"name": "submit_fork_blockheaders",
"inputs": [
{
"name": "fork_id",
"type": "core::felt252"
},
{
"name": "block_headers",
"type": "core::array::Span::<btc_relay::structs::blockheader::BlockHeader>"
},
{
"name": "stored_header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader"
}
],
"outputs": [],
"state_mutability": "external"
}
]
},
{
"type": "impl",
"name": "BtcRelayReadOnlyImpl",
"interface_name": "btc_relay::IBtcRelayReadOnly"
},
{
"type": "interface",
"name": "btc_relay::IBtcRelayReadOnly",
"items": [
{
"type": "function",
"name": "get_chainwork",
"inputs": [],
"outputs": [
{
"type": "core::integer::u256"
}
],
"state_mutability": "view"
},
{
"type": "function",
"name": "get_blockheight",
"inputs": [],
"outputs": [
{
"type": "core::integer::u32"
}
],
"state_mutability": "view"
},
{
"type": "function",
"name": "verify_blockheader",
"inputs": [
{
"name": "stored_header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader"
}
],
"outputs": [
{
"type": "core::integer::u32"
}
],
"state_mutability": "view"
},
{
"type": "function",
"name": "get_commit_hash",
"inputs": [
{
"name": "height",
"type": "core::integer::u32"
}
],
"outputs": [
{
"type": "core::felt252"
}
],
"state_mutability": "view"
},
{
"type": "function",
"name": "get_tip_commit_hash",
"inputs": [],
"outputs": [
{
"type": "core::felt252"
}
],
"state_mutability": "view"
}
]
},
{
"type": "constructor",
"name": "constructor",
"inputs": [
{
"name": "stored_header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader"
}
]
},
{
"type": "event",
"name": "btc_relay::events::StoreHeader",
"kind": "struct",
"members": [
{
"name": "commit_hash",
"type": "core::felt252",
"kind": "key"
},
{
"name": "block_hash_poseidon",
"type": "core::felt252",
"kind": "key"
},
{
"name": "header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader",
"kind": "data"
}
]
},
{
"type": "event",
"name": "btc_relay::events::StoreForkHeader",
"kind": "struct",
"members": [
{
"name": "commit_hash",
"type": "core::felt252",
"kind": "key"
},
{
"name": "block_hash_poseidon",
"type": "core::felt252",
"kind": "key"
},
{
"name": "fork_id",
"type": "core::felt252",
"kind": "key"
},
{
"name": "header",
"type": "btc_relay::structs::stored_blockheader::StoredBlockHeader",
"kind": "data"
}
]
},
{
"type": "event",
"name": "btc_relay::events::ChainReorg",
"kind": "struct",
"members": [
{
"name": "fork_submitter",
"type": "core::starknet::contract_address::ContractAddress",
"kind": "key"
},
{
"name": "fork_id",
"type": "core::felt252",
"kind": "key"
},
{
"name": "tip_block_hash_poseidon",
"type": "core::felt252",
"kind": "key"
},
{
"name": "tip_commit_hash",
"type": "core::felt252",
"kind": "key"
},
{
"name": "start_height",
"type": "core::felt252",
"kind": "data"
}
]
},
{
"type": "event",
"name": "btc_relay::BtcRelay::Event",
"kind": "enum",
"variants": [
{
"name": "StoreHeader",
"type": "btc_relay::events::StoreHeader",
"kind": "nested"
},
{
"name": "StoreForkHeader",
"type": "btc_relay::events::StoreForkHeader",
"kind": "nested"
},
{
"name": "ChainReorg",
"type": "btc_relay::events::ChainReorg",
"kind": "nested"
}
]
}
] as const;