Skip to content

Latest commit

 

History

History
771 lines (537 loc) · 33.2 KB

CHANGES.md

File metadata and controls

771 lines (537 loc) · 33.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

3.7.0 2024-10-09

Additions

  • Added support of CANCUN hardfork by @mrLSD. (#926)
  • Added support of EIP-3607 by @mrLSD. (#930)
  • Removed restrictions from funding XCC sub-accounts by @birchmd. (#931)

Changes

  • Made some EVM gas costs optimisations by @mrLSD. (#934)
  • Refactored the gas charge logic form EVM exit reasons by @mrLSD. (#935)
  • Updated some dependencies and rust-toolchain by @mrLSD. (#936)
  • Removed unused bytes_to_hex function by @dwiekawki. (#942)
  • Added building of actual version of the near-sandbox in the scheduled CI job by @aleksuss (#950)

Fixes

  • Removed duplicated test task in the README.md by @dwiekawki. (#943)
  • Fixed some typos in the README.md and Cargo.toml by @DemoYeti. (#945) (#946)
  • Fixed exceeded prepaid gas error in the mirror_erc20_token transaction by @aleksuss (#951)
  • Modified hardhat.config.js to support contract verification by @spilin (#958)q

3.6.4 2024-07-22

Additions

  • Added a possibility to provide amount of gas for the state_migration callback in the upgrade transaction by @aleksuss. (#937)

3.6.3 2024-04-16

Additions

  • Added a possibility to pause FT transfers for the internal eth connector by @karim-en. (#922)

3.6.2 2024-03-27

Additions

  • Added a new view transaction ft_balances_of for getting balances for multiple accounts by @karim-en. (#905)

Changes

  • The ft_resolve_transfer callback doesn't require running the contract to finish the ft_transfer_call correctly by @aleksuss. (#906)
  • Borsh has been bumped to 1.3 what allows to get rid of additional feature borsh-compat by @aleksuss. (#907)
  • The ExecutionProfile has been extended with logs for tests by @mrLSD. (#910)
  • The interface of the engine standalone storage has been extended with a couple of methods for allowing set/get arbitrary data outside the crate by @aleksuss. (#913)

Fixes

3.6.1 2024-02-15

Changes

  • Improved the format of a panic message by extending it with nonces from an account and a transaction by @aleksuss. (#898)

3.6.0 2024-02-06

Fixes

Changes

  • CI was updated by changing self-hosted runner to the GitHub heavy by @aleksuss. (#881)
  • Removed a logic of fee calculation in the eth-connector by @karim-en. (#882)
  • Version of the rust nightly was updated to 2023-12-15 by @RomanHodulak. (#885)

3.5.0 2023-12-06

Additions

  • Added a new transaction upgrade which allows upgrading the contract and invoking the state_migration callback with one call by @aleksuss. (#878)

Fixes

  • Updated the logic of upgrading XCC router which works properly on both mainnet and testnet by @birchmd. (#877)

3.4.0 2023-11-28

Additions

  • Added a possibility to pass initialize arguments in json format to the new transaction by @aleksuss. (#871)
  • The SubmitResult was made available for ft_on_transfer transactions in the standalone engine by @birchmd. (#869)
  • The order of producing the exit precompile and XCC promises has been changed to sequential by @birchmd. (#868)

Changes

  • Removed the code hidden behind the feature that isn't used anymore by @joshuajbouw. (#870)
  • The logic of unwrapping wNEAR has been changed to the Bridge's native by @birchmd. (#867)
  • Bumped the near-workspaces to 0.9 by @aleksuss. (#862)

Fixes

  • Add a method for upgrading XCC router contract by @birchmd. (#866)
  • Fixed a potential panic in the ExitToNear precompile by @guidovranken. (#865)
  • Fixed a behaviour when the ft_transfer could occur before the near_withdraw by @birchmd. (#864)
  • Fixed correctness of reproducing the NEAR runtime random value in the standalone engine by @birchmd. (#863)

3.3.1 2023-10-26

Fixes

  • The smart contract owner whose account id is not the same as the contract account id can set ERC-20 metadata by @aleksuss. (#858)

3.3.0 2023-10-23

Changes

  • Changed the logic of cost calculation in Silo mode. Specifically, the fixed cost has been replaced with a fixed amount of gas per transaction by @aleksuss. (#854)

  • near-workspaces-rs has been updated to 0.8.0 by @aleksuss. (#855)

3.2.0 2023-10-17

Changes

  • Changed structure SetEthConnectorContractAccountArgs for setting eth connector account. It was extended with additional field: withdraw_serialize_type for defining serialization type for withdraw arguments by @aleksuss. (#834)
  • Updated rocksdb up to 0.21.0 by @aleksuss. (#840)

Additions

  • Added a possibility of mirroring deployed ERC-20 contracts in the main Aurora contract in Silo mode by @aleksuss. (#845)
  • Allow to initialize hashchain directly with the new method by @birchmd. (#846)
  • Added a silo logic which allows to set fixed gas costs per transaction by @aleksuss. (#746)
  • Added a new type of transaction which allows to add full access key into account of the smart contract by @aleksuss. (#847)

3.1.0 2023-09-25

Additions

  • Added the possibility to use native NEAR instead of wNEAR on Aurora by @karim-en. (#750)
  • Added hashchain integration by @birchmd. (#831)
  • Added functions for setting and getting metadata of ERC-20 contracts deployed with deploy_erc20_token transaction by @aleksuss. (#837)

3.0.0 2023-08-28

Fixes

  • Updated SputnikVM dependency with bugfix in the returndatacopy implementation and a performance improvement in accessing EVM memory by @birchmd. (#826)

Changes

  • BREAKING: engine-standalone-storage no longer automatically writes to the DB when consume_message is called. It is up to downstream users of the library to commit the diff (after doing any validation for correctness) by @birchmd. (#825)

Additions

  • New crate for the so-called "hashchain" implementation. It will enable verification of Aurora blocks by light clients in the future by @birchmd. (#816)

2.10.2 2023-08-10

Changes

  • Added a view transaction factory_get_wnear_address for returning address for the wNEAR ERC-20 contract by @aleksuss. (#807)

Fixes

  • Fixed a bug where standalone engine can crash on tracing transactions with too large contract deployment by @birchmd. (#817)
  • Fixed a bug and performance improvements with unusual exponents in the engine-modexp crate by @guidovranken. (#814)

2.10.1 2023-07-27

Fixes

  • Updated sputnikvm dependency with bugfix in the shanghai implementation @mandreyel. (#803)

2.10.0 2023-07-20

Changes

  • Enabled Shanghai Ethereum hard fork support by @mandreyel. (#773)
  • Added ability to pause and resume the core functionality of the contract by @Casuso. (#779)
  • Added function call keys to be used with relayers by @aleksuss. (#792)

2.9.3 2023-07-19

Changes

  • It is now possible for anyone to call the contract method deploy_upgrade by @joshuajbouw. (#794)

2.9.2 2023-06-22

Fixes

2.9.1 2023-05-11

Changes

  • Removed unused state variable bridge_prover_id by @birchmd. (#749)
  • modexp has been improved to be greatly faster than before by @birchmd. (#757)

Fixes

  • Fixed an issue where the owner could call new multiple times by [@lempire123]. (#733)
  • Fixed an issue with deploy_upgrade where the upgrade index isn't cleared by [@lempire123]. (#741)

2.9.0 2023-04-05

Added

  • Enabled XCC for mainnet release by @birchmd. (#694)
  • Added set_owner contract method which sets the owner of the contract by @hskang9. (#690)
  • New variant of submit function submit_with_args which accepts additional arguments along with the transaction such as the max gas price a user is ready to pay by @aleksuss. (#696)
  • Added the ability to create and fund XCC sub-accounts from external NEAR accounts by @birchmd. (#735)

Changes

  • Replaced rjson with serde_json by @aleksuss. (#677)
  • Changed owner intended contract methods to now require owner or the contract itself by @hskang9. (#676)

Fixes

  • Fixed nonce incorrectly being incremented on an out of fund failure by @joshuajbouw. (#671)
  • Fixed a check in promise results before executing cross contract calls (XCC) callbacks by @birchmd. (#693)
  • Fixed a reachable panic in receive_erc20_tokens by @0x3bfc. (#709)
  • Fixed a lack of minimum size checks when instantiating a new EthGas object by [@lempire123]. (#722)
  • Fixed a lack of division by 0 checks in EthGas::Div() by [@lempire123]. (#718)
  • Fixed the validation of the return of exports:storage_remove by @0x3bfc. (#712)
  • Fixed missing account validations of NEAR account IDs by @0x3bfc. (#703)
  • Fixed a reachable panic in the exitToNear and exitToEthereum precompiles if the input amount is greater than 1^128 when cast from a U256 to u128 by @0x3bfc. (#681)
  • Fixed a reachable panic in modExp due to arithmetic overflow by @0x3bfc. (#688)
  • Fixed the ability attaching values to Aurora specific precompiles, this no longer is possible, by @0x3bfc. (#714)
  • Fixed a return error if an ecrecover signature length is not exactly 65 by @0x3bfc. (#717)
  • Fixed size checks on input array passed to exitToNear and exitToEthereum precompiles by @0x3bfc. (#684)
  • Fixed missing gas costs in exitToNear and exitToEthereum precompiles by [@lempire123]. (#687)
  • Fixed a reachable panic due to out of memory in the modExp precompile by @0x3bfc. (#689)
  • Fixed an assurance that the sender_id has a balance greater than the amount in ft_transfer_call by @0x3bfc. (#708)
  • Fixed returning 0x when a length cannot be cast as usize instead of returning an error in the modExp precompile by @birchmd. (#737)
  • Miscellaneous minor fixes by @0x3bfc. (#738)

[2.8.1] 2022-12-07

[2.8.1] 2022-12-07

Changes

  • Performance improvement (approximately 5% reduction in NEAR gas usage) by @birchmd. (#645)

Fixes

2.8.0 2022-11-15

Added

  • New functions pause_precompiles and resume_precompiles to allow pausing/unpausing the exit precompiles on Aurora by @RomanHodulak. (#588)
  • Reproducible build in Docker by @RomanHodulak. (#633)

Fixes

  • Update to latest SputnikVM by @birchmd (fixes some security issues including a potential call stack overflow and incorrect is_static indicator in exit precompiles). (#628)
  • Minor fixes for the XCC functionality by @birchmd. (#610 #616 #622)
  • Fix bn256 regression by @joshuajbouw. (#637)

2.7.0 2022-08-19

Added

  • Get promise results precompile at address on testnet 0x0a3540f79be10ef14890e87c1a0040a68cc6af71 by @birchmd. (#575)
  • Cross-contract calls to NEAR contracts are now available for testnet by @birchmd and @mfornet. (#560)

Changes

Fixes

  • Fixed an issue where a transaction can panic on an empty input by @birchmd. (#573)
  • Return the correct value while using the get_bridge_prover method by @birchmd. (#581)

2.6.1 2022-06-23

Fixes

2.6.0 2022-06-08

Added

  • A precompile at the address 0x536822d27de53629ef1f84c60555689e9488609f was created to expose the prepaid gas from the NEAR host function by @birchmd. (#479)

Changes

  • A better implementation of caching was added to reduce the overall gas costs of storage reads resulting in roughly a 15% - 18% reduction of gas costs by @birchmd. (#488)

Fixes

  • If the v byte of secp256k1 is incorrect, it now returns correctly an empty vector by @RomanHodulak. (#513)
  • Original ETH transactions which do not contain a Chain ID are allowed again to allow for use of EIP-1820 by @joshuajbouw. (#520)
  • Ecrecover didn't reject r, s values larger than curve order by @RomanHodulak. (#515)
  • The predecessor account ID was failing in the view method by @birchmd. (#477)
  • Ecrecover was incorrectly setting the NEAR ecrecover malleability flag by @birchmd and @joshuajbouw. (#474)

2.5.3 2022-04-27

Fixes

2.5.2 2022-03-22

Removed

  • New Aurora-only precompiles removed since they do not work in NEAR view calls. This will need to be fixed and they will be re-added to a future release.

2.5.1 - 2022-03-16

Fixes

  • Fix for bug in checking address exists introduced in the v2.5.0 release by @birchmd. (#469)

Added

  • New Aurora-only precompiles for checking the current and predecessor NEAR account IDs by @birchmd. (#462)

2.5.0 - 2022-03-09

Changes

Fixes

  • Bug fix for the behaviour of transactions to the zero address by @birchmd. (#458)

2.4.0 - 2022-02-16

Changes

  • Performance improvements by @birchmd and @matklad; the engine should now consume much less NEAR gas: (#427) (#438) (#439) (#445) (#446)
  • Security improvement: only Engine contract owner can use the deploy_upgrade method by @birchmd. (#410)
  • Bug fix: Engine now returns the error message in the case of a revert during an EVM contract deploy, previously it would always return an address (even when the deploy failed) by @birchmd. (#424)
  • Security improvement: Engine will no longer accept EVM transactions without a chain ID as part of their signature by @birchmd. This should have no impact on users as all modern Ethereum tooling includes the chain ID. (#432)
  • Improvements to code quality by @mrLSD: (#386) (#387)
  • Improvements and additions to internal tests and benchmarks by @birchmd: (#408) (#415) (#429)

2.3.0 - 2021-12-10

Added

Changes

  • The gas limit for deposit and ft_on_transfer were changed as they were not attaching enough gas, as changed by @mrLSD. (#389)

Fixes

  • There was an issue with the original storage not actually being stored. Unfortunately, previous transactions can't be updated with this change. This has been fixed by @birchmd. (#390)
  • Call arguments were intended to have a value attached to them to make it equivalent to an ETH call. This was fixed in a backwards compatible manner by @andrcmdr, as reported by @birchmd. (#351 #309)

Removed

  • Betanet support was dropped and will no longer be supported by @joshuajbouw. (#388)

2.2.0 - 2021-11-09

Added

  • Depositing ETH from Ethereum to Aurora now allows an 0x prefix on the recipient address by @joshuajbouw. (#337)

2.1.0 - 2021-11-04

Fixed

2.0.2 - 2021-11-01

Added

Fixed

  • Show full address in logging transaction sender on submit by @birchmd. (#321)

2.0.1 - 2021-11-01

Added

2.0.0 - 2021-10-27

Added

  • Public method for computing Aurora blockhash at a given height by @birchmd. (#303)

Changed

  • EVM logs returned in SubmitResult include the address the log originates from by @birchmd. (#299)
    • Note: this is a breaking change in the SubmitResult binary format.

Fixed

  • Precompile bug fixes by @birchmd. (#305, #306)
  • Update to latest rust-blockchain/evm version (fixes bug in JUMPI) EVM opcode by @birchmd. (#316)

1.7.0 - 2021-10-13

Changes

  • Add EVM events for exit precompiles by @birchmd

1.6.4 - 2021-09-29

Changes

  • Fix JSON formatting in ft_metadata method by @birchmd.
  • Fix a bug in block.timestamp (units should be seconds) by @birchmd.

1.6.3 - 2021-09-14

Changes

  • Revert the ERC-20 admin address changes for the time being by @joshuajbouw.

1.6.2 - 2021-09-13

Changes

  • Change the ERC-20 admin address to have a dedicated account by @sept-en.
  • Fix precompile promises that were broken in rust-blockchain/evm by @joshuajbouw and @birchmd.
  • Fix the return format of ft_balance_of by @joshuajbouw.

Removed

  • Remove Testnet balancing balance_evm_and_nep141 by @birchmd.

1.6.1 - 2021-08-23

Breaking changes

  • Update the view call to correctly return the Borsh serialization of TransactionStatus. Previously, it returned a string with the result of the transaction by name.

  • Change the ft_balance_of result as previously it returned a non-JSON string value 0. This has been fixed to return "0".

1.6.0 - 2021-08-13

Breaking changes

  • Change the transaction status of submit as running out of gas, funds, or being out-of-the-offset are not fatal errors but failed executions.

The submit call altered the SubmitResult object to the following format:

enum TransactionStatus {
    Succeed(Vec<u8>),
    Revert(Vec<u8>),
    OutOfGas,
    OutOfFund,
    OutOfOffset,
    CallTooDeep,
}

struct ResultLog {
    topics: Vec<[u8; 32]>,
    data: Vec<u8>,
}

struct SubmitResult {
    status: TransactionStatus, // above
    gas_used: u64,
    logs: Vec<ResultLog>,
}

1.5.0 - 2021-07-30

1.4.3 - 2021-07-08

1.4.2 - 2021-06-25

1.4.1 - 2021-06-23

1.4.0 - 2021-06-18

1.3.0 - 2021-06-17

1.2.0 - 2021-06-05

1.1.0 - 2021-05-28

1.0.0 - 2021-05-12