本文主要是介绍用smartpy 写tezos智能合约,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
虽然早年tezos经常是给人喷没必要,以及如今又被骂drama queen。然而这货带领本三脚猫了解起了区块链智能合约。
本来想基本去掌握下liquidity然而发生了OCaml大佬甩锅的事情,liquidity在他们repo里面妥妥把tezos换成了dune,本人也就放弃了。
转而用上了smartPy。现阶段这货只能在smartpy.io上混web-based IDE editor。本地还没有办法配置(不像Liquidity其实已经做到了)。相信用原始的Michelson是可以做到本地的,但是对于这门相对低阶的语言,本人实在没这水平去费神掌握好...
其实网上好的教材,目前这个时点真的不多(嗯,对,我说的是免费的。花钱的一般我也不会干的...)。
接下来是对于地址注册这个程序,找到的教程上就给一半解释,我把测试部分填好,于是就可以拿着跑通他了。
import smartpy as sp #支持tezos,目前应该还是开发早期,文档都不够傻瓜,要靠悟...class NameRegistry(sp.Contract):def __init__(self):self.init(addressToName = sp.Map()) #初始化一个key——value字典,本人把这些都叫字典 @sp.entryPoint #允许传合同参数的标记def register(self, params):sp.setType(params.name, str)self.data.addressToName[sp.sender] = params.name@addTest(name = "Advanced Test")
def test():# Create HTML output for debugginghtml = h1("Name Registry")firstOwner = sp.address("firstOwner-address-1234")# Instantiate NameRegistry contractc1 = NameRegistry()c1.register(name = "ledger_ledger").run(sender = firstOwner) #sender就是这个合同的地址了,这个合同给他起名叫:ledger_ledgerhtml += c1.fullHtml()setOutput(html)#目前只能跑在smartPy.io的网站上哦。
线上效果:
备忘一下:转为michelson后本地部署教程中的Event Planner:
#: ./tezos-client originate contract mii for moneyPool transferring 1 from moneyPool running ~/mii.tz --init '(Pair {} "KT1HWk1LNaUvGpFxk2vCs4ZbA3gFnbMDnRkk")' --burn-cap 1.5
这篇关于用smartpy 写tezos智能合约的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!