如何向合约中质押bnb

这篇具有很好参考价值的文章主要介绍了如何向合约中质押bnb。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在普遍智能合约中,质押的币一般是代币,这个非常容易处理。偶尔也会有质押bnb的情况,这种是如何处理的呢,下面我给个例子。
function invest(address fromad,address irefer, uint256 amount) public payable {
require(fromad==msg.sender);
require(msg.value>=amount);
//添加amount必须是1,2,5
//…
//
addrefer(fromad,irefer,amount.mul(15000).div(10));
addalluser(fromad);
addmyson(fromad,irefer);

	users storage user = Users[fromad];
    user.amountbnb=user.amountbnb.add(amount);
    require(user.amountbnb+amount<=20*decimals,"must less than 20BNB");
	user.deposits.push(Deposit(block.timestamp,amount,amount.mul(15000)));
}
比如,正常的质押代币,用ERC20直接调用转帐就可以了,但是,如果是转bnb,ERC20就失效了。
首先对函数做一下介绍。
1、函数要写成payable类型的。
2.msg.value,是用户在调用invest方法的时候,向合约发了多少个bnb.
这两个是必须的。那么前端如何拉起小狐狸钱包,调用呢,可以用以下方式:
  let params=[
  {
    from: fromad,
    to: toad,
    gas: '0x9cc3e', // 30400
    gasPrice: '0x2540be400', // 10000000000000
    value: this.$web3.utils.toHex(val), // 2441406250
    data:
      '0x000000000000000000000000,
  },
];

其中data前面为方法,后面是要调用方法的参数,转换成16进制,如果不够64位,补满64位
let res1=await ethereum
.request({
method: ‘eth_sendTransaction’,
params,
})
补充说明:
value是调用方法的时候,向合约中转入的bnb数量,也就是msg.value取得的值。
data是调用方法格式化出来的数据,只要把data补充上,就可以实现完美调用了。
第一次折腾,费了我好大的功夫,所以放这里,给大家分享。喜欢交流的朋友,加V:54516204,一起沟通交流。文章来源地址https://www.toymoban.com/news/detail-455091.html

到了这里,关于如何向合约中质押bnb的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 审计智能合约的成本是多少?如何审计智能合约?

    智能合约安全审计在去中心化金融 (DeFi) 生态系统中非常普遍。如果您投资了一个区块链项目,您的决定可能部分基于智能合约代码审查的结果。 虽然大多数人都了解审计对网络安全的重要性,但没有多少人深入了解代码行。让我们来看看智能合约安全审计,具体来说,如何

    2024年02月09日
    浏览(43)
  • 如何在智能合约中调用另一个合约的函数

    智能合约是在区块链中被执行的一段程序,因为它们在区块链上执行,所以不依赖于任何的中心化服务器。目前最主流的智能合约编程语言是 Solidity。 在以太坊区块链中,智能合约可以和其他已经部署的智能合约进行交互。除了以太坊,其他 EVM 兼容的区块链(使用以太坊虚

    2024年01月22日
    浏览(55)
  • 【智能合约安全】智能合约安全审计之Code4rena(或C4) \如何成为智能合约审计员

    为什么智能合约安全审计如此重要 参考URL: https://www.jinse.com/news/blockchain/1666661.html 区块链领域正在以非常快的速度发展。针对智能合约的攻击事件频频发生,不法分子盗取的加密资产越来越多。 各式各样的黑客攻击事件,相信给大家都敲响了安全的警钟,也不断的提醒大家智

    2024年02月16日
    浏览(54)
  • 用python如何实现智能合约?

    智能合约是一种由计算机程序编写的自动化合约,它可以在没有第三方干预的情况下执行交易和契约条款。智能合约使用区块链技术实现,可以实现不同的功能,例如交易、投票、代币发放和数据存储等。智能合约的执行是基于其代码的逻辑,并且在既定条件满足时自动执行

    2024年02月03日
    浏览(33)
  • 如何创建智能合约游戏系统

        区块技术的发展,智能合约成为了一个热门话题。智能合约是一种基于区块技术的自动化合约,它可以自动执行合同中规定的条款,从而实现去中心化的信任和价值传递。在游戏领域,智能合约可以让玩家在游戏中实现各种交易和交互,同时也可以增加游戏的去中心化和

    2024年02月16日
    浏览(43)
  • 如何使用remix编辑智能合约

    今天突然发现一个很有趣的合约代码,顺便教一下怎么操作remix的编译 。 我们将向您展示 Solidity 中的一个简单的 前期部署 ,它会自动将任何流动性定位到 BSC 代币。如果代币的流动性已完全调入您的钱包,则卖出会自动触发获利。- 利润的 10% 自动重新进入先行池。- 90% 的利

    2024年02月16日
    浏览(35)
  • 如何成为资深 solidity 智能合约工程师

    原文发布在 https://github.com/33357/smartcontract-apps 这是一个面向中文社区,分析市面上智能合约应用的架构与实现的仓库。欢迎关注开源知识项目! 熟悉 Solidity 语法和数据结构,能使用 hardhat 完成智能合约的自动化测试、优化、部署、交互和 SDK 封装。 熟悉 Openzipplin 的所有库文

    2023年04月23日
    浏览(76)
  • 【区块链实战】Solidity 智能合约如何给账户充值

    目录 一、实战场景 二、知识点 智能合约 智能合约函数 智能合约充值 payable 智能合约部署地址 智能合约的运行 合约 this 对象 三、菜鸟实战 四、运行结果 Solidity 智能合约如何给账户充值 1、充值金额 2、充值并查看结果

    2024年02月09日
    浏览(50)
  • 如何使用Truffle来对智能合约实现并部署?

    Truffle是一个广受欢迎的以太坊智能合约开发框架,支持快速构建、测试以及发布智能合约,本文将介绍使用Truffle框架实现一个完整的智能合约的步骤详情和具体代码实现。 步骤详情: 安装Truffle框架并创建项目 首先需要在本地安装Truffle框架,在命令行中执行以下代码进行安

    2023年04月20日
    浏览(45)
  • 暴雨最新全球调研:零售消费体验满意度普遍较低,中国消费者对使用人工智能购物的兴趣强烈

    零售业面临不断变化的消费者期望和经济下行带来的越来越大的压力。 暴雨 商业价值研究院(IBV)一项最新的全球调研显示,购物者需求与当前零售业现状之间的差距正在扩大。 暴雨 商业价值研究院最近发布了第三份两年一度的消费者调研报告。这项名为 《无处不在的人

    2024年01月19日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包