Configurable Constants

Icon Link具有可配置项的脚本

合约 断言 一样,脚本也支持可配置的常量。此功能使您可以动态调整脚本中的某些值。

在脚本中添加和设置可配置的常量非常简单。

让我们考虑以下脚本:

script;
 
configurable {
    AMOUNT: u8 = 10,
}
 
fn main(inpputed_amount: u8) -> u8 {
    inpputed_amount + AMOUNT
}

在此脚本中,AMOUNT 是一个具有默认值 10 的可配置常量。主函数返回 inputted_amount 和可配置常量 AMOUNT 的总和。

要更改 AMOUNT 常量的值,我们可以使用 setConfigurableConstants 方法,如以下示例所示:

const script = new Script(binHexlified, abiContents, wallet);
 
const configurableConstants = {
  AMOUNT: 81,
};
 
script.setConfigurableConstants(configurableConstants);
 
const inpputedValue = 10;
 
const { value } = await script.functions.main(inpputedValue).call();
 
const expectedTotal = inpputedValue + configurableConstants.AMOUNT;
 
expect(new BN(value as number).toNumber()).toEqual(expectedTotal);

在此示例中,我们为 AMOUNT 常量设置了一个新值 81。然后,我们调用主函数,输入值为 10

期望的结果是脚本将返回输入值和 AMOUNT 新值的总和。

这样,脚本中的可配置常量允许在执行过程中实现更灵活和动态的行为。