2700 lines
80 KiB
JSON
2700 lines
80 KiB
JSON
{
|
|
"file": "docs/SPL_TOKEN_2022_MATRIX.json",
|
|
"version": "0.1.0-pre.008",
|
|
"schemaVersion": 1,
|
|
"matrixStatus": "exact_decoder_leaf_coverage_proven_pending_materialization_executor_preflight_and_cluster_corpus_completion",
|
|
"programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
|
|
"strictProgramBoundary": {
|
|
"acceptedProgramIds": [
|
|
"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
|
],
|
|
"rejectedDistinctSurfaces": [
|
|
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
|
|
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
|
|
"ZkE1Gama1Proof11111111111111111111111111111",
|
|
"regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg"
|
|
],
|
|
"externalInterfaceRule": "Transfer Hook, Token Group and Token Metadata implementations are dispatched only by an independently audited executable Program ID. A Token-2022 TLV pointer remains a link, not a decode of its target program."
|
|
},
|
|
"interfaceAudit": {
|
|
"workspaceConstraint": "^3.1",
|
|
"workspaceFeatures": [
|
|
"serde"
|
|
],
|
|
"workspaceCargoLockPresentInProvidedArchive": true,
|
|
"workspaceCargoLockSha256": "248c02af8c78d3bb6ad747460fee0011f8141feef83364cf697e35e44bd4ceb9",
|
|
"workspaceCargoToolAvailableInAuditEnvironment": false,
|
|
"resolvedVersion": "3.1.1",
|
|
"resolutionStatus": "confirmed_by_operator_cargo_tree_2026-07-16",
|
|
"resolvedFeatures": [
|
|
"default",
|
|
"serde"
|
|
],
|
|
"leafConsumer": "kb-lib.decoder.spl.token_2022",
|
|
"operatorEvidence": "cargo tree -i spl-token-2022-interface -e features",
|
|
"publishedCandidateAudited": "3.1.1",
|
|
"publishedCandidateStatus": "matches_confirmed_workspace_resolution",
|
|
"publishedDocumentation": "https://docs.rs/spl-token-2022-interface/3.1.1/spl_token_2022_interface/",
|
|
"officialRepository": "https://github.com/solana-program/token-2022",
|
|
"sourcePaths": [
|
|
"interface/src/instruction.rs",
|
|
"interface/src/extension/mod.rs",
|
|
"interface/src/extension/*/instruction.rs",
|
|
"program/src/processor.rs",
|
|
"program/src/extension/*/processor.rs"
|
|
],
|
|
"candidateDirectDependenciesRelevantToAudit": {
|
|
"solana-zk-elgamal-proof-interface": "^0.1.3",
|
|
"spl-token-confidential-transfer-proof-extraction": "^0.6.0",
|
|
"spl-token-group-interface": "^0.7.2",
|
|
"spl-token-metadata-interface": "^1.0.0",
|
|
"spl-type-length-value": "^0.9.1"
|
|
},
|
|
"operatorWorkspaceResolvedDependencies": {
|
|
"solana-zk-elgamal-proof-interface": "0.1.3",
|
|
"spl-token-confidential-transfer-proof-extraction": "0.6.1",
|
|
"spl-token-group-interface": "0.7.2",
|
|
"spl-token-metadata-interface": "1.0.1",
|
|
"spl-type-length-value": "0.9.1"
|
|
},
|
|
"operatorWorkspaceDependencyEvidence": {
|
|
"source": "attached Cargo.lock plus cargo tree -p spl-token-2022-interface -e features",
|
|
"tokenGroupConsumption": "direct dependency of spl-token-2022-interface 3.1.1",
|
|
"tokenMetadataConsumption": "direct dependency of spl-token-2022-interface 3.1.1",
|
|
"processorSourceLockMetadataVersion": "1.0.0",
|
|
"operatorWorkspaceMetadataVersion": "1.0.1",
|
|
"metadataVersionDriftStatus": "unpack_hardening_only_wire_and_builders_unchanged_by_source_diff"
|
|
},
|
|
"operatorCommandsRequired": [
|
|
"cargo tree -p ks-lib -e features",
|
|
"cargo tree -i spl-token-2022-interface -e features",
|
|
"cargo tree -i spl-elgamal-registry-interface -e features",
|
|
"cargo metadata --format-version 1 --locked",
|
|
"cargo test -p ks-lib",
|
|
"cargo clippy --all-targets"
|
|
],
|
|
"sourceCommit": "e18f9c6f9bf6044b934f48e3090e8e59e4820f02",
|
|
"sourceTag": "interface@v3.1.1",
|
|
"sourceCommitDate": "2026-06-26"
|
|
},
|
|
"operatorValidation": {
|
|
"date": "2026-07-28",
|
|
"cargoTestPackage": {
|
|
"command": "cargo test -p ks-lib",
|
|
"status": "passed",
|
|
"scope": "whole_ks_lib_package_non_structural_evidence",
|
|
"passedAtEvidence": 625,
|
|
"failedAtEvidence": 0,
|
|
"rule": "Informational operator evidence only. Structural matrix tests must derive counts from matrix rows and compiled registries, never from this volatile package total."
|
|
},
|
|
"cargoClippyAllTargets": {
|
|
"command": "cargo clippy --all-targets",
|
|
"status": "clean"
|
|
}
|
|
},
|
|
"tokenMetadataVersionDriftAudit": {
|
|
"processorSourceVersion": "1.0.0",
|
|
"operatorWorkspaceVersion": "1.0.1",
|
|
"releaseDate": "2026-06-29",
|
|
"releaseCommit": "7038969",
|
|
"changePullRequest": 87,
|
|
"mergedCommit": "fc97c60",
|
|
"changedProductionFile": "interface/src/instruction.rs",
|
|
"productionDiff": {
|
|
"additions": 78,
|
|
"deletions": 0
|
|
},
|
|
"wireDiscriminantsChanged": false,
|
|
"buildersChanged": false,
|
|
"changeKind": "pre_borsh_string_length_validation_before_existing_try_from_slice",
|
|
"affectedInstructions": {
|
|
"initialize": [
|
|
"name",
|
|
"symbol",
|
|
"uri"
|
|
],
|
|
"update_field": [
|
|
"field_key_when_tag_3",
|
|
"value"
|
|
],
|
|
"remove_key": [
|
|
"key"
|
|
]
|
|
},
|
|
"unaffectedInstructions": [
|
|
"update_authority",
|
|
"emit"
|
|
],
|
|
"decoderRequirement": "validate every little_endian_u32 string length against remaining bounded input before allocation or UTF-8 materialization",
|
|
"malformedPolicy": "bounded invalid_instruction diagnostic without semantic event",
|
|
"evidence": "official interface@v1.0.1 release and solana-program/token-metadata pull request 87 files diff"
|
|
},
|
|
"processorAudit": {
|
|
"auditedVersion": "11.0.0",
|
|
"sourceCommit": "e18f9c6f9bf6044b934f48e3090e8e59e4820f02",
|
|
"sourceAnchor": "same repository commit as interface@v3.1.1",
|
|
"programManifestInterfaceRequirement": "3.1.0 path dependency resolved to workspace interface 3.1.1 at the audited commit",
|
|
"dispatchStatus": "top_level_extension_and_embedded_interface_fallbacks_confirmed",
|
|
"resolvedInterfaceDependenciesFromSourceCargoLock": {
|
|
"spl-token-group-interface": "0.7.2",
|
|
"spl-token-metadata-interface": "1.0.0",
|
|
"spl-elgamal-registry-interface": "0.2.1"
|
|
},
|
|
"deploymentBinaryEquality": {
|
|
"localnet": "not_tested",
|
|
"devnet": "not_proven",
|
|
"mainnet": "not_proven"
|
|
},
|
|
"corpus": {
|
|
"offline": "not_started",
|
|
"devnet": "not_started",
|
|
"mainnet": "not_started"
|
|
},
|
|
"rule": "Interface publication, processor implementation, builder constructibility, cluster deployment, observation, simulation and submission are independent proofs."
|
|
},
|
|
"wireContract": {
|
|
"topLevelEncoding": "ordered_union: first try one_u8_PodTokenInstruction; if it fails try exact_8_byte_TokenMetadataInstruction discriminator; if that fails try exact_8_byte_TokenGroupInstruction discriminator",
|
|
"topLevelSuffixPolicy": "processor-specific exact decode: fixed Pod payloads use exact bytemuck sizes; metadata uses bounded Borsh and try_from_slice; group uses exact bytemuck sizes; remaining per-variant proof suffix rules pending",
|
|
"outerAndInner": true,
|
|
"failedTransactionPolicy": "preserve a bounded structured intent when the wire is readable; committed remains false",
|
|
"unknownInstructionPolicy": "bounded opaque diagnostic without semantic event",
|
|
"batch": {
|
|
"tag": 255,
|
|
"recordPrefix": [
|
|
"account_count_u8",
|
|
"instruction_data_length_u8"
|
|
],
|
|
"nestedBatchAllowed": false,
|
|
"bounds": "pending_workspace_policy_and_processor_audit"
|
|
}
|
|
},
|
|
"baseInstructionWireAudit": {
|
|
"status": "published_interface_3_1_1_pack_and_unpack_exact_processor_suffix_acceptance_pending_per_variant",
|
|
"rowCount": 33,
|
|
"scope": "top-level u8 forms that are not extension-family envelopes",
|
|
"sizeIncludesTopLevelTag": true,
|
|
"sizeRuleMeaning": "canonical TokenInstruction::pack output for fixed forms; public unpack may accept a longer buffer when interfaceConsumption says its returned suffix is discarded",
|
|
"integerEndianness": "little_endian",
|
|
"compactOptions": {
|
|
"pubkey": {
|
|
"none": "one byte 0",
|
|
"some": "one byte 1 followed by 32-byte pubkey"
|
|
},
|
|
"u64": {
|
|
"none": "one byte 0",
|
|
"some": "one byte 1 followed by u64_le"
|
|
},
|
|
"invalidDiscriminantPolicy": "interface_unpack_rejects_values_other_than_0_or_1"
|
|
},
|
|
"publicUnpackContract": {
|
|
"entryPoint": "TokenInstruction::unpack calls unpack_with_rest and discards the returned remainder",
|
|
"fixedPrefixConsequence": "a successful public interface unpack is not proof that the whole instruction buffer was consumed",
|
|
"decoderRequirement": "retain and diagnose every unconsumed bounded suffix until the exact processor path proves acceptance or rejection",
|
|
"runtimeClaim": "none_from_public_unpack_alone"
|
|
},
|
|
"rows": [
|
|
{
|
|
"tag": 0,
|
|
"name": "initialize_mint",
|
|
"sizeRule": "35_or_67",
|
|
"payload": "decimals_u8+mint_authority_32+compact_freeze_authority",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_mint"
|
|
},
|
|
{
|
|
"tag": 1,
|
|
"name": "initialize_account",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_account"
|
|
},
|
|
{
|
|
"tag": 2,
|
|
"name": "initialize_multisig",
|
|
"sizeRule": "exact_2",
|
|
"payload": "m_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_multisig"
|
|
},
|
|
{
|
|
"tag": 3,
|
|
"name": "transfer",
|
|
"sizeRule": "exact_9",
|
|
"payload": "amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "transfer",
|
|
"status": "deprecated"
|
|
},
|
|
{
|
|
"tag": 4,
|
|
"name": "approve",
|
|
"sizeRule": "exact_9",
|
|
"payload": "amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "approve"
|
|
},
|
|
{
|
|
"tag": 5,
|
|
"name": "revoke",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "revoke"
|
|
},
|
|
{
|
|
"tag": 6,
|
|
"name": "set_authority",
|
|
"sizeRule": "3_or_35",
|
|
"payload": "authority_type_u8+compact_new_authority",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "set_authority"
|
|
},
|
|
{
|
|
"tag": 7,
|
|
"name": "mint_to",
|
|
"sizeRule": "exact_9",
|
|
"payload": "amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "mint_to"
|
|
},
|
|
{
|
|
"tag": 8,
|
|
"name": "burn",
|
|
"sizeRule": "exact_9",
|
|
"payload": "amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "burn"
|
|
},
|
|
{
|
|
"tag": 9,
|
|
"name": "close_account",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "close_account"
|
|
},
|
|
{
|
|
"tag": 10,
|
|
"name": "freeze_account",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "freeze_account"
|
|
},
|
|
{
|
|
"tag": 11,
|
|
"name": "thaw_account",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "thaw_account"
|
|
},
|
|
{
|
|
"tag": 12,
|
|
"name": "transfer_checked",
|
|
"sizeRule": "exact_10",
|
|
"payload": "amount_u64_le+decimals_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "transfer_checked"
|
|
},
|
|
{
|
|
"tag": 13,
|
|
"name": "approve_checked",
|
|
"sizeRule": "exact_10",
|
|
"payload": "amount_u64_le+decimals_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "approve_checked"
|
|
},
|
|
{
|
|
"tag": 14,
|
|
"name": "mint_to_checked",
|
|
"sizeRule": "exact_10",
|
|
"payload": "amount_u64_le+decimals_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "mint_to_checked"
|
|
},
|
|
{
|
|
"tag": 15,
|
|
"name": "burn_checked",
|
|
"sizeRule": "exact_10",
|
|
"payload": "amount_u64_le+decimals_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "burn_checked"
|
|
},
|
|
{
|
|
"tag": 16,
|
|
"name": "initialize_account2",
|
|
"sizeRule": "exact_33",
|
|
"payload": "owner_pubkey_32",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_account2"
|
|
},
|
|
{
|
|
"tag": 17,
|
|
"name": "sync_native",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "sync_native"
|
|
},
|
|
{
|
|
"tag": 18,
|
|
"name": "initialize_account3",
|
|
"sizeRule": "exact_33",
|
|
"payload": "owner_pubkey_32",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_account3"
|
|
},
|
|
{
|
|
"tag": 19,
|
|
"name": "initialize_multisig2",
|
|
"sizeRule": "exact_2",
|
|
"payload": "m_u8",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_multisig2"
|
|
},
|
|
{
|
|
"tag": 20,
|
|
"name": "initialize_mint2",
|
|
"sizeRule": "35_or_67",
|
|
"payload": "decimals_u8+mint_authority_32+compact_freeze_authority",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_mint2"
|
|
},
|
|
{
|
|
"tag": 21,
|
|
"name": "get_account_data_size",
|
|
"sizeRule": "1_plus_2n_n_greater_or_equal_0",
|
|
"payload": "all_remaining_known_extension_type_u16_le",
|
|
"interfaceConsumption": "entire_remainder_rejected_if_odd_or_unknown_extension_type",
|
|
"officialBuilder": "get_account_data_size"
|
|
},
|
|
{
|
|
"tag": 22,
|
|
"name": "initialize_immutable_owner",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_immutable_owner"
|
|
},
|
|
{
|
|
"tag": 23,
|
|
"name": "amount_to_ui_amount",
|
|
"sizeRule": "exact_9",
|
|
"payload": "amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "amount_to_ui_amount"
|
|
},
|
|
{
|
|
"tag": 24,
|
|
"name": "ui_amount_to_amount",
|
|
"sizeRule": "minimum_1",
|
|
"payload": "entire_remaining_utf8_bytes_empty_allowed_by_interface",
|
|
"interfaceConsumption": "entire_remainder_utf8_validated",
|
|
"officialBuilder": "ui_amount_to_amount",
|
|
"decoderBound": "required_before_utf8_materialization"
|
|
},
|
|
{
|
|
"tag": 25,
|
|
"name": "initialize_mint_close_authority",
|
|
"sizeRule": "2_or_34",
|
|
"payload": "compact_close_authority",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_mint_close_authority"
|
|
},
|
|
{
|
|
"tag": 29,
|
|
"name": "reallocate",
|
|
"sizeRule": "1_plus_2n_n_greater_or_equal_0",
|
|
"payload": "all_remaining_known_extension_type_u16_le",
|
|
"interfaceConsumption": "entire_remainder_rejected_if_odd_or_unknown_extension_type",
|
|
"officialBuilder": "reallocate"
|
|
},
|
|
{
|
|
"tag": 31,
|
|
"name": "create_native_mint",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "create_native_mint"
|
|
},
|
|
{
|
|
"tag": 32,
|
|
"name": "initialize_non_transferable_mint",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_non_transferable_mint"
|
|
},
|
|
{
|
|
"tag": 35,
|
|
"name": "initialize_permanent_delegate",
|
|
"sizeRule": "exact_33",
|
|
"payload": "delegate_pubkey_32",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "initialize_permanent_delegate"
|
|
},
|
|
{
|
|
"tag": 38,
|
|
"name": "withdraw_excess_lamports",
|
|
"sizeRule": "exact_1",
|
|
"payload": "unit",
|
|
"interfaceConsumption": "tag_only_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "withdraw_excess_lamports"
|
|
},
|
|
{
|
|
"tag": 45,
|
|
"name": "unwrap_lamports",
|
|
"sizeRule": "2_or_10",
|
|
"payload": "compact_amount_u64_le",
|
|
"interfaceConsumption": "fixed_prefix_suffix_returned_then_discarded_by_public_unpack",
|
|
"officialBuilder": "unwrap_lamports"
|
|
},
|
|
{
|
|
"tag": 255,
|
|
"name": "batch",
|
|
"sizeRule": "minimum_1",
|
|
"payload": "entire_remaining_batch_record_wire",
|
|
"interfaceConsumption": "entire_remainder_preserved_as_batch_payload",
|
|
"officialBuilder": "no_dedicated_rust_interface_helper_identified",
|
|
"processorRecordAudit": "pending_bounds_accounts_and_nested_batch_rejection"
|
|
}
|
|
],
|
|
"remainingProof": "exact processor helper path, suffix acceptance, accounts and flags for every row"
|
|
},
|
|
"baseInstructionProcessorSuffixAudit": {
|
|
"status": "confirmed_from_exact_processor_11_0_0_source_commit",
|
|
"sourceCommit": "e18f9c6f9bf6044b934f48e3090e8e59e4820f02",
|
|
"sources": [
|
|
{
|
|
"path": "interface/src/instruction.rs",
|
|
"sha256": "672b3890cb58e5700a67f202491069ed44dffcbfa0e7d0b83a0cfbbb05b3a287"
|
|
},
|
|
{
|
|
"path": "program/src/pod_instruction.rs",
|
|
"sha256": "7b546580a90ab8d1f52143c21da931d26f8b68c7d2050b4eaf7307fc9c49c7e5"
|
|
},
|
|
{
|
|
"path": "program/src/processor.rs",
|
|
"sha256": "9d11b834aabdb8c824ca59f7ea7bda4d217565a58359fbfaf37e5a35e8f3032d"
|
|
}
|
|
],
|
|
"partition": [
|
|
{
|
|
"policy": "exact_total_length_via_decode_instruction_data",
|
|
"tags": [
|
|
2,
|
|
3,
|
|
4,
|
|
7,
|
|
8,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16,
|
|
18,
|
|
19,
|
|
23,
|
|
35
|
|
],
|
|
"count": 14,
|
|
"suffix": "rejected",
|
|
"proof": "decode_instruction_data requires input length equal to one plus size_of Pod payload"
|
|
},
|
|
{
|
|
"policy": "compact_option_prefix_only",
|
|
"tags": [
|
|
0,
|
|
6,
|
|
20,
|
|
25,
|
|
45
|
|
],
|
|
"count": 5,
|
|
"suffix": "accepted_after_complete_none_or_some_prefix",
|
|
"proof": "specialized Pod plus compact-option helpers read the required prefix and do not require exhaustion"
|
|
},
|
|
{
|
|
"policy": "tag_only_dispatch",
|
|
"tags": [
|
|
1,
|
|
5,
|
|
9,
|
|
10,
|
|
11,
|
|
17,
|
|
22,
|
|
31,
|
|
32,
|
|
38
|
|
],
|
|
"count": 10,
|
|
"suffix": "accepted_without_inspection",
|
|
"proof": "processor branch invokes no instruction-data decoder after decode_instruction_type reads byte zero"
|
|
},
|
|
{
|
|
"policy": "entire_remainder_is_payload",
|
|
"tags": [
|
|
21,
|
|
24,
|
|
29
|
|
],
|
|
"count": 3,
|
|
"suffix": "not_applicable_remainder_consumed",
|
|
"proof": "extension-type vectors parse all two-byte chunks; UI amount parses all remaining bytes as UTF-8",
|
|
"constraints": {
|
|
"extensionTypeVectors": "empty allowed; odd final chunk or unknown ExtensionType rejected",
|
|
"uiAmount": "empty allowed by UTF-8 parser; malformed UTF-8 rejected"
|
|
}
|
|
},
|
|
{
|
|
"policy": "batch_record_stream",
|
|
"tags": [
|
|
255
|
|
],
|
|
"count": 1,
|
|
"suffix": "entire_remainder_must_be_complete_record_stream",
|
|
"proof": "top-level process routes tag 255 to process_batch and nested _process_inner rejects tag 255",
|
|
"record": {
|
|
"headerBytes": 2,
|
|
"accountCount": "u8",
|
|
"instructionDataLengthIncludingDiscriminator": "u8",
|
|
"minimumOuterInstructionBytes": 4,
|
|
"zeroInstructionDataLength": "rejected_by_inner_dispatch",
|
|
"truncatedHeaderOrPayload": "rejected",
|
|
"nestedBatch": "rejected",
|
|
"embeddedMetadataOrGroupFallback": "processor_dispatch_allows_when_record_length_fits_u8",
|
|
"maximumAccountsPerRecordFromWire": 255,
|
|
"maximumInstructionDataBytesPerRecordFromWire": 255,
|
|
"recordCountProcessorBound": "none_explicit_beyond_transaction_instruction_data_and_compute_limits",
|
|
"decoderRecordCountBound": "required"
|
|
}
|
|
}
|
|
],
|
|
"partitionTagCount": 33,
|
|
"partitionTagsUnique": true,
|
|
"decoderPolicy": {
|
|
"exactPod": "reject suffix",
|
|
"acceptedRuntimeSuffix": "preserve bounded suffix and emit an explicit accepted_suffix diagnostic without inventing fields",
|
|
"fullRemainder": "decode only after global byte and element bounds",
|
|
"batch": "bound record count, account count, per-record data and total data before nested leaf decode"
|
|
},
|
|
"remainingProof": "exact account order, signer and writable flags, optional and multisig tails for every base form"
|
|
},
|
|
"baseInstructionBuilderAccountAudit": {
|
|
"status": "exact_official_interface_3_1_1_builder_metas_for_32_constructible_forms_and_explicit_batch_gap",
|
|
"source": {
|
|
"path": "interface/src/instruction.rs",
|
|
"commit": "e18f9c6f9bf6044b934f48e3090e8e59e4820f02",
|
|
"sha256": "672b3890cb58e5700a67f202491069ed44dffcbfa0e7d0b83a0cfbbb05b3a287"
|
|
},
|
|
"rowCount": 33,
|
|
"flagLegend": {
|
|
"writable": "canonical AccountMeta writable flag emitted by the official builder",
|
|
"signer": "canonical AccountMeta signer flag; conditional_authority means true only when the multisig signer tail is empty"
|
|
},
|
|
"multisigAuthorityTail": {
|
|
"builderAcceptedRange": "zero selects a single signing authority; a non-empty signer_pubkeys slice is appended without an explicit builder length check",
|
|
"runtimeStoredMultisigPositions": "1..11",
|
|
"meta": {
|
|
"role": "multisig_signer",
|
|
"writable": false,
|
|
"signer": true
|
|
},
|
|
"authorityMetaWhenTailPresent": {
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
"authorityMetaWhenTailEmpty": {
|
|
"writable": false,
|
|
"signer": true
|
|
},
|
|
"duplicatesPreserved": true
|
|
},
|
|
"rows": [
|
|
{
|
|
"tag": 0,
|
|
"name": "initialize_mint",
|
|
"builder": "initialize_mint",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "rent_sysvar",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 1,
|
|
"name": "initialize_account",
|
|
"builder": "initialize_account",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "owner",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "rent_sysvar",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 2,
|
|
"name": "initialize_multisig",
|
|
"builder": "initialize_multisig",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "multisig",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "rent_sysvar",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "multisig_configuration_keys_readonly_non_signer_1_to_11"
|
|
},
|
|
{
|
|
"tag": 3,
|
|
"name": "transfer",
|
|
"builder": "transfer",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail",
|
|
"status": "deprecated"
|
|
},
|
|
{
|
|
"tag": 4,
|
|
"name": "approve",
|
|
"builder": "approve",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "delegate",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "owner",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 5,
|
|
"name": "revoke",
|
|
"builder": "revoke",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "owner_or_delegate",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 6,
|
|
"name": "set_authority",
|
|
"builder": "set_authority",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "owned_account_or_mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "current_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 7,
|
|
"name": "mint_to",
|
|
"builder": "mint_to",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "mint_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 8,
|
|
"name": "burn",
|
|
"builder": "burn",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 9,
|
|
"name": "close_account",
|
|
"builder": "close_account",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source_account_or_mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "close_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 10,
|
|
"name": "freeze_account",
|
|
"builder": "freeze_account",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "freeze_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 11,
|
|
"name": "thaw_account",
|
|
"builder": "thaw_account",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "freeze_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 12,
|
|
"name": "transfer_checked",
|
|
"builder": "transfer_checked",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 13,
|
|
"name": "approve_checked",
|
|
"builder": "approve_checked",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "delegate",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "owner",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 14,
|
|
"name": "mint_to_checked",
|
|
"builder": "mint_to_checked",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "mint_authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 15,
|
|
"name": "burn_checked",
|
|
"builder": "burn_checked",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 16,
|
|
"name": "initialize_account2",
|
|
"builder": "initialize_account2",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "rent_sysvar",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 17,
|
|
"name": "sync_native",
|
|
"builder": "sync_native_or_sync_native_with_rent_sysvar",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "native_token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"optionalAccounts": [
|
|
{
|
|
"index": 1,
|
|
"role": "rent_sysvar",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none_after_optional_rent"
|
|
},
|
|
{
|
|
"tag": 18,
|
|
"name": "initialize_account3",
|
|
"builder": "initialize_account3",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 19,
|
|
"name": "initialize_multisig2",
|
|
"builder": "initialize_multisig2",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "multisig",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "multisig_configuration_keys_readonly_non_signer_1_to_11"
|
|
},
|
|
{
|
|
"tag": 20,
|
|
"name": "initialize_mint2",
|
|
"builder": "initialize_mint2",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 21,
|
|
"name": "get_account_data_size",
|
|
"builder": "get_account_data_size",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 22,
|
|
"name": "initialize_immutable_owner",
|
|
"builder": "initialize_immutable_owner",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 23,
|
|
"name": "amount_to_ui_amount",
|
|
"builder": "amount_to_ui_amount",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 24,
|
|
"name": "ui_amount_to_amount",
|
|
"builder": "ui_amount_to_amount",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 25,
|
|
"name": "initialize_mint_close_authority",
|
|
"builder": "initialize_mint_close_authority",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 29,
|
|
"name": "reallocate",
|
|
"builder": "reallocate",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "token_account",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "payer",
|
|
"writable": true,
|
|
"signer": true
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "system_program",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "owner",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail",
|
|
"processorAccountProof": "pending_exact_reallocate_module_reconfirmation"
|
|
},
|
|
{
|
|
"tag": 31,
|
|
"name": "create_native_mint",
|
|
"builder": "create_native_mint",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "payer",
|
|
"writable": true,
|
|
"signer": true
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "native_mint_pda",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "system_program",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 32,
|
|
"name": "initialize_non_transferable_mint",
|
|
"builder": "initialize_non_transferable_mint",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 35,
|
|
"name": "initialize_permanent_delegate",
|
|
"builder": "initialize_permanent_delegate",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "mint",
|
|
"writable": true,
|
|
"signer": false
|
|
}
|
|
],
|
|
"tail": "none"
|
|
},
|
|
{
|
|
"tag": 38,
|
|
"name": "withdraw_excess_lamports",
|
|
"builder": "withdraw_excess_lamports",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "source_account_or_mint",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "authority",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 45,
|
|
"name": "unwrap_lamports",
|
|
"builder": "unwrap_lamports",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "native_source",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "destination",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "owner_or_delegate",
|
|
"writable": false,
|
|
"signer": "conditional_authority"
|
|
}
|
|
],
|
|
"tail": "multisig_authority_tail"
|
|
},
|
|
{
|
|
"tag": 255,
|
|
"name": "batch",
|
|
"builder": null,
|
|
"accounts": "concatenated_record_slices_each_sized_by_account_count_u8",
|
|
"tail": "outer_accounts_not_assigned_to_a_record_are_not_rejected_by_processor",
|
|
"builderStatus": "enum_pack_only_no_dedicated_rust_account_meta_builder"
|
|
}
|
|
],
|
|
"processorFactsAlreadyConfirmed": {
|
|
"authorityValidation": "runtime-recognized 355-byte Token, inline Token or Token-2022 multisig consumes the remaining accounts as signer candidates; otherwise the authority account itself must sign and remaining accounts are ignored",
|
|
"multisigCandidateMatching": "only initialized stored signer positions count; candidate must carry signer flag; a stored position is counted at most once",
|
|
"initializeMultisig": "all accounts after multisig and optional rent become configuration keys; runtime validates m and n independently in 1..11 but does not enforce builder rule m <= n",
|
|
"syncNative": "second account is optional; when present it is parsed as Rent; accounts after it are ignored",
|
|
"batch": "each record receives its declared account prefix; a nested Batch is rejected; outer accounts left after the final record are not checked for exhaustion"
|
|
},
|
|
"decoderRequirements": [
|
|
"preserve_original_account_order_flags_and_duplicates",
|
|
"separate_builder_canonical_flags_from_processor_runtime_acceptance",
|
|
"preserve_multisig_candidate_tail_even_when_single_authority_runtime_ignores_it",
|
|
"diagnose_initialize_multisig_m_greater_than_n_as_processor_accepted_but_builder_rejected",
|
|
"diagnose_batch_unassigned_outer_accounts",
|
|
"never_invent_owner_mint_or_authority_from_state_not_present_in_wire_or_account_contract"
|
|
],
|
|
"remainingProof": "processor account consumption for reallocate and exhaustive extra-account behavior by each row"
|
|
},
|
|
"accountStateContract": {
|
|
"baseLengths": {
|
|
"mint": 82,
|
|
"account": 165,
|
|
"multisig": 355
|
|
},
|
|
"extendedMintPrefix": "82-byte Mint, padding through byte 164, AccountType at byte 165, then TLV",
|
|
"extendedAccountPrefix": "165-byte Account, AccountType at byte 165, then TLV",
|
|
"multisigRule": "identified by exact 355-byte base length and never treated as an extended Mint or Account",
|
|
"accountType": {
|
|
"encoding": "u8",
|
|
"values": [
|
|
{
|
|
"value": 0,
|
|
"name": "uninitialized"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"name": "mint"
|
|
},
|
|
{
|
|
"value": 2,
|
|
"name": "account"
|
|
}
|
|
]
|
|
},
|
|
"tlvHeader": {
|
|
"type": "u16_le",
|
|
"length": "u16_le",
|
|
"headerBytes": 4
|
|
},
|
|
"parserRequirements": [
|
|
"bounded_iteration",
|
|
"preserve_order",
|
|
"preserve_unknown_type_and_bounded_bytes",
|
|
"detect_duplicate_types",
|
|
"detect_truncation",
|
|
"detect_invalid_padding",
|
|
"validate_account_type",
|
|
"validate_known_fixed_length",
|
|
"preserve_variable_length_without_invention"
|
|
],
|
|
"finalSnapshotClaimedFromInstruction": false
|
|
},
|
|
"surfaceEquality": {
|
|
"topLevelInstructionCount": 48,
|
|
"productionExtensionTypeCount": 29,
|
|
"compiledDecoderCoverage": "exact_100_of_100_routable_leaves",
|
|
"compiledExecutorCoverage": "partial_by_explicit_capability",
|
|
"materializationOwnership": "partial_by_unique_owner_phase_d",
|
|
"requiredFinalInvariant": "matrix == resolved interface == resolved processor dispatch == decoder coverage == projection ownership == executor capabilities",
|
|
"extensionDispatchFamilyCount": 15,
|
|
"extensionSubInstructionCount": 58,
|
|
"baseAndStandaloneTopLevelLeafCount": 33,
|
|
"embeddedTokenMetadataInstructionCount": 5,
|
|
"embeddedTokenGroupInstructionCount": 4,
|
|
"embeddedInterfaceFallbackCount": 9,
|
|
"processorRoutableLeafInstructionCount": 100
|
|
},
|
|
"instructionDefaults": {
|
|
"encoding": "u8_tag_plus_variant_payload",
|
|
"minimumSize": "pending_per_variant_audit",
|
|
"exactSizeOrSuffixRule": "pending_per_variant_audit",
|
|
"accounts": "pending_exact_order_flags_and_optional_accounts",
|
|
"stateTarget": "pending",
|
|
"decodedFields": "pending",
|
|
"authorizedProjections": [],
|
|
"executorSupport": {
|
|
"status": "not_started",
|
|
"reason": "decoder_matrix_and_projection_validation_required_first"
|
|
},
|
|
"outer": true,
|
|
"inner": true,
|
|
"success": "decode",
|
|
"failure": "decode_as_uncommitted_intent_when_readable",
|
|
"proofs": {
|
|
"synthetic": [],
|
|
"localnet": "not_tested",
|
|
"devnet": "not_tested",
|
|
"mainnet": "not_tested",
|
|
"realSignatures": []
|
|
}
|
|
},
|
|
"instructions": [
|
|
{
|
|
"tag": 0,
|
|
"name": "initialize_mint",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "decimals_u8_mint_authority_pubkey_freeze_authority_coption"
|
|
},
|
|
{
|
|
"tag": 1,
|
|
"name": "initialize_account",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 2,
|
|
"name": "initialize_multisig",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "m_u8"
|
|
},
|
|
{
|
|
"tag": 3,
|
|
"name": "transfer",
|
|
"family": "base",
|
|
"status": "published_candidate_deprecated",
|
|
"payload": "amount_u64_le"
|
|
},
|
|
{
|
|
"tag": 4,
|
|
"name": "approve",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le"
|
|
},
|
|
{
|
|
"tag": 5,
|
|
"name": "revoke",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 6,
|
|
"name": "set_authority",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "authority_type_u8_and_coption_pubkey"
|
|
},
|
|
{
|
|
"tag": 7,
|
|
"name": "mint_to",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le"
|
|
},
|
|
{
|
|
"tag": 8,
|
|
"name": "burn",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le"
|
|
},
|
|
{
|
|
"tag": 9,
|
|
"name": "close_account",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 10,
|
|
"name": "freeze_account",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 11,
|
|
"name": "thaw_account",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 12,
|
|
"name": "transfer_checked",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le_decimals_u8"
|
|
},
|
|
{
|
|
"tag": 13,
|
|
"name": "approve_checked",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le_decimals_u8"
|
|
},
|
|
{
|
|
"tag": 14,
|
|
"name": "mint_to_checked",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le_decimals_u8"
|
|
},
|
|
{
|
|
"tag": 15,
|
|
"name": "burn_checked",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le_decimals_u8"
|
|
},
|
|
{
|
|
"tag": 16,
|
|
"name": "initialize_account2",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "owner_pubkey"
|
|
},
|
|
{
|
|
"tag": 17,
|
|
"name": "sync_native",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 18,
|
|
"name": "initialize_account3",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "owner_pubkey"
|
|
},
|
|
{
|
|
"tag": 19,
|
|
"name": "initialize_multisig2",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "m_u8"
|
|
},
|
|
{
|
|
"tag": 20,
|
|
"name": "initialize_mint2",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "decimals_u8_mint_authority_pubkey_freeze_authority_coption"
|
|
},
|
|
{
|
|
"tag": 21,
|
|
"name": "get_account_data_size",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "zero_or_more_extension_type_u16_le"
|
|
},
|
|
{
|
|
"tag": 22,
|
|
"name": "initialize_immutable_owner",
|
|
"family": "immutable_owner",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 23,
|
|
"name": "amount_to_ui_amount",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "amount_u64_le"
|
|
},
|
|
{
|
|
"tag": 24,
|
|
"name": "ui_amount_to_amount",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "utf8_remainder"
|
|
},
|
|
{
|
|
"tag": 25,
|
|
"name": "initialize_mint_close_authority",
|
|
"family": "mint_close_authority",
|
|
"status": "published_candidate_current",
|
|
"payload": "coption_pubkey"
|
|
},
|
|
{
|
|
"tag": 26,
|
|
"name": "transfer_fee_extension",
|
|
"family": "transfer_fee",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 27,
|
|
"name": "confidential_transfer_extension",
|
|
"family": "confidential_transfer",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 28,
|
|
"name": "default_account_state_extension",
|
|
"family": "default_account_state",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 29,
|
|
"name": "reallocate",
|
|
"family": "account_extension_management",
|
|
"status": "published_candidate_current",
|
|
"payload": "zero_or_more_extension_type_u16_le"
|
|
},
|
|
{
|
|
"tag": 30,
|
|
"name": "memo_transfer_extension",
|
|
"family": "memo_transfer",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 31,
|
|
"name": "create_native_mint",
|
|
"family": "native_mint",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 32,
|
|
"name": "initialize_non_transferable_mint",
|
|
"family": "non_transferable",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 33,
|
|
"name": "interest_bearing_mint_extension",
|
|
"family": "interest_bearing_mint",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 34,
|
|
"name": "cpi_guard_extension",
|
|
"family": "cpi_guard",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 35,
|
|
"name": "initialize_permanent_delegate",
|
|
"family": "permanent_delegate",
|
|
"status": "published_candidate_current",
|
|
"payload": "delegate_pubkey"
|
|
},
|
|
{
|
|
"tag": 36,
|
|
"name": "transfer_hook_extension",
|
|
"family": "transfer_hook",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 37,
|
|
"name": "confidential_transfer_fee_extension",
|
|
"family": "confidential_transfer_fee",
|
|
"status": "published_candidate_current",
|
|
"payload": "exact_subdiscriminant_and_variant_payload",
|
|
"decoderStatus": "structured_exact_wire",
|
|
"publicWire": {
|
|
"initializeConfidentialTransferFeeConfig": "tag,sub=0,authority[32],withdrawWithheldAuthorityElgamalPubkey[32]",
|
|
"withdrawWithheldTokensFromMint": "tag,sub=1,proofInstructionOffset[i8],newDecryptableAvailableBalance[36]",
|
|
"withdrawWithheldTokensFromAccounts": "tag,sub=2,numTokenAccounts[u8],proofInstructionOffset[i8],newDecryptableAvailableBalance[36]",
|
|
"harvestWithheldTokensToMint": "tag,sub=3",
|
|
"enableHarvestToMint": "tag,sub=4",
|
|
"disableHarvestToMint": "tag,sub=5"
|
|
}
|
|
},
|
|
{
|
|
"tag": 38,
|
|
"name": "withdraw_excess_lamports",
|
|
"family": "base",
|
|
"status": "published_candidate_current",
|
|
"payload": "unit"
|
|
},
|
|
{
|
|
"tag": 39,
|
|
"name": "metadata_pointer_extension",
|
|
"family": "metadata_pointer",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 40,
|
|
"name": "group_pointer_extension",
|
|
"family": "group_pointer",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 41,
|
|
"name": "group_member_pointer_extension",
|
|
"family": "group_member_pointer",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 42,
|
|
"name": "confidential_mint_burn_extension",
|
|
"family": "confidential_mint_burn",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 43,
|
|
"name": "scaled_ui_amount_extension",
|
|
"family": "scaled_ui_amount",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 44,
|
|
"name": "pausable_extension",
|
|
"family": "pausable",
|
|
"status": "published_candidate_current",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 45,
|
|
"name": "unwrap_lamports",
|
|
"family": "native_mint",
|
|
"status": "published_candidate_current",
|
|
"payload": "coption_u64_le"
|
|
},
|
|
{
|
|
"tag": 46,
|
|
"name": "permissioned_burn_extension",
|
|
"family": "permissioned_burn",
|
|
"status": "published_candidate_recent",
|
|
"payload": "subdiscriminant_and_variant_payload_pending"
|
|
},
|
|
{
|
|
"tag": 255,
|
|
"name": "batch",
|
|
"family": "batch",
|
|
"status": "published_candidate_current",
|
|
"payload": "bounded_sequence_pending_processor_limits"
|
|
}
|
|
],
|
|
"extensionTypeDefaults": {
|
|
"encoding": "u16_le",
|
|
"tlvHeaderBytes": 4,
|
|
"length": "pending_exact_size_of_audit",
|
|
"padding": "pending_exact_account_len_audit",
|
|
"repeatAllowed": false,
|
|
"unknownPolicy": "preserve_bounded_opaque_entry",
|
|
"instructionFamilies": [],
|
|
"authoritiesAndFields": "pending_exact_layout_audit",
|
|
"authorizedProjections": [],
|
|
"executorSupport": "not_started",
|
|
"proofs": {
|
|
"synthetic": [],
|
|
"localnet": "not_tested",
|
|
"devnet": "not_tested",
|
|
"mainnet": "not_tested"
|
|
}
|
|
},
|
|
"extensionTypes": [
|
|
{
|
|
"type": 0,
|
|
"name": "uninitialized",
|
|
"accountType": "uninitialized",
|
|
"length": 0,
|
|
"variableLength": false,
|
|
"status": "padding_sentinel"
|
|
},
|
|
{
|
|
"type": 1,
|
|
"name": "transfer_fee_config",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 2,
|
|
"name": "transfer_fee_amount",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 3,
|
|
"name": "mint_close_authority",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 4,
|
|
"name": "confidential_transfer_mint",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 5,
|
|
"name": "confidential_transfer_account",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 6,
|
|
"name": "default_account_state",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 7,
|
|
"name": "immutable_owner",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 8,
|
|
"name": "memo_transfer",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 9,
|
|
"name": "non_transferable",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 10,
|
|
"name": "interest_bearing_config",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 11,
|
|
"name": "cpi_guard",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 12,
|
|
"name": "permanent_delegate",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 13,
|
|
"name": "non_transferable_account",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 14,
|
|
"name": "transfer_hook",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 15,
|
|
"name": "transfer_hook_account",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 16,
|
|
"name": "confidential_transfer_fee_config",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 17,
|
|
"name": "confidential_transfer_fee_amount",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 18,
|
|
"name": "metadata_pointer",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 19,
|
|
"name": "token_metadata",
|
|
"accountType": "mint",
|
|
"length": "variable",
|
|
"variableLength": true,
|
|
"status": "published_external_interface_state"
|
|
},
|
|
{
|
|
"type": 20,
|
|
"name": "group_pointer",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 21,
|
|
"name": "token_group",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_external_interface_state"
|
|
},
|
|
{
|
|
"type": 22,
|
|
"name": "group_member_pointer",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 23,
|
|
"name": "token_group_member",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_external_interface_state"
|
|
},
|
|
{
|
|
"type": 24,
|
|
"name": "confidential_mint_burn",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 25,
|
|
"name": "scaled_ui_amount",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 26,
|
|
"name": "pausable",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 27,
|
|
"name": "pausable_account",
|
|
"accountType": "account",
|
|
"variableLength": false,
|
|
"status": "published_candidate"
|
|
},
|
|
{
|
|
"type": 28,
|
|
"name": "permissioned_burn",
|
|
"accountType": "mint",
|
|
"variableLength": false,
|
|
"status": "published_candidate_recent"
|
|
}
|
|
],
|
|
"knownExtensionCompatibility": {
|
|
"requiredAccountExtensions": {
|
|
"transfer_fee_config": [
|
|
"transfer_fee_amount"
|
|
],
|
|
"non_transferable": [
|
|
"non_transferable_account",
|
|
"immutable_owner"
|
|
],
|
|
"transfer_hook": [
|
|
"transfer_hook_account"
|
|
],
|
|
"pausable": [
|
|
"pausable_account"
|
|
]
|
|
},
|
|
"invalidMintCombinations": [
|
|
"confidential_transfer_fee_config_without_transfer_fee_config_and_confidential_transfer_mint",
|
|
"transfer_fee_config_plus_confidential_transfer_mint_without_confidential_transfer_fee_config",
|
|
"confidential_mint_burn_without_confidential_transfer_mint",
|
|
"scaled_ui_amount_with_interest_bearing_config",
|
|
"non_transferable_plus_confidential_transfer_mint_without_confidential_mint_burn"
|
|
]
|
|
},
|
|
"materializationAudit": {
|
|
"existingOwnersInspected": [
|
|
"token_accounts",
|
|
"admin",
|
|
"materializer.fees",
|
|
"compliance_audit",
|
|
"risk",
|
|
"lifecycle"
|
|
],
|
|
"currentToken2022InstructionClaims": [],
|
|
"provisionalOwnership": {
|
|
"token_accounts": [
|
|
"committed_instructional_mint_and_account_lifecycle"
|
|
],
|
|
"admin": [
|
|
"committed_authority_and_configuration_changes"
|
|
],
|
|
"materializer.fees": [
|
|
"instruction_proven_transfer_fee_parameters_and_withheld_movements_only"
|
|
],
|
|
"compliance_audit": [
|
|
"memo_hook_cpi_guard_and_confidential_operation_facts"
|
|
],
|
|
"risk": [
|
|
"stable_fact_only_no_score"
|
|
],
|
|
"lifecycle": [
|
|
"no_token2_022_claim_until_non_overlap_is_proven"
|
|
]
|
|
},
|
|
"forbiddenClaims": [
|
|
"final_balance_snapshot",
|
|
"final_withheld_total",
|
|
"accrued_interest",
|
|
"decrypted_confidential_state",
|
|
"duplicate_parent_and_cpi_fact"
|
|
]
|
|
},
|
|
"elgamalRegistryBoundary": {
|
|
"workspaceConstraint": "^0.2",
|
|
"resolvedVersion": "0.2.1",
|
|
"resolvedFeatures": [
|
|
"default"
|
|
],
|
|
"resolutionStatus": "confirmed_by_operator_cargo_tree_2026-07-16",
|
|
"leafConsumer": "kb-lib.decoder.spl.elgamal_registry",
|
|
"operatorEvidence": "cargo tree -i spl-elgamal-registry-interface -e features",
|
|
"programId": "regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg",
|
|
"programIdEvidence": "spl-elgamal-registry-interface 0.2.1 declare_id",
|
|
"registryAddressSeedUtf8": "elgamal-registry",
|
|
"status": "identity_and_exact_two_instruction_decoder_confirmed_separate_stateful_and_cluster_validation_pending",
|
|
"matrix": "docs/SPL_ELGAMAL_REGISTRY_MATRIX.json",
|
|
"sharedInstructionEnum": false,
|
|
"sharedDecoder": false,
|
|
"sharedExecutor": false,
|
|
"nativeZkElgamalProofProgramId": "ZkE1Gama1Proof11111111111111111111111111111",
|
|
"requiredInstructionAudit": [
|
|
"instruction discriminants and exact wire",
|
|
"registry PDA derivation and wallet ownership relation",
|
|
"ElGamal public key and proof-account references",
|
|
"create_or_update lifecycle and authority/signature contract",
|
|
"cluster deployment and constructible builder status"
|
|
],
|
|
"token_2022DependencyAudit": "Confidential Token-2022 instructions may reference registry accounts or ElGamal public keys, but registry instructions remain a separate Program ID surface."
|
|
},
|
|
"processorDispatch": {
|
|
"precedence": [
|
|
"pod_token_instruction_u8",
|
|
"token_metadata_interface_8_byte_discriminator",
|
|
"token_group_interface_8_byte_discriminator",
|
|
"invalid_instruction"
|
|
],
|
|
"source": "program/src/processor.rs Processor::_process_inner at commit e18f9c6f9bf6044b934f48e3090e8e59e4820f02",
|
|
"extensionFamilies": [
|
|
{
|
|
"tag": 26,
|
|
"family": "transfer_fee",
|
|
"subInstructionCount": 6,
|
|
"subInstructions": [
|
|
"initialize_transfer_fee_config",
|
|
"transfer_checked_with_fee",
|
|
"withdraw_withheld_tokens_from_mint",
|
|
"withdraw_withheld_tokens_from_accounts",
|
|
"harvest_withheld_tokens_to_mint",
|
|
"set_transfer_fee"
|
|
]
|
|
},
|
|
{
|
|
"tag": 27,
|
|
"family": "confidential_transfer",
|
|
"subInstructionCount": 15,
|
|
"subInstructions": [
|
|
"initialize_mint",
|
|
"update_mint",
|
|
"configure_account",
|
|
"approve_account",
|
|
"empty_account",
|
|
"deposit",
|
|
"withdraw",
|
|
"transfer",
|
|
"apply_pending_balance",
|
|
"enable_confidential_credits",
|
|
"disable_confidential_credits",
|
|
"enable_non_confidential_credits",
|
|
"disable_non_confidential_credits",
|
|
"transfer_with_fee",
|
|
"configure_account_with_registry"
|
|
]
|
|
},
|
|
{
|
|
"tag": 28,
|
|
"family": "default_account_state",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update"
|
|
]
|
|
},
|
|
{
|
|
"tag": 30,
|
|
"family": "memo_transfer",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"enable",
|
|
"disable"
|
|
]
|
|
},
|
|
{
|
|
"tag": 33,
|
|
"family": "interest_bearing_mint",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update_rate"
|
|
]
|
|
},
|
|
{
|
|
"tag": 34,
|
|
"family": "cpi_guard",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"enable",
|
|
"disable"
|
|
]
|
|
},
|
|
{
|
|
"tag": 36,
|
|
"family": "transfer_hook",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update"
|
|
]
|
|
},
|
|
{
|
|
"tag": 37,
|
|
"family": "confidential_transfer_fee",
|
|
"subInstructionCount": 6,
|
|
"subInstructions": [
|
|
"initialize_confidential_transfer_fee_config",
|
|
"withdraw_withheld_tokens_from_mint",
|
|
"withdraw_withheld_tokens_from_accounts",
|
|
"harvest_withheld_tokens_to_mint",
|
|
"enable_harvest_to_mint",
|
|
"disable_harvest_to_mint"
|
|
]
|
|
},
|
|
{
|
|
"tag": 39,
|
|
"family": "metadata_pointer",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update"
|
|
]
|
|
},
|
|
{
|
|
"tag": 40,
|
|
"family": "group_pointer",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update"
|
|
]
|
|
},
|
|
{
|
|
"tag": 41,
|
|
"family": "group_member_pointer",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update"
|
|
]
|
|
},
|
|
{
|
|
"tag": 42,
|
|
"family": "confidential_mint_burn",
|
|
"subInstructionCount": 6,
|
|
"subInstructions": [
|
|
"initialize_mint",
|
|
"rotate_supply_elgamal_pubkey",
|
|
"update_decryptable_supply",
|
|
"mint",
|
|
"burn",
|
|
"apply_pending_burn"
|
|
]
|
|
},
|
|
{
|
|
"tag": 43,
|
|
"family": "scaled_ui_amount",
|
|
"subInstructionCount": 2,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"update_multiplier"
|
|
]
|
|
},
|
|
{
|
|
"tag": 44,
|
|
"family": "pausable",
|
|
"subInstructionCount": 3,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"pause",
|
|
"resume"
|
|
]
|
|
},
|
|
{
|
|
"tag": 46,
|
|
"family": "permissioned_burn",
|
|
"subInstructionCount": 4,
|
|
"subInstructions": [
|
|
"initialize",
|
|
"burn",
|
|
"burn_checked",
|
|
"confidential_burn"
|
|
]
|
|
}
|
|
],
|
|
"embeddedInterfaceFallbacks": [
|
|
{
|
|
"interface": "spl-token-metadata-interface",
|
|
"resolvedByProcessorCargoLock": "1.0.0",
|
|
"name": "initialize",
|
|
"discriminatorHex": "d2e11ea258b84d8d",
|
|
"encoding": "8_byte_sha256_prefix_plus_bounded_borsh",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "metadata",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "update_authority",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "mint_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-metadata-interface",
|
|
"resolvedByProcessorCargoLock": "1.0.0",
|
|
"name": "update_field",
|
|
"discriminatorHex": "dde9312db5cadcc8",
|
|
"encoding": "8_byte_sha256_prefix_plus_bounded_borsh",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "metadata",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-metadata-interface",
|
|
"resolvedByProcessorCargoLock": "1.0.0",
|
|
"name": "remove_key",
|
|
"discriminatorHex": "ea122038598d25b5",
|
|
"encoding": "8_byte_sha256_prefix_plus_bounded_borsh",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "metadata",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-metadata-interface",
|
|
"resolvedByProcessorCargoLock": "1.0.0",
|
|
"name": "update_authority",
|
|
"discriminatorHex": "d7e4a6e45464567b",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_borsh",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "metadata",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "current_update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-metadata-interface",
|
|
"resolvedByProcessorCargoLock": "1.0.0",
|
|
"name": "emit",
|
|
"discriminatorHex": "faa6b4fa0d0cb846",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_borsh",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "metadata",
|
|
"writable": false,
|
|
"signer": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-group-interface",
|
|
"resolvedByProcessorCargoLock": "0.7.2",
|
|
"name": "initialize_group",
|
|
"discriminatorHex": "79716c2736330004",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_pod",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "group",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "mint_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-group-interface",
|
|
"resolvedByProcessorCargoLock": "0.7.2",
|
|
"name": "update_group_max_size",
|
|
"discriminatorHex": "6c25ab8ff81e126e",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_pod",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "group",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-group-interface",
|
|
"resolvedByProcessorCargoLock": "0.7.2",
|
|
"name": "update_group_authority",
|
|
"discriminatorHex": "a1695801edddd8cb",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_pod",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "group",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "current_update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"interface": "spl-token-group-interface",
|
|
"resolvedByProcessorCargoLock": "0.7.2",
|
|
"name": "initialize_member",
|
|
"discriminatorHex": "9820deb0dfed7486",
|
|
"encoding": "8_byte_sha256_prefix_plus_exact_pod",
|
|
"accounts": [
|
|
{
|
|
"index": 0,
|
|
"role": "member",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 1,
|
|
"role": "member_mint",
|
|
"writable": false,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 2,
|
|
"role": "member_mint_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
},
|
|
{
|
|
"index": 3,
|
|
"role": "group",
|
|
"writable": true,
|
|
"signer": false
|
|
},
|
|
{
|
|
"index": 4,
|
|
"role": "group_update_authority",
|
|
"writable": false,
|
|
"signer": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"ownershipRule": "These nine interface instructions belong to the Token-2022 decoder only when the outer or inner executable program ID is Tokenz. A CPI to a third-party implementation belongs to that third-party Program ID decoder."
|
|
},
|
|
"extensionImplementationStatus": {
|
|
"status": "all_published_extension_instruction_leaves_exact_wire_decoded",
|
|
"decodedLeafCount": 58,
|
|
"groups": [
|
|
{
|
|
"envelopeTag": 26,
|
|
"group": "transfer_fee",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_transfer_fee_config",
|
|
"transfer_checked_with_fee",
|
|
"withdraw_withheld_tokens_from_mint",
|
|
"withdraw_withheld_tokens_from_accounts",
|
|
"harvest_withheld_tokens_to_mint",
|
|
"set_transfer_fee"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 28,
|
|
"group": "default_account_state",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_default_account_state",
|
|
"update_default_account_state"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 30,
|
|
"group": "memo_transfer",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"enable_required_transfer_memos",
|
|
"disable_required_transfer_memos"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 34,
|
|
"group": "cpi_guard",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"enable_cpi_guard",
|
|
"disable_cpi_guard"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 33,
|
|
"group": "interest_bearing_mint",
|
|
"status": "exact_wire_decoded_projected_and_official_builders_enabled",
|
|
"leafInstructions": [
|
|
"initialize_interest_bearing_mint",
|
|
"update_interest_bearing_rate"
|
|
],
|
|
"executorStatus": "official_interface_builders_enabled"
|
|
}
|
|
],
|
|
"remainingOpaqueEnvelopeTags": [],
|
|
"nonClaim": "All 58 published extension instruction leaves and all nine embedded Metadata/Group interface leaves are decoded exactly; this does not claim materialization, executor, proof-context, cluster availability, or stateful preflight completion.",
|
|
"baseExtensionOperations": {
|
|
"status": "decoded_projected_and_official_builders_enabled",
|
|
"operations": [
|
|
"reallocate",
|
|
"initialize_non_transferable_mint",
|
|
"initialize_permanent_delegate"
|
|
]
|
|
},
|
|
"embeddedInterfaceDecodedLeafCount": 9,
|
|
"processorDispatchEquality": "33 base leaves + 58 extension leaves + 5 metadata leaves + 4 group leaves = 100 routable leaves",
|
|
"embeddedInterfaceStatus": "exact_decoder_dispatch_added_for_all_nine_fallbacks",
|
|
"decodedExtensionGroups": [
|
|
{
|
|
"envelopeTag": 27,
|
|
"group": "confidential_transfer",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_confidential_transfer_mint",
|
|
"update_confidential_transfer_mint",
|
|
"configure_confidential_transfer_account",
|
|
"approve_confidential_transfer_account",
|
|
"empty_confidential_transfer_account",
|
|
"deposit_confidential_tokens",
|
|
"withdraw_confidential_tokens",
|
|
"transfer_confidential_tokens",
|
|
"apply_confidential_pending_balance",
|
|
"enable_confidential_credits",
|
|
"disable_confidential_credits",
|
|
"enable_non_confidential_credits",
|
|
"disable_non_confidential_credits",
|
|
"transfer_confidential_tokens_with_fee",
|
|
"configure_confidential_transfer_account_with_registry"
|
|
],
|
|
"executorStatus": "public_and_confidential_transfer_builders_progressively_enabled_through_transfer"
|
|
},
|
|
{
|
|
"envelopeTag": 36,
|
|
"group": "transfer_hook",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_transfer_hook",
|
|
"update_transfer_hook_program_id"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 37,
|
|
"group": "confidential_transfer_fee",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_confidential_transfer_fee_config",
|
|
"withdraw_confidential_withheld_tokens_from_mint",
|
|
"withdraw_confidential_withheld_tokens_from_accounts",
|
|
"harvest_confidential_withheld_tokens_to_mint",
|
|
"enable_confidential_harvest_to_mint",
|
|
"disable_confidential_harvest_to_mint"
|
|
],
|
|
"executorStatus": "pending_after_projection_and_stateful_preflight"
|
|
},
|
|
{
|
|
"envelopeTag": 39,
|
|
"group": "metadata_pointer",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_metadata_pointer",
|
|
"update_metadata_pointer"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 40,
|
|
"group": "group_pointer",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_group_pointer",
|
|
"update_group_pointer"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 41,
|
|
"group": "group_member_pointer",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_group_member_pointer",
|
|
"update_group_member_pointer"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 42,
|
|
"group": "confidential_mint_burn",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_confidential_mint_burn",
|
|
"rotate_confidential_supply_elgamal_pubkey",
|
|
"update_confidential_decryptable_supply",
|
|
"confidential_mint",
|
|
"confidential_burn",
|
|
"apply_pending_confidential_burn"
|
|
],
|
|
"executorStatus": "pending_after_projection_and_stateful_preflight"
|
|
},
|
|
{
|
|
"envelopeTag": 43,
|
|
"group": "scaled_ui_amount",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_scaled_ui_amount",
|
|
"update_scaled_ui_amount_multiplier"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 44,
|
|
"group": "pausable",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_pausable_config",
|
|
"pause_token_mint",
|
|
"resume_token_mint"
|
|
],
|
|
"executorStatus": "pending_after_projection"
|
|
},
|
|
{
|
|
"envelopeTag": 46,
|
|
"group": "permissioned_burn",
|
|
"status": "exact_wire_decoded",
|
|
"leafInstructions": [
|
|
"initialize_permissioned_burn",
|
|
"permissioned_burn",
|
|
"permissioned_burn_checked",
|
|
"permissioned_confidential_burn"
|
|
],
|
|
"executorStatus": "pending_after_projection_and_stateful_preflight"
|
|
}
|
|
],
|
|
"exactExtensionLeafCount": 30
|
|
}
|
|
}
|