在这里,您可以了解有关所有配置选项的更多信息。
workspace
到 Forc 工作空间的相对目录路径。
workspace: './sway-programs',
属性
workspace
与contracts
、predicates
和scripts
不兼容。
contracts
到 Sway 合约的相对目录路径列表。
contracts: ['./sway-programs/contracts'],
属性
contracts
与workspace
不兼容。
predicates
到 Sway 断言的相对目录路径列表。
predicates: ['./sway-programs/predicates'],
属性
predicates
与workspace
不兼容。
scripts
到 Sway 脚本的相对目录路径列表。
scripts: ['./sway-programs/scripts'],
属性
scripts
与workspace
不兼容。
output
生成 TypeScript 定义时要使用的相对目录路径。
output: './src/sway-programs-api',
providerUrl
部署合约时要使用的 URL。
// Default: http://127.0.0.1:4000/v1/graphql
providerUrl: 'http://network:port/v1/graphql',
当
autostartFuelCore
属性设置为true
时,providerUrl
会被最近由fuels dev
命令启动的本地短暂fuel-core
节点的 URL 覆盖。
privateKey
部署合约时使用的钱包私钥。
此属性应该理想地来自环境变量 — process.env.MY_PRIVATE_KEY
。
privateKey: '0xa449b1ffee0e2205fa924c6740cc48b3b473aa28587df6dab12abc245d1f5298',
当
autostartFuelCore
属性设置为true
时,privateKey
会被最近由fuels dev
命令启动的本地短暂fuel-core
节点的consensusKey
覆盖。
snapshotDir
- 仅由
fuels dev
使用。
包含自定义配置(例如 chainConfig.json
、metadata.json
、stateConfig.json
)的目录的相对路径。
仅当 autoStartFuelCore
为 true
时才会生效。
snapshotDir: './my/snapshot/dir',
autoStartFuelCore
- 仅由
fuels dev
使用。
当设置为 true
时,它将自动执行以下操作:
fuels dev
命令的一部分启动一个短暂的 fuel-core
节点 fuel-core
节点的 URL 覆盖属性 providerUrl
autoStartFuelCore: true,
如果设置为 false
,您必须自己启动一个 fuel-core
节点,并通过 providerUrl
设置其 URL。
fuelCorePort
- 仅由
fuels dev
使用。- 当
autoStartFuelCore
设置为false
时忽略。
启动本地 fuel-core
节点时要使用的端口。
// Default: first free port, starting from 4000
fuelCorePort: 4000,
forcBuildFlags
- 由
fuels build
和fuels deploy
使用。
Sway 程序默认以 debug
模式编译。
在此处,您可以自定义所有构建标志,例如以 release
模式构建程序。
// Default: []
forcBuildFlags: ['--release'],
还请查看:
deployConfig
您可以提供一个就绪的部署配置对象:
deployConfig: {},
或使用一个函数来构建动态部署流程:
options.contracts
属性获取所需的合约 ID。例如: 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 {
storageSlots: [
{
key: '0x..',
/**
* Here we could initialize a storage slot,
* using the relevant contract ID.
*/
value: contract.contractId,
},
],
};
},
onSuccess
传递一个回调函数,在成功运行后调用。
参数:
event
— 触发此执行的事件 config
— 加载的配置(fuels.config.ts
) onSuccess: (event: CommandEvent, config: FuelsConfig) => {
console.log('fuels:onSuccess', { event, config });
},
onFailure
传递一个回调函数,以处理错误情况。
参数:
error
— 原始错误对象 config
— 加载的配置(fuels.config.ts
) onFailure: (error: Error, config: FuelsConfig) => {
console.log('fuels:onFailure', { error, config });
},
forcPath
forc
二进制文件的路径。
当未提供时,默认使用 system
二进制文件(forc
)。
// Default: 'forc',
forcPath: '~/.fuelup/bin/forc',
fuelCorePath
fuel-core
二进制文件的路径。
当未提供时,默认使用 system
二进制文件(fuel-core
)。
// Default: 'fuel-core'
fuelCorePath: '~/.fuelup/bin/fuel-core',
如果您想要从 .env
文件中加载环境变量,您可以使用 dotenv
包。
首先,安装它:
pnpm install dotenv
然后,您可以在您的 fuels.config.ts
文件中使用它:
import { createConfig } from 'fuels';
import dotenv from 'dotenv';
import { NODE_URL } from '@/lib'
dotenv.config({
path: ['.env.local', '.env'],
});
const fuelCorePort = +(process.env.NEXT_PUBLIC_FUEL_NODE_PORT as string) || 4000;
export default createConfig({
workspace: './sway-programs',
output: './src/sway-api',
fuelCorePort,
providerUrl: NODE_URL,
});