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

NEAR生态下如何使用Assembly Script实现智能合约提现功能

NEAR 智能合约提现实现方案(near-sdk-as ^3.2.1)

前置操作

首先需要将资金转入智能合约,转入操作示意如下:
资金转入操作示意图

提现至发送方的实现方法

核心逻辑

在near-sdk-as ^3.2.1版本中,通过SDK提供的Promise转账API即可实现提现,步骤如下:

  • 身份校验:先校验调用者是否具备提现权限,同时校验申请提现的金额不超过该用户可提现的额度
  • 调用转账接口完成提现,参考代码如下:
import { Promise, Context, u128 } from "near-sdk-as";

// 对外暴露的提现接口
export function withdraw(amount: u128): boolean {
  const caller = Context.sender;
  // 此处替换为你自己的业务校验逻辑,比如查询caller对应的可提现余额是否大于等于amount
  // if (getUserWithdrawableBalance(caller) < amount) return false;

  // 执行转账,将amount数量的yoctoNEAR从合约账户转到调用者账户
  Promise.new(caller).transfer(amount);
  return true;
}

注意事项

  • 金额单位为yoctoNEAR,1 NEAR = 10^24 yoctoNEAR,前端传参时需要做好单位转换
  • 不要将合约账户的全部余额转出,需要预留至少0.01 NEAR作为后续操作的gas储备
  • 若需要在转账完成后执行回调逻辑,可以在transfer方法后链式调用.then()方法注册回调函数
    操作界面示意如下:
    提现操作示意图

内容的提问来源于stack exchange,提问作者Максим Щирый

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:48:01