Skip to content

Commit

Permalink
Merge branch 'main' into ui-lib
Browse files Browse the repository at this point in the history
  • Loading branch information
bearni95 committed May 16, 2024
2 parents 4c97906 + 3dee442 commit 0c33637
Show file tree
Hide file tree
Showing 63 changed files with 988 additions and 824 deletions.
3 changes: 1 addition & 2 deletions .github/workflows/eventindexer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ jobs:
flags: eventindexer

push-eventindexer-docker-image:
# only push docker image on PR merge to main
if: ${{ github.event == 'push' && github.ref == 'refs/heads/main' }}
if: ${{ github.event_name == 'pull_request' }}
name: Build and push docker image
runs-on: [taiko-runner]

Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/guardian-prover-health-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ jobs:
flags: guardian-prover-health-check

push-guardian-prover-health-check-docker-image:
# only push docker image on PR merge to main
if: ${{ github.event == 'push' && github.ref == 'refs/heads/main' }}
if: ${{ github.event_name == 'pull_request' }}
name: Build and push docker image
runs-on: [taiko-runner]

Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/relayer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ jobs:
flags: relayer

push-relayer-docker-image:
# only push docker image on PR merge to main
if: ${{ github.event == 'push' && github.ref == 'refs/heads/main' }}
if: ${{ github.event_name == 'pull_request' }}
name: Build and push docker image
runs-on: [taiko-runner]

Expand Down
5 changes: 3 additions & 2 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"packages/blobstorage": "0.2.0",
"packages/branding": "0.4.0",
"packages/bridge-ui": "2.10.1",
"packages/docs-site": "1.1.0",
"packages/docs-site": "1.3.0",
"packages/eventindexer": "0.13.0",
"packages/fork-diff": "0.5.0",
"packages/guardian-prover-health-check": "0.1.0",
Expand All @@ -11,5 +11,6 @@
"packages/relayer": "0.12.0",
"packages/taiko-client": "0.22.0",
"packages/taikoon": "1.0.0",
"packages/supplementary-contracts": "1.0.0"
"packages/supplementary-contracts": "1.0.0",
"packages/taikoon-ui": "1.0.0"
}
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,20 @@ module github.com/taikoxyz/taiko-mono
go 1.21

require (
github.com/btcsuite/btcd/btcec/v2 v2.3.2
github.com/btcsuite/btcd/btcec/v2 v2.3.3
github.com/buildkite/terminal-to-html/v3 v3.8.0
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/cenkalti/backoff/v4 v4.3.0
github.com/cyberhorsey/errors v0.0.0-20220929234051-087d6d8bb841
github.com/cyberhorsey/webutils v0.0.0-20230314183728-56890c6ddbe7
github.com/davecgh/go-spew v1.1.1
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0
github.com/ethereum-optimism/optimism v1.7.4
github.com/ethereum/go-ethereum v1.13.15
github.com/go-git/go-git/v5 v5.12.0
github.com/go-resty/resty/v2 v2.7.0
github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47
github.com/google/uuid v1.6.0
github.com/holiman/uint256 v1.2.4
github.com/joho/godotenv v1.5.1
github.com/labstack/echo-contrib v0.17.1
github.com/labstack/echo/v4 v4.12.0
Expand All @@ -30,7 +29,7 @@ require (
github.com/pressly/goose/v3 v3.20.0
github.com/prometheus/client_golang v1.19.0
github.com/prysmaticlabs/prysm/v4 v4.2.0
github.com/rabbitmq/amqp091-go v1.9.0
github.com/rabbitmq/amqp091-go v1.10.0
github.com/shopspring/decimal v1.4.0
github.com/stretchr/testify v1.9.0
github.com/swaggo/swag v1.16.3
Expand Down Expand Up @@ -140,6 +139,7 @@ require (
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/herumi/bls-eth-go-binary v0.0.0-20210917013441-d37c07cfda4e // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/holiman/uint256 v1.2.4 // indirect
github.com/huin/goupnp v1.3.0 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
github.com/ipfs/go-cid v0.4.1 // indirect
Expand Down
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ github.com/btcsuite/btcd v0.24.0 h1:gL3uHE/IaFj6fcZSu03SvqPMSx7s/dPzfpG/atRwWdo=
github.com/btcsuite/btcd v0.24.0/go.mod h1:K4IDc1593s8jKXIF7yS7yCTSxrknB9z0STzc2j6XgE4=
github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA=
github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE=
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ensb7o3sC0=
github.com/btcsuite/btcd/btcec/v2 v2.3.3/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A=
github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE=
github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8=
Expand Down Expand Up @@ -255,8 +255,8 @@ github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn
github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
github.com/dgraph-io/ristretto v0.0.4-0.20210318174700-74754f61e018 h1:cNcG4c2n5xanQzp2hMyxDxPYVQmZ91y4WN6fJFlndLo=
github.com/dgraph-io/ristretto v0.0.4-0.20210318174700-74754f61e018/go.mod h1:MIonLggsKgZLUSt414ExgwNtlOL5MuEoAJP514mwGe8=
Expand Down Expand Up @@ -998,8 +998,8 @@ github.com/quic-go/quic-go v0.39.4 h1:PelfiuG7wXEffUT2yceiqz5V6Pc0TA5ruOd1LcmFc1
github.com/quic-go/quic-go v0.39.4/go.mod h1:T09QsDQWjLiQ74ZmacDfqZmhY/NLnw5BC40MANNNZ1Q=
github.com/quic-go/webtransport-go v0.6.0 h1:CvNsKqc4W2HljHJnoT+rMmbRJybShZ0YPFDD3NxaZLY=
github.com/quic-go/webtransport-go v0.6.0/go.mod h1:9KjU4AEBqEQidGHNDkZrb8CAa1abRaosM2yGOyiikEc=
github.com/rabbitmq/amqp091-go v1.9.0 h1:qrQtyzB4H8BQgEuJwhmVQqVHB9O4+MNDJCCAcpc3Aoo=
github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc=
github.com/rabbitmq/amqp091-go v1.10.0 h1:STpn5XsHlHGcecLmMFCtg7mqq0RnD+zFr4uzukfVhBw=
github.com/rabbitmq/amqp091-go v1.10.0/go.mod h1:Hy4jKW5kQART1u+JkDTF9YYOQUHXqMuhrgxOEeS7G4o=
github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk=
github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
Expand Down Expand Up @@ -1225,8 +1225,8 @@ go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE=
go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk=
go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg=
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo=
go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
Expand Down
6 changes: 6 additions & 0 deletions lefthook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
pre-commit:
parallel: true
commands:
bridge-ui:
glob: "packages/bridge-ui/**.{js,ts,css,svelte}"
run: pnpm -F bridge-ui svelte:check && pnpm -F bridge-ui lint:fix && git add {staged_files}
guardian-ui:
glob: "packages/guardian-prover-health-check-ui/**.{js,ts,css,svelte}"
run: pnpm -F guardian-prover-health-check-ui svelte:check && pnpm -F guardian-prover-health-check-ui lint:fix && git add {staged_files}
protocol_sol:
glob: "packages/protocol/**.{sol}"
run: pnpm -F protocol lint:sol && git add {staged_files}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import { ActionButton } from '$components/Button';
import { StepBack } from '$components/Stepper';
import { ReleaseSteps } from './types';
import { INITIAL_STEP, ReleaseSteps } from './types';
const dispatch = createEventDispatcher();
Expand All @@ -16,8 +16,6 @@
export let releasing = false;
export let hideContinueButton: boolean;
const INITIAL_STEP = ReleaseSteps.CHECK;
const getNextStepText = (step: ReleaseSteps) => {
if (step === ReleaseSteps.REVIEW) {
return $t('common.confirm');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
const handleNextStep = () => {
if (activeStep === INITIAL_STEP) {
activeStep = RetrySteps.SELECT;
} else if (activeStep === RetrySteps.SELECT) {
activeStep = RetrySteps.REVIEW;
} else if (activeStep === RetrySteps.REVIEW) {
activeStep = RetrySteps.CONFIRM;
Expand All @@ -49,6 +51,8 @@
}
if (activeStep === RetrySteps.REVIEW) {
activeStep = RetrySteps.SELECT;
} else if (activeStep === RetrySteps.SELECT) {
activeStep = RetrySteps.CHECK;
} else if (activeStep === RetrySteps.CONFIRM) {
activeStep = RetrySteps.REVIEW;
}
Expand Down
43 changes: 24 additions & 19 deletions packages/bridge-ui/src/libs/bridge/checkBridgeQuota.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,30 @@ export const checkBridgeQuota = async ({
log('Skipping quota check for L2 chain');
return true;
}
try {
const quotaManagerAddress = getContractAddressByType({
srcChainId: Number(transaction.destChainId),
destChainId: Number(transaction.srcChainId),
contractType: ContractType.QUOTAMANAGER,
});

const quotaManagerAddress = getContractAddressByType({
srcChainId: Number(transaction.destChainId),
destChainId: Number(transaction.srcChainId),
contractType: ContractType.QUOTAMANAGER,
});

const quota = await readContract(config, {
address: quotaManagerAddress,
abi: quotaManagerAbi,
chainId: Number(transaction.destChainId),
functionName: 'availableQuota',
args: [tokenAddress, 0n],
});

if (amount > quota) {
log('Not enough quota', quota, amount);
return false;
const quota = await readContract(config, {
address: quotaManagerAddress,
abi: quotaManagerAbi,
chainId: Number(transaction.destChainId),
functionName: 'availableQuota',
args: [tokenAddress, 0n],
});

if (amount > quota) {
log('Not enough quota', quota, amount);
return false;
}
log('Quota:', quota, 'Amount:', amount, 'Has enough quota:', amount <= quota);
return true;
} catch (e) {
// If there is an error checking the quota, there is probably no quota configured
log('Error checking quota', e);
return true;
}
log('Quota:', quota, 'Amount:', amount, 'Has enough quota:', amount <= quota);
return true;
};
19 changes: 19 additions & 0 deletions packages/docs-site/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## [1.3.0](https://github.com/taikoxyz/taiko-mono/compare/docs-site-v1.2.0...docs-site-v1.3.0) (2024-05-15)


### Features

* **docs-site:** update docs from old repo ([#17188](https://github.com/taikoxyz/taiko-mono/issues/17188)) ([84ede84](https://github.com/taikoxyz/taiko-mono/commit/84ede84de877928c47de4dc787ee71266be24c1c))

## [1.2.0](https://github.com/taikoxyz/taiko-mono/compare/docs-site-v1.1.0...docs-site-v1.2.0) (2024-05-14)


### Features

* **taikoon:** ui qa checklist ([#16870](https://github.com/taikoxyz/taiko-mono/issues/16870)) ([e965597](https://github.com/taikoxyz/taiko-mono/commit/e96559762d844b042bbf23de878883d3b647671a))


### Reverts

* **repo:** ui qa checklist ([#17174](https://github.com/taikoxyz/taiko-mono/issues/17174)) ([43cb9a2](https://github.com/taikoxyz/taiko-mono/commit/43cb9a2f82ae808fde282154cded508b52dd76b3))

## [1.1.0](https://github.com/taikoxyz/taiko-mono/compare/docs-site-v1.0.0...docs-site-v1.1.0) (2024-05-14)


Expand Down
2 changes: 1 addition & 1 deletion packages/docs-site/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "docs-site",
"type": "module",
"version": "1.1.0",
"version": "1.3.0",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,9 @@ The driver monitors the execution engine's sync progress: If it's unable to make
After the L2 execution engine catches up with the latest verified L2 head, the driver subscribes to `TaikoL1.BlockProposed` events. When a new pending block is proposed, the driver:

1. Gets the corresponding `TaikoL1.proposeBlock` L1 transaction.
2. Decodes the `txList` and block metadata from the transaction's calldata.
3. Checks whether the `txList` is valid based on the rules defined in the Taiko protocol.
2. Decompresses the `txListBytes` from the transaction's calldata (and blobdata if enabled).
3. Decodes the `txList` and block metadata from the decompressed bytes.
4. Checks whether the `txList` is valid based on the rules defined in the Taiko protocol.

If the `txList` is **valid**, the driver:

Expand Down
25 changes: 10 additions & 15 deletions packages/docs-site/src/content/docs/core-concepts/what-is-taiko.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,34 @@ title: What is Taiko?
description: Core concept page for "What is Taiko?".
---

:::note
This page is a living document.
:::
Ethereum is too expensive. We believe in Ethereum's core properties (e.g., censorship-resistant, permissionless, secure). We also believe that rollups should **extend** (not augment) these properties.

The thought process for Taiko is as follows:
Thus, we are building a [based rollup](/core-concepts/based-sequencing) which makes Ethereum cheaper while maintaining its properties:

- Ethereum is too expensive.
- We believe in Ethereum's core properties (e.g., censorship-resistant, permissionless, secure).
- Rollups should extend (not augment) these properties.
- Thus, we are building a [based rollup](/core-concepts/based-sequencing) which makes Ethereum cheaper while maintaining its properties.
- [Based contestable rollup](/core-concepts/contestable-rollups): A configurable rollup to reduce transaction fees on Ethereum.
- [Based booster rollup](/core-concepts/booster-rollups): An innovative approach to **native L1 scaling**.

Taiko is a **fully open source, permissionless, Ethereum-equivalent ZK-Rollup**. Using Taiko feels the exact same as using Ethereum. There are no centralized actors that operate the network; all operations are permissionlessly run by the community.
Taiko is a **fully open source, permissionless, Ethereum-equivalent ZK-Rollup**. Using Taiko feels the same as using Ethereum. There are no centralized actors that operate the network; all operations are permissionlessly run by the community.

## The Taiko protocol

- **Taiko Protocol**: A set of smart contracts deployed on Ethereum which describe the Taiko protocol, a fully open source scaling solution for Ethereum. In the most fundamental sense, this is what Taiko is. Even Taiko's governance itself is written into the protocol contracts.
- **Taiko Protocol**: A set of smart contracts deployed on Ethereum that describe the Taiko protocol, a fully open-source scaling solution for Ethereum. In the most fundamental sense, this is what Taiko is. Even Taiko's governance itself is written into the protocol contracts.

## Organizations

- **Taiko Labs**: A research & development group that works on the Taiko protocol.
- **Taiko Treasury**: A treasury which is funded by the income generated by the Taiko protocol (L2 EIP-1559 congestion MEV).
- **Taiko DAO**: A group of Taiko Token (TKO) holders which have the voting rights to govern various parts of the Taiko Protocol including smart contract upgrades, TKO parameters, and more. The Taiko DAO effectively controls **everything**.
- **Taiko Foundation**: An entity that stewards the growth and development of the Taiko protocol and wider ecosystem. The foundation works solely for, and on behalf of, the Taiko DAO and token holders. Its responsibilities include, but are not limited to, financing of technical developments, ecosystem growth and maintenance, partnerships with service providers, events managements, and much more -- either through grants or other means. The foundation will do so with full transparency to the Taiko community and DAO.
- **Taiko Security Council**: An N-member council of individuals and entities elected by the Taiko DAO to undertake emergency actions on the Taiko protocol, as and when needed. The Security Council's core responsibility is to ensure the safety and soundness of the Taiko protocol, and as such it has the powers to implement upgrades or changes in pursuit of that objective. The Security Council also controls the Guardian Provers within the Taiko protocol.
- **Taiko Community**: Various social groups and accounts run permissionlessly by anyone who desires it. Some examples include the Taiko Discord, Taiko Twitter, etc.
- **Taiko DAO**: A group of Taiko Token (TKO) holders that have the voting rights to govern various parts of the Taiko Protocol including smart contract upgrades, TKO parameters, and more. The Taiko DAO effectively controls **everything**.
- **Taiko Foundation**: An entity that stewards the growth and development of the Taiko protocol and wider ecosystem. The foundation works solely for, and on behalf of, the Taiko DAO and token holders. Its responsibilities include but are not limited to, financing of technical developments, ecosystem growth and maintenance, partnerships with service providers, events management, and much more -- either through grants or other means. The foundation will do so with full transparency to the Taiko community and DAO.
- **Taiko Security Council**: An X-member council of individuals and entities elected by the Taiko DAO to undertake emergency actions on the Taiko protocol, as and when needed. The Security Council's core responsibility is to ensure the safety and soundness of the Taiko protocol, and as such it has the power to implement upgrades or changes in pursuit of that objective. The Security Council also controls the Guardian Provers within the Taiko protocol.
- **Taiko Community**: Various social groups/accounts run permissionlessly by anyone who desires it. Some examples include the Taiko Discord, Taiko Twitter, etc.

## Products operated by Taiko Labs

### Frontends

- [Bridge UI](https://bridge.hekla.taiko.xyz)
- [Blockscout block explorer](https://explorer.hekla.taiko.xyz)
- [Network + Guardian Prover status page](https://status.taiko.xyz)
- [Fork of Uniswap v3 UI](https://swap.hekla.taiko.xyz)
- [Main homepage](https://taiko.xyz) + [this documentation site](https://docs.taiko.xyz)
Expand All @@ -52,7 +47,7 @@ Taiko is a **fully open source, permissionless, Ethereum-equivalent ZK-Rollup**.

- [Rollup contracts owner](/network-reference/addresses#rollup-contracts-owner)

### Open source software
### Open-source software

- [Taiko protocol smart contracts](https://github.com/taikoxyz/taiko-mono)
- [Taiko geth](https://github.com/taikoxyz/taiko-geth)
Expand Down
10 changes: 10 additions & 0 deletions packages/docs-site/src/content/docs/resources/faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ title: FAQs
description: Resource page for listing out FAQs.
---

This page is divided between [General FAQs](#general-faqs) and [Developer FAQs](#developer-faqs).

# General FAQs

## What is Taiko?

Taiko is a fully permissionless and decentralized Ethereum-equivalent ZK-Rollup. This means using Taiko is exactly the same as using Ethereum. Not only does Taiko support all EVM opcodes, but it supports the full JSON-RPC execution client API.
Expand Down Expand Up @@ -38,3 +42,9 @@ Taiko does not have an L2 sequencer, since everyone can become a proposer permis
## How do I get ETH on the Taiko Hekla network?

You can use the official [Taiko bridge](https://bridge.hekla.taiko.xyz/) to send your ETH from the Holesky network to the Taiko Hekla network.

# Developer FAQs

## How can I get the L1 block number from L2

You can check the last synced L1 block height in the TaikoL2 contract [here](/network-reference/addresses#taiko-hekla-contracts).
Loading

0 comments on commit 0c33637

Please sign in to comment.