Files
khadhroony-bot3/test-fixtures/contract-matrices/SOLANA_PROGRAM_METADATA_INSTRUCTION_MATRIX.json
2026-08-05 19:36:17 +02:00

112 lines
4.0 KiB
JSON

{
"schemaVersion": 1,
"surface": "metadata.solana_program_metadata",
"programId": "ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S",
"stableProgramReleases": [
"program@v1.0.0",
"program@v1.0.1"
],
"sourceOfTruth": {
"runtime": "solana-program/program-metadata program@v1.0.1 processor sources",
"sdkContract": "Codama IDL version 0.0.0 and generated client",
"localIdl": "idls/metadata.ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S.solana_program_metadata.V0_0_0.from_github_solana_program.json"
},
"instructions": [
{
"tag": 0,
"code": "write",
"stable": true,
"body": "u32 offset followed by optional remainder bytes",
"positionalAccounts": 3,
"remainingAccountsAcceptedByRuntime": true,
"runtimeCompatibility": "exactly one source: inline remainder bytes or source-buffer account"
},
{
"tag": 1,
"code": "initialize",
"stable": true,
"body": "16-byte seed, encoding, compression, format, data-source, optional remainder bytes",
"positionalAccounts": 5,
"remainingAccountsAcceptedByRuntime": true,
"runtimeCompatibility": "empty remainder is valid only when the metadata PDA is a preallocated Buffer"
},
{
"tag": 2,
"code": "set_authority",
"stable": true,
"body": "u8 option flag followed by zero or 32 public-key bytes",
"positionalAccounts": 4,
"remainingAccountsAcceptedByRuntime": false,
"runtimeCompatibility": "flag zero removes a canonical Metadata authority and ignores suffix bytes; Buffer authority removal fails at runtime"
},
{
"tag": 3,
"code": "set_data",
"stable": true,
"body": "encoding, compression, format, optional data-source and optional remainder bytes",
"positionalAccounts": 5,
"remainingAccountsAcceptedByRuntime": true,
"runtimeCompatibility": "three-byte processor form preserves existing data; otherwise exactly one source is selected between inline bytes and Buffer"
},
{
"tag": 4,
"code": "set_immutable",
"stable": true,
"body": "no SDK arguments",
"positionalAccounts": 4,
"remainingAccountsAcceptedByRuntime": false,
"runtimeCompatibility": "processor ignores instruction suffix bytes"
},
{
"tag": 5,
"code": "trim",
"stable": true,
"body": "no SDK arguments",
"positionalAccounts": 6,
"remainingAccountsAcceptedByRuntime": false,
"runtimeCompatibility": "processor ignores instruction suffix bytes"
},
{
"tag": 6,
"code": "close",
"stable": true,
"body": "no SDK arguments",
"positionalAccounts": 5,
"remainingAccountsAcceptedByRuntime": false,
"runtimeCompatibility": "processor ignores instruction suffix bytes"
},
{
"tag": 7,
"code": "allocate",
"stable": true,
"body": "empty for a keypair Buffer or exactly one 16-byte PDA seed",
"positionalAccounts": 5,
"remainingAccountsAcceptedByRuntime": true,
"runtimeCompatibility": "keypair form requires Buffer and authority to be the same account; PDA form requires distinct accounts"
},
{
"tag": 8,
"code": "extend",
"stable": true,
"body": "u16 little-endian length",
"positionalAccounts": 4,
"remainingAccountsAcceptedByRuntime": true,
"runtimeCompatibility": "current runtime contract"
}
],
"historyAudit": {
"obsoleteUniqueDiscriminators": 0,
"renamedTag5PreStable": "withdraw_excess_lamports",
"renamedTag5Current": "trim",
"tag5Discriminator": 5,
"duplicateHistoricalCoverageEntry": false,
"preStableWipWireLayouts": "not_declared_without_cluster_evidence",
"decision": "decode tag 5 as the stable Trim contract and retain the pre-stable name only as provenance"
},
"surfaceBoundaries": {
"metaplexTokenMetadata": "separate program and decoder",
"token2022TokenMetadata": "separate Token-2022 interface implementation",
"offchainResolution": false
}
}