Releases: near/near-workspaces-rs
near-workspaces-v0.8.0
- [breaking] renamed crate to near-workspaces to avoid confusion with Cargo workspaces; imports should now use
near_workspaces
instead of justworkspaces
(#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
, andFromStr
forPublicKey
- 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
forSecretKey
. - more docs were added to both
SecretKey
andPublicKey
. - Impl
Display
,FromStr
,TryFrom<u8>
forKeyType
.
- Impl
- Added
TryFrom<near_sdk::PublicKey>
forworkspaces::PublicKey
- Added
KeyType::len
andPublicKey::try_from_bytes
- Added
- 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
andPatchTransaction
that provide builders for patching accounts, keys, code, and state. - Added
AccountDetails
andAccountDetailsPatch
which hold the state of the patch.
- Added
- 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
andChunk
fields (#243) - support manually supplied validator key (#274)
Changed
Transaction::transact_async
no longer has a lifetime parameter to make it easier to use- Improved error message on calling a json on a void function
- Removed serde-arbitrary-precision feature in examples
Fixed
- improve error msg on calling
json
on void function (#286) - fix typos (#280)
- Run
neard
onlocalhost
instead of0.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
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
view_*
asynchronous builders have been added which provides being able to query from a specific block hash or block height{CallTransaction, Transaction}::transact_async
for performing transactions without directly having to wait for it complete it on chainview_chunk
added for querying into chunk related info on the network.- Adds
Chunk
andChunkHeader
type to reference specific chunk info.
- Adds
Error::{simple, message, custom}
are now public and usable for custom errors
Changed
- Apart of the changes from adding
view_*
async builders, we have a couple breaking changes to theview_*
functions:{Account, Contract, Worker}::view_state
movedprefix
parameter into builder. i.e.worker.view_state("account_id", Some(prefix)).await?; // is now worker.view_state("account_id") .prefix(prefix) .await?; // if prefix was `None`, then simply delete the None argument.
view
function changed to be a builder, and no longer take inargs
as a parameter. It instead has been moved to the builder side.- Changed
Worker::view_latest_block
toWorker::view_block
as the default behavior is equivalent. operations::Function
type no longer takes a lifetime parameter.operations::CallTransaction
type takes one less lifetime parameter.
Worker::call
signature changed to be more in line withview_*
async builders. It will now return a builder like{Account, Contract}::call
- This
call
no longer acceptsContract
since that was not as accessible. Instead aInMemorySigner
is now required to sign transactions (which can be retrieved from{Account, Contract}::signer
orInMemorySigner::{from_secret_key, from_file}
). {Account, Contract}::signer
now exposed.
- This
Fixed
- Changed the docs to reflect proper size of of rate limits on near.org RPC
- Cached nonces now are per account-id and public-key instead of just public-key
- this didn't matter if only one KeyPair was being used per account, but could be problematic when there were multiple KeyPairs per account utilizing the same nonces.
- Error message context wasn't being exposed properly by sandbox, so this fixed it
0.6.1
0.6.0
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 toValueOrReceiptId::Value(Value)
: #208Value
type offers convenient APIs likeraw_bytes
,json
, andborsh
like one would find from aExecutionFinalResult
.
- 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.
- Note, the RNG for
Fixed
0.5.0
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 bytransact()
: #150- Added
ExecutionFinalResult
,ExecutionResult
,ExecutionSuccess
andExecutionFailure
types - Added
into_result()
to easily handle#[must_use] ExecutionFinalResult
- Added
unwrap()
to not care about Err variant inExecutionResult
s
- Added
Changed
- Renamed CallExecution* types: #150
- Renamed
CallExecution`` to
Execution` - Renamed
CallExecutionDetails
toExecutionFinalResult
- Renamed
args_json
andargs_borsh
no longer returnResult
s and are deferred till later whentransact()
ed: #149- API changes from removing
worker
parameter from function calls: #181Account::from_file
function signature change, requiring a&worker
to be passed in.workspaces::prelude::*
import no longer necessary, where we no longer able to importworkspaces::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
- Removed
- No longer require
worker
to be passed in for each transaction: #181
Fixed
0.4.1
This patch release is to fix tests that would fail on macOS non-deterministically
Added
- Derive
Eq
onAccountDetails
type: https://github.com/near/workspaces-rs/pull/177/files
Fixed
- Fix macOS non-deterministic overflow error when starting up sandbox: #179
0.4.0
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 forAccount
/Contract
, andDebug
forWorker
: #167ExecutionOutcome::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
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
- Raw bytes API similar to
json
/borsh
calls: https://github.com/near/workspaces-rs/pull/133/files - Expose
types
module and addedSecretKey
creation: #139
Fixed
0.3.0
This release includes upping the sandbox version to include the new weighted gas protocol change from near/nearcore#6285
Added
- Added betanet support #116
Changed
- Updated default sandbox version to
97c0410de519ecaca369aaee26f0ca5eb9e7de06
commit of nearcore to include 1.26 protocol changes #134