zksync-sdk / zksync2-go

zksync2-go is a geth library adapted to work with the zkSync Era.
Apache License 2.0
87 stars 36 forks source link

failed to EstimateGas: failed to query eth_estimateGas: Failed to submit transaction: cannot estimate gas: The code hash is not known #5

Closed AlexM-dev closed 1 year ago

AlexM-dev commented 1 year ago

I try to do sth like

package main

import (
    "encoding/hex"
    "fmt"
    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/rpc"
    "github.com/zksync-sdk/zksync2-go"
    "log"
)

func main() {
    bytecode := []byte("some bytecode")
    dValue, err := hex.DecodeString("private key")
    if err != nil {
        log.Fatal(err)
    }

    es, err := zksync2.NewEthSignerFromRawPrivateKey(dValue, zksync2.ZkSyncChainIdMainnet)
    if err != nil {
        log.Fatal(err)
    }

    zp, err := zksync2.NewDefaultProvider("https://testnet.era.zksync.dev")
    if err != nil {
        log.Fatal(err)
    }

    w, err := zksync2.NewWallet(es, zp)
    if err != nil {
        log.Fatal(err)
    }

    ethRpc, err := rpc.Dial("https://eth-goerli.public.blastapi.io")
    if err != nil {
        log.Fatal(err)
    }

    ep, err := w.CreateEthereumProvider(ethRpc)
    if err != nil {
        log.Fatal(err)
    }

    _ = ep

    log.Println(len(bytecode) % 32)
    hash, err := w.Deploy(bytecode, nil, nil, nil, nil)
    if err != nil {
        panic(err)
    }
    fmt.Println("Tx hash", hash)

    addr, err := zksync2.ComputeL2Create2Address(
        common.HexToAddress("<deployer_L2_address>"),
        bytecode,
        nil,
        nil,
    )
    if err != nil {
        panic(err)
    }
    fmt.Println("Deployed address", addr.String())
}

And get error "failed to EstimateGas: failed to query eth_estimateGas: Failed to submit transaction: cannot estimate gas: The code hash is not known"

Whats wrong?

Thanks in advise!

VickMellon commented 1 year ago

Try to pull fresh commits from dev branch. Should work now, if bytecode is correct itself.