NFT铸造系统开发(成熟及技术)丨功能源码

简介: // add bsv and token to liquidity poolpublic function addLiquidity(PubKey sender, Sig senderSig, int tokenAmount, int senderBalance, int senderKeyIndex, int oldTokenBalance

增加流动性
任何人都可以通过调用函数 addLiquidity 向池中添加流动性。有
首次增加流动性:可以存入任意数量的 BSV 和 Token 。
添加更多流动性: BSV 和 Token 存入的比率必须与池中的现有比率相匹配(第 22 行)。
// add bsv and token to liquidity pool
public function addLiquidity(PubKey sender, Sig senderSig, int tokenAmount, int senderBalance, int senderKeyIndex, int oldTokenBalance,

                        int lpSenderBalance, int lpSenderKeyIndex, int newBsvBalance, SigHashPreimage txPreimage) {
require(checkSig(senderSig, sender));

int oldBsvBalance = SigHash.value(txPreimage);

// mint new lp tokens for the liquidity provider
if (oldBsvBalance == 0) {
    // initialize pool
    
    // initially, just mint new lp tokens per the amount of new bsvs deposited
    int lpMint = newBsvBalance;
    require(this.lpToken.mint(sender, lpSenderBalance, lpMint, lpSenderKeyIndex));
} else {
    // add more liquidity

    int bsvAmount = newBsvBalance - oldBsvBalance;
    
    // deposit ratio must be the same with current pool ration
    // i.e., oldBsvBalance / oldTokenBalance == bsvAmount / tokenAmount
    require(oldBsvBalance * tokenAmount == bsvAmount * oldTokenBalance);

    // mint new lp tokens, proportinal to the amount of new bsvs deposited
    int lpMint = this.lpToken.totalSupply() * bsvAmount / oldBsvBalance;
    require(this.lpToken.mint(sender, lpSenderBalance, lpMint, lpSenderKeyIndex));
}

// transfer tokens to the pool
require(this.token.transferFrom(sender, this.poolPubkey, tokenAmount, senderBalance, senderKeyIndex, oldTokenBalance, senderKeyIndex));

require(this.propagateState(newBsvBalance, txPreimage));

}

相关文章
|
存储 人工智能 物联网
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
|
安全 Go
链游系统开发案例详情/NFT元宇宙链游系统开发方案项目/成熟技术/源码逻辑
Step 1: Requirements analysis and planning. At this stage, the development team needs to have in-depth communication with clients, understand their needs and expectations, and then develop development plans and project plans.
|
存储 算法 数据处理
Jogger慢跑者系统模式开发NFT链游技术
全链游戏(Full on-chain game)指的是一种将游戏逻辑和数据完全存储在区块链上的游戏
|
Shell
OpenSea项目系统开发技术NFT元宇宙平台系统开发流程
OpenSea项目系统开发技术NFT元宇宙平台系统开发流程
140 0
|
区块链
链游开发丨3D链游系统开发(开发规则)丨DAPP链游系统开发(成熟及技术)丨源码
  区块链技术由此可以从多方面为企业赋能:提供可靠的共享数据,在各方之间建立信任;消除数据孤岛,即通过去中心化的,在一个网络中共享并支持获许可方访问的账本将数据集成到一个系统中;为数据赋予高度安全性
|
区块链 Windows
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
147 0
|
存储 安全 调度
NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术
NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术
130 0
|
人工智能 大数据 区块链
3D元宇宙NFT链游系统开发(开发案例)丨3D元宇宙NFT链游开发源码详情及分析
  真正实现以大数据、云计算、人工智能、沉浸现实等诸多新技术实现联通,并且真正构建起一个完整的全新世界的,正是区块链技术。这便是区块链的功能。透过元宇宙,我们真正看到了区块链技术的这样一种联通、融合的角色与作用;透过元宇宙,我们看到了区块链技术的这样一种建构于生态之上的强大的能力。
|
C语言
NFT元宇宙模式系统开发Demo(技术理念)NFT链游项目系统开发流程详情
NFT元宇宙模式系统开发Demo(技术理念)NFT链游项目系统开发流程详情
143 0
|
物联网 区块链 vr&ar
浅谈NFT元宇宙链游系统开发案例及源码分析丨NFT元宇宙链游系统开发技术方案
什么是元宇宙   一个平行于现实世界的虛拟空间,是由AR、VR、互联网所组成的,未来,只要你戴上耳机以及头显设备就可以通过终端连接进入计算机所模拟构建的虛拟世界。(当然现在元宇宙只是一个概念)。
浅谈NFT元宇宙链游系统开发案例及源码分析丨NFT元宇宙链游系统开发技术方案