Skip to content

Releases: near/near-workspaces-rs

near-workspaces-v0.10.0

25 Jan 08:40
5628eec
Compare
Choose a tag to compare

Other

  • Impl Clone on result Value (#345)
  • Upgraded NEAR crates to 0.20.0 release (#346)
  • dependecy bumps (#338)
  • cleanup internals (#329)
  • use stable sandbox by default (#335)
  • [breaking] Remove interop_sdk feature from defaults (#339)
  • fix typos (#340)

near-workspaces-v0.9.0

30 Oct 19:30
a2337e7
Compare
Choose a tag to compare

Added

  • Require Send + Sync for T in Worker to allow near-workspaces usage in multithreading async runtimes (#328)
  • 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)

near-workspaces-v0.8.0

05 Oct 08:11
2b1ce92
Compare
Choose a tag to compare
  • [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)

0.7.0

30 Nov 23:24
e084e11
Compare
Choose a tag to compare

This release comes with some minor breaking changes, with the main feature here being asynchronous builders for querying data into the chain. Also comes with general fixes for better error reporting that comes from anyhow errors from running sandbox.

Added

Changed

Fixed

0.6.1

30 Nov 23:19
Compare
Choose a tag to compare

Forgot to post this release to GH releases till now, but this release includes one minor fix for error handling.

Fixed

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

0.6.0

07 Oct 05:12
3d9a76a
Compare
Choose a tag to compare

This release contains a couple bug fixes that should alleviate problems like sandbox processes still living after a test if a user kills the test early before termination. Recommended to upgrade to this release at the earliest convenience.

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

0.5.0

01 Sep 22:54
Compare
Choose a tag to compare

This release contains a lot breaking changes, and finally removes the requirement of having to provide worker to each function call when submitting a transaction or view request. For a full list of the breaking changes look below:

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

18 Aug 01:50
Compare
Choose a tag to compare

This patch release is to fix tests that would fail on macOS non-deterministically

Added

Fixed

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

0.4.0

21 Jul 20:44
aed7aa5
Compare
Choose a tag to compare

This release mainly adds support for M1 Macs! For other API changes, look below.

Additionally, there's potentially dependencies that aren't being resolved correctly after this update. Consider doing rm -r ~/.cargo/registry/{cache, src} and cargo clean to resolve this if you end up stumbling there.

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

20 Jun 23:30
d429197
Compare
Choose a tag to compare

Newest patch release contains fixes for RPC timeouts being too short by upping it to 10 seconds. This caused CI services to fail from time to time especially on MacOS related builds. This also adds an env variable to customize this value if needed.

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