Here, you can learn more about all configuration options.
workspace
Relative directory path to Forc workspace.
workspace: './sway-programs',
The property
workspace
is incompatible withcontracts
,predicates
, andscripts
.
contracts
List of relative directory paths to Sway contracts.
contracts: ['./sway-programs/contracts'],
The property
contracts
is incompatible withworkspace
.
predicates
List of relative directory paths to Sway predicates.
predicates: ['./sway-programs/predicates'],
The property
predicates
is incompatible withworkspace
.
scripts
List of relative directory paths to Sway scripts.
scripts: ['./sway-programs/scripts'],
The property
scripts
is incompatible withworkspace
.
output
Relative directory path to use when generating Typescript definitions.
output: './src/sway-programs-api',
providerUrl
The URL to use when deploying contracts.
// Default: http://127.0.0.1:4000/graphql
providerUrl: 'http://network:port/graphql',
When
autostartFuelCore
property is set totrue
, theprovidedUrl
is overridden by that of the local short-livedfuel-core
node started by thefuels dev
command.
privateKey
Wallet private key, used when deploying contracts.
This property should ideally come from env — process.env.MY_PRIVATE_KEY
.
privateKey: '0xa449b1ffee0e2205fa924c6740cc48b3b473aa28587df6dab12abc245d1f5298',
When
autostartFuelCore
property is set totrue
, theprivateKey
is overridden with theconsensusKey
of the local short-livedfuel-core
node started by thefuels dev
command.
chainConfig
- Used by
fuels dev
only.
Relative file path to custom chainConfig.json
file to use with fuel-core
.
This will take effect only when autoStartFuelCore
is true
.
chainConfig: './my/custom/chainConfig.json',
autoStartFuelCore
- Used by
fuels dev
only.
When set to true
, it will automatically:
fuel-core
node as part of the fuels dev
command providerUrl
with the URL for the recently started fuel-core
node autoStartFuelCore: true,
If set to false
, you must spin up a fuel-core
node by yourself and set the URL for it via providerUrl
.
fuelCorePort
- Used by
fuels dev
only.- Ignored when
autoStartFuelCore
is set tofalse
.
Port to use when starting a local fuel-core
node.
// Default: first free port, starting from 4000
fuelCorePort: 4000,
deployConfig
You can supply a ready-to-go deploy configuration object:
deployConfig: {
gasPrice: 1,
},
Or use a function for crafting dynamic deployment flows:
options.contracts
property to get the necessary contract ID. For example: deployConfig: async (options: ContractDeployOptions) => {
// ability to fetch data remotely
await Promise.resolve(`simulating remote data fetch`);
// get contract by name
const { contracts } = options;
const contract = contracts.find(({ name }) => {
const found = name === MY_FIRST_DEPLOYED_CONTRACT_NAME;
return found;
});
if (!contract) {
throw new Error('Contract not found!');
}
return {
gasPrice: 1,
storageSlots: [
{
key: '0x..',
/**
* Here we could initialize a storage slot,
* using the relevant contract ID.
*/
value: contract.contractId,
},
],
};
},
onSuccess
Pass a callback function to be called after a successful run.
Parameters:
event
— The event that triggered this execution config
— The loaded config (fuels.config.ts
) onSuccess: (event: CommandEvent, config: FuelsConfig) => {
console.log('fuels:onSuccess', { event, config });
},
onFailure
Pass a callback function to be called in case of errors.
Parameters:
error
— Original error object config
— The loaded config (fuels.config.ts
) onFailure: (error: Error, config: FuelsConfig) => {
console.log('fuels:onFailure', { error, config });
},
useBuiltinForc
Opt-in or out from using built-in forc
binaries.
When not supplied, will default to using the system
binaries.
If system
binaries are absent, print a warning and use built-in
ones instead.
// Default: undefined
useBuiltinForc: false,
Check also:
useBuiltinFuelCore
Opt-in or out from using built-in fuel-core
binaries.
When not supplied, will default to using the system
binaries.
If system
binaries are absent, print a warning and use built-in
ones instead.
// Default: undefined
useBuiltinFuelCore: false,
Check also: