几个避坑点
1、在solidity里, msg.sender 就是调用者, 不管是构造函数初始化,还是在合约调用时。
但是,在cairo语言里, 同样作用的 get_caller_address(), 在构造函数初始化时候,时UDC(统一合约地址), 不是调用者。 除此之外, 都是调用者地址。
2、cairo语言里,最大的整数是felt252, 252位, u256不是原生支持的, 而 实际上u256是由两部分 各128的两段组合而成。所以如果合约参数类型是u256, 那么通过starknet-remix调用时候,输入参数是两部分,通过逗号连接。 比如10000,0 。 而返回值如果是u256,返回也是两部分。
3、正常做数值运算,就用普通的u8,u32,u128, u256吧,别用felt252,这个会返回意想不到的结果,总之,别用felt252做数值运算就行。
4、cairo写合约接口时候, 建议按照solidity合约规范,用大小写方式。别用官方建议的下划线链接的方式,这种方式有坑。