聚焦资讯
服务于区块链创业者

Cairo1.0程序的入口

chatGPT账号

单文件Cairo程序入口

与大多数编程语言类似,单文件的Cairo程序入口是main函数。

use debug::PrintTrait;

const ONE_HOUR_IN_SECONDS: felt252 = 3600;

fn main(){
    ONE_HOUR_IN_SECONDS.print();
}

运行

cairo-run --path $file_path

Starknet智能合约入口

使用 #[contract] 开头,在 mod 后面加上合约名。

#[contract]
mod ERC20 {
    struct Storage {
        name_: felt252,
        symbol_: felt252,
        totalSupply_: u256,
        balances_: LegacyMap::<ContractAddress, u256>,
        allowances_: LegacyMap::<(ContractAddress, ContractAddress), u256>,
    }

    #[event]
    fn Transfer(from: ContractAddress, to: ContractAddress, amount: u256) {}

    #[event]
    fn Approval(owner: ContractAddress, spender: ContractAddress, amount: u256) {}

    #[constructor]
    fn constructor(_name: felt252, _symbol: felt252) {
        name_::write(_name);
        symbol_::write(_symbol);
    }

    #[view]
    fn name() -> felt252 {
        name_::read()
    }

    #[view]
    fn symbol() -> felt252 {
        symbol_::read()
    }

    #[external]
    fn transfer(_to: ContractAddress, _amount: u256) -> bool {
        let _msgSender = get_caller_address();
        _transfer(_msgSender, _to, _amount);
        true
    }
    
    ...
}

上面是一个实例ERC20合约代码。

免责声明

发文时比特币价格:$24249

免责声明:

本文不代表行至网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至区块链研究院声明:行至区块链研究院内容由行至网发布,部分来源于互联网和行业分析师投稿收录,内容为行至区块链研究院加盟专职分析师独立观点,不代表行至网立场。

chatGPT账号
赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,未经允许不得转载。
文章名称:《Cairo1.0程序的入口》
文章链接:https://www.xingzhi.io/definance/19532.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

服务于区块链创业者

业务范围商务合作

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的区块链世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录后才能复制或下载网站内容