{ "version": "0.0.0", "name": "example", "instructions": [ { "name": "createRoot", "accounts": [ { "name": "root", "isMut": true, "isSigner": false } ], "args": [ { "name": "authority", "type": "publicKey" }, { "name": "data", "type": "u64" } ] }, { "name": "updateRoot", "accounts": [ { "name": "authority", "isMut": false, "isSigner": true }, { "name": "root", "isMut": true, "isSigner": false } ], "args": [ { "name": "data", "type": "u64" } ] }, { "name": "createLeaf", "accounts": [ { "name": "root", "isMut": false, "isSigner": false }, { "name": "leaf", "isMut": true, "isSigner": false } ], "args": [ { "name": "data", "type": "u64" }, { "name": "custom", "type": { "defined": "MyCustomType" } } ] }, { "name": "updateLeaf", "accounts": [ { "name": "authority", "isMut": false, "isSigner": true }, { "name": "root", "isMut": false, "isSigner": false }, { "name": "leaf", "isMut": true, "isSigner": false } ], "args": [ { "name": "data", "type": "u64" }, { "name": "custom", "type": { "option": { "defined": "MyCustomType" } } } ] } ], "accounts": [ { "name": "Root", "type": { "kind": "struct", "fields": [ { "name": "initialized", "type": "bool" }, { "name": "authority", "type": "publicKey" }, { "name": "data", "type": "u64" } ] } }, { "name": "Leaf", "type": { "kind": "struct", "fields": [ { "name": "initialized", "type": "bool" }, { "name": "root", "type": "publicKey" }, { "name": "data", "type": "u64" }, { "name": "custom", "type": { "defined": "MyCustomType" } } ] } } ], "types": [ { "name": "MyCustomType", "type": { "kind": "struct", "fields": [ { "name": "myData", "type": "u64" }, { "name": "key", "type": "publicKey" } ] } } ] }