Releases: FuelLabs/fuels-rs
v0.59.0
What's Changed
- feat: version incompatibility is now a soft warning by @segfault-magnet in #1348
- Bump versions to v0.59.0 by @digorithm in #1350
Full Changelog: v0.58.0...v0.59.0
v0.58.0
What's Changed
- chore(ci): only show failed tests with
nextest
by @hal3e in #1332 - chore: bump
forc
to0.54.0
and re-enablegenerics
tests by @hal3e in #1330 - feature!: make experimental encoding default by @hal3e in #1334
- chore: fix some comments by @sellskin in #1307
- Fix:fix some issues by @miles-six in #1287
- fix: receipt parsing when call is repeated through internal call by @MujkicA in #1337
- chore: improve
b256
tests by @hal3e in #1339 - chore: bump
fuel-core
to0.24.3
by @hal3e in #1345 - Bump versions to v0.58.0 by @digorithm in #1346
New Contributors
- @sellskin made their first contribution in #1307
- @miles-six made their first contribution in #1287
Full Changelog: v0.57.0...v0.58.0
Breaking changes
This release makes the experimental encoding default and adds the legacy_encoding
flag to use the old one.
v0.57.0
What's Changed
- feat: validate predicates using the VM before sending out transaction by @iqdecay in #1286
- chore: bump
rust
to1.76.0
by @hal3e in #1304 - chore: add test for trig never by @MujkicA in #1258
- fix: transaction builder
no_input_to_cover_fees
by @hal3e in #1302 - feat: experimental encoding for contracts, scripts and predicates by @hal3e in #1303
- ci: add typos check by @Br1ght0ne in #1321
- chore: remove broken CI steps by @hal3e in #1322
- chore: bump
forc
to0.52.1
by @hal3e in #1312 - feat!: get base
AssetId
from provider by @hal3e in #1313 - chore: remove deprecation error for
U256
by @hal3e in #1325 - feat!: upgrade fuel-core to 24.2 by @MujkicA in #1319
- Bump versions to v0.57.0 by @digorithm in #1329
Full Changelog: v0.56.0...v0.57.0
v0.55.1
Hotfix for the v0.55.0
.
Full Changelog: v0.55.0...v0.55.1
v0.56.0
What's Changed
- feat!: add support for experimental encoding in logs by @hal3e in #1259
- chore!: remove unused
response
method by @hal3e in #1263 - chore: bump
forc
to0.49.2
by @hal3e in #1268 - chore: refactor
fuel_types
imports by @hal3e in #1273 - chore: bump
forc
to0.50.0
by @hal3e in #1272 - fix!: encoding capacity overflow by @iqdecay in #1249
- chore: seal traits by @MujkicA in #1276
- chore: bump
fuel-core
to0.22.1
by @hal3e in #1280 - refactor:
Error
type by @hal3e in #1270 - chore: bump
forc
to0.51.1
by @hal3e in #1284 - chore: update deprecated functions by @hal3e in #1293
- feat!: add
decode_as_debug_str
toABIDecoder
by @hal3e in #1291 - docs: expand converting types page by @sarahschwartz in #1295
- fix: configurables encoding to have top level u8 and bool single-byte optimizations by @segfault-magnet in #1294
- feat!: update
fuel-core
to0.23.0
by @hal3e in #1292 - Bump versions to 0.56.0 by @digorithm in #1298
Full Changelog: v0.55.0...v0.56.0
Removed unused response method
We've removed response method from ScriptCallHandler
, ContractCallHandler
and MultiContractCallHandler
.
Fix encoding capacity overflow bug
Configurables
structs must be instantiated through a::new(encoder_config)
or::default()
method.Configurables::with_some_string_config(some_string)
methods now return aResult<Configurables>
instead ofConfigurables
.Predicates::encode_data
now returns aResult<UnresolvedBytes>
instead ofUnresolvedBytes
.PredicateEncoder
structs must be instantiated through a::new(encoder_config)
or::default()
method.
New decode_as_debug_str
for the `ABIDecoder
You can now decode straight into a debug string:
let debug_output = ABIDecoder::default().decode_as_debug_str(¶m_type, &[0, 0, 0, 0, 0, 0, 0, 123])?;
This was done so users could use ParamTypes
at runtime to debug logs or return receipts. In addition, users are able to go directly from ProgramABI
and some data to decoded debug.
BREAKING CHANGE: EnumVariants
are now imported through param_types::EnumVariants
Support for fuel-core
0.23.0
TxPolicies
gas_price
is replaced withtip
.dry_run
now returnsTxStatus
. The receipts can be taken withtx_status.take_receipts()
.checked_dry_run
is deleted.TransactionResponse
'sblock_id
is replaced withblock_height
.estimate_transaction_cost
has a new argumentblock_horizon
used to estimate the gas price.
v0.55.0
What's Changed
- refactor!: remove
NetworkInfo
by @hal3e in #1231 - chore: add test for compute_calls_instructions_len by @Br1ght0ne in #1183
- fix: use only base asset amount when calculating fee by @mpoplavkov in #1240
- refactor!: use
submit_and_await_commit
API by @iqdecay in #1187 - chore!: remove duplicate function by @iqdecay in #1243
- fix: prevent overflow while decoding param types by @iqdecay in #1227
- refactor!: signing and the
Signer
trait by @hal3e in #1241 - chore: fixing broken links by @Frierened in #1248
- chore: bump
forc
to0.49.1
by @hal3e in #1251 - fix: remove redundant contract tests by @iqdecay in #1254
- chore: remove hybrid trigger by @MujkicA in #1250
- feat: add conversion from
Address
/ContractId
types toIdentity
by @dmihal in #1252 - Bump versions to 0.55.0 by @digorithm in #1262
- Change publish action by @digorithm in #1264
New Contributors
- @mpoplavkov made their first contribution in #1240
- @Frierened made their first contribution in #1248
- @dmihal made their first contribution in #1252
Full Changelog: v0.54.0...v0.55.0
Breaking changes
Removed NetworkInfo
- Removed
NetworkInfo
and all related functions/methods - Renamed
DryRunner
trait and added trait methods - Removed
ScritpTransactionBuilder::new
andCreateTransactionBuilder::new
- Removed
Provider::new
Use submit_and_await_commit
API
send_transaction_and_await_commit
function now returns a TxStatus
instead of TxId
.
Signing and the Signer
trait
- Removed
sign_message
andsign_transaction
from theSigner
trait - Added
sign
andaddress
methods to theSigner
trait Signer
trait moved dofuels::core::traits:::Signer
Message
,PublicKey
,SecretKey
andSignature
moved tofuels::crypto::
- Replaced
Transaction
'scheck_without_signatures
withcheck
- Renamed
Account
sadd_witnessses
toadd_witnesses
- Removed
Clone
forTransactionBuilder
s
Conversion from Address
/ContractId
types to Identity
It's not a breaking change, just a new cool UX feature. Convert from Address
/Bech32Address
/ContractId
/Bech32ContractId
to Identity
easily.
v0.54.0
What's Changed
- chore: use
forc 0.48
by @hal3e in #1225 - chore: bump
rust
to1.74.0
and update deps by @hal3e in #1226 - docs: configure spell-check by @sarahschwartz in #1224
- test: test
calculate_num_of_elements
by @iqdecay in #1230 - chore!: bump
fuel-core
to0.22
by @hal3e in #1233 - refactor: use receipts from
TransactionStatus
by @hal3e in #1234 - Bump versions to 0.54.0 by @digorithm in #1235
Full Changelog: v0.53.0...v0.54.0
v0.53.0
What's Changed
- fix typos in doc by @hattizai in #1219
- feat: get
TransactionBuilder
from script and contract calls by @hal3e in #1220 - feat!: deprecate
U256
and useu256
by @hal3e in #1217 - Bump versions to 0.53.0 by @digorithm in #1222
New Contributors
Full Changelog: v0.52.0...v0.53.0
Breaking changes
U256
is not supported anymore. If used in sway, the SDK will return a runtime error.
v0.52.0
What's Changed
- feat!: improve transaction builders wrt
TxPolicies
by @hal3e in #1212 - chore: bump
fuel-core
andfuel-vm
by @hal3e in #1214 - Bump versions to 0.52.0 by @digorithm in #1218
Full Changelog: v0.51.0...v0.52.0
Breaking changes
ScriptTransactionBuilder
andCreateTransactionBuilder
do not havewith_maturity
andwith_gas_price
, (with_gas_limit
). They are set through the with_tx_policies method;- Maturity is not set to 0 by default - instead, we use an
Option<u64>
andNone
if it was not set. This saves bytes as it is not serialized ifNone
; WitnessLimit
is set to the size of all witnesses in the builder. If the user usesappend_witnesses
after finalizing the transaction, a new error will be returned that helps the user set the witness limit manually.
v0.51.0
What's Changed
- refactor: use a single type for transaction status by @iqdecay in #1186
- feat!: represent small values as single bytes by @xunilrj in #1163
- feat!:
beta-5
support by @hal3e in #1200 - feat: add
from_hex_str
forBytes
by @hal3e in #1205 - bug: cannot fetch mint transactions by @segfault-magnet in #1203
- 0.51.0 release by @digorithm in #1206
New Contributors
Full Changelog: v0.50.1...v0.51.0
Breaking changes
TxParameters
are replaced with TxPolicies
The TxParameters
, which were previously used to define transaction parameters, have been replaced with TxPolicies
. This change signifies a shift in how transactions are specified and managed.
GasPrice
and Maturity
fields are optional
In the new system, the GasPrice
and Maturity
fields are no longer mandatory. This offers more flexibility in transaction creation, allowing these fields to be specified only when needed.
TxPolicies
introduced new fields:
WitnessLimit
The WitnessLimit
field in TxPolicies
sets a limit on the maximum size of witnesses in bytes, introducing a new constraint on transaction witnesses.
MaxFee
The MaxFee
field specifies the upper limit for the transaction fee that a user is willing to pay, providing a clear boundary for transaction costs.
ScriptGasLimit
only limits script execution
Previously, ScriptGasLimit
also limited the predicate execution time, but this is no longer the case. It's now solely used for limiting script execution. The MaxFee
policy has been introduced to handle transaction cost limitations, and the GasLimit
field has been removed from the Create
transaction.
New WitnessLimit
impacts max_gas
and max_fee
calculation
The introduction of WitnessLimit
affects the calculation of max_gas
and max_fee
, particularly in Create
transactions where it's the sole factor influencing these values.
Minimal gas charges for transaction ID calculation
Even the minimal gas charge now includes the cost of calculating the transaction ID, adding an additional fee component to every transaction.
Setting the GasPrice
policy is mandatory for each transaction
Every transaction now requires a GasPrice
policy to be set, making it a mandatory element in transaction creation.
Changes in GasLimit
and MAX_GAS_PER_TX
rules
With the removal of the GasLimit
field from the Create
transaction, the max_gas
for any transaction must now be less than or equal to MAX_GAS_PER_TX
. Transactions that do not adhere to this rule will fail.
Transaction rejection conditions
Transactions will be rejected if max_fee
exceeds the specified policies.max_fee
, or if witnessses_size
is greater than the policies.witness_limit
.
get_message_proof
now uses Nonce
The function get_message_proof
has shifted from using the message_id to now utilizing Nonce
, altering its operational mechanism.
Predicates no longer use ChainId
for address calculation
In predicates, the ChainId
is no longer used for calculating addresses, indicating a change in the method of address derivation.
manual_blocks_enabled
replaced with debug
In the local chain configuration, manual_blocks_enabled
has been superseded by the debug
option, reflecting a change in configuration parameters.
fee_checked_from_tx
utilizes FeeParameters
The process of fee checking from transactions (fee_checked_from_tx
) now employs FeeParameters
, indicating a shift in the fee verification approach.
Refactoring of fuel_tx::ConsensusParameters
The fuel_tx::ConsensusParameters
have undergone refactoring, which has implications for their usage and implementation.
Necessity of BuildableTransaction
trait in transaction builder
When building a transaction with a transaction builder, the BuildableTransacion
trait needs to be in scope, highlighting a requirement in the transaction construction process.
Default enabling of utxo_validation
and manual_blocks
For test providers, utxo_validation
and manual_blocks
are now enabled by default, simplifying the setup process for testing environments.
Changes in node configuration: Replacing local_node
with default
The node configuration no longer includes local_node
. Instead, default
is used (e.g., let node_config = Config::default();
), reflecting a change in the configuration approach.