Closed
Milestone
Mar 17, 2025–Jul 4, 2025
Tezlink: Tezos-compatible ledger
Context
In the previous milestone, we have bootstrapped the development of a Tezos-compatible L2 chain but the blocks were empty and only one RPC (current_level) was implemented. The goal of this milestone is to add a basic, but Tezos-compatible, ledger of tz1 implicit accounts. More concretely, we want to be able to use octez-client to fetch the balance of any tz1 address and to transfer native tokens between accounts.
Getting the balance of any tz1 address
-
configure bootstrap accounts with a default balance -
since the /context/raw/jsonRPC is required by Tzkt, the way we organize the context will likely be observable so we should probably mimic the way data is organized in the L1 context. !17417 (merged) @ArnaudBihan -
handle bootstrap accounts at kernel installation: !17515 (closed)!17558 (closed)!17647 (merged) !17594 (merged) !17710 (merged) @brahima.dibassi -
make the Tezt wrapper install by default the bootstrap accounts defined in Account.Bootstrap.keys: !17594 (merged) @brahima.dibassi
-
-
implement the required RPCs: -
/version: !17356 (merged) @pe.cornilleau , -
/chains/main/blocks/head/protocols: !17392 (merged) @pe.cornilleau , -
/chains/main/blocks/head/context/contracts/<tz1...>/balance: !17489 (merged) !17653 (merged) @pe.cornilleau .
-
-
validate with an integration test using octez-client get balanceon a L2 node: !17536 (merged) @pe.cornilleau .
Add support for Tezlink operations in the tx-queue: @rafoo_
-
Refactor the tx-queue to abstract Ethereum-specific types of transactions and addresses: -
!17998 (merged): move from tx-queue to tx-container all functions called in no worker, -
!17999 (merged): move from tx-queue to tx-container all functions called in evm_context and blueprints_publisher workers, -
!18000 (merged): same for block_producer worker, -
!18001 (merged): move toplevel functions of the tx-queue module to submodules -
!17777 (merged): introduce GADTs to statically keep track of chain family, -
!18322 (merged): abstract Ethereum types, turning tx-queue into a functor, -
!18324 (merged): use different Namemodule to register Etherlink and Tezlink tx-queues
-
-
Define a Tezlink version of the tx-queue: !17697 (merged) -
Define a Tezlink version of the RPC node's forward container: !18349 (merged) -
Plug the Tezlink tx-containers in non-sequencer nodes: !18360 (merged) -
Implement the /injection/operation?chain=mainRPC: !18350 (merged) -
Mock the /chains/main/blocks/head/helpers/preapply/operations?version=1RPC: !18351 (merged) -
Add support for Tezlink in sequencer workers (blueprint publisher and block producer): !18431 (merged) -
End-to-end integration tests: !18440 (merged)
Revealing the public key
-
add a manager(public key) and acounterfields to accounts (including bootstrap ones),-
in kernel, !17631 (merged) @ArnaudBihan -
for bootstrap accounts, !17610 (merged) @brahima.dibassi
-
-
add a notion of operation and operation batch; for now, the only operation is reveal. !17469 (merged) !17565 (merged) @ArnaudBihan -
implement the required RPCs: -
/chains/main/blocks/head/context/contracts/<tz1...>/counter, !17732 (merged) @pe.cornilleau -
/chains/main/blocks/head/context/contracts/<tz1...>/manager_key, !17729 (merged) @pe.cornilleau -
/monitor/bootstrapped, !17919 (merged) @brahima.dibassi -
/chains/main/blocks/head/context/constants, !17165 (merged) @luciano.freitas -
/chains/main/blocks/head~2/hash, !17871 (merged) @brahima.dibassi -
/chains/main/chain_id, !17844 (merged) @brahima.dibassi -
/chains/main/blocks/head/helpers/scripts/simulate_operation, !18020 (merged) @brahima.dibassi -
/chains/main/blocks/head/helpers/preapply/operations?version=1, !18351 (merged) @rafoo_ -
/injection/operation?chain=main, !18350 (merged) @rafoo_ -
/monitor/heads/main!17476 (merged) @luciano.freitas-
/chains/main/blocks/head/header/shellhelps implementingmonitor/heads/main, !17668 (merged) @luciano.freitas
-
-
-
validate with an integration test using octez-client reveal key foron a L2 node, !18440 (merged) @rafoo_
Transfers
-
add a transfer operation, !17891 (merged) @ArnaudBihan -
no new RPC to implement, -
validate with an integration test using octez-client transferon a L2 node, !18440 (merged) @rafoo_
Loading
Loading
Loading
Loading