sui-move基础:所有权SuiMove的所有权系统是其核心设计之一,用于确保资源的安全管理和防止误用。通过静态检查所有权转移和资源生命周期,SuiMove提供了内置的编程保障,帮助开发者构建安全高效的智能合约。这篇文章应该被算在sui-move基础里面,为什么要补这样的文章呢?——
sui-move进阶:时间与纪元在Sui框架中,时间是智能合约中常用的元素,用于管理操作期(纪元)和获取精确的时间戳。Sui提供了两种主要的时间机制:纪元(Epoch)和时间(Time),它们在质押、验证人集合管理和其他操作中起着重要作用。纪元(Epoch)什么是纪元?纪元表示
sui-move进阶:vec_map0x2::vec_map模块提供了一种基于向量实现的键值映射数据结构(VecMap)。它支持常见的映射操作,数据以插入顺序存储,而非按键排序。然而,它的操作复杂度为O(N),其设计主要是为小型映射提供编程便利。它作为一个基于向量(vector)的映射结构
sui-move进阶:vector0x1::vector是SuiMove中提供的动态数组模块,用于管理可变大小的容器。向量支持任意类型的存储,具有灵活的增删查改功能,底层实现采用原生操作以确保高效性。如果是学过Rust的朋友,应该对Vector不陌生,但Move的vector仍然与Rus
sui-move进阶:dynamic_field上一节我们说到,table模块的实现用到了dynamic_field,而我将在这一节针对该库进行进一步的讲解。0x2::dynamic_field模块为Sui对象提供了动态字段功能。这允许开发者在对象构造后动态地添加字段,而不是仅依赖静态声明
sui-move进阶:tableSuiMove中的0x2::table模块提供了一种类似映射(Map)的集合,用于存储键值对。与传统集合不同,Table的键和值并不直接存储在Table结构体中,而是通过Sui的对象系统进行管理。这使得Table成为一个句柄,用于操作存储在对象
sui-move进阶:生命周期对于许多语言的初学者而言,很可能缺乏生命周期的概念,例如通过C语言入门编程的朋友们。但在例如Move和Rust这样的注重安全的编程语言中,生命周期是一个非常重要的概念,甚至许多时候编译器会要求你注意变量的生命周期。在SuiMove编程中,生命周期用于描述变量和
sui-move进阶:引用在Move中,引用(References)是一种高效且安全的资源访问方式。引用有两种类型:不可变引用和可变引用。Move的类型系统通过强制执行所有权规则,防止引用错误,并确保资源的安全使用。引用类型在Move中,引用分为可变引用(mutablerefere
sui-move进阶:设计模式——见证者与一次性见证者在上一个教程中,我们提到了witness,并说它:使用了一次性见证者的设计模式。在本教程中,我们将对其作进一步的讨论。而在介绍一次性见证者之前,我们需要先介绍一下设计模式——见证者。什么是见证者模式介绍见证者模式的核心是利用特定的值
sui-move进阶:coin.move源码分析coin.move是SuiMove中实现可替代代币(fungibletokens)的核心模块(实际上,因为sui"一切皆对象"和所有权的设计,也自然而然地可以用来实现NFT)。它提供了创建、管理和操作代币的基础工具,包括代币的生成、分割、合