Releases: FuelLabs/fuels-ts
v0.94.7
Summary
In this release, we:
- Upgraded
fuel-core
to v0.36.0 - Upgraded
forc
to v0.63.6 and v0.64.0 - Added support for SRC-14
proxy
contracts infuels deploy
- Removed assets from sepolia / testnet network
- Fixed decimals of some assets on fuel network side
- Added flag to indicate whether a connector is external
- Added a banner for users running an outdated
fuels
version - Fixed the usage of
fuel-toolchain.toml
forfuels
templates
Features
- #3190 - Adding support for proxy contracts in
fuels deploy
, by @arboleya - #3016 - Support message types, by @Torres-ssf
- #3201 - Add flag to indicate if connector is external, by @arthurgeron
Fixes
- #3167 - Removed sepolia assets and adjust decimal config, by @LuizAsFight
- #3217 - Calling
prebuild
only if deps are installed, by @Torres-ssf - #3183 -
create fuels
not respecting toolchain file, by @Dhaiwat10 - #3175 - Generate types for
create fuels
users when extracted, by @Dhaiwat10 - #3156 - Add missing receipts properties, by @Torres-ssf
Chores
- #3187 - Upgrade to forc
0.63.6
, by @petertonysmith94 - #3210 - Fix deprecation on Commander method, by @Dhaiwat10
- #3108 - Inform users if their
fuels
version is outdated, by @Dhaiwat10 - #3182 - Upgraded to fuel-core 0.36.0, by @petertonysmith94
- #3216 - Fix exported types, by @danielbate
- #3214 - Upgrading
@fuels/vm-asm
to0.57.1
, by @arboleya - #3215 - Upgrade
[email protected]
, by @danielbate
v0.94.6
Summary
In this release, we:
- Implemented
TransactionUpgrade
andTransactionUpload
- The
provider.url
now returns an authenticated URL - The
Provider
now accepts aheaders
field - Added UI tests to the
create fuels
template app - Fixed coder matching for some namespaced libraries
- Fixed issue with storage slots not being auto-loaded when deploying a contract
- Add Ethereum asset on mainnet to the list of assets (Ethereum network side)
- Deprecated the two network URLs, added asset ID and chain ID for
mainnet
- Fixed transactions failing when using Ethereum and Solana connectors in the
create-fuels
template app - Added new supported assets based on the points program
- Removed
signTransaction
method fromFuelConnectorMethods
enum - The
selectNetwork
connector method now accepts eitherurl
orchainId
or both.
Features
- #3114 - Introduce upload and upgrade transaction request, by @luisburigo
- #3147 -
provider.url
now returns auth url, by @petertonysmith94 - #3104 - Add UI tests to
create fuels
template, by @Dhaiwat10
Fixes
- #3162 - Incorrect coder matching, by @petertonysmith94
- #3134 - Storage slots auto-load from typegen, by @petertonysmith94
Chores
- #3165 - Downgrade ora from
8.1.0
to5.4.1
, by @petertonysmith94 - #3152 - Include Ethereum asset in ETH Mainnet network, by @LuizAsFight
- #3107 - Deprecate network URLs, add asset ID and chain ID for mainnet, by @Dhaiwat10
- #3133 - Bump connectors package version, by @Dhaiwat10
- #3153 - Add new supported assets, by @LuizAsFight
- #3149 - Revert add
signTransaction
toFuelConnectorMethods
enum, by @Torres-ssf - #3160 - Made
selectNetwork
arguments more flexible, by @petertonysmith94 - #3144 - Update block explorer url, by @danielbate
v0.94.5
Summary
In this release, we:
- Reduced number of requests for submitting a transaction
- Fixed squeezed-out transactions not being notified to users
- Fixed an issue where you couldn't call a loader contract via a proxy contract
- Fixed error handling in
Provider
for when a node is offline - Deprecate all receipt coders
- Upgraded
forc
tov0.63.4
- Upgraded
forc
tov0.63.5
Features
Fixes
- #3122 - Loader contract being called via proxy, by @danielbate
- #3116 - Error handling in
Provider
for when a node is offline, by @arthurgeron
Chores
v0.94.4
Summary
In this release, we:
- We now return a deep clone of the transaction request in the static
from
method - Reduced the cost of submitting blob contract deploys where a blob has already been uploaded
- Made
vite
the default template forcreate-fuels
- Mapped the 'not enough coins' error to a readable error message
- Added support for URLs with
BasicAuth
credentials inProvider
- Fixed TX estimation when an
InputMessage
contains data - Deprecate the method
BaseTransactionRequest.fundWithFakeUtxos
- Upgraded
fuel-core
to v0.35.0 - Deprecated the error code
HASHER_LOCKED
- Fixed revert error message assembling
Features
- #3097 - Return deep clone on transaction request
from
method, by @maschad - #3092 - Add block header to responses in block-related queries, by @Torres-ssf
- #3047 - Validate blob IDs against chain in chunk deploys, by @danielbate
- #3048 - Make vite the default
create-fuels
template, by @Dhaiwat10 - #2902 - Map 'not enough coins' error, by @Dhaiwat10
- #3079 - Support basic auth, by @nedsalk
- #3098 - Parse message response from
getMessageByNonce
, by @Torres-ssf
Fixes
- #3091 - Faucet link in
create-fuels
navbar, by @Dhaiwat10 - #3078 - TX estimation when
InputMessage
contains data, by @Torres-ssf - #3103 - Assemble of transaction revert error message, by @Torres-ssf
Chores
- #3083 - Deprecate
BaseTransactionRequest.fundWithFakeUtxos
, by @Torres-ssf - #3052 - Upgrade
[email protected]
, by @maschad - #3075 - Removed redundant crypto functionality, by @petertonysmith94
v0.94.3
Summary
In this release, we:
- Added future-proofing to fail gracefully for different transaction types which may exist later on.
- Added Solana connector to
create-fuels
template app - Added an embedded testnet faucet into the
create-fuels
template app - Made the
create-fuels
template app mobile-friendly - Upgraded to forc
v0.63.3
Features
- #3003 - Added support for unknown txn types, by @maschad
- #3013 - Add missing connectors to
create fuels
template, by @Dhaiwat10 - #3036 - Embed testnet faucet in
create-fuels
template, by @Dhaiwat10 - #3011 - Make
create-fuels
template app responsive, by @Dhaiwat10
Fixes
- #3062 - Remove
u64
fromNumberCoderType
, by @bajpai244 - #3064 -
UtxoIdCoder
output index to beu16
, by @danielbate
Chores
- #3055 - Upgraded forc to
0.63.3
, by @petertonysmith94
v0.94.2
Summary
In this release, we:
- Fixed a potential race condition where the fuel connector may disconnect upon re-render
- Introduced an
init
method for synchronous instantiation of a fuel-connectors object - Upgraded
fuel-core
to v0.34.0
Fixes
- #2930 - Avoid potential race-condition in fuel connectors init, by @maschad
- #3040 - Consistent typegen outputs, by @petertonysmith94
- #3041 - Added missing dependencies for templates, by @petertonysmith94
- #3044 - UI integration tests, by @petertonysmith94
Chores
- #2999 - Upgrade
[email protected]
, by @Torres-ssf - #3012 - Upgrade connectors, by @danielbate
- #3020 - Made
chainConfig
files match testnet configuration, by @Torres-ssf
v0.94.1
Summary
In this release, we:
- Added a Vite template to
create-fuels
- Improved browser compatibility for typegen'd bytecode compression
Features
- #2942 - Add vite template to
create-fuels
, by @Dhaiwat10
Fixes
- #2985 - Made bytecode compression browser compatible, by @petertonysmith94
- #2990 - Stop building
typegen
onpretest
script, by @arboleya
Chores
- #3005 - Make
nextjs
the defaultcreate fuels
template, by @danielbate
v0.94.0
Summary
In this release, we:
- Cached
Message
resources upon transaction submission - Made
typegen
API more straightforward and ergonomic - Reduced required roundtrips & bandwidth for submitting TXs
- Made
ContractFactory.deployAsBlobTx
a non-blocking call - Upgraded
forc
to v0.63.0 & v0.63.1 - Added support for the new ABI spec (#596, #599)
- Improved the bytecode compression for Typegen, making files 40%+ smaller
- Improved the type handling for
()
andOption<T>
types - Upgraded
fuel-core
to v0.32.1 - Implemented deploying large contracts using blob transactions
- Fixed
forc
andfuel-core
version reporting on typegen-generated files - Fixed
getInputFromAssetId
so it returns the correctInputCoin
andInputMessage
- Upgraded
fuel-core
to v0.33.0 - Added
createAssetId
function to create a nativeAssetId
type - Added validation for max. input limit exceeded, as per the consensus parameters
- Removed
FUEL_NETWORK_URL
andLOCAL_NETWORK_URL
constants - Removed
generateTestWallet
,seedTestWallet
andlaunchNodeAndGetWallets
utilities - Renamed testing class
AssetId
toTestAssetId
Breaking
- Features
- #2872 - Consider message on resources cache, by @Torres-ssf
- #2824 - Prettify
typegen
api, by @arboleya - #2962 - Read malleable fields from transaction status on subscription, by @nedsalk
- #2929 - Non-blocking blob deployment, by @danielbate
- #2856 - Adding
abi
transpiler, by @arboleya - #2777 - Improve
()
andOption<T>
type handling, by @petertonysmith94 - #2827 -
[email protected]
and large contract deployments, by @danielbate
- Fixes
- #2963 - Assembly process for account transfer operation, by @Torres-ssf
- Chores
- #2915 - Deprecate
FUEL_NETWORK_URL
andLOCAL_NETWORK_URL
, by @petertonysmith94 - #2811 - Integrate
launchTestNode
in remaining packages, by @maschad - #2964 - Wrap subscriptions in promise, by @nedsalk
- #2905 - Renamed
AssetId
toTestAssetId
, by @petertonysmith94
- #2915 - Deprecate
Features
- #2897 - Improve typegen bytecode compression, by @Dhaiwat10
- #2903 - Add randomUUID into
fuel-ts/crypto
, by @Torres-ssf
Fixes
- #2888 - Typegen reporting the correct versions, by @petertonysmith94
- #2982 - Avoid re-add fake resources at
Account.getTransactionCost
, by @Torres-ssf - #2896 - Transaction revert error, by @petertonysmith94
- #2981 - Gas price estimation test flakiness, by @nedsalk
- #2926 -
Account.createTransfer
return type, by @Torres-ssf - #2859 - Typegen generic configurables, by @nedsalk
- #2782 - Return correct operations from coin and message inputs, by @maschad
Chores
- #2839 - Refactor helpers related to transaction operations, by @maschad
- #2978 - Upgrade
[email protected]
, by @danielbate - #2665 - Implement a helper createAssetId function, by @bolajahmad
- #2822 - Handle exceeding maximum inputs when funding a transaction, by @mvares
- #2925 - Improve node incompatibility warning, by @Torres-ssf
- #2891 - Default TestMessage to be spendable, by @Torres-ssf
- #2883 - Dependencies version consistency, by @petertonysmith94
- #2879 - Switching
Error
toFuelError
, by @petertonysmith94 - #2890 - Add missing reasons to
PANIC_REASONS
constant, by @Torres-ssf - #2899 - Add validation for TX max outputs exceeded, by @Torres-ssf
- #2851 - Add infra to support multiple
create fuels
templates, by @Dhaiwat10
Migration Notes
Features
#2872 - Consider message on resources cache
The provider option flag cacheUtxo
was renamed to resourceCacheTTL
// before
const provider = await Provider.create(FUEL_NETWORK_URL, {
cacheUtxo: 5000,
});
using launched = await launchTestNode({
providerOptions: {
cacheUtxo: 5000,
},
});
// after
const provider = await Provider.create(FUEL_NETWORK_URL, {
resourceCacheTTL: 5000,
});
using launched = await launchTestNode({
providerOptions: {
resourceCacheTTL: 5000,
},
});
#2824 - Prettify typegen
api
Predicate
class
Predicate
class constructor parameters renamed:inputData
>data
// before
import { Predicate } from 'fuels';
const predicate = new Predicate({
...unchangedParameters,
inputData,
});
// after
import { Predicate } from 'fuels';
const predicate = new Predicate({
...unchangedParameters,
data,
});
- Typegen extended/generated
Predicate
now accepts a single parameter for initialization
// before
import { TestPredicateAbi__factory } from './typegend';
TestPredicateAbi__factory.createInstance(provider, data, configurableConstants);
// after
import { TestPredicate } from './typegen';
new TestPredicate({
provider,
data,
configurableConstants
});
launchTestNode
utility
- Renamed
contractsConfigs[].deployer
tocontractsConfigs[].factory
- Removed
contractsConfigs[].bytecode
and.hex.ts
file
The bytecode is now saved within the factory class, so you don't have to deal with it.
// before
import { TokenAbi__factory } from './typegend';
import TokenAbiHex from './typegend/contracts/TokenAbi.hex';
using launched = await launchTestNode({
contractsConfigs: [{
deployer: TokenAbi__factory,
bytecode: TokenAbiHex
}],
});
// after
import { TokenFactory } from './typegend';
using launched = await launchTestNode({
contractsConfigs: [{
factory: TokenFactory,
}],
})
Renamed method deployContract
to deploy
Removed the redundant suffix on the ContractFactory
class method name.
// before
import { ContractFactory } from 'fuels';
const factory = new ContractFactory(wallet);
factory.deployContract();
// after
import { ContractFactory } from 'fuels';
const factory = new ContractFactory(wallet);
factory.deploy();
Typegen Contract
template
- Removed
Abi__factory
suffix from class names - The file
<name>.hex
was removed (access it via<Name>.bytecode
) - The files
<name>__factory.ts
and<name>.d.dts
were merged into<name>.ts
- The class
<Name>
and the interface<Name>Abi
are now just<Name>
- Method
<Name>Factory.deployContract()
renamed to<Name>Factory.deploy()
- You may need to remove the previously generated
<typegenDir>/contracts/factories
directory
// before
import { TestContractAbi, TestContract__factory } from './typegen'
import testContractBytecode from './typegen/contracts/TestContract.hex'
const instance = await TestContract__factory.connect(id, wallet);
const deploy = await TestContract__factory.deployContract(testContractBytecode, wallet);
const { c...
v0.93.0
Summary
In this release, we:
- Limited deployment to contracts up to 100kb
- Remove the
awaitExecution
flag and its associated functionality - Upgraded
forc
to v0.62.0 - Refactored
getTransactionCost
method forProvider
andAccount
- Expanded our documentation for connectors
Breaking
- Features
- #2796 - Deploy contract validation, by @danielbate
- Chores
- #2820 - Remove
awaitExecution
functionality, by @Torres-ssf - #2643 - Refactored the
getTransactionCost
method, by @petertonysmith94
- #2820 - Remove
Features
- #2755 - Add testing to
create-fuels
, by @danielbate
Fixes
- #2853 - Add back
create fuels
template metadata, by @Dhaiwat10 - #2815 - Make properties of configurables optional in typegen, by @Torres-ssf
- #2843 - Export interfaces in typegen, by @DefiCake
Chores
- #2798 - Handle
create fuels
template scenarios for insufficient funds, by @Dhaiwat10 - #2579 - Integrate
launchTestNode
into current test suites, by @maschad - #2794 - Upgrading
forc
to0.62.0
, by @arboleya
Docs
- #2772 - Add more comments around the
create-fuels
template app, by @Dhaiwat10 - #2786 - Added connector documentation, by @petertonysmith94
Migration Notes
Features
#2796 - Deploy contract validation
ErrorCode.INVALID_TRANSACTION_TYPE
was migrated to ErrorCode.UNSUPPORTED_TRANSACTION_TYPE
.
// before
const code = ErrorCode.INVALID_TRANSACTION_TYPE;
// after
const code = ErrorCode.UNSUPPORTED_TRANSACTION_TYPE;
Chores
#2820 - Remove awaitExecution
functionality
It is no longer possible to submit transactions using the awaitExecution
flag and wait for the transaction to be processed at submission:
// before
const response = await account.sendTransaction(transactionRequest, { awaitExecution: true });
// after
const submit = await account.sendTransaction(transactionRequest);
const response = await submit.waitForResult();
#2643 - Refactored the getTransactionCost
method
Refactored functionality for Provider.getTransactionCost
to Account.getTransactionCost
and changed estimation parameter from quantitiesToContract
to quantities
.
// before
const provider = Provider.create(...);
const account = Wallet.generate({ ... }) || new Predicate(...);
const quantities: Array<CoinQuantityLike> = [
{ amount: 1000, assetId: provider.getBaseAssetId() }
];
const cost = provider.getTransactionCost(txRequest, {
resourceOwner: account,
quantitiesToContract: quantities,
})
// after
const provider = Provider.create(...);
const account = Wallet.generate({ ... }) || new Predicate(...);
const quantities: Array<CoinQuantityLike> = [
{ amount: 1000, assetId: provider.getBaseAssetId() }
];
const cost = account.getTransactionCost(txRequest, { quantities });
v0.92.1
Features
- #2762 - Add minified
fuels
distribution, by @petertonysmith94
Fixes
Chores
- #2752 - Replace
create-fuels
hardcoded values with constants, by @Dhaiwat10