-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Hedera int with TXM fixes & config (#14129)
* re-changes on top of develop * Docs update * changeset * merged the error tests & Config fix * Apply suggestions from code review Co-authored-by: Jordan Krage <[email protected]> * added newly found error * formatting * formatting * updated docs * Updating config to run with multiple RPCs * bump seth to v1.2.2 * updated configs --------- Co-authored-by: Jordan Krage <[email protected]> Co-authored-by: davidcauchi <[email protected]>
- Loading branch information
1 parent
ec585d4
commit 85a8d09
Showing
6 changed files
with
289 additions
and
1 deletion.
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 |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
"chainlink": patch | ||
--- | ||
|
||
#added Hedera configs |
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
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 |
---|---|---|
|
@@ -46,6 +46,7 @@ func Test_Eth_Errors(t *testing.T) { | |
{"call failed: OldNonce, Current nonce: 22, nonce of rejected tx: 17", true, "Nethermind"}, | ||
{"nonce too low. allowed nonce range: 427 - 447, actual: 426", true, "zkSync"}, | ||
{"client error nonce too low", true, "tomlConfig"}, | ||
{"[Request ID: 2e952947-ffad-408b-aed9-35f3ed152001] Nonce too low. Provided nonce: 15, current nonce: 15", true, "hedera"}, | ||
} | ||
|
||
for _, test := range tests { | ||
|
@@ -67,6 +68,7 @@ func Test_Eth_Errors(t *testing.T) { | |
{"nonce too high", true, "Erigon"}, | ||
{"nonce too high. allowed nonce range: 427 - 477, actual: 527", true, "zkSync"}, | ||
{"client error nonce too high", true, "tomlConfig"}, | ||
{"[Request ID: 3ec591b4-9396-49f4-a03f-06c415a7cc6a] Nonce too high. Provided nonce: 16, current nonce: 15", true, "hedera"}, | ||
} | ||
|
||
for _, test := range tests { | ||
|
@@ -170,6 +172,7 @@ func Test_Eth_Errors(t *testing.T) { | |
{"virtual machine entered unexpected state. please contact developers and provide transaction details that caused this error. Error description: The operator included transaction with an unacceptable gas price", true, "zkSync"}, | ||
{"client error terminally underpriced", true, "tomlConfig"}, | ||
{"gas price less than block base fee", true, "aStar"}, | ||
{"[Request ID: e4d09e44-19a4-4eb7-babe-270db4c2ebc9] Gas price '830000000000' is below configured minimum gas price '950000000000'", true, "hedera"}, | ||
} | ||
|
||
for _, test := range tests { | ||
|
@@ -219,6 +222,8 @@ func Test_Eth_Errors(t *testing.T) { | |
{"client error insufficient eth", true, "tomlConfig"}, | ||
{"transaction would cause overdraft", true, "Geth"}, | ||
{"failed to forward tx to sequencer, please try again. Error message: 'insufficient funds for gas * price + value'", true, "Mantle"}, | ||
{"[Request ID: 9dd78806-58c8-4e6d-89a8-a60962abe705] Error invoking RPC: transaction [email protected] failed precheck with status INSUFFICIENT_PAYER_BALANCE", true, "hedera"}, | ||
{"[Request ID: 6198d2a3-590f-4724-aae5-69fecead0c49] Insufficient funds for transfer", true, "hedera"}, | ||
} | ||
for _, test := range tests { | ||
err = evmclient.NewSendErrorS(test.message) | ||
|
@@ -235,6 +240,7 @@ func Test_Eth_Errors(t *testing.T) { | |
{"i/o timeout", true, "Arbitrum"}, | ||
{"network is unreachable", true, "Arbitrum"}, | ||
{"client error service unavailable", true, "tomlConfig"}, | ||
{"[Request ID: 825608a8-fd8a-4b5b-aea7-92999509306d] Error invoking RPC: [Request ID: 825608a8-fd8a-4b5b-aea7-92999509306d] Transaction execution returns a null value for transaction", true, "hedera"}, | ||
} | ||
for _, test := range tests { | ||
err = evmclient.NewSendErrorS(test.message) | ||
|
@@ -409,6 +415,7 @@ func Test_Eth_Errors_Fatal(t *testing.T) { | |
{"failed to forward tx to sequencer, please try again. Error message: 'invalid sender'", true, "Mantle"}, | ||
|
||
{"client error fatal", true, "tomlConfig"}, | ||
{"[Request ID: d9711488-4c1e-4af2-bc1f-7969913d7b60] Error invoking RPC: transaction [email protected] failed precheck with status INVALID_SIGNATURE", true, "hedera"}, | ||
{"invalid chain id for signer", true, "Treasure"}, | ||
} | ||
|
||
|
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,31 @@ | ||
ChainID = '295' | ||
ChainType = 'hedera' | ||
# Considering the 3-5 (6 including a buffer) seconds of finality and 2 seconds block production | ||
# We set the depth to 6/2 = 3 blocks, setting to 10 for safety | ||
FinalityDepth = 10 | ||
# Hedera has high TPS, so polling less often | ||
LogPollInterval = '10s' | ||
MinIncomingConfirmations = 1 | ||
|
||
[BalanceMonitor] | ||
Enabled = true | ||
|
||
[GasEstimator] | ||
Mode = 'SuggestedPrice' | ||
# Since Hedera dont have mempool and there's no way for a node to front run or a user to bribe a node to submit the transaction earlier than it's consensus timestamp, | ||
# But they have automated congesting pricing throttling which would mean at high sustained level the gasPrice itself could be increased to prevent malicious behaviour. | ||
# Disabling the Bumpthreshold as TXM now implicity handles the bumping after checking on-chain nonce & re-broadcast for Hedera chain type | ||
BumpThreshold = 0 | ||
BumpMin = '10 gwei' | ||
BumpPercent = 20 | ||
|
||
[Transactions] | ||
# To hit throttling you'd need to maintain 15 m gas /sec over a prolonged period of time. | ||
# Because Hedera's block times are every 2 secs it's less less likely to happen as compared to other chains | ||
# Setting this to little higher even though Hedera has High TPS, We have seen 10-12s to get the trasaction mined & 20-25s incase of failures | ||
# Accounting for Node syncs & avoid re-sending txns before fetching the receipt, setting to 2m | ||
ResendAfterThreshold = '2m' | ||
|
||
|
||
[NodePool] | ||
SyncThreshold = 10 |
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,31 @@ | ||
ChainID = '296' | ||
ChainType = 'hedera' | ||
# Considering the 3-5 (6 including a buffer) seconds of finality and 2 seconds block production | ||
# We set the depth to 6/2 = 3 blocks, setting to 10 for safety | ||
FinalityDepth = 10 | ||
# Hedera has high TPS, so polling less often | ||
LogPollInterval = '10s' | ||
MinIncomingConfirmations = 1 | ||
|
||
[BalanceMonitor] | ||
Enabled = true | ||
|
||
[GasEstimator] | ||
Mode = 'SuggestedPrice' | ||
# Since Hedera dont have mempool and there's no way for a node to front run or a user to bribe a node to submit the transaction earlier than it's consensus timestamp, | ||
# But they have automated congesting pricing throttling which would mean at high sustained level the gasPrice itself could be increased to prevent malicious behaviour. | ||
# Disabling the Bumpthreshold as TXM now implicity handles the bumping after checking on-chain nonce & re-broadcast for Hedera chain type | ||
BumpThreshold = 0 | ||
BumpMin = '10 gwei' | ||
BumpPercent = 20 | ||
|
||
[Transactions] | ||
# To hit throttling you'd need to maintain 15 m gas /sec over a prolonged period of time. | ||
# Because Hedera's block times are every 2 secs it's less less likely to happen as compared to other chains | ||
# Setting this to little higher even though Hedera has High TPS, We have seen 10-12s to get the trasaction mined & 20-25s incase of failures | ||
# Accounting for Node syncs & avoid re-sending txns before fetching the receipt, setting to 2m | ||
ResendAfterThreshold = '2m' | ||
|
||
|
||
[NodePool] | ||
SyncThreshold = 10 |
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