- 博客(20)
- 收藏
- 关注
原创 zksync第二课
如果部署过其他solidity项目,可以看出,上面的文件结构和其他项目很相似。2、在eth 测试网上领取,然后跨链到zk testnet。4、有一个私钥(可以从metamask里读出来)查看项目目录 ls hello-zksync/hardhat.config.ts 是配置文件。5、领水,需要有一些testnet的代币。1、直接领取zk testnet上的水。感觉是代理问题,所以打开代理后正常了。第二,查看创建后项目初始状态。这样一个项目就被创建出来了。2、node版本大于18。deploy 部署目录。
2024-03-03 12:54:39
386
原创 starknet训练营听到的干货
2、cairo语言里,最大的整数是felt252, 252位, u256不是原生支持的, 而 实际上u256是由两部分 各128的两段组合而成。所以如果合约参数类型是u256, 那么通过starknet-remix调用时候,输入参数是两部分,通过逗号连接。3、正常做数值运算,就用普通的u8,u32,u128, u256吧,别用felt252,这个会返回意想不到的结果,总之,别用felt252做数值运算就行。4、cairo写合约接口时候, 建议按照solidity合约规范,用大小写方式。
2023-12-03 21:52:46
67
1
原创 starklings-cairo1完结篇
starklings-cairo1终于学完了,基本的语法掌握了,不过也累的精疲力竭,有很多语法一时半会还接受不了。比如, 写入一个合约变量,需要用 write方法, 我们平时都习惯用 赋值=, 比如变量 name平时用 self.name = name, 或者 name = _name 就赋值了。但是在cairo里得用挺别扭的。好在通过能过一遍语法知识,还有例子。总算掌握了大概。
2023-11-27 20:26:38
70
原创 cairo单元测试
写区块链智能合约离不开单元测试,甚至有些都是测试驱动开发,没有单元测试,没法保证程序可靠性,所以自己开发的,部署到链上的新合约一定要有单元测试保证。所以看一下cairo的单元测试写法。
2023-11-26 10:26:29
60
1
原创 编译cairo时候遇到一个奇葩的问题
今天继续通过starklings,学习cairo语言今天学习了以下课程:optionsarraysstructs前两课没有波澜,学习了语法,并且修改代码之后,基本就编译通过了。
2023-11-24 19:29:58
42
1
原创 一个学习非常好的工具
整天学习各种语言,首先从语法开始,上来就是数据类型, 控制语句,循环,结构体,接着函数、常用结构体,都是这一套流程,有时候学习到后面就忘了前面,必须得有案例把语法知识点用上才能记住要点。学习cairo也不例外, 学习了类似rust的语法, 基本类型,u8、u16、u64等,还有felt252等。还有所有权,快照,引用等各种特殊语法。没有实际项目经验,学了也体会不深。但是有一个快速入门和加深理解,甚至是把学习知识直接应用到小项目里,这样的项目是不是学习起来就快了呢?今天说的就是这样一个工具。
2023-11-22 20:33:02
30
原创 构造函数、事件、以及诡异点
这次测试的合约有一个奇怪的点,合约只有一个owner变量,值构造函数中初始化,把调用者的地址赋给 owner, 这是一个在solidity里非常常见的操作,读出来的owner就是部署者地址。例子:不明白读出的owner : 0x41a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf ,这个地址是哪里的,个人账户里根本没有这个,看来部署的地址不是用的列表里这些地址。构造函数必须用 #[constructor] 修饰,每个合约只能有一个。
2023-11-19 19:34:53
35
原创 cairo学习中Option和条件语句
这里revert原因,个人分析, 因为参数是 Option<u8> , 输入框里没法输入此类类型,所以导致输入的参数都revert, 但是只有输入0,1时候执行成功,就算输入1时候执行成功,结果也是0。Some可以是任何类型的值, None只能是 (),这里cairo语法和rust 几乎一致,都是利用类型系统做安全检查,就连获取Some里的实际值也是使用 unwarp方法。这两个Option自带 is_some, is_none函数,就像名字表达一样,这个函数返回boo变量。
2023-11-19 16:25:34
31
原创 使用remix编译部署cairo合约
3、在Remix环境里, 新建一个文件,名字可以随便取(例子里取名 TestCariroNew.cairo), 把上面代码拷贝到文件里。5、 与合约交互,每次交互,结果都会显示在控制台里, 这个不像Solidity语言那样,直接能显示在remix界面,后续可能会优化。这里要选择, Remote Devnet, 账户选择第一个即可。左侧底下:1)找到左侧 `Plugins` 2) 激活`Starknet` 插件。点击: Compile,如果没有报错,就说明编译成功。3)激活之后,如下图,出现红圈的图标。
2023-11-15 22:16:02
179
原创 Startnet合约部署概要记述
此处需要注意,由于构造参数需要一个字符串,但是部署时候不能直接输入字符串,只能是16进制串。3)Katana,本地部署的startnet环境,类似(ganache,或者foundry的anvil)此处调用get_name 返回的是一个16进制串,需要使用函数转换成可读字符串。1)Starkli, 可以与Startnet各种环境交互的客户端工具。此时编译后的中间文件,就存放在target/dev目录下了。至此,一趟全流程的合约部署体验完成。invoke: 调用合约读写函数。接下来,调用修改合约状态函数。
2023-11-12 11:26:04
132
1
原创 学习下智能合约里的时间锁
时间锁本质就是:让交易先创建,过一段时间才能执行。这期间,如果人们发现交易有问题,就有时间做应对。2、call调用, 合约如何调用, 函数签名, 函数选择器。1、modifier, 用来约束函数,权限控制。
2023-03-12 20:59:31
252
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人