feat(charter-compiler): 添加完整 ACC 协议族类型支持(22个协议)
TypeAnnotation 枚举新增 17 个 ACC 类型:
ACC20Enhanced, ACC20C, ACCCompliance, ACCValuation, ACCCustody,
ACCCollateral, ACCRedemption, ACCInsurance, ACCGovernance,
ACCXTZH, ACCReserve, ACC1410, ACC1400, ACC1594, ACC1643, ACC1644
操作码新增 37 个 ACC 专用操作码:
基础代币: ACC20_MINT/BURN, ACC721_MINT/TRANSFER, ACC1155_MINT/TRANSFER
RWA 专用: RWA_REGISTER/TRANSFER/FREEZE, COMPLIANCE_*, VALUATION_*,
CUSTODY_*, COLLATERAL_*, REDEMPTION_*, INSURANCE_*, GOVERNANCE_*
稳定币: XTZH_MINT/BURN/TRANSFER/UPDATE_RATE, RESERVE_DEPOSIT/WITHDRAW/AUDIT
证券代币: ACC1410_PARTITION, ACC1400_ISSUE/REDEEM, ACC1594_DISTRIBUTE,
ACC1643_ADD_DOCUMENT, ACC1644_FREEZE/FORCE_TRANSFER
cargo check: 0 errors
This commit is contained in:
parent
5a4ffb0278
commit
29544afec4
|
|
@ -76,8 +76,52 @@ pub enum OpCode {
|
|||
GNACS_ENCODE = 0xE6,
|
||||
GNACS_DECODE = 0xE7,
|
||||
GNACS_VALIDATE = 0xE8,
|
||||
// ACC 基础代币操作码
|
||||
ACC20_TRANSFER = 0xEB,
|
||||
ACC20_BALANCE = 0xEF,
|
||||
ACC20_MINT = 0xA0,
|
||||
ACC20_BURN = 0xA1,
|
||||
ACC721_MINT = 0xA2,
|
||||
ACC721_TRANSFER = 0xA3,
|
||||
ACC1155_MINT = 0xA4,
|
||||
ACC1155_TRANSFER = 0xA5,
|
||||
// RWA 专用操作码
|
||||
RWA_REGISTER = 0xD0,
|
||||
RWA_TRANSFER = 0xD1,
|
||||
RWA_FREEZE = 0xD2,
|
||||
RWA_UPDATE_VALUATION = 0xD3,
|
||||
COMPLIANCE_CHECK = 0xD4,
|
||||
COMPLIANCE_SEVEN_LAYER = 0xD5,
|
||||
VALUATION_REQUEST = 0xD6,
|
||||
VALUATION_GET = 0xD7,
|
||||
CUSTODY_CREATE = 0xD8,
|
||||
CUSTODY_TRANSFER = 0xD9,
|
||||
COLLATERAL_CREATE = 0xDA,
|
||||
COLLATERAL_LIQUIDATE = 0xDB,
|
||||
REDEMPTION_REQUEST = 0xDC,
|
||||
REDEMPTION_COMPLETE = 0xDD,
|
||||
INSURANCE_ISSUE = 0xDE,
|
||||
INSURANCE_CLAIM = 0xDF,
|
||||
GOVERNANCE_PROPOSE = 0xC0,
|
||||
GOVERNANCE_VOTE = 0xC1,
|
||||
GOVERNANCE_FINALIZE = 0xC2,
|
||||
// 稳定币与储备操作码
|
||||
XTZH_MINT = 0xC3,
|
||||
XTZH_BURN = 0xC4,
|
||||
XTZH_TRANSFER = 0xC5,
|
||||
XTZH_UPDATE_RATE = 0xC6,
|
||||
RESERVE_DEPOSIT = 0xC7,
|
||||
RESERVE_WITHDRAW = 0xC8,
|
||||
RESERVE_AUDIT = 0xC9,
|
||||
// 证券代币操作码
|
||||
ACC1410_PARTITION = 0xB0,
|
||||
ACC1410_TRANSFER_BY_PARTITION = 0xB1,
|
||||
ACC1400_ISSUE = 0xB2,
|
||||
ACC1400_REDEEM = 0xB3,
|
||||
ACC1594_DISTRIBUTE = 0xB4,
|
||||
ACC1643_ADD_DOCUMENT = 0xB5,
|
||||
ACC1644_FREEZE = 0xB6,
|
||||
ACC1644_FORCE_TRANSFER = 0xB7,
|
||||
}
|
||||
|
||||
pub struct CodeGenerator {
|
||||
|
|
|
|||
|
|
@ -128,10 +128,30 @@ pub enum TypeAnnotation {
|
|||
GNACSCode,
|
||||
ConstitutionalReceipt,
|
||||
AssetInstance,
|
||||
// 基础代币协议类型
|
||||
ACC20,
|
||||
ACC20Enhanced,
|
||||
ACC721,
|
||||
ACC1155,
|
||||
ACC20C,
|
||||
// RWA 专用协议类型
|
||||
ACCRWA,
|
||||
ACCCompliance,
|
||||
ACCValuation,
|
||||
ACCCustody,
|
||||
ACCCollateral,
|
||||
ACCRedemption,
|
||||
ACCInsurance,
|
||||
ACCGovernance,
|
||||
// 稳定币与储备协议类型
|
||||
ACCXTZH,
|
||||
ACCReserve,
|
||||
// 证券代币协议类型
|
||||
ACC1410,
|
||||
ACC1400,
|
||||
ACC1594,
|
||||
ACC1643,
|
||||
ACC1644,
|
||||
|
||||
// 数组类型
|
||||
Array(Box<TypeAnnotation>, Option<usize>),
|
||||
|
|
|
|||
|
|
@ -208,8 +208,16 @@ impl SemanticAnalyzer {
|
|||
TypeAnnotation::Bytes | TypeAnnotation::Hash | TypeAnnotation::Timestamp |
|
||||
TypeAnnotation::DID | TypeAnnotation::GNACSCode |
|
||||
TypeAnnotation::ConstitutionalReceipt | TypeAnnotation::AssetInstance |
|
||||
TypeAnnotation::ACC20 | TypeAnnotation::ACC721 | TypeAnnotation::ACC1155 |
|
||||
TypeAnnotation::ACCRWA => Ok(()),
|
||||
TypeAnnotation::ACC20 | TypeAnnotation::ACC20Enhanced | TypeAnnotation::ACC20C |
|
||||
TypeAnnotation::ACC721 | TypeAnnotation::ACC1155 |
|
||||
TypeAnnotation::ACCRWA | TypeAnnotation::ACCCompliance |
|
||||
TypeAnnotation::ACCValuation | TypeAnnotation::ACCCustody |
|
||||
TypeAnnotation::ACCCollateral | TypeAnnotation::ACCRedemption |
|
||||
TypeAnnotation::ACCInsurance | TypeAnnotation::ACCGovernance |
|
||||
TypeAnnotation::ACCXTZH | TypeAnnotation::ACCReserve |
|
||||
TypeAnnotation::ACC1410 | TypeAnnotation::ACC1400 |
|
||||
TypeAnnotation::ACC1594 | TypeAnnotation::ACC1643 |
|
||||
TypeAnnotation::ACC1644 => Ok(()),
|
||||
|
||||
// 数组类型需要验证元素类型
|
||||
TypeAnnotation::Array(element_type, _) => self.validate_type(element_type),
|
||||
|
|
|
|||
Loading…
Reference in New Issue