如何用chatgpt创造一份BRC协议
注:本文来自@CKN_ACEE 推特,其是@Cardanokn 创始人,原推文内容由MarsBit整理如下:
我是如何用chatgpt创造一份brc协议的
首先有了一个想法,如果把brc-20想象成一份账本,索引是个掌柜,那么我们是不是可以随便在上面玩?只要这个掌柜能够算的过来;于是我想到了一个非监禁的质押协议:让铭文的迭代代替时间的轮转
https://cardano-knight-network.gitbook.io/brc-721k/
第一步,我打算喂给gpt orc-20的函数写法,让他先学习;当然他学的很快,并且理解的很通透;但我并不需要这么复杂的解读,于是让他保持最简单的函数
第二步,我和gpt拆分的我的想法,1.部署 2.质押 3.取消质押 4.领取奖励 5.转账; 刚开始他还是不太理解这么简单的函数,但是经过我简单的调教,他给出了以下:一个融合了部署以及质押合约的函数
第三步,这是为一个nft合集创造的协议,那么需要包含多个铭文id,这是他给我的答案,我很满意并夸赞了他。
第四步,我开始和他讨论质押这个操作,我先让他试试手,给我写一个,看看有没有这么的智能;但是由于我给的信息有限,也没时间和他解释序数的规则,我就原谅他了,并且做了纠正。
随着我们的讨论,gpt越来越接近正确答案;我们接着看他是如何解决取消质押这个问题的;此时我给出了这个最有趣的概念:铭文数即时间
我们在如何确定质押者身份这个环节发生了争执。。但是很快得到了解决;因为我询问了技术大佬 @aowu2048 ,索引是可以解析发出者的钱包的,那么理所当然我们可以节省掉函数中的地址步骤: 这是最后简化的结果:
{
"p": "brc-721k",
"tick": "KNGT",
"op": "stake",
"asset_id": "e5ea...527e"
}
取消质押同理:
{
"p": "brc-721k",
"tick": "KNGT",
"op": "unstake",
"asset_id": "e5eaf....3fa0i0"
}
第五步 ,我想使用一张函数来表达领取奖励以及这张铭文可以作为token直接使用(节省了一次gas);这是他第一次给我的结果,很明显他现在懵不了我了,于是我给他提了两个要求:1,是领取奖励 2.是记录领取的奖励数
好的,继续忽悠我了,给了我一个不知道哪来的数值,这绝对不是我想要的;因为用户到了这一步是可以自己计算收益数额的,即:stake的部署铭文号(假设为1000) - unstake的铭文号(假设为3000)x 奖励比例(假设为1.2), 索引负责校对即可。
简单的调教过后给出了我满意的答案,是不是看上去很弱智
但确实只需要这样就行了
最重要的部署,质押以及奖励领取已经写完了;我尝试让他简单的复盘有没有逻辑问题; 结果是没什么卵用;那么我们进行最后一步:转账
在转账这一步是给我了一个很全面的答案啊,但还是像之前说的,索引可以解决地址校对的问题;最终答案如下:
{
"p": "orc-20",
"tick": "orc",
"op": "transfer",
"amount": "amount"
}
好了,做个总结吧:
此协议提供了一套用于部署代币、执行质押、取消质押、领取奖励以及转账操作的函数; 我们提出了一个非常有趣的概念:将时间的概念换成铭文的数量,成功解决了brc-20协议之上无法精准计算质押长度的问题。这同时也非常的复古有趣,质押时间内的铭文数量增加将会增加收益