script (⏱,💰)

script (⏱,💰)

StarkNet

cover
cover

NG#10 - 无序多签账户

关于合约账户有 3 个子任务,共同组成了 bad account 系列。本文是系列的第三个任务 Orderless Hashing。 分析# 这题和上一题一样有 2 个合约,账户合约 GrandPharaoh 的构造器中指定了特定的公钥。__validate__中的get…
cover
cover

NG#9 - 多签账户

关于合约账户有 3 个子任务,共同组成了 bad account 系列。本文是系列的第二个任务 Bendy Signatures。 分析# 题目里有 2 个合约,sphinx 是抽象账户合约,由账户去调用 gates 合约的 open 方法。sphinx 有很多限制,给了 3…
cover
cover

NG#8 - 合约账户

关于合约账户有 3 个子任务,共同组成了 bad account 系列。本文是系列的第一个任务 Stealing Souls。 下载任务后有 2 个账户合约,分别是 tombkeeper_1.cairo 和 tombkeeper_2.cairo,部署时会自动 mint 100…
cover
cover

NG#7 - calldata

本任务内容是关于 StarkNet 合约的 calldata。calldata 是指函数调用时传递给函数的数据,在 StarkNet 中,传入的数据可能是各种类型,但最终都会转换为多个 felt252 组成的 snapshot,具体见call_contract_syscall。…
cover
cover

NG#6 - 存储布局

这个任务是关于合约状态变量存储的。需要用类似 Solidty 中的 sstore 直接向智能合约的存储中的指定位置写入特定值。 下载任务后,可以看到需要用 storage_write_syscall 按要求在特定 slot 位置写 felt252,2 个参数都是 felt252…
cover
cover

NG#5 - 溢出

思路# Cairo 里的 felt 有一个范围,如果超过了就会出现溢出,这题的 amount 需要传入一个大于 1000000000000000 的数,乘以另一个数 6007,使计算出来的值上溢后,等于 balance。balance 一开始是 0,每次调用 claim…
cover
cover
cover

NG#4 - 合约地址计算

没有完成入门任务的参考安装入门 Vanity Addresses 是 Cairo 的 CTF 独立任务,类似 Solidity 中的 CREATE2,通过修改 salt 来部署特定前缀后缀的合约地址,再用这个合约去调用目标合约。具体是生成一个开头是 0x04515…
cover
cover

NG#3 - 字典

没有完成入门任务的参考安装入门 Racing Riverboats 是 Cairo 数据结构与算法任务 Think Cairo 的第三个任务,主要是使用字典查询数组中重复值的问题,共有两个小题。 列表中重复值的索引# 第一题「寻找鳄鱼」,本质上是在 array 中找到重复项…
cover
cover
cover
cover

NG#2 - 二叉树

没有完成入门任务的参考安装入门 Puzzling Pyramids 是 Cairo 的 数据结构与算法任务 Think Cairo 的第二篇,主要解决二叉树问题,共有两个小题。 中序 DFS# 如图需要把二叉树从左到右转换为列表,稍微懂算法就知道是中序的 DFS…
cover

NG#1 - 数组与所有权

介绍# 没有完成入门任务的参考上一篇安装入门 Sparring Sorcerers 是 Cairo 的 数据结构与算法任务 Think Cairo 的第一篇,主要解决所有权和数组操作。需要编写 2 个法师组成的队伍对战。 sorcerer.cairo 中是定义法师,法师有…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

NG#0 - Cairo入门

介绍# Node Guardians 是一个学习 Solidity 和 Cairo 的网站,在华丽的游戏界面后面是优秀的课程设计,强烈建议学习。本系列从头介绍怎么一步一步完成课程。 打开网站 https://nodeguardians.io/dev-hub?s=devhub…
cover
cover
cover
cover

StarkNet 命令行转账方法

介绍StarkNet通过命令行转账ETH的方法
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.