使用remix编译部署cairo合约

环境:

Remix - Ethereum IDE

安装 startnet插件过程

左侧底下:1)找到左侧 `Plugins` 2) 激活`Starknet` 插件

3)激活之后,如下图,出现红圈的图标。

2、写cairo程序

一个简单的程序,只是用来学习 cairo语言的变量 

程序代码如下:

#[starknet::contract]
mod variables {
    // declare storage variables
    #[storage]
    struct Storage{
        var_felt: felt252,
        var_bool: bool,
        var_uint: u8,
        }

    // read storage variable
    #[external(v0)]
    fn read_bool(self: @ContractState) -> bool {
        return self.var_bool.read();
    }

    // write storage variable
    #[external(v0)]
    fn write_bool(ref self: ContractState, bool_: bool) {
        self.var_bool.write(bool_);
    }

    // local variables
    #[external(v0)]
    fn local_var(self: @ContractState){
        // use `let` keywods to declare local variables
        let local_felt: felt252 = 5;
        let local_bool = true;
        let local_uint = 1_u8;
    }
}

3、在Remix环境里, 新建一个文件,名字可以随便取(例子里取名 TestCariroNew.cairo), 把上面代码拷贝到文件里。

点击: Compile,如果没有报错,就说明编译成功。

4、开始部署到链上

这里要选择, Remote Devnet, 账户选择第一个即可。 部署成功后,控制台会输出结果。

{ "transaction_hash": "0x44296ab03cd6fff56b6dd4d51886a2beeb9781cbafe495f6c6ea90db1d76c01", "contract_address": "0x1e34c076b988780efc140beec3988face73f13f7c3002efdaec62153e2dc1e1", "address": "0x1e34c076b988780efc140beec3988face73f13f7c3002efdaec62153e2dc1e1", "deployer": "0x5e778638cb1b3c8d38e8c09eec362613dc961c7c62af612846b2e01e364c76a", "unique": "0x1", "classHash": "0x6a4f14ce187ebf9fc7004cc1693ee3c1f134230cd0b9713b8ccd4d3d919bc0a", "calldata_len": "0x0", "calldata": [], "salt": "0x2bba0a16cf470789a1c6314a38b3e6639c4098d9000d9aced8394ae381c964c" }

5、 与合约交互,每次交互,结果都会显示在控制台里, 这个不像Solidity语言那样,直接能显示在remix界面,后续可能会优化。

第一个直接read bool

{ "response": { "result": [ "0x0" ] }, "contract": "TestCairoNew.cairo", "function": "read_bool" }

写入

{"response":{"transaction_hash":"0x1162dbf1194609be6e9589c7d52cf6a47c5db87331696a5ef641e5701e7c737"},"contract":"TestCairoNew.cairo","function":"write_bool"}

{"resultOfTx":{"transaction_hash":"0x1162dbf1194609be6e9589c7d52cf6a47c5db87331696a5ef641e5701e7c737","status":"ACCEPTED_ON_L2","messages_sent":[],"events":[{"keys":["0x99cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9"],"from_address":"0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7","data":["0x5e778638cb1b3c8d38e8c09eec362613dc961c7c62af612846b2e01e364c76a","0x6c95526293b61fa708c6cba66fd015afee89309666246952456ab970e9650aa","0x7316936f00","0x0"]}],"block_hash":"0x73bf60a1675d44b4f8173832d6a25aa0c3499dd33e9397f5a67438a18e36e3a","block_number":236,"actual_fee":"0x7316936f00","transaction_index":0,"execution_resources":{"n_memory_holes":11,"builtin_instance_counter":{"range_check_builtin":9},"n_steps":295}},"contract":"TestCairoNew.cairo","function":"write_bool"}

当写入 write_bool 参数是1 以后再次调用:

{ "response": { "result": [ "0x1" ] }, "contract": "TestCairoNew.cairo", "function": "read_bool" }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值