首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改接收函数,以以太输入代替Wei

修改接收函数,以以太输入代替Wei
EN

Ethereum用户
提问于 2021-12-01 19:30:10
回答 1查看 543关注 0票数 0

我正在建立一个共享钱包合同作为一个项目。当我开始在react应用程序的前端工作时,我遇到了javascript无法存储大量数字的问题。当调用我的实体函数时,我想不出如何将大的数字作为输入传递,所以我决定简单地将我的值存储在以太中,并在solidity中进行转换。

例:( toWei设置为1e18)

代码语言:javascript
复制
function UpdateAllowance(address _user, uint _amount) internal onlyOwner Permissions(_amount) {
         _amount = _amount*toWei; //SEE HERE
        emit AllowanceChange(_user, msg.sender, allowance[_user]._allowance - _amount, allowance[_user]._allowance, _x - int(_amount));
        allowance[_user]._allowance -= _amount;
    }

现在的问题是,我不知道如何将它应用于我的接收函数:

代码语言:javascript
复制
receive() external payable {
    emit BalanceChange(msg.sender, int(msg.value), address(this).balance);
    emit PaymentIn(msg.sender, msg.value);
    }

是否有方法修改此函数以以太作为输入,或应用类似的转换?

或者,我在js中将数字转换成大数字没有问题,但当使用BN作为输入时,当我从web应用程序调用我的可靠函数时,我无法让它工作。如果你能给我建议,如何去做,这也将作为一个解决方案。任何帮助都是非常感谢的!

EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-12-01 20:50:48

在前端,您可以使用ethers.js库将表示数字的字符串转换为BigNumber,然后将其传递给契约。在这种情况下,您将使用ethers.utils.parseUnits来将用户输入(例如,ETH )转换为Wei,尽管您也可以对任意数量的数字使用它。

下面是解释该函数的醚类文献页面。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/114758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档