主网NFT的发布合约

1.什么是nft?

NFT:Non-fungible-token
非同质化货币

2.新建suimove项目

使用sui move new 项目名命令新建sui move项目

sui move new nft_qyx

项目结构如下:
在这里插入图片描述

3.写nft合约

module qyx123::nft{use sui::object::{Self, UID};use sui::transfer;use sui::tx_context::{Self, TxContext};use sui::display;use sui::package;use std::string::utf8;struct NFT has drop {}//我的nft结构体,属性id和tokenidstruct MyNFT has key,store{id: UID,tokenId: u64}struct State has key {id: UID,count: u64}fun init(witness: NFT, ctx:&mut TxContext){//键值对,键名和值一一对应//键名let keys = vector[utf8(b"name"),utf8(b"collection"),utf8(b"image_url"),utf8(b"description")];//value值let values = vector[utf8(b"MyNFT #{tokenId}"),utf8(b"MyNFT Collection"),utf8(b"自己的头像地址"),utf8(b"This is My NFT")];//使用 packge和display发布地址//创建发布者let publisher = package::claim(witness,ctx);//创建displaylet display = display::new_with_fields<MyNFT>(&publisher, keys, values, ctx);display::update_version(&mut display);transfer::public_transfer(publisher, tx_context::sender(ctx));transfer::public_transfer(display, tx_context::sender(ctx));//计数器transfer::share_object(State{id: object::new(ctx),count: 0});}entry public fun mint( state:&mut State, ctx: &mut TxContext){let sender = tx_context::sender(ctx);//计数器state.count = state.count + 1;let nft = MyNFT {id: object::new(ctx),tokenId: state.count,};transfer::public_transfer(nft, sender);}}

4.引入图片

找到一张图片,转为base64,代码放到上面的value中的图像地址中

		//value值let values = vector[utf8(b"MyNFT #{tokenId}"),utf8(b"MyNFT Collection"),utf8(b"自己的头像地址"),//此处utf8(b"This is My NFT")];

5.发布到开发网testnet

5.1列出当前所有网络别名和当前网络:

sui client envs

此处显示我目前为devnet
在这里插入图片描述

5.2切换网络命令可以切换到对应网络

切换网络:

sui client switch --env [network alias]

5.3编译代码

跳过拉取最新git依赖

sui move build --skip-fetch-latest-git-deps

编辑不通过记得在mint函数前加上

  #[lint_allow(self_transfer)]

编译通过
在这里插入图片描述

5.4发布到testnet

sui move test  --skip-fetch-latest-git-depssui client publish --skip-fetch-latest-git-deps --skip-dependency-verification --gas-budget 500000000

不成功在init函数前加上

    #[allow(unused_function)]

发布成功
在这里插入图片描述
通过sui浏览器查询packageID
https://suiexplorer.com/
在这里插入图片描述

6.mint

在这里插入图片描述

复制计数器id到mint处执行在这里插入图片描述
支付后mint成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/505659.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch搜索引擎

目录 初识elasticsearch 了解ES 什么是elasticsearch elasticsearch的发展 搜索引擎技术排名&#xff1a; 总结 倒排索引 正向索引和倒排索引 正向索引 倒排索引 总结 es的一些概念 文档 索引 概念对比 架构 总结 安装es&#xff0c;kibana 安装es 安装kiba…

Javaweb之SpringBootWeb案例之自动配置的原理分析的详细解析

3.2.3 原理分析 3.2.3.1 源码跟踪 前面我们讲解了在项目当中引入第三方依赖之后&#xff0c;如何加载第三方依赖中定义好的bean对象以及配置类&#xff0c;从而完成自动配置操作。那下面我们通过源码跟踪的形式来剖析下SpringBoot底层到底是如何完成自动配置的。 源码跟踪技巧…

技术阅读周刊第十四期:常用的 Git 配置

技术阅读周刊&#xff0c;每周更新。 历史更新 20231122&#xff1a;第十一期20231129&#xff1a;第十二期20240105&#xff1a;第十三期&#xff1a;一些提高生产力的终端命令20240112&#xff1a;第十四期&#xff1a;Golang 作者 Rob Pike 在 GopherConAU 上的分享 How I w…

第19章-IPv6基础

1. IPv4的缺陷 2. IPv6的优势 3. 地址格式 3.1 格式 3.2 长度 4. 地址书写压缩 4.1 段内前导0压缩 4.2 全0段压缩 4.3 例子1 4.4 例子 5. 网段划分 5.1 前缀 5.2 接口标识符 5.3 前缀长度 5.4 地址规模分类 6. 地址分类 6.1 单播地址 6.2 组播地址 6.3 任播地址 6.4 例子 …

计算机网络(4)----局域网与广域网

目录 1.局域网 (1)局域网拓扑结构 (2)局域网的传输介质 (3)局域网介质访问控制方法 (4)局域网的分类 (5)IEEE 802标准 (6)MAC子层与LLC子层 (7)常用的局域网技术---以太网 (8)以太网传输介质与拓扑结构的发展 (9)常用的以太网---10BASE-T以太网 (10)适配器与MAC地址…

SMBGhost漏洞技术分析与防御方案

事件分析 最近国内外各安全厂商都发布了SMBGhost(CVE-2020-0796)漏洞的预警报告和分析报告&#xff0c;笔者利用周末休息时间也研究了一下&#xff0c;就算是做一个笔记了&#xff0c;分享给大家一起学习下&#xff0c;目前外面研究的POC大部分是通过SMB压缩数据包长度整数溢出…

在github的README.md中插入视频;在github的README.md中添加gif演示动画

最近需要再github中上传项目的源代码&#xff0c;应导师的要求&#xff0c;需要再README中加入对实验视频的展示&#xff0c;但是github的README.md其实就是一个markdown文件&#xff0c;据我的理解这个文件里应该无法直接插入视频吧&#xff1f;&#xff08;如果后续有办法直接…

BUGKU 网站被黑

打开环境&#xff0c;什么都没发现&#xff0c;使用蚁剑扫描一下&#xff0c;发现shell.php&#xff0c;打开 使用BP抓包&#xff0c;进行爆破 得到密码&#xff1a;hack 进去得到flag

嵌入式中汇编语言的基本实现

大家好&#xff0c;今天给大家分享&#xff0c;GNU汇编的语法。 第一&#xff1a;汇编简介 GNU 汇编语法适用于所有的架构&#xff0c;并不是 ARM 独享的&#xff0c;GNU 汇编由一系列的语句组成&#xff0c; 每行一条语句&#xff0c;每条语句有三个可选部分&#xff0c;如下…

Python爬虫Cookies 池的搭建

Cookies 池的搭建 很多时候&#xff0c;在爬取没有登录的情况下&#xff0c;我们也可以访问一部分页面或请求一些接口&#xff0c;因为毕竟网站本身需要做 SEO&#xff0c;不会对所有页面都设置登录限制。 但是&#xff0c;不登录直接爬取会有一些弊端&#xff0c;弊端主要有…

【分布式websocket】RocketMQ发送消息保证消息最终一致性需要做哪些处理?【第15期】

前言 发送消息的逻辑在发给mq后消息链路就直接结束了。那么消息在mq收到后我们该如何保证后面消息一定能存储呢&#xff1f;执行业务逻辑出错了怎么办呢&#xff1f;当然这期只是IM特定场景下的一致性哈&#xff0c;不是分布式事务哈&#xff0c;有点小区别&#xff1f;使用MQ…

linux系统Jenkins工具流水线项目发布

流水线发布 pipline语法介绍阶段指令 创建流水线项目流水线脚本基础框架 pipline语法介绍 声明式的pipeline语法格式 1. 所有的声明都必须包含在pipeline{}中 2. 块只能有节段&#xff0c;指令&#xff0c;步骤或者赋值语句组成 3. 阶段&#xff1a;agent&#xff0c;stages&a…