diff --git a/.github/workflows/snaefell-ui.yml b/.github/workflows/snaefell-ui.yml index ab659c5335..43d378d8da 100644 --- a/.github/workflows/snaefell-ui.yml +++ b/.github/workflows/snaefell-ui.yml @@ -21,7 +21,7 @@ jobs: environment: "preview" flags: "" secrets: - vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID_TAIKOON_UI_MAINNET }} + vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID_SNAEFELL_UI_MAINNET }} vercel_org_id: ${{ secrets.VERCEL_ORG_ID }} vercel_token: ${{ secrets.VERCEL_TOKEN }} @@ -33,6 +33,6 @@ jobs: environment: "production" flags: "--prod" secrets: - vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID_TAIKOON_UI_MAINNET }} + vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID_SNAEFELL_UI_MAINNET }} vercel_org_id: ${{ secrets.VERCEL_ORG_ID }} vercel_token: ${{ secrets.VERCEL_TOKEN }} diff --git a/README.md b/README.md index 713fcd1ba6..24413da7ef 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,6 @@ If you find a bug or have a feature request, please [open an issue](https://gith ## Contributing -> [!WARNING] -> Please refrain from submitting typo/comment-only pull requests with the expectation of receiving TKO airdrops. - Check out [CONTRIBUTING.md](./CONTRIBUTING.md) for details on how to contribute. You can also check out our grants cycle at [grants.taiko.xyz](https://grants.taiko.xyz). ## Getting support diff --git a/packages/protocol/deployments/mainnet-contract-logs-L1.md b/packages/protocol/deployments/mainnet-contract-logs-L1.md index b6465b288c..627d844598 100644 --- a/packages/protocol/deployments/mainnet-contract-logs-L1.md +++ b/packages/protocol/deployments/mainnet-contract-logs-L1.md @@ -8,6 +8,7 @@ #### shared_address_manager +- ens: `sam.based.taiko.eth` - proxy: `0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa` - impl: `0xF1cA1F1A068468E1dcF90dA6add185467de80943` - owner: `admin.taiko.eth` @@ -48,6 +49,7 @@ #### signal_service +- ens: `signals.based.taiko.eth` - proxy: `0x9e0a24964e5397B566c1ed39258e21aB5E35C77C` - impl: `0xB11Cd7bA46a12F238b4Ad831f6F296262C1e652d` - owner: `admin.taiko.eth` @@ -58,6 +60,7 @@ #### bridge +- ens: `bridge.based.taiko.eth` - proxy: `0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC` - impl: `0xc71CC3B0a47149878fad337fb2ca54E546A645ba` - owner: `admin.taiko.eth` @@ -66,6 +69,7 @@ - admin.taiko.eth accepted the ownership @tx`0x0ed114fee6de4e3e2206cea44e6632ec0c4588f73648d98d8df5dc0183b07885` - upgraded from `0x91d593d34f2E1904cDCe3D5290a74563F87bCF6f` to `0x4A1091c2fb37D9C4a661c2384Ff539d94CCF853D` @commit`b90b932` @tx`0x416560cd96dc75ccffebe889e8d1ab3e08b33f814dc4a2bf7c6f9555071d1f6f` - upgraded from `0x4A1091c2fb37D9C4a661c2384Ff539d94CCF853D` to `0xc71CC3B0a47149878fad337fb2ca54E546A645ba` @commit`b955e0e` @tx`0x5a60c5815947a199cc84e1bc75539e01a202597b20c1f87bd9d02f8be6453abd` + - called `selfDelegate` for Taiko Token @tx`0x740c255322873b3feb62ad1de71b51417053787328eae3aa84557c953463d55f` #### quota_manager @@ -84,6 +88,7 @@ #### erc20_vault +- ens: `v20.based.taiko.eth` - proxy: `0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab` - impl: `0xC722d9f3f8D60288589F7f67a9CFAd34d3B9bf8E` - owner: `admin.taiko.eth` @@ -93,6 +98,7 @@ #### erc721_vault +- ens: `v721.based.taiko.eth` - proxy: `0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa` - impl: `0x41A7BDD153a5AfFb10Ed1AD3D6a4e5ad001495FA` - owner: `admin.taiko.eth` @@ -102,6 +108,7 @@ #### erc1155_vault +- ens: `v1155.based.taiko.eth` - proxy: `0xaf145913EA4a56BE22E120ED9C24589659881702` - impl: `0xd90b5fcf8d00d333d107E4Ab7F94c0c0A41CDcfE` - owner: `admin.taiko.eth` @@ -131,6 +138,7 @@ #### rollup_address_manager +- ens: `ram.based.taiko.eth` - proxy: `0x579f40D0BE111b823962043702cabe6Aaa290780` - impl: `0xF1cA1F1A068468E1dcF90dA6add185467de80943` - names: @@ -158,6 +166,7 @@ #### taikoL1 +- ens: `based.taiko.eth` - proxy: `0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a` - impl: `0xe0A5D394878723CEAEC8B993e04756DF1f4B44eF` - owner: `admin.taiko.eth` @@ -195,6 +204,7 @@ #### guardian_prover_minority +- ens: `guardians1.based.taiko.eth` - proxy: `0x579A8d63a2Db646284CBFE31FE5082c9989E985c` - impl: `0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c` - owner: `admin.taiko.eth` @@ -217,6 +227,7 @@ #### guardian_prover +- ens: `guardians.based.taiko.eth` - proxy: `0xE3D777143Ea25A6E031d1e921F396750885f43aC` - impl: `0x468F6A9C0ad2e9C8370687D2844A9e70fE942d5c` - owner: `admin.taiko.eth` @@ -281,8 +292,8 @@ ### labprovers.taiko.eth -- proxy: `0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9` - ens: `labprovers.taiko.eth` +- proxy: `0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9` - impl: `0x34f2B21107AfE3584949c184A1E6236FFDAC4f6F` - enabled provers: - `0x000000629FBCf27A347d1AEbA658435230D74a5f` diff --git a/packages/protocol/deployments/mainnet-transfer-logs-L1.md b/packages/protocol/deployments/mainnet-transfer-logs-L1.md index 3b82cae2db..90e51fe11c 100644 --- a/packages/protocol/deployments/mainnet-transfer-logs-L1.md +++ b/packages/protocol/deployments/mainnet-transfer-logs-L1.md @@ -8,10 +8,6 @@ - bridge watchdog: `0x00000291ab79c55dc4fcd97dfba4880df4b93624` - bridge L1 relayer: `0x0000001539d3a970c979ac67a8836a359ce4a1fc` -## TODO: - -- [ ] Daniel transfer 200 ETH to L1 bridge `0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC` on Ethereum - ## Logs #### tx`0x9ede1da0bb372fbaa210bb1847172888b30e8a3cc68c9d868ec066ca3301f480` @@ -34,3 +30,7 @@ - `0x1602958A85494cd9C3e0D6672BA0eE42b95B4200` - `0x5CfEb9a72256B1b49dc2C98b1b7b99d172D50B68` - `0x1DB8Ac9f19AbdD60A6418383BfA56A4450aa80C6` + +#### tx`0x60ae1133f660b531c253251228dfa034ce9a5ea2ae9c000abdcc6aca85237c65` + +- daniel sent 200ETH to L1 bridge contract `0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC` diff --git a/packages/taiko-client/cmd/flags/prover.go b/packages/taiko-client/cmd/flags/prover.go index 10efcbad89..0917306131 100644 --- a/packages/taiko-client/cmd/flags/prover.go +++ b/packages/taiko-client/cmd/flags/prover.go @@ -228,6 +228,7 @@ var ProverFlags = MergeFlags(CommonFlags, []cli.Flag{ L1BeaconEndpoint, L2WSEndpoint, L2HTTPEndpoint, + ProverSetAddress, RaikoHostEndpoint, RaikoL1Endpoint, RaikoL1BeaconEndpoint, diff --git a/packages/taiko-client/integration_test/deploy_l1_contract.sh b/packages/taiko-client/integration_test/deploy_l1_contract.sh index 2fd8ccfc34..71e635df46 100755 --- a/packages/taiko-client/integration_test/deploy_l1_contract.sh +++ b/packages/taiko-client/integration_test/deploy_l1_contract.sh @@ -13,4 +13,5 @@ cd ../protocol && -vvvvv \ --evm-version cancun \ --private-key "$PRIVATE_KEY" \ - --block-gas-limit 100000000 + --block-gas-limit 100000000 \ + --legacy diff --git a/packages/taiko-client/prover/server/api.go b/packages/taiko-client/prover/server/api.go index e50884e022..62c0c81a93 100644 --- a/packages/taiko-client/prover/server/api.go +++ b/packages/taiko-client/prover/server/api.go @@ -108,6 +108,12 @@ func (s *ProverServer) CreateAssignment(c echo.Context) error { "currentUsedCapacity", len(s.proofSubmissionCh), ) + // If the prover set address is set, use it as the prover address. + prover := s.proverAddress + if s.proverSetAddress != rpc.ZeroAddress { + prover = s.proverSetAddress + } + // 1. Check if the request body is valid. if req.BlobHash == (common.Hash{}) { log.Warn("Empty blob hash", "prover", s.proverAddress) @@ -119,7 +125,7 @@ func (s *ProverServer) CreateAssignment(c echo.Context) error { } // 2. Check if the prover has the required minimum on-chain ETH and Taiko token balance. - ok, err := s.checkMinEthAndToken(c.Request().Context()) + ok, err := s.checkMinEthAndToken(c.Request().Context(), prover) if err != nil { log.Error("Failed to check prover's ETH and Taiko token balance", "error", err) return echo.NewHTTPError(http.StatusInternalServerError, err) @@ -208,12 +214,6 @@ func (s *ProverServer) CreateAssignment(c echo.Context) error { return echo.NewHTTPError(http.StatusUnprocessableEntity, err) } - // If the prover set address is set, use it as the prover address. - prover := s.proverAddress - if s.proverSetAddress != rpc.ZeroAddress { - prover = s.proverSetAddress - } - encoded, err := encoding.EncodeProverAssignmentPayload( s.protocolConfigs.ChainId, s.taikoL1Address, @@ -246,35 +246,37 @@ func (s *ProverServer) CreateAssignment(c echo.Context) error { }) } -// checkMinEthAndToken checks if the prover has the required minimum on-chain ETH and Taiko token balance. -func (s *ProverServer) checkMinEthAndToken(ctx context.Context) (bool, error) { +// checkMinEthAndToken checks if the prover has the required minimum on-chain Taiko token balance. +func (s *ProverServer) checkMinEthAndToken(ctx context.Context, proverAddress common.Address) (bool, error) { ctx, cancel := context.WithTimeout(ctx, rpcTimeout) defer cancel() - // 1. Check prover's ETH balance. - ethBalance, err := s.rpc.L1.BalanceAt(ctx, s.proverAddress, nil) - if err != nil { - return false, err - } - - log.Info( - "Prover's ETH balance", - "balance", utils.WeiToEther(ethBalance), - "address", s.proverAddress.Hex(), - ) + // 1. Check prover's ETH balance, if it's using proverSet. + if proverAddress == s.proverAddress { + ethBalance, err := s.rpc.L1.BalanceAt(ctx, proverAddress, nil) + if err != nil { + return false, err + } - if ethBalance.Cmp(s.minEthBalance) <= 0 { - log.Warn( - "Prover does not have required minimum on-chain ETH balance", - "providedProver", s.proverAddress.Hex(), - "ethBalance", utils.WeiToEther(ethBalance), - "minEthBalance", utils.WeiToEther(s.minEthBalance), + log.Info( + "Prover's ETH balance", + "balance", utils.WeiToEther(ethBalance), + "address", proverAddress, ) - return false, nil + + if ethBalance.Cmp(s.minEthBalance) <= 0 { + log.Warn( + "Prover does not have required minimum on-chain ETH balance", + "providedProver", proverAddress, + "ethBalance", utils.WeiToEther(ethBalance), + "minEthBalance", utils.WeiToEther(s.minEthBalance), + ) + return false, nil + } } // 2. Check prover's Taiko token balance. - balance, err := s.rpc.TaikoToken.BalanceOf(&bind.CallOpts{Context: ctx}, s.proverAddress) + balance, err := s.rpc.TaikoToken.BalanceOf(&bind.CallOpts{Context: ctx}, proverAddress) if err != nil { return false, err } @@ -282,13 +284,13 @@ func (s *ProverServer) checkMinEthAndToken(ctx context.Context) (bool, error) { log.Info( "Prover's Taiko token balance", "balance", utils.WeiToEther(balance), - "address", s.proverAddress.Hex(), + "address", proverAddress, ) if balance.Cmp(s.minTaikoTokenBalance) <= 0 { log.Warn( "Prover does not have required on-chain Taiko token balance", - "providedProver", s.proverAddress.Hex(), + "providedProver", proverAddress, "taikoTokenBalance", utils.WeiToEther(balance), "minTaikoTokenBalance", utils.WeiToEther(s.minTaikoTokenBalance), )