区块链入门

【第1课】如何在Tezos链上发布ERC20资产

2021-09-09  本文已影响0人  笔名辉哥
InCore.jpg

1. 摘要

Tezos链是一条比较小众的公链,国内的技术人员相对比较少。本文作为该公链的第一批中国开发者,以图文并茂的形式介绍如何在Tezos链上发布ERC20资产。

2. 内容

(1)安装Temple-Tezos Wallet插件

翻墙,google 应用商店搜Temple-Tezos,Temple-Tezos Wallet(ex.Thanos)安装起来。类似metamask插件。

(2)新建钱包

地址:tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U 私钥:edskRkxztWUgQpgrkXKbjKRS7G76KkJqprgMVkHDCSCyWwTvzgDXER67HUipBANomcc8oxeqHrQumMG2ENmEgMT4wSWAsE1mFz 助记词:wait hill federal memory club wish shallow crumble web decrease grocery game square cake oppose pulse jelly train 密码:Mozik@2021

(3)从telegram获得测试币和开光

edo2net余额: 100.000000 xtz

然后记得开光reveal account。

地址:https://smartpy.io/origination

点击reveal account完成开光。

reveal account

(4)编译合约

打开在线IDE编辑器网址:https://smartpy.io/ide

把“Moz-Token_FA2.py”新合约代码复制到编辑器中,点击"RUN"按钮完成编辑。

编译成功

(5)修改administrator地址为自己的账号

部署合约前,修改administrator地址为自己的账号,对应的TAB为STORAGE JSON。

[1] 编译页点击“Deploy Michelson Contract”按钮

Deploy Michelson Contract

[2] 部署页面完成账户关联后进行administrator修改

<1> 选择要部署网络,是主网还是florencenet测试网

<2>点击Temple钱包按钮,完成对应账号在选择的网络的关联

<3> 关联成功,可以查看3.,看到账号信息。

关联temple账户

[3] 部署前修改管理账户

上面页面往下拉,点击 “EDIT MODE”按钮,把管理账户由tz1hdQscorfqMzFqYxnrApuS5i6QSTuoAp3w 改为自己控制的账户,例如 tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U。

修改管理账号

(6)部署合约

https://smartpy.io/origination

[1] “ESTIMATE COST FROM RPC” 按钮

估算GAS费

[2] "DEPLOY CONTRACT"按钮

点击部署合约按钮,完成跟Temple的钱包后,就可以获得合约了。

预签名信息 钱包确认签名 部署成功

[3] 部署网址信息

<1> 点击"OPEN EXPLORER"可以查看部署合约的信息:

https://smartpy.io/explorer.html?address=KT1E8EVHGxpDxJKAfxVi8qUuRn93SmQdFrGV

OPEN EXPLORER

<2> 点击“SAVE CONTRACT”可以保存合约信息:

https://smartpy.io/wallet.html

SAVE CONTRACT

(7)发布ERC20 TOKEN

地址:https://smartpy.io/explorer.html?address=KT1E8EVHGxpDxJKAfxVi8qUuRn93SmQdFrGV

给管理账号:tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U发行1000万的ERC20 TOKEN。

[1] 调用mint函数
<1>Address:tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U
<2>Amount:1000,0000,000000000000000000 [输入amount去除,] <3>Metadata:one, 0x697066733a2f2f516d5950764e4e317843715a747864475766583458716233454e567170624659723872596a773867794454746b4d
<4> token id = 0

说明:

<1>其中ipfs://QmYPvNN1xCqZtxdGWfX4Xqb3ENVqpbFYr8rYjw8gyDTtkM转成16进制 0x697066733a2f2f516d5950764e4e317843715a747864475766583458716233454e567170624659723872596a773867794454746b4d

网址:https://www.sojson.com/hexadecimal.html

<2>对应信息: { "name": "Mozik", "symbol": "MOZ", "decimals": 18, "shouldPreferSymbol": true, "thumbnailUri": "ipfs://QmTYMWr7NC5a35WMTx6FutDKFysd4XiuJc86gb8UJnCqLU" }

<3> 可以点击https://gateway.pinata.cloud/ipfs/QmYPvNN1xCqZtxdGWfX4Xqb3ENVqpbFYr8rYjw8gyDTtkM查看。

设置如下:

设置mint参数

要点击上面的“Build Transaction Parameters”生成参数:

生成参数

[2] “Private Key and Account ”选择Temple,连接对应的钱包

连接钱包

如果连接成功的话,可以看到该钱包的地址和XTZ余额。

钱包信息

[3] 发送交易

点击"Send the Transaction"完成交易。

发送交易

[4] Set metadata

调用Set metadata函数:

k选择空,V选择上面的16进制,k,v: ,0x697066733a2f2f516d6636746a7364376b774845534d4a68434c594e4846376a364164474e6d746e4272635643346153383759774c

set metadata

说明:
<1> 其中 ipfs://Qmf6tjsd7kwHESMJhCLYNHF7j6AdGNmtnBrcVC4aS87YwL 转成16进制
网址:https://www.sojson.com/hexadecimal.html

<2> 对应信息: { "name": "Mozik", "description": "Music, Dream & Value", "version": "", "interfaces": [ "TZIP-12", "TZIP-16", "TZIP-21" ] }

<3> 点击以下链接可查看:https://gateway.pinata.cloud/ipfs/Qmf6tjsd7kwHESMJhCLYNHF7j6AdGNmtnBrcVC4aS87YwL

[5] 信息查看

<1> mint 交易详情:

https://florencenet.tzkt.io/opEUWTj7fto2y3CqZfi1Lp5epVsNFzC3w7AYEjXiTqmsKtS8jzj

Status状态为“Applied”表示应用成功了,pending表示还在等待。

部署成功

<2> set metadata 交易详情

https://florencenet.tzkt.io/oo1H6oZjzyucSGuhvGhpD8pQzzZL6H9pMVmipQ6KsXHM8V2Qvuw

状态为Applied,表示执行成功了。

<3> 查看该账号下增发的TOKEN

https://florencenet.tzkt.io/tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U/tokens

对应的TOKEN:

KT1E8EVHGxpDxJKAfxVi8qUuRn93SmQdFrGV

(8)Temple增加TOKEN

[1] 打开Temple钱包,增加TOKEN:

Temple增加管理

[2] 增加TOKEN

在VPN情况下,可以在temple中增加TOKEN。输入地址:KT1E8EVHGxpDxJKAfxVi8qUuRn93SmQdFrGV

增加TOKEN

钱包增加MOZ TOKEN后,就可以直接在TEMPLE进行转账等操作了。

TEMPLE 钱包

(9)授权转账

[1] 切换到当前管理账户:tz1dfmLJ1RRodNx9NSQy6YzgW2nJMiA3R5eq

任务目标:

把tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U的token id:0的权限授权给第三方账号:tz1eXdTsaQVbtRAW273gcQko4eH5DnusHaBr,测试第三方账号是不是可以直接转账对tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U的TOKEN进展转账。

[2] 授权TOKEN:

授权TOKEN

[3] 转账:

切换到被授权账号tz1c4Zma1UmkEfwmEsqYdMcVpFauhNCeKY3U下,发起针对TOKEN 0的转账,转100个MOZ.

授权转账

结果:

转账成功。授权之后,就等于裸奔了,又没有额度限制,有点可怕。

3. 参考

(1) 智能合约在线编辑器 https://smartpy.io/ide
(2) smartpy智能合约参考文档 https://smartpy.io/reference.html

上一篇下一篇

猜你喜欢

热点阅读