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

Sputnik v2 DAO调用deposit_and_stake质押超24N失败问题求助

Sputnik DAO V2 调用deposit_and_stake质押功能故障解决方案

故障根因

  • deposit_and_stake方法本身不读取args参数内的amount字段,而是直接取交易附带的NEAR转账额作为质押资金,你之前在args内填写的金额参数完全无效
  • 调用仅使用提案保证金的原因是未在提案的FunctionCall配置中正确声明DAO金库需要支出的金额:Sputnik DAO只会将提案actions内deposit字段标注的金额从金库转出执行调用,你创建提案时附带的--amount对应的是提案保证金,属于你个人抵押的资金,和DAO金库支出无关
  • 命令行报错的核心原因有两个:一是手动填写了submission_time字段,该字段由合约自动生成,手动传入的固定时间不符合校验规则;二是args字段传了空字符串,Sputnik DAO要求args必须是base64编码的JSON对象,空参数需传入空JSON的base64编码e30=
  • 前端自定义调用表单的24N限制是前端默认的交互校验限制,不属于合约层限制,可轻松绕过

可落地解决方案

命令行提交正确提案

使用以下格式调用即可正常创建质押提案,提案通过后DAO会自动从金库转出对应金额执行质押:

near call chaintyping-test2.sputnikv2.testnet add_proposal '{
  "proposal": {
    "description": "5 NEAR委托质押至staked.pool.f863973.m0",
    "kind": {
      "FunctionCall": {
        "receiver_id": "staked.pool.f863973.m0",
        "actions": [
          {
            "method_name": "deposit_and_stake",
            "args": "e30=",
            "deposit": "5000000000000000000000000",
            "gas": "75000000000000"
          }
        ]
      }
    }
  }
}' --accountId mic.testnet --amount 1

*参数说明:

  • args字段传e30=,是空JSON对象{}的base64编码,符合合约参数要求
  • 末尾的--amount 1是创建提案的个人保证金,按DAO的提案规则填写对应金额即可,和DAO支出的质押金额无关
  • actions内的deposit字段就是DAO金库要支出的质押金额,无24N上限限制,只要DAO金库余额足够即可正常执行*

前端绕过24N限制方案

如果优先使用前端操作,打开浏览器开发者工具,找到自定义调用的金额输入框对应的DOM元素,删除元素上的max属性限制,即可输入超过24N的金额,提交时注意args参数留空不需要填写任何内容。

长期优化方案

如果DAO有频繁的质押需求,可以自定义DAO提案模板,固化质押对应的接收地址、方法名、gas等固定参数,仅保留质押金额作为可输入项,可省掉每次填写自定义调用参数的步骤,也可直接去掉默认的金额上限校验。

内容的提问来源于stack exchange,提问作者o-mic-o

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:00:03