0

我一直面临使用 u128.add(a, b) 函数的问题。没有添加两个 u128 值,恐怕我做错了什么。我已经检查了 LEARN-NEAR github 页面的示例项目,甚至更改了我的代码以遵循使用的模式,但是没有添加值。

signWithFunds(amount: u128): bool {
  assert(context.sender, "Petition must be signed by an account");
  assert(this.isFunded, `not a funded petition`);
  assert(u128.ge(amount, this.minFundAmount), 
  `amount provided is less than minimum funding amount: at least ${asNEAR(this.minFundAmount)} required to sign this petition`);
  const currentTotal = this.funding;
  this.funding = u128.add(amount, currentTotal); 
  this.signature.push(context.sender);
  return true;
}  

模型.ts

在此处输入图像描述

主要的.ts

在此处输入图像描述

方面测试文件

在此处输入图像描述

测试结果显示意外行为

在此处输入图像描述

4

1 回答 1

0

从图像来看,测试似乎没有收到预期值。测试接收0,但预期一些其他值。我不认为u128add函数本身有什么问题。

从测试中,您正在调用一个依赖于 Context 存款的函数,我认为您需要将其添加到您的测试中 *(it("should sign a funded ...."),以及:

VMContext.setAttached_deposit(someDeposit)

其次,signWithFunds也依赖于this.founding请愿书本身的资金。也许petitions[0]在您的测试中不是新创建的请愿书?我们需要查看beforeEach函数以确保,否则,您将向数组添加新的请愿书,但您引用的是旧的请愿书。

于 2022-01-16T23:50:41.050 回答