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));

}

相关文章
|
9月前
|
存储 人工智能 物联网
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
NFT链游系统开发(案例详解)丨元宇宙链游开发方案
|
10月前
|
安全
卡牌NFT链动链游系统开发项目方案丨航海士NAGA链游系统开发技术
卡牌NFT链动链游系统开发项目方案丨航海士NAGA链游系统开发技术
|
11月前
|
安全 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.
|
区块链 Windows
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
区块链链游项目系统开发技术功能丨链游NFT元宇宙系统开发技术方案
123 0
|
存储 区块链 vr&ar
NFT元宇宙链游开发设计逻辑丨NFT元宇宙链游开发源码示例
使用NFT元宇宙链游开发系统,开发者可以创建一个独特的数字世界,并添加功能丰富的故事情节、游戏规则、卡片、角色、本地角色和游戏工作室等内容。所有功能都是通过NFT代币来衡量的,例如卡中有效性的透明度;决赛前的分数将被隐藏并存储在NFT代币上。
|
存储 安全 调度
NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术
NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术
109 0
|
人工智能 大数据 区块链
3D元宇宙NFT链游系统开发(开发案例)丨3D元宇宙NFT链游开发源码详情及分析
  真正实现以大数据、云计算、人工智能、沉浸现实等诸多新技术实现联通,并且真正构建起一个完整的全新世界的,正是区块链技术。这便是区块链的功能。透过元宇宙,我们真正看到了区块链技术的这样一种联通、融合的角色与作用;透过元宇宙,我们看到了区块链技术的这样一种建构于生态之上的强大的能力。
NFT数藏系统开发(实体产品)模式项目系统开发方案
NFT数藏系统开发(实体产品)模式项目系统开发方案
|
C语言
NFT元宇宙模式系统开发Demo(技术理念)NFT链游项目系统开发流程详情
NFT元宇宙模式系统开发Demo(技术理念)NFT链游项目系统开发流程详情
127 0
|
存储 区块链 vr&ar
NFT元宇宙链游系统开发(详细及分析)丨NFT元宇宙链游开发源码逻辑
元宇宙是一个平行于现实世界,又独立于现实世界的虚拟空间,是映射现实世界的在线虚拟世界,是越来越真实的数字虚拟世界。而区块链是采用分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。