-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(website): init smart contracts docs (#390)
- Loading branch information
dave | d1onys1us
authored
Dec 8, 2022
1 parent
1f63367
commit c895430
Showing
21 changed files
with
1,270 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,7 +18,3 @@ | |
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Documentation drafts | ||
drafts | ||
smart-contracts |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"label": "Introduction", | ||
"collapsed": false, | ||
"link": { | ||
"type": "generated-index" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
sidebar_position: 1 | ||
--- | ||
|
||
# Quickstart | ||
|
||
Welcome to Taiko! 🥁 | ||
|
||
## Learn about Taiko | ||
|
||
Here are the best places to learn about Taiko. | ||
|
||
### Overview | ||
|
||
- [Introduction to Taiko](https://mirror.xyz/labs.taiko.eth/oRy3ZZ_4-6IEQcuLCMMlxvdH6E-T3_H7UwYVzGDsgf4) | ||
- [The Type 1 ZK-EVM](https://mirror.xyz/labs.taiko.eth/w7NSKDeKfJoEy0p89I9feixKfdK-20JgWF9HZzxfeBo) | ||
- [Whitepaper](https://taikoxyz.github.io/taiko-mono/taiko-whitepaper.pdf) | ||
- [Contract documentation](/docs/category/smart-contracts/) | ||
- [Frequently Asked Questions (FAQ)](/faq/) | ||
|
||
### Follow us | ||
|
||
- [Blog](https://mirror.xyz/labs.taiko.eth) | ||
- [Discord](https://discord.gg/taikoxyz) | ||
- [GitHub](https://github.com/taikoxyz/) | ||
- [Reddit](https://www.reddit.com/r/taiko_xyz/) | ||
- [Twitter](https://twitter.com/taikoxyz) |
263 changes: 263 additions & 0 deletions
263
packages/website/docs/reference/smart-contracts/L1/TaikoL1.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,263 @@ | ||
## TaikoL1 | ||
|
||
### state | ||
|
||
```solidity | ||
struct LibData.State state | ||
``` | ||
|
||
### tentative | ||
|
||
```solidity | ||
struct LibData.TentativeState tentative | ||
``` | ||
|
||
### \_\_gap | ||
|
||
```solidity | ||
uint256[50] __gap | ||
``` | ||
|
||
### init | ||
|
||
```solidity | ||
function init(address _addressManager, bytes32 _genesisBlockHash) external | ||
``` | ||
|
||
### commitBlock | ||
|
||
```solidity | ||
function commitBlock(uint64 commitSlot, bytes32 commitHash) external | ||
``` | ||
|
||
Write a _commit hash_ so a few blocks later a L2 block can be proposed | ||
such that `calculateCommitHash(meta.beneficiary, meta.txListHash)` equals | ||
to this commit hash. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ---------- | ------- | --------------------------------------------------------------------------- | | ||
| commitSlot | uint64 | A slot to save this commit. Slot 0 will always be reset to zero for refund. | | ||
| commitHash | bytes32 | Calculated with: `calculateCommitHash(beneficiary, txListHash)`. | | ||
|
||
### proposeBlock | ||
|
||
```solidity | ||
function proposeBlock(bytes[] inputs) external | ||
``` | ||
|
||
Propose a Taiko L2 block. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| inputs | bytes[] | A list of data input: - inputs[0] is abi-encoded BlockMetadata that the actual L2 block header must satisfy. Note the following fields in the provided meta object must be zeros -- their actual values will be provisioned by Ethereum. - id - l1Height - l1Hash - mixHash - timestamp - inputs[1] is a list of transactions in this block, encoded with RLP. Note, in the corresponding L2 block an _anchor transaction_ will be the first transaction in the block -- if there are n transactions in `txList`, then there will be up to n+1 transactions in the L2 block. | | ||
|
||
### proveBlock | ||
|
||
```solidity | ||
function proveBlock(uint256 blockId, bytes[] inputs) external | ||
``` | ||
|
||
Prove a block is valid with a zero-knowledge proof, a transaction | ||
merkel proof, and a receipt merkel proof. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| blockId | uint256 | The index of the block to prove. This is also used to select the right implementation version. | | ||
| inputs | bytes[] | A list of data input: - inputs[0] is an abi-encoded object with various information regarding the block to be proven and the actual proofs. - inputs[1] is the actual anchor transaction in this L2 block. Note that the anchor transaction is always the first transaction in the block. - inputs[2] is the receipt of the anchor transaction. | | ||
|
||
### proveBlockInvalid | ||
|
||
```solidity | ||
function proveBlockInvalid(uint256 blockId, bytes[] inputs) external | ||
``` | ||
|
||
Prove a block is invalid with a zero-knowledge proof and a receipt | ||
merkel proof. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| blockId | uint256 | The index of the block to prove. This is also used to select the right implementation version. | | ||
| inputs | bytes[] | A list of data input: - inputs[0] An Evidence object with various information regarding the block to be proven and the actual proofs. - inputs[1] The target block to be proven invalid. - inputs[2] The receipt for the `invalidBlock` transaction on L2. Note that the `invalidBlock` transaction is supposed to be the only transaction in the L2 block. | | ||
|
||
### verifyBlocks | ||
|
||
```solidity | ||
function verifyBlocks(uint256 maxBlocks) external | ||
``` | ||
|
||
Verify up to N blocks. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| --------- | ------- | ------------------------------- | | ||
| maxBlocks | uint256 | Max number of blocks to verify. | | ||
|
||
### enableWhitelisting | ||
|
||
```solidity | ||
function enableWhitelisting(bool whitelistProposers, bool whitelistProvers) public | ||
``` | ||
|
||
Enable or disable proposer and prover whitelisting | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------------------ | ---- | ------------------------------------- | | ||
| whitelistProposers | bool | True to enable proposer whitelisting. | | ||
| whitelistProvers | bool | True to enable prover whitelisting. | | ||
|
||
### whitelistProposer | ||
|
||
```solidity | ||
function whitelistProposer(address proposer, bool whitelisted) public | ||
``` | ||
|
||
Add or remove a proposer from the whitelist. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ----------- | ------- | ------------------------------------ | | ||
| proposer | address | The proposer to be added or removed. | | ||
| whitelisted | bool | True to add; remove otherwise. | | ||
|
||
### whitelistProver | ||
|
||
```solidity | ||
function whitelistProver(address prover, bool whitelisted) public | ||
``` | ||
|
||
Add or remove a prover from the whitelist. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ----------- | ------- | ---------------------------------- | | ||
| prover | address | The prover to be added or removed. | | ||
| whitelisted | bool | True to add; remove otherwise. | | ||
|
||
### halt | ||
|
||
```solidity | ||
function halt(bool toHalt) public | ||
``` | ||
|
||
Halt or resume the chain. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------ | ---- | ------------------------------ | | ||
| toHalt | bool | True to halt, false to resume. | | ||
|
||
### isProposerWhitelisted | ||
|
||
```solidity | ||
function isProposerWhitelisted(address proposer) public view returns (bool) | ||
``` | ||
|
||
Check whether a proposer is whitelisted. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| -------- | ------- | ------------- | | ||
| proposer | address | The proposer. | | ||
|
||
#### Return Values | ||
|
||
| Name | Type | Description | | ||
| ---- | ---- | ----------------------------------------------------- | | ||
| [0] | bool | True if the proposer is whitelisted, false otherwise. | | ||
|
||
### isProverWhitelisted | ||
|
||
```solidity | ||
function isProverWhitelisted(address prover) public view returns (bool) | ||
``` | ||
|
||
Check whether a prover is whitelisted. | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
| ------ | ------- | ----------- | | ||
| prover | address | The prover. | | ||
|
||
#### Return Values | ||
|
||
| Name | Type | Description | | ||
| ---- | ---- | --------------------------------------------------- | | ||
| [0] | bool | True if the prover is whitelisted, false otherwise. | | ||
|
||
### isHalted | ||
|
||
```solidity | ||
function isHalted() public view returns (bool) | ||
``` | ||
|
||
Check if the L1 is halted. | ||
|
||
#### Return Values | ||
|
||
| Name | Type | Description | | ||
| ---- | ---- | -------------------------------- | | ||
| [0] | bool | True if halted, false otherwise. | | ||
|
||
### isCommitValid | ||
|
||
```solidity | ||
function isCommitValid(uint256 commitSlot, uint256 commitHeight, bytes32 commitHash) public view returns (bool) | ||
``` | ||
|
||
### getProposedBlock | ||
|
||
```solidity | ||
function getProposedBlock(uint256 id) public view returns (struct LibData.ProposedBlock) | ||
``` | ||
|
||
### getSyncedHeader | ||
|
||
```solidity | ||
function getSyncedHeader(uint256 number) public view returns (bytes32) | ||
``` | ||
|
||
### getLatestSyncedHeader | ||
|
||
```solidity | ||
function getLatestSyncedHeader() public view returns (bytes32) | ||
``` | ||
|
||
### getStateVariables | ||
|
||
```solidity | ||
function getStateVariables() public view returns (uint64, uint64, uint64, uint64) | ||
``` | ||
|
||
### signWithGoldenTouch | ||
|
||
```solidity | ||
function signWithGoldenTouch(bytes32 hash, uint8 k) public view returns (uint8 v, uint256 r, uint256 s) | ||
``` | ||
|
||
### getBlockProvers | ||
|
||
```solidity | ||
function getBlockProvers(uint256 id, bytes32 parentHash) public view returns (address[]) | ||
``` | ||
|
||
### getConstants | ||
|
||
```solidity | ||
function getConstants() public pure returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) | ||
``` |
Oops, something went wrong.