☁️

starknet101

引用及转载请注明原作者, 创作不易, 请多多支持🙌
具体活动网址请戳👉Here
活动基本内容在Voyoger的Goerli测试上面与合约交互, 用Argent钱包, 每交互完成一个之后, 就会获得2个Token, 这些Token都是在测试网上, 并不是主网 一共是13个题目, 每完成一个会给2个Token.👣

安装钱包

  1. 戳这里👉Here安装钱包.
  1. 奖励的Token地址: 0x074002c7df47096f490a1a89b086b8a468f2e7c686e04a024d93b7c59f934f83. 切到Goerli测试网上, AddToken, 把这个代币合约填上.
  1. Voyager的具体使用方法, 请看活动地址的Github, 里面描述较为详细🚩
  1. 安装完成之后, 会默认让你Deploy Wallet,并同时下载Json文件, 保存好. 👉[目前Argent钱包与合约交互的每笔tx耗费时间都比较长, 需要耐心等一等🐱‍👤]
  1. Deploy完成之后 还需要再Mint一下, Mint成功之后 TestToken那里会多出1000
notion image
  1. 注意: Here的链接 不一定正确, 可以去github的挑战地址那里跳转🐱‍👓

Task

Task1

  • 很简单, 直接去Here与合约交互, 点击下图claim_points就行, 交互完成之后, 你的钱包里的SC101这个Token会自动增加两个✔
notion image

Task2

  • 相比于上一步, 这一步需要你先去看一下Here你的secret_value是多少, 比如我的是31020
notion image
  • 拿到这个数字之后, 再去WriteContract那里把你的值填进去, 再点击Transact 就行✔

Task3

  • 这个任务要相对麻烦一些, 需要等好长时间, 合约Here
  • 下图框里的三个 分别是重置, 加2, 减1操作
notion image
  • 在这个任务里, 你需要让你的Value变成7. 大概就是
    • 先跑一下reset函数
    • 再四次加一次减
    • 差不多之后去ReadContract那里有个user_counters函数, 复制你的地址
    • 查一下你的value, 到7之后, 老规矩 claim就行✔
  • 注意 , 如果Increament操作报错的话, 那就先放过这个Task把, 多开几个号要省时间🐱‍🐉

Task4

  • 第四个也稍微麻烦一些, 需要做加减法👣.
  • 第一步是先去Here 执行一下assign_user_slot函数
  • 执行完之后在readContract里面的函数6, 有一个user_slots, 输入你的地址, 出来一个值[注意这个值不是0 , 如果是0 就再跑一下assign函数👣]
  • 拿到slot值之后, 下面有个value_mapped 把你的slot值放进去 出来一个值, 比如1032
  • 这个数 减去32, 填到claim_points那个框框里✔

Task5

  • 先去Here运行一下assign_user_slot函数
  • 然后运行一下copy_secret_value_to_readable_mapping这个函数
  • 在readContract的函数7user_values 输入你的账户, 拿到值
  • 在claim里面 输入你拿到的值. claim即可✔

Task6

  • 先去Here运行一下assign_user_slot函数
  • external_handler_for_internal_function运行一下这个函数, 参数为0
  • 回到readcontract里面, 有个user_value 输入你的账户地址, 拿到这个值
  • 拿到上面函数的结果之后, 作为参数 传到claim里面即可✔

Task7

  • Here这一步里面是输入两个值a,b. 满足一些数学条件, a=45, b=0就行
  • claim即可✔

Task8

  • 后面的任务都比较麻烦了, 我没有做很多👀 也懒得重复了, 后买有时间再更👨‍👧‍👧 ,直接开多号冲前面省时间的更合适👣
  • 这个是递归 稍微难一点.
  • Here这里 set_user_values里面 账户填你的地址, array写[1,10,3,4,5,6,7,8,9,10,11,12]
  • claim_points即可✔

Task9

  • 直接去这里的Claim_Tokens Here
  • 输入这四个数✔ 40,16,6,2

Task10

  • Here执行函数6 拿到address, 选择Hex,是个地址
notion image
  • 拿到上面的地址之后, 去这个地址的ReadContract拿到Secret_value
notion image
  • 拿到之后, 回到挑战任务的地址👉 Here ,第一个格子填写拿到的数字, 第二个格子随便填 别写0🍖
notion image

Task11

  • 地址 Here注意, 如果这个做错了 可能还会扣两分 hhhh 真狗啊🤷‍♀️
  • 找到第11个合约地址的ReadContract函数6, secret_value. 拿到数值
  • 去WriteContract那里 第一个空填你拿的数值减去42069
  • 第二个空随便填, 别写0✔

Task12

  • 先去Here运行函数2, assign一下. 保证在Readcontract那里读出来的slot不等于0 , 若是0, 就再assign一下. 🐱‍👓
  • 找到最新的assign的tx, 找一下event, 这是16进制的嗷, 记得换算. 用这个数减去32
notion image
  • 回到claim_points里面写你计算出来的数✔

Task13

  • 老规矩, 先去assign, 确定slot值不为1
  • 找到你的slot值, 用100减去这个slot.
  • 去这里Here的data里面
notion image
  • 找到你对应的值那里, 记录下后面的数字, 填到claim里面✔
  • 如果报错reject, 看一下什么报错, 如果是类似 instruction failed: 5873 != 3557 那就改一下, 把claim那里的值填入等号左面的那个数字✔

恭喜铁子🚩 任务All Done🚩


技术方面

  1. 确保python版本>=3.7 我在EC2上默认3.6, 所以换版本折腾挺多东西🤦‍♂️
  1. 撸的是这个👉Here
  1. Vscode插件👉Here 或者直接从Extension安装
  1. 貌似积分 不能转移🤦‍♀️参考资料 123
  1. 如果nile node 启动的时候报错 KeyError: WERKZEUG_SERVER_FD 参考Here走完上面三个教程之后, 过这个👉https://github.com/l-henri/starknet-cairo-101就好
  1. 我在配置的时候 主要是python3.6, 它要求python3.7以上, 中间做一些升级出现了不少的问题👇
      • pip install的时候出现问题 我是直接用whl文件安装
      • nile init出现问题 我是看了下, 是需要安装fastecdsa之类的包, 手动安装的