本文主要讨论2024年升级starcoin-framework的过程
包含以下步骤
...
Framework 代码升级,从1.0升级到2.0,主要的工作在新的Genesis上发送一些applyset以达到数据同步的目的
资产映射,将旧资产映射为新资产,包含的资产类型为Token资产,NFT资产两类,一期先映射Token资产,二期再映射NFT资产,主要包含信息读取和信息写入两个步骤
...
找到所有的用户 YSG
...
升级概述
本文详细说明从Starcoin-Framework 1.0升级到2.0版本的完整流程。
主要升级步骤
1. Framework代码升级
将Framework从1.0版本升级至2.0版本,主要通过在新Genesis上执行applyset实现数据同步:
2. 资产映射实现
分两期进行资产迁移:
第一期:Token资产映射
用户数据获取 YSG
Token信息读取 (0x1::Account::Balance<Type>) YSG
Token注册者的映射,包含TokenInfo、MintCapability、BurnCapability
Token持有者的映射0x1Token注册者映射
TokenInfo
MintCapability
BurnCapability
Token持有者映射 (0x1::Token::Token<Type>)
- 信息写入
信息写入实现 Bob
代码块 | ||
---|---|---|
| ||
fn migration_legacy_token_info_to_register(
|
...
address: AccountAddress, |
...
token_struct_tag: StructTag ) -> Changeset { ... } fn migration_legacy_token_to_fungible_asset( |
...
address: AccountAddress, |
...
token_struct_tag: StructTag ) -> Changeset { |
...
...
}
// upgrade
...
// apply changeset
...
let change_set = migration_legacy_token_info_to_register();
storage.apply(change_set); |
...
生态项目改造(TODO)
...
Swap
...
第二期:NFT资产映射
待实现
3. 生态项目适配
后续需要完成的项目改造:
Swap系统
Bridge系统