
Starknet 春季 DeFi 激励计划
原文:Starknet Foundation Introduces: The Start of DeFi Spring 翻译及校对:「Starknet 中文社区」 📑 转载请注明出处 🕹️精选速览「Starknet 春季 DeFi 激励计划」4000 万 STRK 奖励用户3 月 7 日开始领取激励生态任务获得专属 NFT引言2023 年 11 月 9 日,Starknet 基金会宣布 Starknet DeFi 委员会成立及其成员任命,该委员会的任务是促进 Starknet DeFi 增长。 经过两个月的内部和外部研究后,Starknet 基金会非常兴奋地宣布推出为实现这些目标而量身定做的计划。 Starknet 基金会与 OpenBlock Labs 的合作,推出「Starknet 春季 DeFi 激励计划」。本为期六到八个月的项目,在此期间将向参与 Starknet 上 DeFi 协议的参与者分发 4000 万 STRK。 这是 DeFi 委员会扩大 Starknet DeFi 规模系列举措的第一步。第一部分:STRK 分发DeFi 委员会计划在接下来的六到八个月内,D...

Starknet 中文社区 2023 年终汇总
🎀 概述关注回顾 Starknet 在 2023 年的里程碑事件以及「Starknet 中文社区」的丰硕成果。 在网络生态中,Starknet 实现了一系列重要版本和重要事件更新,不仅在技术上取得了显著进展,而且扩展了众多核心开源技术栈。在生态系统中,推进发展 Starknet 优秀项目,在 TVL 和用户量等数据方面实现了可观增长。 「Starknet 中文社区」在过去一年中同样达成令人瞩目的进步,输入内容包括博客翻译、原创文章和视频、组织各类活动、合作 Cairo 训练营等各类活动,这些重要内容显示出社区成员的积极贡献和创造力,以及中文社区的独特魅力,为中国用户提供更多全面了解 Starknet 区块链的方式。 StarkWare 和 Starknet 团队和生态合作伙伴的共同努力实现 Cairo 1.0 成功升级,而 Cairo 开发者数量在过去一年中取得了巨大增长,这一成就让更多区块链开发者看到了 Starknet 背后团队的技术实力,也从侧面反映出 Starknet 生态系统中合作伙伴的紧密协作。 总而言之,Starknet 和「Starknet 中文社区」在生态、技...

聚沙成塔:StarkWare 年度回顾
原文:From Milestones to Masterstrokes: StarkWare’s Year in Review 翻译及校对:「Starknet 中文社区」 📑 转载请注明出处 🕹️不论是现在还是将来,STARK 技术都被视为助力去中心化应用(dApps)在以太坊上实现扩展和繁荣的秘密武器。概要:Starknet 为复杂、高计算要求、创新型的 DeFi 平台、链上游戏、动态 NFT 等应用奠定了基础。Starknet 在所有 L2(以及一些 L1)中,持续拥有增长最快的开发者生态系统。StarkWare 在 2023 年开源了 Stone 证明器、Starknet 排序器和 Papyrus 全节点等关键元素。继续阅读,了解我们的亮点以及 2023 年 Starknet 生态系统的整体进展。去中心化和社区STARK 技术:达到新高度在以太坊上的创新开源时刻:为协议设定新标准Starknet 应用链社区参与和活动去中心化与社区扩展Starknet 上的游戏热潮由于 L1 在规模、用户体验和高成本等方面的限制,创建成功的链上游戏几乎是不可能实现的事情。但随着有效性 R...
「Starknet 中文」社区致力于 Starknet 在中文世界发展,提供最全生态资讯。

Starknet 春季 DeFi 激励计划
原文:Starknet Foundation Introduces: The Start of DeFi Spring 翻译及校对:「Starknet 中文社区」 📑 转载请注明出处 🕹️精选速览「Starknet 春季 DeFi 激励计划」4000 万 STRK 奖励用户3 月 7 日开始领取激励生态任务获得专属 NFT引言2023 年 11 月 9 日,Starknet 基金会宣布 Starknet DeFi 委员会成立及其成员任命,该委员会的任务是促进 Starknet DeFi 增长。 经过两个月的内部和外部研究后,Starknet 基金会非常兴奋地宣布推出为实现这些目标而量身定做的计划。 Starknet 基金会与 OpenBlock Labs 的合作,推出「Starknet 春季 DeFi 激励计划」。本为期六到八个月的项目,在此期间将向参与 Starknet 上 DeFi 协议的参与者分发 4000 万 STRK。 这是 DeFi 委员会扩大 Starknet DeFi 规模系列举措的第一步。第一部分:STRK 分发DeFi 委员会计划在接下来的六到八个月内,D...

Starknet 中文社区 2023 年终汇总
🎀 概述关注回顾 Starknet 在 2023 年的里程碑事件以及「Starknet 中文社区」的丰硕成果。 在网络生态中,Starknet 实现了一系列重要版本和重要事件更新,不仅在技术上取得了显著进展,而且扩展了众多核心开源技术栈。在生态系统中,推进发展 Starknet 优秀项目,在 TVL 和用户量等数据方面实现了可观增长。 「Starknet 中文社区」在过去一年中同样达成令人瞩目的进步,输入内容包括博客翻译、原创文章和视频、组织各类活动、合作 Cairo 训练营等各类活动,这些重要内容显示出社区成员的积极贡献和创造力,以及中文社区的独特魅力,为中国用户提供更多全面了解 Starknet 区块链的方式。 StarkWare 和 Starknet 团队和生态合作伙伴的共同努力实现 Cairo 1.0 成功升级,而 Cairo 开发者数量在过去一年中取得了巨大增长,这一成就让更多区块链开发者看到了 Starknet 背后团队的技术实力,也从侧面反映出 Starknet 生态系统中合作伙伴的紧密协作。 总而言之,Starknet 和「Starknet 中文社区」在生态、技...

聚沙成塔:StarkWare 年度回顾
原文:From Milestones to Masterstrokes: StarkWare’s Year in Review 翻译及校对:「Starknet 中文社区」 📑 转载请注明出处 🕹️不论是现在还是将来,STARK 技术都被视为助力去中心化应用(dApps)在以太坊上实现扩展和繁荣的秘密武器。概要:Starknet 为复杂、高计算要求、创新型的 DeFi 平台、链上游戏、动态 NFT 等应用奠定了基础。Starknet 在所有 L2(以及一些 L1)中,持续拥有增长最快的开发者生态系统。StarkWare 在 2023 年开源了 Stone 证明器、Starknet 排序器和 Papyrus 全节点等关键元素。继续阅读,了解我们的亮点以及 2023 年 Starknet 生态系统的整体进展。去中心化和社区STARK 技术:达到新高度在以太坊上的创新开源时刻:为协议设定新标准Starknet 应用链社区参与和活动去中心化与社区扩展Starknet 上的游戏热潮由于 L1 在规模、用户体验和高成本等方面的限制,创建成功的链上游戏几乎是不可能实现的事情。但随着有效性 R...
「Starknet 中文」社区致力于 Starknet 在中文世界发展,提供最全生态资讯。

Subscribe to Starknet 中文

Subscribe to Starknet 中文
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


作者:Darington Nnam 原文:Journey through Cairo V — Implict Arguments 翻译:Louis Wang 校对:「StarkNet 中文社区」
欢迎来到我们的系列文章 「Cairo 之旅」第五讲。上篇文章中,我们解释了 Cairo 中的存储,并仔细研究了如何使用 Cairo 的存储来实现映射。这一讲中我们将介绍隐式参数 (Implicit Arguments) 以及它们在 Cairo 中的作用。
像往常一样,如果你是中途加入的,建议从头开始看我们的文章。
P.S:教程中的语法代码都是在 Cairo v0.9.0 版本下使用的
Cairo 函数接受两种类型的参数:显性参数,在 (和) 之间提供;和隐性参数,在 {和} 之间提供。
两者之间的主要区别是,显性参数在函数主体内使用,不能在外部访问,而隐性参数能被其他调用它们的函数所继承。
让我们回顾上篇存储文章中提及过的函数:
@external
func update_id{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(_number: felt):
id.write(_number)
end
这个函数接收了三个隐含的参数:
syscall_ptr - 这个参数使 Cairo 函数能够被调用
pedersen_ptr - 这个参数用于计算 pedersen 哈希值
range_check_ptr - 这个参数用于整数比较
你可能想知道,为什么我们需要传递所有这些参数?我们既没有计算任何哈希函数,甚至没有做任何整数比较。这是因为我们试图写入的存储变量需要这些隐含的参数,以便计算这个变量的实际内存地址。这在简单的变量中可能不需要,比如我们前面看的 id 存储变量,但是对于存储映射,比如 balance,计算 Pedersen hash 是 read() 和 write() 工作的一部分,这就是为什么调用这些存储变量的父函数必须明确说明这些隐式参数。
为了进一步理解这些,让我们深入到 Starklings 的练习中去吧!

这个练习要求我们修改 implicit_sum 函数以使测试通过。从测试中我们可以看到,test_sum 函数调用了 implicit_sum 函数,向它隐式传递了参数 a 和 b。
为了使用这些参数,我们必须在 implicit_sum 函数中也将它们指定为隐式参数,所以 Cairo 被告知这些参数可以或已经在函数调用之间传递。
func implicit_sum{a: felt, b: felt}() -> (result: felt):
return (a + b)
end

在第 10 行里将参数修改进 {} 中就可以通过测试了


在这个练习中,我们要修改 child_function_1 和 child_function_2,以使测试通过,但不能改变函数体。
父函数有两个隐式参数 a 和 b。child_function_1 使用隐式参数 a,child_function_2 使用隐式参数 b。我们要在函数构建中传入隐式参数。
对 child_function_1:
func child_function_1{a: felt}() -> (result : felt):
return (2 * a)
end
对 child_function_2:
func child_function_2{b: felt}() -> (result : felt):
return (b + 3)
end

顺利通过测试:)


根据 Starklings 的说法,隐式参数的真正好处是它们会被任何使用它们的函数隐式返回,这是语言的一个非常强大的特性,因为它有助于可读性,让开发者在后续的函数调用中省略隐式参数。
在这个练习中,我们要修改 black_box 函数以使测试通过。这一点非常容易做到,因为我们只需要将参数secret 分配给 very secret! 这句话,Cairo 就会自动返回这个参数,而不需要明确返回。

轻松通过!
我们已经完成 Cairo 之旅的一半,现在我相信你已经开始熟悉 Cairo 的工作方式了,从更广泛的角度来看。我们刚刚讨论了 Cairo 的隐式参数,以及它们在编写合约时对你有帮助。
如果觉得本教程对你有帮助,转发分享给其他人吧~
作者:Darington Nnam 原文:Journey through Cairo V — Implict Arguments 翻译:Louis Wang 校对:「StarkNet 中文社区」
欢迎来到我们的系列文章 「Cairo 之旅」第五讲。上篇文章中,我们解释了 Cairo 中的存储,并仔细研究了如何使用 Cairo 的存储来实现映射。这一讲中我们将介绍隐式参数 (Implicit Arguments) 以及它们在 Cairo 中的作用。
像往常一样,如果你是中途加入的,建议从头开始看我们的文章。
P.S:教程中的语法代码都是在 Cairo v0.9.0 版本下使用的
Cairo 函数接受两种类型的参数:显性参数,在 (和) 之间提供;和隐性参数,在 {和} 之间提供。
两者之间的主要区别是,显性参数在函数主体内使用,不能在外部访问,而隐性参数能被其他调用它们的函数所继承。
让我们回顾上篇存储文章中提及过的函数:
@external
func update_id{
syscall_ptr : felt*,
pedersen_ptr : HashBuiltin*,
range_check_ptr
}(_number: felt):
id.write(_number)
end
这个函数接收了三个隐含的参数:
syscall_ptr - 这个参数使 Cairo 函数能够被调用
pedersen_ptr - 这个参数用于计算 pedersen 哈希值
range_check_ptr - 这个参数用于整数比较
你可能想知道,为什么我们需要传递所有这些参数?我们既没有计算任何哈希函数,甚至没有做任何整数比较。这是因为我们试图写入的存储变量需要这些隐含的参数,以便计算这个变量的实际内存地址。这在简单的变量中可能不需要,比如我们前面看的 id 存储变量,但是对于存储映射,比如 balance,计算 Pedersen hash 是 read() 和 write() 工作的一部分,这就是为什么调用这些存储变量的父函数必须明确说明这些隐式参数。
为了进一步理解这些,让我们深入到 Starklings 的练习中去吧!

这个练习要求我们修改 implicit_sum 函数以使测试通过。从测试中我们可以看到,test_sum 函数调用了 implicit_sum 函数,向它隐式传递了参数 a 和 b。
为了使用这些参数,我们必须在 implicit_sum 函数中也将它们指定为隐式参数,所以 Cairo 被告知这些参数可以或已经在函数调用之间传递。
func implicit_sum{a: felt, b: felt}() -> (result: felt):
return (a + b)
end

在第 10 行里将参数修改进 {} 中就可以通过测试了


在这个练习中,我们要修改 child_function_1 和 child_function_2,以使测试通过,但不能改变函数体。
父函数有两个隐式参数 a 和 b。child_function_1 使用隐式参数 a,child_function_2 使用隐式参数 b。我们要在函数构建中传入隐式参数。
对 child_function_1:
func child_function_1{a: felt}() -> (result : felt):
return (2 * a)
end
对 child_function_2:
func child_function_2{b: felt}() -> (result : felt):
return (b + 3)
end

顺利通过测试:)


根据 Starklings 的说法,隐式参数的真正好处是它们会被任何使用它们的函数隐式返回,这是语言的一个非常强大的特性,因为它有助于可读性,让开发者在后续的函数调用中省略隐式参数。
在这个练习中,我们要修改 black_box 函数以使测试通过。这一点非常容易做到,因为我们只需要将参数secret 分配给 very secret! 这句话,Cairo 就会自动返回这个参数,而不需要明确返回。

轻松通过!
我们已经完成 Cairo 之旅的一半,现在我相信你已经开始熟悉 Cairo 的工作方式了,从更广泛的角度来看。我们刚刚讨论了 Cairo 的隐式参数,以及它们在编写合约时对你有帮助。
如果觉得本教程对你有帮助,转发分享给其他人吧~
No activity yet