此文仅本人对于Task6的知识总结,不含任务答案。1.PTB(ProgrammableTransactionBlock)概念PTB是Sui中的交易容器,允许多个操作打包在一个原子交易(atomictransaction:原子交易是指一组操作,要么成功,要么失败。
此文仅本人对于 Task 6的知识总结,不含任务答案。
✍️:Funnyyanne
PTB 是 Sui 中的交易容器,允许多个操作打包在一个原子交易(atomic transaction:原子交易是指一组操作,要么全部成功,要么全部失败。)中。在一个交易中,PTB 可以包含多个模块和函数调用,所有操作要么全部成功,要么全部失败。
1.存入抵押品(e.g. SUI)
2.借出资产(e.g. USDC)
3.更新用户状态
4.更新借贷池状态
(💡Gas 费用是指在区块链网络上执行交易或智能合约时所需支付的费用,以换取网络的计算资源和存储空间。)
PTB 的使用可以优化Gas 费用。原因:多个操作打包在一个交易中,只需支付一次Gas 费用。
1.Dex交易
(Dex 是 Decentralized Exchange 的缩写,中文是去中心化交易所。允许我们直接在区块链上进行点对点的资产交易,不需要中心化的中介。)
2.跨池操作
例如:用户想用 SUI 换取 USDC,需要先在 Sui 池存入 SUI 作为抵押, 再在 Navi Protocol 中将 USDC 换成 SUI,再更新两个池的状态。
3.多步骤金融操作
图中头寸指投资者在市场中持有的资产数量和方向,可以是多头(做多)或空头(做空)。
仅举例本人知道的交易类型,PTB 支持的交易类型还有很多。
Navi Protocol 是一种用于 Sui 的去中心化交易协议,它允许用户在 Sui 网络上进行交易,而无需信任任何中心化机构。Navi Protocol 使用 PTB 来执行交易,并且支持多种交易类型,包括代币交易、NFT 交易等。
详细的address ,Pool,PoolConfig
import {Pool, PoolConfig} from "navi-sdk/dist/types";
import {pool, Sui, wUSDC} from "navi-sdk/dist/address";
const suiPool: PoolConfig = pool[Sui.symbol as keyof Pool];
Pool 用途
PoolConfig 用途
wUSDC (Wrapped USDC)
是原始 USDC 的包装版本。主要用于在不同链或协议间实现 USDC 的互操作性。
本质上是一个 ERC20 代币,代表了在原链上锁定的 USDC。
nUSDC (Navi USDC)
是 Navi Protocol 特有的利息承载代币。代表了用户在 Navi Protocol 中存入的 USDC,价值会逐渐增加,因为它包含了存款产生的利息。
wUSDC 是为了跨链/跨协议使用而包装的,与USDC价值恒定 1:1;nUSDC 是 Navi Protocol 的收益代币,反映了存款本金加上累积的利息。
以下总结两种代币格式:
特性 | wUSDC | nUSDC |
---|---|---|
用途 | 交易媒介 | 存款凭证 |
价值锚定 | 1:1 锚定 USDC | 随时间增值 |
可转让性 | 可自由转让 | 协议内使用 |
利息 | 无 | 可赚取利息 |
主要场景 | 交易、支付 | 借贷、质押 |
源码地址:https://github.com/naviprotocol/navi-sdk
4.1. depositCoin (存款功能)
depositCoin(
txb:Transaction , // 交易块:包含交易信息 (PTB 最新sdk 是支持了TransactionBlock)
_pool:PoolConfig, // 目标资金池:如 SUI 池、USDC 池等
coinObject: any, // 要存入的代币对象
amount: any // 存入金额
)
4.2. borrowCoin (借款功能)
borrowCoin(
txb: Transaction,// 交易块:包含交易信息
_pool: PoolConfig, // 目标资金池:要借出的资产所在池
borrowAmount: number// 借款金额
)
源码中还有其他业务场景设计的函数方法,此次暂未使用。
总结Navi Protocol 和PTB的基本使用流程。
Task6任务流程总结:
Web3世界如此这般宏大,还有很多需要学习。 💧 HOH水分子公众号
📹 课程B站账号
💻 Github仓库 <https://github.com/move-cn/letsmove>
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!