Starcoin-Framework 2024升级指南
- 1 一、升级概述
- 2 二、主要升级步骤
- 2.1 1. Framework代码升级
- 2.2 2. 资产映射实现
- 2.2.1 第一期:Token资产映射
- 2.2.2 第二期:NFT资产映射
- 2.3 3. 生态项目适配
- 3 三、Token 映射
一、升级概述
本文详细说明从Starcoin-Framework 1.0升级到2.0版本的完整流程。
二、主要升级步骤
1. Framework代码升级
将Framework从1.0版本升级至2.0版本,主要通过在新Genesis上执行applyset实现数据同步:
Force Deploy流程优化
实现特定条件下的writeset交易支持 @hui jiao
共识参数读取
共识参数升级及相关函数调用 @Bob
2. 资产映射实现
分两期进行资产迁移:
第一期:Token资产映射
用户数据获取 @YSG
Token信息读取 (0x1::Account::Balance<Type>) @YSG
Token注册者映射
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);
第二期:NFT资产映射
待实现
3. 生态项目适配
后续需要完成的项目改造:
Swap系统
Bridge系统
三、Token 映射
实际步骤
Starcoin 1.0 Token映射前准备工作:全面审查当前Starcoin 1.0 STC,其分布状态主要分布位置包括:
国库(0x1/Treasury::balance)
用户钱包(<useraddress>/0x1/Account/Balance/Token/STC)
DeFi生态系统(Swap、Bridge、借贷等项目)
映射执行流程:
建立新的数据结构(
0x1::asset_mapping::FundationPool
)当分配程序发起分配时,调用
asset_mapping::map_fungible_asset
从该结构中分配Token确保准确分配到最终用户和智能合约
初始池子设计说明:
池子容量等同于Starcoin 1.0的STC总铸造量
Genesis阶段将Token存入0x1::asset_mapping待分配映射池
通过映射函数实现最终分配
这种结构化设计确保了Token迁移过程的透明性和准确性,同时为后续的映射操作提供了清晰的执行路径。
映射表
源路径 | 目标路径 | 描述 |
---|---|---|
0x1/Treasury::balance | 0x1/treasury::balance | 国库的额度 |
… |
|
|