Skip to content

Latest commit

 

History

History
287 lines (207 loc) · 18 KB

CHANGELOG.md

File metadata and controls

287 lines (207 loc) · 18 KB

Changelog

0.9.0 - 2023-10-29

Added

  • Added API for measuring gas (#284)

Fixed

  • Fixed await during acquired lock in rpc::client::fetch_tx_nonce (#334)

Other

  • [breaking] Migrate to use NearToken instead of raw u128 for balance variables to ensure strict typing (#333)
  • Restrict GasHook type to require RefUnwindSafe and UnwindSafe to avoid breaking release (#323) (#326)
  • remove unwraps (#321)

0.8.0 - 2023-10-04

  • [breaking] renamed crate to near-workspaces to avoid confusion with Cargo workspaces; imports should now use near_workspaces instead of just workspaces (#318)
  • Upgraded to Rust Stable Toolchain. Deprecates requirement of only using rustc-1.69 and lower.

Added

  • Import a couple functions over from near_crypto for PublicKey
    • Impl Ord, PartialOrd, Hash, BorshSerialize, BorshDeserialize, Display, and FromStr for PublicKey
      • NOTE: Borsh bytes format is the same as near-sdk, where it is in the form of [bytes_len, key_type, key_data..]
    • Added PublicKey::{empty, len, key_data}
    • Impl Display for SecretKey.
    • more docs were added to both SecretKey and PublicKey.
    • Impl Display, FromStr, TryFrom<u8> for KeyType.
  • Added TryFrom<near_sdk::PublicKey> for workspaces::PublicKey
    • Added KeyType::len and PublicKey::try_from_bytes
  • Added experimental apis from near-sdk-rs, available under the experimental flag.
    • Methods added are: EXPERIMENTAL_changes_in_block, EXPERIMENTAL_changes, EXPERIMENTAL_genesis_config, EXPERIMENTAL_protocol_config, EXPERIMENTAL_receipt, EXPERIMENTAL_tx_status, EXPERIMENTAL_validators_ordered
  • Added Worker::patch to patch account, keys, code, and state in a generic builder
    • Added Worker::patch and PatchTransaction that provide builders for patching accounts, keys, code, and state.
    • Added AccountDetails and AccountDetailsPatch which hold the state of the patch.
  • Allow to select a specific version of near-sandbox (#311)
  • Enable support for RPCs that require API keys and support for custom networks (#306)
  • expose more Block and Chunk fields (#243)
  • support manually supplied validator key (#274)

Changed

Fixed

  • improve error msg on calling json on void function (#286)
  • fix typos (#280)
  • Run neard on localhost instead of 0.0.0.0 to prevent firewall popups on MacOS (#277)
  • storing credentials (#258)
  • Make call consistent with worker::view (#245)

Other

  • drop async-process in favor of tokio (#316)
  • switch to near-gas crate for Gas where possible (#305)
  • Improved fast_forward docs (#299)
  • Added test for delete_account (#289)
  • Added a test for transfer_near (#290)
  • using url return type (#297)
  • dependencies and removed unused deps (#292)
  • upgrade to stable toolchain (#293)
  • Updated near deps to 0.17 (#283)
  • Use cargo-near to build project (#275)
  • Added network builder for mainnet, testnet, betanet (#221)
  • bump borsh version and other deps (#271)
  • bump sandbox to 0.6.2 (#270)
  • Import some functions over from near_crypto for PublicKey (#265)
  • Added destination account-id for import_contract call (#260)
  • Fix port collision (#257)
  • Removed the lifetime in transact_async (#249)
  • configure sandbox (#251)

Added

Changed

Fixed

Fixed

  • Fixed query variant error when supply invalid function name or arguments: #239

Added

  • Account::view API exposed: #202

Changed

  • Unstable compile_project uses new the workspaces errors: #204
  • ValueOrReceiptId::Value(String) changed to ValueOrReceiptId::Value(Value): #208
    • Value type offers convenient APIs like raw_bytes, json, and borsh like one would find from a ExecutionFinalResult.
  • internal dependencies like near-jsonrpc-client upgraded to 0.4.0 from 0.4.0-beta: #210
    • Note, the RNG for SecretKey::{from_random, from_seed}(KeyType::SECP256K1, ...) has been changed as well, and will produce different keys than before.

Fixed

  • docs.rs now shows unstable feature flag: #198
  • No longer orphaning sandbox processes on early termination of tests: #205
  • Fixed sandbox colliding installs: #211
  • sandbox no longer spamming stats logs: #213

Added

  • Error handling with opaque workspaces::error::Error type: #149
  • Require #[must_use] on the Execution value returned by transact(): #150
    • Added ExecutionFinalResult, ExecutionResult, ExecutionSuccess and ExecutionFailure types
    • Added into_result() to easily handle #[must_use] ExecutionFinalResult
    • Added unwrap() to not care about Err variant in ExecutionResults

Changed

  • Renamed CallExecution* types: #150
    • Renamed CallExecution`` to Execution`
    • Renamed CallExecutionDetails to ExecutionFinalResult
  • args_json and args_borsh no longer return Results and are deferred till later when transact()ed: #149
  • API changes from removing worker parameter from function calls: #181
    • Account::from_file function signature change, requiring a &worker to be passed in.
    • workspaces::prelude::* import no longer necessary, where we no longer able to import workspaces::prelude::DevAccountDeployer directly.

Removed

  • Removed impls from exection result: #150
    • Removed impl<T> From<CallExecution<T>> for Result<T>
    • Removed impl From<FinalExecutionOutcomeView> for CallExecutionDetails
  • No longer require worker to be passed in for each transaction: #181

Fixed

  • Gas estimation issue resolved with latest sandbox node (Aug 29, 2022): #188
  • Fixed parallel tests, where calling into the same contract would require waiting on a previous call: #173

0.4.1 - 2022-08-16

Added

Fixed

  • Fix macOS non-deterministic overflow error when starting up sandbox: #179

0.4.0 - 2022-07-20

Added

  • Mac M1 Support: #169
  • Added Account::secret_key to grab the account's secret key: #144
  • Debug/Clone impls for Account/Contract, and Debug for Worker: #167
  • ExecutionOutcome::tokens_burnt is now available: #168

Fixed

  • internally no longer creating a new RPC client per call: #154
  • upped near dependencies to fix transitive vulnerabilities: #169

Changed

  • Default sandbox version is now using commit hash master/13a66dda709a4148f6395636914dca2a55df1390 (July 18, 2022): #169

0.3.1 - 2022-06-20

Added

Fixed

  • If sandbox gets started multiple times, short circuit it early on: #135
  • Fix short timeouts on connecting to RPC for macos with custom env variable to specify timeout if needed: #143

0.3.0 - 2022-05-10

Added

  • Added betanet support #116

Changed

  • Updated default sandbox version to 97c0410de519ecaca369aaee26f0ca5eb9e7de06 commit of nearcore to include 1.26 protocol changes #134

  • Exposed CallExecutionDetails::raw_bytes API: #133

0.2.1 - 2022-04-12

Added

  • Added more docs to top level or exposed types/functions: #115

Fixed

  • Fix docs.rs builds failing on sandbox install: #115

0.2.0 - 2022-04-05

Added

  • Time-traveling - the ability to go forwards in block height within tests. This allows to test time specific data changing within contracts: #73
  • Credentials created from account/contract creation are now allowed to be stored and specified by users. #98
  • [Unstable] Allow users to compile contract projects within tests without having to manually go through this step. #77
  • Batch transactions or transactions with multiple actions are now possible. #72
  • Sandbox node (nearcore binary) logs are now suppressed and can be re-enabled if desired. #85
  • Results now expose logs, receipts, and transaction outcome values. #70
  • Convenience methods Worker::view_code, Worker::view_latest_block, Worker::view_account, Account::view_account, Contract::view_account, Contract::view_code now available. #82
  • Improve error handling. If a transaction fails, this error will now be apart of the Result return initially. #83
  • Added tracing logging to internal code and examples. #55 and #75
  • Convenient CallExecutionDetails::{is_success, is_failure} for testing outcomes of transactions. #58
  • Added mainnet_archival and testnet_archival, where ref-finance example now uses mainnet_archival. #57 and #94

Changed

  • key type for patch_state now a slice and no longer require StoreKey. #109
  • Reorganized imports internally for better maintainability. #102
  • No longer running into non-deterministic query failures if RPC isn't available, but this is a breaking API. All workspaces::{sandbox, testnet, mainnet} now require .await? at the end. #99
  • TLA trait no longer apart of all networks -- only dev-networks (sandbox, testnet). #101
  • Retry times have now been shorten and should take a maximum of 1 second. #92
  • doc builds on docs.rs has now been fixed. #90
  • patch_state now takes in slices. #80 and #79
  • Make access_key call do optimistic queries which led to better retry times. #60
  • Functions no longer take in owned but referenced AccountIds now. #52

Removed

  • Empty JSON array is no longer a valid default argument supplied to transactions. Recommended to supply empty {} in the case of JSON if all function arguments in the contract are optional types. #84

0.1.1 - 2021-01-24

Changed

  • Fix race condition when installing sandbox and running multiples tests at the same time. #46