Tài Liệu Tham Khảo Thông Điệp Giao Dịch CrossFi
Hướng dẫn toàn diện này mô tả tất cả các trường có thể có cho các thông điệp giao dịch được hỗ trợ bởi CrossFi Chain. Nền tảng tích hợp nhiều module từ Cosmos SDK, Ethermint và các triển khai đặc thù của CrossFi.
Tổng Quan
CrossFi Chain hỗ trợ nhiều loại thông điệp giao dịch qua các module khác nhau:
- Cosmos Base: Các thao tác coin cơ bản
- Module Cosmos SDK: Authz, Bank, Distribution, Gov, Feegrant, Staking, Slashing, Vesting
- Ethermint EVM: Giao dịch tương thích Ethereum
- Module CrossFi: Chức năng gốc của CrossFi
Tổng số loại thông điệp được bao phủ: 35+
Mỗi loại thông điệp bao gồm:
- Mô tả đầy đủ các tham số
- Loại trường và ràng buộc
- Ví dụ sử dụng
- Điều kiện lỗi
Mục Lục
🏦 Module Cốt Lõi
🏛️ Quản Trị & Staking
🌐 Tính Năng Nâng Cao
Cosmos Base
cosmos.base.v1beta1.Coin
Cấu trúc coin cơ bản được sử dụng trong tất cả các module để biểu diễn số lượng token.
Tham Số | Loại | Mô Tả |
---|---|---|
denom | string | Mệnh giá token (ví dụ mpx , xfi ). Phải khớp với các mệnh giá đã đăng ký. |
amount | string | Số lượng token dưới dạng string biểu diễn số nguyên (ví dụ 1000000 ). Phải không âm. |
Ngữ Cảnh Sử Dụng:
- Được sử dụng trong
MsgSend
,MsgMultiSend
cho chuyển tiền - Được sử dụng trong
MsgDeposit
cho tiền gửi quản trị - Được sử dụng trong các thao tác staking cho số lượng ủy quyền
Ví Dụ:
{
"denom": "mpx",
"amount": "1000000"
}
Module Authz
Module ủy quyền cho phép một tài khoản (người cấp quyền) ủy quyền cho tài khoản khác (người được cấp quyền) thực hiện các hành động nhất định thay mặt họ.
cosmos.authz.v1beta1.MsgGrant
Cấp ủy quyền từ người cấp quyền cho người được cấp quyền cho các loại thông điệp cụ thể.
Tham Số | Loại | Mô Tả |
---|---|---|
granter | string | Địa chỉ tài khoản cấp quyền (ví dụ mx1x7... ). |
grantee | string | Địa chỉ tài khoản nhận quyền (ví dụ mx1y2... ). |
grant | cosmos.authz.v1beta1.Grant | Đối tượng grant chứa chi tiết ủy quyền và hết hạn. |
Cấu Trúc Grant:
Tham Số | Loại | Mô Tả |
---|---|---|
authorization | google.protobuf.Any | Loại ủy quyền (GenericAuthorization, SendAuthorization, v.v.). |
expiration | google.protobuf.Timestamp | Thời gian hết hạn tùy chọn ở định dạng UTC (ví dụ 2025-12-31T23:59:59Z ). |
Các Loại Ủy Quyền:
-
GenericAuthorization
- Cung cấp quyền không giới hạn cho loại thông điệp được chỉ định
- msg: string - URL đầy đủ của loại thông điệp (ví dụ
/cosmos.bank.v1beta1.MsgSend
)
-
SendAuthorization
- Cho phép người được cấp quyền gửi coin với giới hạn chi tiêu
- spend_limit: repeated Coin - Số coin tối đa có thể gửi
- allow_list: repeated string - Danh sách tùy chọn các địa chỉ người nhận được phép
-
StakeAuthorization
- Cho phép các thao tác staking với hạn chế validator
- validators: repeated string - Danh sách địa chỉ validator
- authorization_type: AuthorizationType - Loại hành động staking (DELEGATE, UNDELEGATE, REDELEGATE)
cosmos.authz.v1beta1.MsgRevoke
Thu hồi ủy quyền đã cấp trước đó cho loại thông điệp cụ thể.
Tham Số | Loại | Mô Tả |
---|---|---|
granter | string | Địa chỉ tài khoản thu hồi quyền. |
grantee | string | Địa chỉ tài khoản mất quyền. |
msg_type_url | string | URL loại thông điệp cần thu hồi (ví dụ /cosmos.bank.v1beta1.MsgSend ). |
cosmos.authz.v1beta1.MsgExec
Thực thi thông điệp thay mặt người cấp quyền sử dụng các ủy quyền đã cấp.
Tham Số | Loại | Mô Tả |
---|---|---|
grantee | string | Địa chỉ tài khoản thực thi thông điệp. |
msgs | repeated google.protobuf.Any | Danh sách thông điệp cần thực thi (ví dụ MsgSend ). |
Module Bank
Module bank xử lý chuyển tiền token và quản lý số dư.
cosmos.bank.v1beta1.MsgSend
Chuyển coin từ địa chỉ này sang địa chỉ khác.
Tham Số | Loại | Mô Tả |
---|---|---|
from_address | string (cosmos.AddressString) | Địa chỉ người gửi (ví dụ mx1x7... ). |
to_address | string (cosmos.AddressString) | Địa chỉ người nhận (ví dụ mx1y2... ). |
amount | repeated cosmos.base.v1beta1.Coin | Coin cần chuyển. Không thể là null. |
Ví Dụ:
{
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [{"denom": "mpx", "amount": "1000000"}]
}
Điều Kiện Lỗi:
- Số dư không đủ trong tài khoản người gửi
- Địa chỉ người nhận nằm trong danh sách đen
- Mệnh giá coin không hợp lệ
cosmos.bank.v1beta1.MsgMultiSend
Gửi coin từ một hoặc nhiều đầu vào đến nhiều đầu ra.
Tham Số | Loại | Mô Tả |
---|---|---|
inputs | repeated Input | Nguồn đầu vào. Không thể là null. |
outputs | repeated Output | Đích đầu ra. |
Cấu Trúc Input:
Tham Số | Loại | Mô Tả |
---|---|---|
address | string | Địa chỉ người gửi. |
coins | repeated cosmos.base.v1beta1.Coin | Coin cần gửi. |
Cấu Trúc Output:
Tham Số | Loại | Mô Tả |
---|---|---|
address | string | Địa chỉ người nhận. |
coins | repeated cosmos.base.v1beta1.Coin | Coin cần nhận. |
Module Distribution
Quản lý phân phối phần thưởng giữa validator và delegator.
cosmos.distribution.v1beta1.MsgFundCommunityPool
Tài trợ pool cộng đồng trực tiếp từ một tài khoản.
Tham Số | Loại | Mô Tả |
---|---|---|
amount | repeated cosmos.base.v1beta1.Coin | Coin cần chuyển vào pool cộng đồng. |
depositor | string | Địa chỉ Bech32 tài trợ pool (ví dụ mx1x7... ). |
cosmos.distribution.v1beta1.MsgSetWithdrawAddress
Đặt địa chỉ khác để rút phần thưởng.
Tham Số | Loại | Mô Tả |
---|---|---|
delegator_address | string | Địa chỉ Bech32 của delegator đặt địa chỉ rút. |
withdraw_address | string | Địa chỉ Bech32 nơi phần thưởng sẽ được gửi. Không thể là địa chỉ module. |
cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward
Rút phần thưởng tích lũy từ validator cụ thể.
Tham Số | Loại | Mô Tả |
---|---|---|
delegator_address | string | Địa chỉ Bech32 của delegator rút phần thưởng. |
validator_address | string | Địa chỉ Bech32 của validator (ví dụ mxvaloper1z3... ). |
cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission
Cho phép validator rút hoa hồng tích lũy.
Tham Số | Loại | Mô Tả |
---|---|---|
validator_address | string | Địa chỉ Bech32 của validator (ví dụ mxvaloper1z3... ). |
Module Gov
Module quản trị cho phép đề xuất và bỏ phiếu trên chuỗi.
cosmos.gov.v1.MsgDeposit
Gửi coin vào đề xuất để giúp nó đạt đến giai đoạn bỏ phiếu.
Tham Số | Loại | Mô Tả |
---|---|---|
proposal_id | uint64 | Định danh duy nhất của đề xuất. |
depositor | string | Địa chỉ Bech32 gửi tiền (ví dụ mx1x7... ). |
amount | repeated Coin | Số lượng tiền gửi. |
cosmos.gov.v1.MsgSubmitProposal
Tạo đề xuất quản trị mới.
Tham Số | Loại | Mô Tả |
---|---|---|
messages | repeated Any | Thông điệp cần thực thi nếu đề xuất được thông qua. |
initial_deposit | repeated Coin | Tiền gửi ban đầu cho đề xuất. |
proposer | string | Địa chỉ Bech32 của người đề xuất (ví dụ mx1x7... ). |
metadata | string | Siêu dữ liệu tùy chọn cho đề xuất. |
title | string | Tiêu đề đề xuất. |
summary | string | Mô tả ngắn gọn về đề xuất. |
cosmos.gov.v1.MsgVote
Bỏ phiếu cho một đề xuất.
Tham Số | Loại | Mô Tả |
---|---|---|
proposal_id | uint64 | Định danh đề xuất. |
voter | string | Địa chỉ Bech32 của người bỏ phiếu (ví dụ mx1x7... ). |
option | VoteOption | Lựa chọn bỏ phiếu: YES , ABSTAIN , NO , NO_WITH_VETO . |
metadata | string | Siêu dữ liệu tùy chọn của phiếu bầu. |
cosmos.gov.v1.MsgVoteWeighted
Bỏ phiếu có trọng số qua nhiều lựa chọn.
Tham Số | Loại | Mô Tả |
---|---|---|
proposal_id | uint64 | Định danh đề xuất. |
voter | string | Địa chỉ Bech32 của người bỏ phiếu. |
options | repeated WeightedVoteOption | Các lựa chọn bỏ phiếu với trọng số. |
metadata | string | Siêu dữ liệu tùy chọn. |
WeightedVoteOption:
Tham Số | Loại | Mô Tả |
---|---|---|
option | VoteOption | Lựa chọn bỏ phiếu. |
weight | string | Trọng số phiếu bầu dưới dạng thập phân (ví dụ "0.5"). Tổng phải bằng 1. |
Module Feegrant
Cho phép tài khoản trả phí giao dịch thay mặt người khác.
cosmos.feegrant.v1beta1.MsgGrantAllowance
Cấp hạn mức phí từ người cấp quyền cho người được cấp quyền.
Tham Số | Loại | Mô Tả |
---|---|---|
granter | string | Địa chỉ cung cấp hạn mức phí (ví dụ mx1x7... ). |
grantee | string | Địa chỉ nhận hạn mức phí (ví dụ mx1y2... ). |
allowance | google.protobuf.Any | Loại hạn mức phí (BasicAllowance, PeriodicAllowance). |
Các Loại Hạn Mức:
-
BasicAllowance - Hạn mức đơn giản với giới hạn chi tiêu:
- spend_limit: repeated Coin - Số tiền phí tối đa
- expiration: Timestamp - Thời gian hết hạn tùy chọn
-
PeriodicAllowance - Hạn mức được đặt lại định kỳ:
- basic: BasicAllowance - Hạn mức cơ bản
- period: Duration - Chu kỳ đặt lại
- period_spend_limit: repeated Coin - Giới hạn mỗi chu kỳ
cosmos.feegrant.v1beta1.MsgRevokeAllowance
Thu hồi hạn mức phí đã cấp trước đó.
Tham Số | Loại | Mô Tả |
---|---|---|
granter | string | Địa chỉ thu hồi hạn mức (ví dụ mx1x7... ). |
grantee | string | Địa chỉ mất hạn mức (ví dụ mx1y2... ). |
Module Staking
Triển khai cơ chế đồng thuận Proof-of-Stake.
cosmos.staking.v1beta1.MsgBeginRedelegate
Chuyển ủy quyền token từ validator này sang validator khác.
Tham Số | Loại | Mô Tả |
---|---|---|
delegator_address | string | Địa chỉ delegator (ví dụ mx1x7... ). |
validator_src_address | string | Validator nguồn (ví dụ mxvaloper1y2... ). |
validator_dst_address | string | Validator đích (ví dụ mxvaloper1z3... ). |
amount | cosmos.base.v1beta1.Coin | Số lượng cần chuyển ủy quyền. |
cosmos.staking.v1beta1.MsgCreateValidator
Tạo validator mới.
Tham Số | Loại | Mô Tả |
---|---|---|
description | cosmos.staking.v1beta1.Description | Mô tả validator. |
commission | cosmos.staking.v1beta1.CommissionRates | Tỷ lệ hoa hồng. |
min_self_delegation | string | Tự ủy quyền tối thiểu bằng mpx . |
delegator_address | string | Delegator tạo validator (ví dụ mx1x7... ). |
validator_address | string | Địa chỉ validator (ví dụ mxvaloper1y2... ). |
pubkey | google.protobuf.Any | Khóa công khai của validator. |
value | cosmos.base.v1beta1.Coin | Số lượng stake ban đầu. |
Cấu Trúc Description:
Tham Số | Loại | Mô Tả |
---|---|---|
moniker | string | Tên validator. |
identity | string | Danh tính tùy chọn (ví dụ ID Keybase). |
website | string | Website của validator. |
security_contact | string | Email liên hệ bảo mật. |
details | string | Chi tiết bổ sung về validator. |
Cấu Trúc CommissionRates:
Tham Số | Loại | Mô Tả |
---|---|---|
rate | string | Tỷ lệ hoa hồng hiện tại (ví dụ "0.1" cho 10%). |
max_rate | string | Tỷ lệ hoa hồng tối đa (ví dụ "0.2"). |
max_change_rate | string | Thay đổi hoa hồng tối đa hàng ngày (ví dụ "0.01"). |
cosmos.staking.v1beta1.MsgDelegate
Ủy quyền token cho validator.
Tham Số | Loại | Mô Tả |
---|---|---|
delegator_address | string | Địa chỉ delegator (ví dụ mx1x7... ). |
validator_address | string | Địa chỉ validator (ví dụ mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Số lượng cần ủy quyền. |
cosmos.staking.v1beta1.MsgEditValidator
Cập nhật mô tả và hoa hồng của validator.
Tham Số | Loại | Mô Tả |
---|---|---|
description | cosmos.staking.v1beta1.Description | Mô tả validator đã cập nhật. |
validator_address | string | Địa chỉ validator (ví dụ mxvaloper1y2... ). |
commission_rate | string | Tỷ lệ hoa hồng mới (tùy chọn). |
min_self_delegation | string | Tự ủy quyền tối thiểu mới (tùy chọn). |
cosmos.staking.v1beta1.MsgUndelegate
Hủy ủy quyền token từ validator.
Tham Số | Loại | Mô Tả |
---|---|---|
delegator_address | string | Địa chỉ delegator (ví dụ mx1x7... ). |
validator_address | string | Địa chỉ validator (ví dụ mxvaloper1y2... ). |
amount | cosmos.base.v1beta1.Coin | Số lượng cần hủy ủy quyền. |
Module Slashing
cosmos.slashing.v1beta1.MsgUnjail
Thả tự do validator đã bị giam trước đó.
Tham Số | Loại | Mô Tả |
---|---|---|
validator_addr | string | Địa chỉ validator cần thả tự do. |
Yêu Cầu:
- Validator phải tồn tại và bị giam
- Thời gian giam phải đã hết hạn
- Validator phải có tự ủy quyền > 0
- Validator không được đánh dấu là tombstoned
Module Vesting
cosmos.vesting.v1beta1.MsgCreateVestingAccount
Tạo tài khoản vesting với token bị khóa.
Tham Số | Loại | Mô Tả |
---|---|---|
from_address | string | Địa chỉ tạo tài khoản vesting. |
to_address | string | Địa chỉ tài khoản vesting mới (chưa khởi tạo). |
amount | repeated cosmos.base.v1beta1.Coin | Token để vesting. |
end_time | int64 | Timestamp UNIX khi vesting kết thúc. |
delayed | bool | true=vesting trì hoãn, false=liên tục. |
Các Loại Vesting:
-
Vesting Trì Hoãn - Tất cả token được mở khóa cùng lúc khi đạt
end_time
:- Token vẫn hoàn toàn bị khóa cho đến thời gian cuối
- Phù hợp cho các tình huống vesting cliff
- Cơ chế mở khóa đơn giản
-
Vesting Liên Tục - Token được mở khóa tuyến tính từ thời gian tạo đến
end_time
:- Giải phóng token dần dần theo thời gian
- Mở khóa tỷ lệ
- Phù hợp cho vesting nhân viên
Module Ethermint EVM
Lớp tương thích Máy Ảo Ethereum.
ethermint.evm.v1.MsgEthereumTx
Bao bọc giao dịch Ethereum để thực thi Cosmos.
Tham Số | Loại | Mô Tả |
---|---|---|
data | google.protobuf.Any | Dữ liệu giao dịch (LegacyTx, AccessListTx, DynamicFeeTx). |
size | double | Kích thước giao dịch được cache (lỗi thời). |
hash | string | Hash giao dịch ở định dạng hex. |
from | string | Địa chỉ người gửi ở định dạng Ethereum. |
ethermint.evm.v1.LegacyTx
Định dạng giao dịch Ethereum cũ (trước EIP-1559).
Tham Số | Loại | Mô Tả |
---|---|---|
nonce | uint64 | Số thứ tự tài khoản. |
gas_price | string | Giá gas bằng wei dưới dạng string. |
gas | uint64 | Giới hạn gas cho giao dịch. |
to | string | Địa chỉ người nhận (trống cho tạo contract). |
value | string | Số lượng chuyển bằng wei. |
data | bytes | Dữ liệu giao dịch hoặc mã contract. |
v | bytes | Tham số khôi phục chữ ký. |
r | bytes | Tham số chữ ký r. |
s | bytes | Tham số chữ ký s. |
ethermint.evm.v1.AccessListTx
Giao dịch EIP-2930 với tối ưu hóa danh sách truy cập.
Tham Số | Loại | Mô Tả |
---|---|---|
chain_id | string | ID chuỗi Ethereum. |
nonce | uint64 | Số thứ tự tài khoản. |
gas_price | string | Giá gas bằng wei. |
gas | uint64 | Giới hạn gas. |
to | string | Địa chỉ người nhận. |
value | string | Số lượng chuyển bằng wei. |
data | bytes | Dữ liệu giao dịch. |
accesses | repeated AccessTuple | Danh sách truy cập để tối ưu gas. |
v | bytes | Tham số chữ ký v. |
r | bytes | Tham số chữ ký r. |
s | bytes | Tham số chữ ký s. |
Cấu Trúc AccessTuple:
Tham Số | Loại | Mô Tả |
---|---|---|
address | string | Địa chỉ contract cần truy cập. |
storage_keys | repeated string | Khóa lưu trữ cần truy cập ở định dạng hex. |
ethermint.evm.v1.DynamicFeeTx
Giao dịch EIP-1559 với phí động.
Tham Số | Loại | Mô Tả |
---|---|---|
chain_id | string | ID chuỗi Ethereum. |
nonce | uint64 | Số thứ tự tài khoản. |
gas_tip_cap | string | Phí ưu tiên tối đa mỗi gas bằng wei. |
gas_fee_cap | string | Phí tối đa mỗi gas bằng wei. |
gas | uint64 | Giới hạn gas. |
to | string | Địa chỉ người nhận. |
value | string | Số lượng chuyển bằng wei. |
data | bytes | Dữ liệu giao dịch. |
accesses | repeated AccessTuple | Danh sách truy cập. |
v | bytes | Tham số chữ ký v. |
r | bytes | Tham số chữ ký r. |
s | bytes | Tham số chữ ký s. |
Module CrossFi
Chức năng đặc thù của CrossFi.
crossfi.erc20.v1.MsgConvertCoin
Chuyển đổi coin gốc Cosmos thành token ERC20.
Tham Số | Loại | Mô Tả |
---|---|---|
coin | cosmos.base.v1beta1.Coin | Coin gốc cần chuyển đổi. |
receiver | string | Địa chỉ người nhận token ERC20. |
sender | string | Địa chỉ người gửi coin gốc. |
crossfi.treasury.MsgMint
Đúc token mới trong kho bạc CrossFi.
Tham Số | Loại | Mô Tả |
---|---|---|
creator | string | Địa chỉ Bech32 được ủy quyền đúc token. |
amount | Coin | Số lượng và mệnh giá cần đúc. |
Yêu Cầu:
- Người tạo phải có quyền đúc
- Số lượng phải dương
- Mệnh giá phải được hỗ trợ
crossfi.treasury.MsgBurn
Đốt token khỏi lưu thông.
Tham Số | Loại | Mô Tả |
---|---|---|
creator | string | Địa chỉ Bech32 khởi tạo việc đốt. |
amount | Coin | Số lượng và mệnh giá cần đốt. |
Y êu Cầu:
- Người tạo phải sở hữu đủ token
- Số lượng phải dương
- Thao tác đốt không thể hoàn tác
Ví Dụ Sử Dụng
Chuyển Tiền Cơ Bản
Chuyển token đơn giản sử dụng MsgSend:
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "mx1x7...sender",
"to_address": "mx1y2...recipient",
"amount": [
{
"denom": "mpx",
"amount": "1000000"
}
]
}
Bỏ Phiếu Quản Trị
Bỏ phiếu cho đề xuất quản trị:
{
"@type": "/cosmos.gov.v1.MsgVote",
"proposal_id": "1",
"voter": "mx1x7...voter",
"option": "VOTE_OPTION_YES",
"metadata": "Ủng hộ đề xuất này"
}
Ủy Quyền Staking
Ủy quyền token cho validator:
{
"@type": "/cosmos.staking.v1beta1.MsgDelegate",
"delegator_address": "mx1x7...delegator",
"validator_address": "mxvaloper1y2...validator",
"amount": {
"denom": "mpx",
"amount": "5000000"
}
}
Xử Lý Lỗi
Các tình huống lỗi thường gặp và nguyên nhân:
Tài Nguyên Bổ Sung
🔗 Tài Nguyên Bên Ngoài
Tài liệu tham khảo này bao phủ tất cả các loại thông điệp giao dịch chính được hỗ trợ bởi CrossFi Chain. Để cập nhật mới nhất và các loại thông điệp bổ sung, tham khảo tài liệu API XFI Scan hoặc khám phá giao dịch trực tiếp trên XFI Scan.