Как разрешить конфликт версий EIP между сетью и клиентом?

Я запустил локальную сеть Hardhat (для тестирования смарт-контрактов), подключился к ней с помощью Nethereum, и когда я пытаюсь запустить любую транзакцию, исключение брошен. Потом поменял сеть на Ganache, но ошибка осталась прежней. Например (код F #):

      open System

type Account = 
    { Address : string
      PrivateKey: string }

[<EntryPoint>]
let main argv =
    
    let accounts =
        [| { Address = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; PrivateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" }
           { Address = "0x70997970c51812dc3a010c7d01b50e0d17dc79c8"; PrivateKey = "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d" } 
           { Address = "0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc"; PrivateKey = "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a" } |]
        |> Seq.map (fun a -> Nethereum.Web3.Accounts.Account(a.PrivateKey))
    
    let client = Seq.head accounts
    
    let web3 = new Nethereum.Web3.Web3(client, "http://localhost:8545")
    web3.Eth.Accounts.SendRequestAsync().Result // This works currectly
    |> Seq.iter (fun a -> printfn "%s" a) // and prints all network addresses
    let tx = web3.Eth.GetEtherTransferService().TransferEtherAndWaitForReceiptAsync("0x70997970c51812dc3a010c7d01b50e0d17dc79c8", 10m).Result // Here throws exception: localhost:8545 ChainId required for TransactionType 0X02 EIP1559)
    let balance = web3.Eth.GetBalance.SendRequestAsync("0x70997970c51812dc3a010c7d01b50e0d17dc79c8").Result
    0

Думаю, мне следует подождать, пока разработчики Nethereum внедрят поддержку EIP-1559, потому что в мире .NET нет альтернатив. Можно ли как-то отключить это требование для транзакций или изменить версию актуального стандарта? Я не нашел подобной функции в документации Hardhat и Ganache, но, может быть, есть сети для разработчиков, у которых есть эта функция?

1 ответ

Решение довольно простое: мне нужно было указать ChainId при создании учетной записи. Для Hardhat это значение 31337.

Другие вопросы по тегам