You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidity合约报错:未设置运行脚本,请通过@custom:dev-run-script标签配置

解决Remix中“未设置运行脚本”的错误

错误原因

你合约里添加了@custom:dev-run-script ./scripts/deploy_with_ethers.ts标签,但Remix找不到对应的部署脚本文件,或者脚本本身无法执行,因此触发该错误。

解决方案

1. 确认部署脚本存在且路径正确

  • 检查Remix文件管理器中是否有scripts/deploy_with_ethers.ts文件。如果没有,要么创建这个脚本,要么修改NatSpec标签里的路径指向已有的脚本文件。

2. 编写符合要求的部署脚本(若缺少脚本)

如果需要用ethers.js脚本部署,创建scripts/deploy_with_ethers.ts文件,示例内容如下:

import { ethers } from "hardhat";

async function main() {
  // 替换为已部署的CashFlow合约实际地址
  const cashFlowAddress = "0xYourCashFlowContractAddress";
  // 示例支付金额,可根据需求调整数值
  const customerPaymentAmt = ethers.utils.parseEther("100");

  const CashFlowMerchant = await ethers.getContractFactory("CashFlowMerchant");
  const merchantContract = await CashFlowMerchant.deploy(cashFlowAddress, customerPaymentAmt);

  await merchantContract.deployed();
  console.log("CashFlowMerchant部署地址:", merchantContract.address);
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

3. 新手友好替代方案:直接用Remix可视化部署

无需脚本的话,直接通过Remix的「Deploy & Run Transactions」面板部署:

  • 先完成CashFlowMerchant合约的编译
  • 切换到「Deploy & Run Transactions」标签,选择部署环境(如Remix VM(London))
  • 在部署参数输入框中,依次填入CashFlow合约的地址、customerPaymentAmt的数值(例如100)
  • 点击「Deploy」按钮完成部署

额外代码优化建议

你的repayLoan函数中,开头的require(loanSettlmntAmount > 0, "No need to deduct amount")已经判断了金额大于0,后续if条件里的loanSettlmntAmount > 0属于重复判断,可简化为:

function repayLoan() external {
    require(loanSettlmntAmount > 0, "No need to deduct amount");

    if (customerPaymentAmt > 10){
        bankEMI = ((customerPaymentAmt * 10)/100);
        if(loanSettlmntAmount > bankEMI){
            merchantAmtRecvd = customerPaymentAmt - bankEMI;
        }else{
            bankEMI = bankEMI - loanSettlmntAmount;
            merchantAmtRecvd = customerPaymentAmt - bankEMI;
        }        
    }else{
        merchantAmtRecvd = customerPaymentAmt;
    }
}

内容的提问来源于stack exchange,提问作者rohini dingankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:18:43