Created
November 25, 2025 15:09
-
-
Save nazreen/1db4e9ce41a22316c1c19c6042bafbce to your computer and use it in GitHub Desktop.
custom idl
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "version": "0.1.0", | |
| "name": "cedefi_v3", | |
| "instructions": [ | |
| { | |
| "name": "initStore", | |
| "docs": ["初始化 OApp Store"], | |
| "accounts": [ | |
| { | |
| "name": "payer", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["付费账户(管理员)"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| }, | |
| { | |
| "name": "lzReceiveTypesAccounts", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["LayerZero Receive Types PDA(必需的 LayerZero OApp 组件)"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "InitStoreParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setAdmin", | |
| "docs": ["设置新管理员"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["当前管理员(仅管理员可设置新管理员)"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetAdminParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setDelegate", | |
| "docs": ["设置委托者"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["当前管理员(仅管理员可设置委托者)"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetDelegateParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setForwardTo", | |
| "docs": ["设置转发地址"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetForwardToParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setMinSubscribeAmount", | |
| "docs": ["设置最小申购金额"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenMint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["代币 Mint 账户"] | |
| }, | |
| { | |
| "name": "tokenProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Token Program"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币配置 PDA"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetMinSubscribeAmountParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setSupportedToken", | |
| "docs": ["设置支持的代币"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenMint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["代币 Mint 账户"] | |
| }, | |
| { | |
| "name": "tokenProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Token Program"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币配置 PDA"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetSupportedTokenParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "emergencyWithdraw", | |
| "docs": ["紧急提现(仅管理员)"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Token Program"] | |
| }, | |
| { | |
| "name": "tokenMint", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币铸造信息"] | |
| }, | |
| { | |
| "name": "storeTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["Store 代币账户(源账户)"] | |
| }, | |
| { | |
| "name": "adminTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["管理员代币账户(目标账户)"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "EmergencyWithdrawParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setMaxRedeemRequestCount", | |
| "docs": ["设置最大赎回请求数量(delegate 权限)"], | |
| "accounts": [ | |
| { | |
| "name": "authority", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员或委托者(都可以设置此配置)"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetMaxRedeemRequestCountParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "setPeerConfig", | |
| "docs": ["设置跨链对等节点配置(LayerZero 协议级配置,admin 权限)"], | |
| "accounts": [ | |
| { | |
| "name": "admin", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["管理员或委托者(LayerZero 协议配置权限)"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["对等节点配置 PDA(每个远程链一个)"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SetPeerParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "subscribe", | |
| "docs": ["用户订阅代币"], | |
| "accounts": [ | |
| { | |
| "name": "user", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["用户签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币配置"] | |
| }, | |
| { | |
| "name": "addressMapping", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["用户地址映射"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero 跨链对等节点配置"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero Endpoint Settings"] | |
| }, | |
| { | |
| "name": "tokenProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Token Program"] | |
| }, | |
| { | |
| "name": "tokenMint", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币铸造信息"] | |
| }, | |
| { | |
| "name": "userTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["用户代币账户"] | |
| }, | |
| { | |
| "name": "storeTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["程序代币账户(中转账户)"] | |
| }, | |
| { | |
| "name": "forwardToTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["forwardTo 代币账户(最终目标账户)"] | |
| }, | |
| { | |
| "name": "forwardToAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["forwardTo SOL 账户"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序(必需)"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SubscribeParams" | |
| } | |
| } | |
| ], | |
| "returns": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "quoteSubscribeFee", | |
| "docs": ["查询订阅费用"], | |
| "accounts": [ | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero 跨链对等节点配置"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero Endpoint Settings"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "QuoteSubscribeParams" | |
| } | |
| } | |
| ], | |
| "returns": { | |
| "defined": "MessagingFee" | |
| } | |
| }, | |
| { | |
| "name": "bindEvmAddress", | |
| "docs": ["绑定EVM地址"], | |
| "accounts": [ | |
| { | |
| "name": "user", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["用户签名者"] | |
| }, | |
| { | |
| "name": "addressMapping", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["地址映射 PDA(Solana -> EVM)"] | |
| }, | |
| { | |
| "name": "evmAddressRegistry", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["EVM 地址注册表 PDA(EVM -> Solana,防止重复绑定)"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "BindEvmAddressParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "requestRedeem", | |
| "docs": ["ABA模式请求赎回 (A->B)"], | |
| "accounts": [ | |
| { | |
| "name": "user", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["用户签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币配置"] | |
| }, | |
| { | |
| "name": "addressMapping", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["用户地址映射"] | |
| }, | |
| { | |
| "name": "userRedeem", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["用户赎回状态 PDA(使用 EVM 地址作为种子)"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero 跨链对等节点配置"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero Endpoint Settings"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "RequestRedeemParams" | |
| } | |
| } | |
| ], | |
| "returns": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "quoteRedeemFee", | |
| "docs": ["查询赎回费用"], | |
| "accounts": [ | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["代币配置"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero 跨链对等节点配置"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["LayerZero Endpoint Settings"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "QuoteRedeemFeeParams" | |
| } | |
| } | |
| ], | |
| "returns": { | |
| "defined": "MessagingFee" | |
| } | |
| }, | |
| { | |
| "name": "claim", | |
| "docs": ["提取已到期的赎回资金"], | |
| "accounts": [ | |
| { | |
| "name": "user", | |
| "isMut": true, | |
| "isSigner": true, | |
| "docs": ["用户签名者"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["OApp Store"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["代币配置"] | |
| }, | |
| { | |
| "name": "addressMapping", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["用户地址映射"] | |
| }, | |
| { | |
| "name": "userRedeem", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["用户提现状态 PDA(使用 EVM 地址作为种子)"] | |
| }, | |
| { | |
| "name": "tokenProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Token Program"] | |
| }, | |
| { | |
| "name": "tokenMint", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["代币铸造信息"] | |
| }, | |
| { | |
| "name": "userTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["用户代币账户"] | |
| }, | |
| { | |
| "name": "storeTokenAccount", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["程序代币账户(中转账户)"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序(必需)"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "ClaimParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "quoteSend", | |
| "docs": ["获取发送消息的费用报价"], | |
| "accounts": [ | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["目标链配置,包含对等节点地址和强制消息选项"] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SendMessageParams" | |
| } | |
| } | |
| ], | |
| "returns": { | |
| "defined": "MessagingFee" | |
| } | |
| }, | |
| { | |
| "name": "send", | |
| "docs": ["发送跨链消息"], | |
| "accounts": [ | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": [ | |
| "Configuration for the destination chain. Holds the peer address and any", | |
| "enforced messaging options." | |
| ] | |
| }, | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA that signs the send instruction"] | |
| }, | |
| { | |
| "name": "endpoint", | |
| "isMut": false, | |
| "isSigner": false | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "SendMessageParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "lzReceive", | |
| "docs": ["ABA模式接收返回消息 (B->A)"], | |
| "accounts": [ | |
| { | |
| "name": "store", | |
| "isMut": true, | |
| "isSigner": false, | |
| "docs": ["OApp Store PDA - 代表我们在Solana上的OApp地址"] | |
| }, | |
| { | |
| "name": "peer", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["发送链的对等配置PDA,确保只有允许的对等节点才能发送消息"] | |
| }, | |
| { | |
| "name": "systemProgram", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["系统程序"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "params", | |
| "type": { | |
| "defined": "LzReceiveParams" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "getClaimableAmount", | |
| "docs": ["获取用户可提取的代币数量"], | |
| "accounts": [ | |
| { | |
| "name": "store", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["Store PDA账户"] | |
| }, | |
| { | |
| "name": "tokenConfig", | |
| "isMut": false, | |
| "isSigner": false, | |
| "docs": ["代币配置账户"] | |
| }, | |
| { | |
| "name": "userRedeem", | |
| "isMut": false, | |
| "isSigner": false, | |
| "isOptional": true, | |
| "docs": ["用户赎回信息账户"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "user", | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey" | |
| } | |
| ], | |
| "returns": { | |
| "defined": "ClaimableAmountInfo" | |
| } | |
| }, | |
| { | |
| "name": "getWithdrawInfoCount", | |
| "docs": ["获取用户提取信息统计"], | |
| "accounts": [ | |
| { | |
| "name": "userRedeem", | |
| "isMut": false, | |
| "isSigner": false, | |
| "isOptional": true, | |
| "docs": ["用户赎回信息账户"] | |
| } | |
| ], | |
| "args": [ | |
| { | |
| "name": "user", | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey" | |
| } | |
| ], | |
| "returns": { | |
| "defined": "WithdrawInfoStats" | |
| } | |
| } | |
| ], | |
| "accounts": [ | |
| { | |
| "name": "AddressMapping", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "evmAddress", | |
| "docs": ["对应的 EVM 地址(20字节)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "EvmAddressRegistry", | |
| "docs": ["用于检查 EVM 地址是否已被绑定的状态结构"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "solanaAddress", | |
| "docs": ["绑定的 Solana 地址"], | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "PeerConfig", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "peerAddress", | |
| "docs": ["对等节点地址(32字节,兼容所有链类型)"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "enforcedOptions", | |
| "docs": ["强制执行的选项配置"], | |
| "type": { | |
| "defined": "EnforcedOptions" | |
| } | |
| }, | |
| { | |
| "name": "bump", | |
| "docs": ["PDA bump seed"], | |
| "type": "u8" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "Store", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "admin", | |
| "docs": ["管理员地址(Owner 权限)"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "delegate", | |
| "docs": ["委托者地址(Delegate 权限)"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "bump", | |
| "docs": ["PDA bump seed"], | |
| "type": "u8" | |
| }, | |
| { | |
| "name": "endpointProgram", | |
| "docs": ["LayerZero Endpoint Program ID"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "bbChainEid", | |
| "docs": ["BB链的端点 ID"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "forwardTo", | |
| "docs": ["资金转发地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "maxRedeemRequestCount", | |
| "docs": [ | |
| "最大赎回请求数量(类似 BounceBitGatewayX.maxRedeemRequestCount)" | |
| ], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "messageNonce", | |
| "docs": ["消息 nonce(用于生成唯一消息哈希)"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "LzReceiveTypesAccounts", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "store", | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "TokenConfig", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "supported", | |
| "docs": ["是否支持"], | |
| "type": "bool" | |
| }, | |
| { | |
| "name": "decimals", | |
| "docs": ["代币精度"], | |
| "type": "u8" | |
| }, | |
| { | |
| "name": "minSubscribeAmount", | |
| "docs": ["最小申购金额(使用原生代币精度)"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "isNative", | |
| "docs": ["是否为原生代币"], | |
| "type": "bool" | |
| }, | |
| { | |
| "name": "totalRedeemed", | |
| "docs": ["总赎回金额统计(使用原生代币精度)"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "UserRedeem", | |
| "docs": ["用户赎回信息状态", "存储用户的赎回请求和状态信息"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "user", | |
| "docs": ["用户 Solana 地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "redeemInfos", | |
| "docs": [ | |
| "🔥 类似 EVM mapping: mapping(bbuid => RedeemInfo) - 内嵌存储 RedeemInfo" | |
| ], | |
| "type": { | |
| "vec": { | |
| "defined": "RedeemInfoEntry" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "activeRedeems", | |
| "docs": ["当前活跃的赎回请求列表(bbuid 列表,用于快速查询)"], | |
| "type": { | |
| "vec": { | |
| "array": ["u8", 32] | |
| } | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "WeeklyRedeem", | |
| "docs": [ | |
| "每周赎回统计 PDA", | |
| "Seeds: [b\"weekly_redeem\", token.as_ref(), week_no.to_le_bytes().as_ref()]" | |
| ], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "totalAmount", | |
| "docs": ["该周该 Token 的总赎回数量(原token精度)"], | |
| "type": "u128" | |
| } | |
| ] | |
| } | |
| } | |
| ], | |
| "types": [ | |
| { | |
| "name": "EmergencyWithdrawParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "amount", | |
| "docs": ["提现金额"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "InitStoreParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "admin", | |
| "docs": ["管理员地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "delegate", | |
| "docs": ["委托者地址(可选)"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "endpoint", | |
| "docs": ["LayerZero Endpoint Program ID"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "forwardTo", | |
| "docs": ["资金转发地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "maxRedeemRequestCount", | |
| "docs": ["最大赎回请求数量"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "bbChainEid", | |
| "docs": ["BB链端点 ID"], | |
| "type": "u32" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetAdminParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "newAdmin", | |
| "docs": ["新的管理员地址"], | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetDelegateParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "newDelegate", | |
| "docs": ["新的委托者地址"], | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetForwardToParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "forwardTo", | |
| "docs": ["新的转发地址"], | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetMaxRedeemRequestCountParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "maxCount", | |
| "docs": ["新的最大赎回请求数量"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetMinSubscribeAmountParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "minSubscribeAmount", | |
| "docs": ["新的最小申购金额(使用原生代币精度)"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetSupportedTokenParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "supported", | |
| "docs": ["是否支持"], | |
| "type": "bool" | |
| }, | |
| { | |
| "name": "minSubscribeAmount", | |
| "docs": ["最小申购金额(使用原生代币精度,仅在首次设置时需要)"], | |
| "type": { | |
| "option": "u64" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SendMessageParams", | |
| "docs": ["发送消息参数"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "dstEid", | |
| "docs": ["目标端点ID"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "message", | |
| "docs": ["消息内容"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "messageType", | |
| "docs": ["消息类型"], | |
| "type": "u16" | |
| }, | |
| { | |
| "name": "options", | |
| "docs": ["LayerZero选项"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "nativeFee", | |
| "docs": ["原生代币费用"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "lzTokenFee", | |
| "docs": ["LZ代币费用"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SetPeerParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "remoteEid", | |
| "docs": ["远程链 EID"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "config", | |
| "docs": ["配置参数"], | |
| "type": { | |
| "defined": "PeerConfigParam" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "ClaimableAmountInfo", | |
| "docs": ["可提取金额信息"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "user", | |
| "docs": ["用户地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "claimableAmount", | |
| "docs": ["可提取的总金额"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "claimableCount", | |
| "docs": ["可提取的请求数量"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "totalRequests", | |
| "docs": ["总的赎回请求数量"], | |
| "type": "u32" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "WithdrawInfoStats", | |
| "docs": ["用户提取信息统计结构"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "user", | |
| "docs": ["用户地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "totalRequests", | |
| "docs": ["总提取请求数"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "pendingRequests", | |
| "docs": ["待处理请求数(还未到提取时间)"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "claimableRequests", | |
| "docs": ["可提取请求数(已到时间但未提取)"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "totalPendingAmount", | |
| "docs": ["总待提取金额"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "claimableAmount", | |
| "docs": ["可提取金额"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "BindEvmAddressParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "evmAddress", | |
| "docs": ["EVM 地址(20字节)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "signature", | |
| "docs": ["EVM 签名(65字节:r(32) + s(32) + v(1))"], | |
| "type": { | |
| "array": ["u8", 65] | |
| } | |
| }, | |
| { | |
| "name": "expirationTime", | |
| "docs": ["签名消息的过期时间戳(使用时间戳防止重放攻击)"], | |
| "type": "i64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "ClaimParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "token", | |
| "docs": ["代币地址 (类似 EVM 的 function claim(address token))"], | |
| "type": "publicKey" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "RequestRedeemParams", | |
| "docs": ["ABA模式赎回参数(对应EVM的sendRedeemMessage参数)"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "amount", | |
| "docs": ["赎回金额(原始代币精度)"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "extraSendOptions", | |
| "docs": ["额外发送选项(A->B的gas设置)"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "extraReturnOptions", | |
| "docs": ["额外返回选项(B->A的gas设置)"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "nativeFee", | |
| "docs": ["原生费用(用户支付的 LayerZero 消息费用)"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "lzTokenFee", | |
| "docs": ["LayerZero Token 费用"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "QuoteRedeemFeeParams", | |
| "docs": ["赎回费用查询参数"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "amount", | |
| "docs": ["赎回金额"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "userEvmAddress", | |
| "docs": ["用户 EVM 地址"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "extraSendOptions", | |
| "docs": ["额外发送选项"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "extraReturnOptions", | |
| "docs": ["额外返回选项"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "payInLzToken", | |
| "docs": ["是否使用 LayerZero Token 支付费用"], | |
| "type": "bool" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "SubscribeParams", | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "amount", | |
| "docs": ["申购金额(原始代币精度)"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "participateStaking", | |
| "docs": ["是否参与质押(对应 EVM 中的 isFarming)"], | |
| "type": "bool" | |
| }, | |
| { | |
| "name": "extraSendOptions", | |
| "docs": [ | |
| "LayerZero 额外发送选项(对应 EVM 中的 extraSendOptions)" | |
| ], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "nativeFee", | |
| "docs": ["原生费用(用户支付的 LayerZero 消息费用)"], | |
| "type": "u64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "QuoteSubscribeParams", | |
| "docs": ["查询申购费用的参数"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "userEvmAddress", | |
| "docs": ["用户 EVM 地址"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "amountE18", | |
| "docs": ["E18 精度金额"], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "bbuid", | |
| "docs": ["BBUID"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "participateStaking", | |
| "docs": ["是否参与质押"], | |
| "type": "bool" | |
| }, | |
| { | |
| "name": "extraSendOptions", | |
| "docs": ["额外发送选项"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "payInLzToken", | |
| "docs": ["是否使用 LayerZero Token 支付费用"], | |
| "type": "bool" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "LzReceiveParams", | |
| "docs": ["LayerZero 跨链消息接收参数"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "srcEid", | |
| "docs": ["源链端点 ID"], | |
| "type": "u32" | |
| }, | |
| { | |
| "name": "sender", | |
| "docs": ["发送者地址 (32 字节)"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "nonce", | |
| "docs": ["消息 nonce"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "guid", | |
| "docs": ["全局唯一标识符"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "message", | |
| "docs": ["消息载荷"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "extraData", | |
| "docs": ["额外数据"], | |
| "type": "bytes" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "InboundMessage", | |
| "docs": ["发送到 BB 链的入站消息结构(与 EVM InboundMessage 对应)"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "docs": ["BBUID (Business Unit ID) - 唯一消息标识符"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "e18Amount", | |
| "docs": ["金额(E18 精度,对应 Solidity uint256)"], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["EVM 代币地址(20字节,对应 Solidity address)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "user", | |
| "docs": ["用户 EVM 地址(20字节,对应 Solidity address)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "msgType", | |
| "docs": ["消息类型(对应 Solidity uint16)"], | |
| "type": "u16" | |
| }, | |
| { | |
| "name": "returnOptions", | |
| "docs": [ | |
| "返回消息选项(用于 gas limit 配置,对应 Solidity bytes)" | |
| ], | |
| "type": "bytes" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "OutboundMessage", | |
| "docs": ["从 BB 链返回的出站消息结构(与 EVM OutboundMessage 对应)"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "docs": ["BBUID (Business Unit ID) - 唯一消息标识符"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "weekNo", | |
| "docs": ["周数(weekNo,对应 Solidity uint256)"], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "claimTime", | |
| "docs": [ | |
| "可提取时间(成功时有效,失败时为0,对应 Solidity uint256)" | |
| ], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "e18Amount", | |
| "docs": ["E18精度金额(对应 Solidity uint256)- 新增字段"], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["EVM 代币地址(20字节,对应 Solidity address)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "user", | |
| "docs": ["用户 EVM 地址(20字节,对应 Solidity address)"], | |
| "type": { | |
| "array": ["u8", 20] | |
| } | |
| }, | |
| { | |
| "name": "msgType", | |
| "docs": ["消息类型(对应 Solidity uint16)"], | |
| "type": "u16" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "EnforcedOptions", | |
| "docs": ["强制执行的选项配置"], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "send", | |
| "docs": ["发送消息时的强制选项"], | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "sendAndCall", | |
| "docs": ["发送并调用时的强制选项"], | |
| "type": "bytes" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "RedeemInfoEntry", | |
| "docs": [ | |
| "🔥 RedeemInfo 条目(bbuid + 赎回信息)", | |
| "用于替换 tuple 类型以支持 IDL 生成" | |
| ], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "docs": ["BB Chain 上的唯一标识符"], | |
| "type": { | |
| "array": ["u8", 32] | |
| } | |
| }, | |
| { | |
| "name": "info", | |
| "docs": ["赎回信息"], | |
| "type": { | |
| "defined": "EmbeddedRedeemInfo" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "EmbeddedRedeemInfo", | |
| "docs": [ | |
| "🔥 内嵌版本的 RedeemInfo,对应 EVM 合约中的 RedeemInfo 结构", | |
| "专注于赎回操作的核心信息:金额、代币、时间状态" | |
| ], | |
| "type": { | |
| "kind": "struct", | |
| "fields": [ | |
| { | |
| "name": "amountE18", | |
| "docs": ["赎回的代币数量(E18精度)- 使用 u128 以支持大额精度"], | |
| "type": "u128" | |
| }, | |
| { | |
| "name": "amount", | |
| "docs": ["原始代币数量(原始精度)"], | |
| "type": "u64" | |
| }, | |
| { | |
| "name": "token", | |
| "docs": ["代币地址"], | |
| "type": "publicKey" | |
| }, | |
| { | |
| "name": "claimTime", | |
| "docs": [ | |
| "可提取时间戳:", | |
| "- 0: requestRedeem 已调用但尚未收到 BB 链反馈 (等同于 PENDING)", | |
| "- >0: BB 链成功反馈,用户可在此时间后提取 (等同于 SUCCESS)", | |
| "- -1: BB 链处理失败 (等同于 FAILED)" | |
| ], | |
| "type": "i64" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "PeerConfigParam", | |
| "docs": ["对等节点配置参数枚举"], | |
| "type": { | |
| "kind": "enum", | |
| "variants": [ | |
| { | |
| "name": "PeerAddress", | |
| "fields": [ | |
| { | |
| "array": ["u8", 32] | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "EnforcedOptions", | |
| "fields": [ | |
| { | |
| "name": "send", | |
| "type": "bytes" | |
| }, | |
| { | |
| "name": "sendAndCall", | |
| "type": "bytes" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| } | |
| ], | |
| "events": [ | |
| { | |
| "name": "Subscribed", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "guid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "e18Amount", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "isFarming", | |
| "type": "bool", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "Redeemed", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "guid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "e18Amount", | |
| "type": "u128", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "RedeemReceived", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "guid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "weekNo", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "e18Amount", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "claimTime", | |
| "type": "u128", | |
| "index": false | |
| }, | |
| { | |
| "name": "success", | |
| "type": "bool", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "WithdrawInfoReceived", | |
| "fields": [ | |
| { | |
| "name": "user", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "claimTime", | |
| "type": "i64", | |
| "index": false | |
| }, | |
| { | |
| "name": "messageHash", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "Claimed", | |
| "fields": [ | |
| { | |
| "name": "bbuid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u128", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "EvmAddressBound", | |
| "fields": [ | |
| { | |
| "name": "solanaAddress", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "evmAddress", | |
| "type": { | |
| "array": ["u8", 20] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "ForwardToUpdated", | |
| "fields": [ | |
| { | |
| "name": "oldForwardTo", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "newForwardTo", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "TokenSupportUpdated", | |
| "fields": [ | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "supported", | |
| "type": "bool", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "MinSubscribeAmountUpdated", | |
| "fields": [ | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "oldMin", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "newMin", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "MaxWithdrawRequestsUpdated", | |
| "fields": [ | |
| { | |
| "name": "oldMax", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "newMax", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "PeerSet", | |
| "fields": [ | |
| { | |
| "name": "remoteEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "peerAddress", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "EnforcedOptionsSet", | |
| "fields": [ | |
| { | |
| "name": "remoteEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "sendOptions", | |
| "type": "bytes", | |
| "index": false | |
| }, | |
| { | |
| "name": "sendAndCallOptions", | |
| "type": "bytes", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "EmergencyWithdraw", | |
| "fields": [ | |
| { | |
| "name": "admin", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "LayerZeroMessageSent", | |
| "fields": [ | |
| { | |
| "name": "dstEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "msgType", | |
| "type": "u16", | |
| "index": false | |
| }, | |
| { | |
| "name": "bbuid", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "LayerZeroMessageReceived", | |
| "fields": [ | |
| { | |
| "name": "srcEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "msgType", | |
| "type": "u16", | |
| "index": false | |
| }, | |
| { | |
| "name": "messageHash", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "user", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "token", | |
| "type": "publicKey", | |
| "index": false | |
| }, | |
| { | |
| "name": "amount", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "MessageSent", | |
| "fields": [ | |
| { | |
| "name": "dstEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "messageType", | |
| "type": "u16", | |
| "index": false | |
| }, | |
| { | |
| "name": "nonce", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "MessageReceived", | |
| "fields": [ | |
| { | |
| "name": "srcEid", | |
| "type": "u32", | |
| "index": false | |
| }, | |
| { | |
| "name": "sender", | |
| "type": { | |
| "array": ["u8", 32] | |
| }, | |
| "index": false | |
| }, | |
| { | |
| "name": "messageType", | |
| "type": "u16", | |
| "index": false | |
| }, | |
| { | |
| "name": "nonce", | |
| "type": "u64", | |
| "index": false | |
| }, | |
| { | |
| "name": "timestamp", | |
| "type": "i64", | |
| "index": false | |
| } | |
| ] | |
| } | |
| ], | |
| "errors": [ | |
| { | |
| "code": 6000, | |
| "name": "ZeroAmount", | |
| "msg": "Amount cannot be zero" | |
| }, | |
| { | |
| "code": 6001, | |
| "name": "TokenNotSupported", | |
| "msg": "Token is not supported" | |
| }, | |
| { | |
| "code": 6002, | |
| "name": "InsufficientMessageFee", | |
| "msg": "Insufficient message fee" | |
| }, | |
| { | |
| "code": 6003, | |
| "name": "InvalidAmountForNative", | |
| "msg": "Invalid amount for native token" | |
| }, | |
| { | |
| "code": 6004, | |
| "name": "NativeTokenTransferFailed", | |
| "msg": "Native token transfer failed" | |
| }, | |
| { | |
| "code": 6005, | |
| "name": "NoWithdrawRequests", | |
| "msg": "No withdraw requests found" | |
| }, | |
| { | |
| "code": 6006, | |
| "name": "InsufficientNativeBalance", | |
| "msg": "Insufficient native balance" | |
| }, | |
| { | |
| "code": 6007, | |
| "name": "InvalidIndex", | |
| "msg": "Invalid index" | |
| }, | |
| { | |
| "code": 6008, | |
| "name": "InvalidForwardAddress", | |
| "msg": "Invalid forward address" | |
| }, | |
| { | |
| "code": 6009, | |
| "name": "InvalidOAppAddress", | |
| "msg": "Invalid OApp address" | |
| }, | |
| { | |
| "code": 6010, | |
| "name": "InvalidOAppOptions", | |
| "msg": "Invalid OApp options" | |
| }, | |
| { | |
| "code": 6011, | |
| "name": "MissingForwardToAccount", | |
| "msg": "Missing ForwardTo account" | |
| }, | |
| { | |
| "code": 6012, | |
| "name": "ForwardToMismatch", | |
| "msg": "ForwardTo address mismatch" | |
| }, | |
| { | |
| "code": 6013, | |
| "name": "UnauthorizedCaller", | |
| "msg": "Unauthorized caller" | |
| }, | |
| { | |
| "code": 6014, | |
| "name": "ExceedsMaxWithdrawRequests", | |
| "msg": "Exceeds max withdraw requests" | |
| }, | |
| { | |
| "code": 6015, | |
| "name": "ExceedsMaxRedeemRequests", | |
| "msg": "Exceeds max redeem requests" | |
| }, | |
| { | |
| "code": 6016, | |
| "name": "InsufficientSubscribeAmount", | |
| "msg": "Insufficient subscribe amount" | |
| }, | |
| { | |
| "code": 6017, | |
| "name": "SubscribeAmountTooLow", | |
| "msg": "Subscribe amount too low" | |
| }, | |
| { | |
| "code": 6018, | |
| "name": "DuplicateBBUID", | |
| "msg": "Duplicate BBUID" | |
| }, | |
| { | |
| "code": 6019, | |
| "name": "NotExistsBBUID", | |
| "msg": "BBUID does not exist" | |
| }, | |
| { | |
| "code": 6020, | |
| "name": "TokenAlreadySupported", | |
| "msg": "Token already supported" | |
| }, | |
| { | |
| "code": 6021, | |
| "name": "InvalidDecimals", | |
| "msg": "Invalid decimals" | |
| }, | |
| { | |
| "code": 6022, | |
| "name": "InvalidEvmAddress", | |
| "msg": "Invalid EVM address" | |
| }, | |
| { | |
| "code": 6023, | |
| "name": "InsufficientFunds", | |
| "msg": "Insufficient funds" | |
| }, | |
| { | |
| "code": 6024, | |
| "name": "InvalidParameters", | |
| "msg": "Invalid parameters" | |
| }, | |
| { | |
| "code": 6025, | |
| "name": "InvalidMessageFormat", | |
| "msg": "Invalid message format" | |
| }, | |
| { | |
| "code": 6026, | |
| "name": "InvalidSourceChain", | |
| "msg": "Invalid source chain" | |
| }, | |
| { | |
| "code": 6027, | |
| "name": "InvalidMessageType", | |
| "msg": "Invalid message type" | |
| }, | |
| { | |
| "code": 6028, | |
| "name": "EvmAddressAlreadyBound", | |
| "msg": "EVM address already bound" | |
| }, | |
| { | |
| "code": 6029, | |
| "name": "SolanaAddressAlreadyBound", | |
| "msg": "Solana address already bound" | |
| }, | |
| { | |
| "code": 6030, | |
| "name": "AddressMappingNotExists", | |
| "msg": "Address mapping does not exist" | |
| }, | |
| { | |
| "code": 6031, | |
| "name": "UserRedeemNotFound", | |
| "msg": "User redeem record not found" | |
| }, | |
| { | |
| "code": 6032, | |
| "name": "InvalidAccountOwner", | |
| "msg": "Invalid account owner" | |
| }, | |
| { | |
| "code": 6033, | |
| "name": "InvalidAccountData", | |
| "msg": "Invalid account data" | |
| }, | |
| { | |
| "code": 6034, | |
| "name": "EvmAddressRegistryNotFound", | |
| "msg": "EVM address registry not found" | |
| }, | |
| { | |
| "code": 6035, | |
| "name": "InvalidEvmAddressRegistry", | |
| "msg": "Invalid EVM address registry" | |
| }, | |
| { | |
| "code": 6036, | |
| "name": "InvalidCrossChainSource", | |
| "msg": "Invalid cross-chain source" | |
| }, | |
| { | |
| "code": 6037, | |
| "name": "MessageDecodeFailed", | |
| "msg": "Message decode failed" | |
| }, | |
| { | |
| "code": 6038, | |
| "name": "MessageEncodeFailed", | |
| "msg": "Message encode failed" | |
| }, | |
| { | |
| "code": 6039, | |
| "name": "InvalidNonce", | |
| "msg": "Invalid nonce" | |
| }, | |
| { | |
| "code": 6040, | |
| "name": "ReplayAttackDetected", | |
| "msg": "Replay attack detected" | |
| }, | |
| { | |
| "code": 6041, | |
| "name": "InvalidGuid", | |
| "msg": "Invalid GUID" | |
| }, | |
| { | |
| "code": 6042, | |
| "name": "WithdrawInfoNotExists", | |
| "msg": "Withdraw info does not exist" | |
| }, | |
| { | |
| "code": 6043, | |
| "name": "WithdrawNotYetClaimable", | |
| "msg": "Withdraw not yet claimable" | |
| }, | |
| { | |
| "code": 6044, | |
| "name": "InvalidTimestamp", | |
| "msg": "Invalid timestamp" | |
| }, | |
| { | |
| "code": 6045, | |
| "name": "MathOverflow", | |
| "msg": "Math overflow" | |
| }, | |
| { | |
| "code": 6046, | |
| "name": "ArithmeticOverflow", | |
| "msg": "Arithmetic overflow" | |
| }, | |
| { | |
| "code": 6047, | |
| "name": "SerializationError", | |
| "msg": "Serialization error" | |
| }, | |
| { | |
| "code": 6048, | |
| "name": "PrecisionConversionError", | |
| "msg": "Precision conversion error" | |
| }, | |
| { | |
| "code": 6049, | |
| "name": "AccountDataSizeMismatch", | |
| "msg": "Account data size mismatch" | |
| }, | |
| { | |
| "code": 6050, | |
| "name": "AccountOwnerMismatch", | |
| "msg": "Account owner mismatch" | |
| }, | |
| { | |
| "code": 6051, | |
| "name": "UnsupportedOperation", | |
| "msg": "Unsupported operation" | |
| }, | |
| { | |
| "code": 6052, | |
| "name": "ConfigurationError", | |
| "msg": "Configuration error" | |
| }, | |
| { | |
| "code": 6053, | |
| "name": "InsufficientBalance", | |
| "msg": "Insufficient balance" | |
| }, | |
| { | |
| "code": 6054, | |
| "name": "AccountNotInitialized", | |
| "msg": "Account not initialized" | |
| }, | |
| { | |
| "code": 6055, | |
| "name": "AccountAlreadyInitialized", | |
| "msg": "Account already initialized" | |
| }, | |
| { | |
| "code": 6056, | |
| "name": "TooManyRedeemInfos", | |
| "msg": "Too many redeem infos" | |
| }, | |
| { | |
| "code": 6057, | |
| "name": "RedeemInfoAlreadyExists", | |
| "msg": "RedeemInfo already exists" | |
| }, | |
| { | |
| "code": 6058, | |
| "name": "RedeemInfoNotFound", | |
| "msg": "RedeemInfo not found" | |
| }, | |
| { | |
| "code": 6059, | |
| "name": "TooManyActiveWithdraws", | |
| "msg": "Too many active withdraws" | |
| }, | |
| { | |
| "code": 6060, | |
| "name": "WithdrawAlreadyExists", | |
| "msg": "Withdraw already exists" | |
| }, | |
| { | |
| "code": 6061, | |
| "name": "WithdrawNotFound", | |
| "msg": "Withdraw not found" | |
| }, | |
| { | |
| "code": 6062, | |
| "name": "NotClaimable", | |
| "msg": "Not claimable" | |
| }, | |
| { | |
| "code": 6063, | |
| "name": "ClaimTimeNotReached", | |
| "msg": "Claim time not reached" | |
| }, | |
| { | |
| "code": 6064, | |
| "name": "NoClaimableRedeems", | |
| "msg": "No claimable redeem requests" | |
| }, | |
| { | |
| "code": 6065, | |
| "name": "MissingTokenAccount", | |
| "msg": "Missing required token account" | |
| }, | |
| { | |
| "code": 6066, | |
| "name": "MissingTokenProgram", | |
| "msg": "Missing token program" | |
| }, | |
| { | |
| "code": 6067, | |
| "name": "TokenAccountMintMismatch", | |
| "msg": "Token account mint mismatch" | |
| }, | |
| { | |
| "code": 6068, | |
| "name": "TokenMintMismatch", | |
| "msg": "Token mint mismatch" | |
| }, | |
| { | |
| "code": 6069, | |
| "name": "TokenAccountOwnerMismatch", | |
| "msg": "Token account owner mismatch" | |
| }, | |
| { | |
| "code": 6070, | |
| "name": "InsufficientTokenBalance", | |
| "msg": "Insufficient token balance" | |
| }, | |
| { | |
| "code": 6071, | |
| "name": "InvalidTokenAccount", | |
| "msg": "Invalid token account" | |
| }, | |
| { | |
| "code": 6072, | |
| "name": "InvalidTokenMint", | |
| "msg": "Invalid token mint account" | |
| }, | |
| { | |
| "code": 6073, | |
| "name": "InvalidTokenProgram", | |
| "msg": "Invalid token program" | |
| }, | |
| { | |
| "code": 6074, | |
| "name": "InvalidSystemProgram", | |
| "msg": "Invalid system program" | |
| }, | |
| { | |
| "code": 6075, | |
| "name": "InvalidEvmSignature", | |
| "msg": "Invalid EVM signature" | |
| }, | |
| { | |
| "code": 6076, | |
| "name": "EvmSignatureRecoveryFailed", | |
| "msg": "EVM signature recovery failed" | |
| }, | |
| { | |
| "code": 6077, | |
| "name": "EvmSignatureAddressMismatch", | |
| "msg": "EVM signature address mismatch" | |
| }, | |
| { | |
| "code": 6078, | |
| "name": "EvmSignatureExpired", | |
| "msg": "EVM signature expired" | |
| }, | |
| { | |
| "code": 6079, | |
| "name": "InvalidRecoveryId", | |
| "msg": "Invalid recovery ID" | |
| } | |
| ], | |
| "metadata": { | |
| "address": "9Ux8zttkQx6nJvWvksHd7GQ86miMB1t5oXXQ7rEVBRCr" | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment