Icon Link配置文件

在这里,您可以了解有关所有配置选项的更多信息。

Icon Linkworkspace

到 Forc 工作空间的相对目录路径。

workspace: './sway-programs',
Icon InfoCircle

属性 workspacecontracts predicates scripts 不兼容。

Icon Linkcontracts

到 Sway 合约的相对目录路径列表。

contracts: ['./sway-programs/contracts'],
Icon InfoCircle

属性 contractsworkspace 不兼容。

Icon Linkpredicates

到 Sway 断言的相对目录路径列表。

predicates: ['./sway-programs/predicates'],
Icon InfoCircle

属性 predicatesworkspace 不兼容。

Icon Linkscripts

到 Sway 脚本的相对目录路径列表。

scripts: ['./sway-programs/scripts'],
Icon InfoCircle

属性 scriptsworkspace 不兼容。

Icon Linkoutput

生成 TypeScript 定义时要使用的相对目录路径。

output: './src/sway-programs-api',

Icon LinkproviderUrl

部署合约时要使用的 URL。

// Default: http://127.0.0.1:4000/v1/graphql
providerUrl: 'http://network:port/v1/graphql',
Icon InfoCircle

autostartFuelCore 属性设置为 true 时,providerUrl 会被最近由 fuels dev 命令启动的本地短暂 fuel-core 节点的 URL 覆盖。

Icon LinkprivateKey

部署合约时使用的钱包私钥。

此属性应该理想地来自环境变量 — process.env.MY_PRIVATE_KEY

privateKey: '0xa449b1ffee0e2205fa924c6740cc48b3b473aa28587df6dab12abc245d1f5298',
Icon InfoCircle

autostartFuelCore 属性设置为 true 时,privateKey 会被最近由 fuels dev 命令启动的本地短暂 fuel-core 节点的 consensusKey 覆盖。

Icon LinksnapshotDir

Icon InfoCircle

包含自定义配置(例如 chainConfig.jsonmetadata.jsonstateConfig.json)的目录的相对路径。

仅当 autoStartFuelCore true 时才会生效。

snapshotDir: './my/snapshot/dir',

Icon LinkautoStartFuelCore

Icon InfoCircle

当设置为 true 时,它将自动执行以下操作:

  1. 作为 fuels dev 命令的一部分启动一个短暂的 fuel-core 节点
  2. 使用最近启动的 fuel-core 节点的 URL 覆盖属性 providerUrl
autoStartFuelCore: true,

如果设置为 false,您必须自己启动一个 fuel-core 节点,并通过 providerUrl 设置其 URL。

Icon LinkfuelCorePort

Icon InfoCircle

启动本地 fuel-core 节点时要使用的端口。

// Default: first free port, starting from 4000
fuelCorePort: 4000,

Icon LinkforcBuildFlags

Icon InfoCircle

Sway 程序默认以 debug 模式编译。

在此处,您可以自定义所有构建标志,例如以 release 模式构建程序。

// Default: []
forcBuildFlags: ['--release'],

还请查看:

Icon LinkdeployConfig

您可以提供一个就绪的部署配置对象:

deployConfig: {},

或使用一个函数来构建动态部署流程:

  • 如果您需要从远程数据源获取并使用配置或数据
  • 如果您需要使用已部署合约的 ID — 在这种情况下,我们可以使用 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,
      },
    ],
  };
},

Icon LinkonSuccess

传递一个回调函数,在成功运行后调用。

参数:

  • event — 触发此执行的事件
  • config — 加载的配置(fuels.config.ts
onSuccess: (event: CommandEvent, config: FuelsConfig) => {
  console.log('fuels:onSuccess', { event, config });
},

Icon LinkonFailure

传递一个回调函数,以处理错误情况。

参数:

  • error — 原始错误对象
  • config — 加载的配置(fuels.config.ts
onFailure: (error: Error, config: FuelsConfig) => {
  console.log('fuels:onFailure', { error, config });
},

Icon LinkforcPath

forc 二进制文件的路径。

当未提供时,默认使用 system 二进制文件(forc)。

// Default: 'forc',
forcPath: '~/.fuelup/bin/forc',

Icon LinkfuelCorePath

fuel-core 二进制文件的路径。

当未提供时,默认使用 system 二进制文件(fuel-core)。

// Default: 'fuel-core'
fuelCorePath: '~/.fuelup/bin/fuel-core',

Icon Link加载环境变量

如果您想要从 .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,
});