Smart WalletIDL Smart WalletIDL: { accounts: [ { name: "SmartWallet" ; type: { fields: [ { name: "base" ; type: "publicKey" } , { name: "bump" ; type: "u8" } , { name: "threshold" ; type: "u64" } , { name: "minimumDelay" ; type: "i64" } , { name: "gracePeriod" ; type: "i64" } , { name: "ownerSetSeqno" ; type: "u32" } , { name: "numTransactions" ; type: "u64" } , { name: "owners" ; type: { vec: "publicKey" } } , { name: "reserved" ; type: { array: [ "u64" , 16 ] } } ] ; kind: "struct" } } , { name: "Transaction" ; type: { fields: [ { name: "smartWallet" ; type: "publicKey" } , { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "proposer" ; type: "publicKey" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { name: "signers" ; type: { vec: "bool" } } , { name: "ownerSetSeqno" ; type: "u32" } , { name: "eta" ; type: "i64" } , { name: "executor" ; type: "publicKey" } , { name: "executedAt" ; type: "i64" } ] ; kind: "struct" } } , { name: "SubaccountInfo" ; type: { fields: [ { name: "smartWallet" ; type: "publicKey" } , { name: "subaccountType" ; type: { defined: "SubaccountType" } } , { name: "index" ; type: "u64" } ] ; kind: "struct" } } ] ; errors: [ { code: 6000 ; msg: "The given owner is not part of this smart wallet." ; name: "InvalidOwner" } , { code: 6001 ; msg: "Estimated execution block must satisfy delay." ; name: "InvalidETA" } , { code: 6002 ; msg: "Delay greater than the maximum." ; name: "DelayTooHigh" } , { code: 6003 ; msg: "Not enough owners signed this transaction." ; name: "NotEnoughSigners" } , { code: 6004 ; msg: "Transaction is past the grace period." ; name: "TransactionIsStale" } , { code: 6005 ; msg: "Transaction hasn't surpassed time lock." ; name: "TransactionNotReady" } , { code: 6006 ; msg: "The given transaction has already been executed." ; name: "AlreadyExecuted" } , { code: 6007 ; msg: "Threshold must be less than or equal to the number of owners." ; name: "InvalidThreshold" } , { code: 6008 ; msg: "Owner set has changed since the creation of the transaction." ; name: "OwnerSetChanged" } , { code: 6009 ; msg: "Subaccount does not belong to smart wallet." ; name: "SubaccountOwnerMismatch" } , { code: 6010 ; msg: "Buffer already finalized." ; name: "BufferFinalized" } , { code: 6011 ; msg: "Buffer bundle not found." ; name: "BufferBundleNotFound" } , { code: 6012 ; msg: "Buffer index specified is out of range." ; name: "BufferBundleOutOfRange" } , { code: 6013 ; msg: "Buffer has not been finalized." ; name: "BufferBundleNotFinalized" } , { code: 6014 ; msg: "Buffer bundle has already been executed." ; name: "BufferBundleExecuted" } ] ; events: [ { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "owners" ; type: { vec: "publicKey" } } , { index: false ; name: "threshold" ; type: "u64" } , { index: false ; name: "minimumDelay" ; type: "i64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletCreateEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "owners" ; type: { vec: "publicKey" } } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletSetOwnersEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "threshold" ; type: "u64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletChangeThresholdEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "proposer" ; type: "publicKey" } , { index: false ; name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { index: false ; name: "eta" ; type: "i64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionCreateEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "owner" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionApproveEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "owner" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionUnapproveEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "executor" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionExecuteEvent" } ] ; instructions: [ { accounts: [ { isMut: false ; isSigner: true ; name: "base" } , { isMut: true ; isSigner: false ; name: "smartWallet" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiSmartWallet" } , { kind: "account" ; path: "base" ; type: "publicKey" } ] } } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "maxOwners" ; type: "u8" } , { name: "owners" ; type: { vec: "publicKey" } } , { name: "threshold" ; type: "u64" } , { name: "minimumDelay" ; type: "i64" } ] ; name: "createSmartWallet" } , { accounts: [ { isMut: true ; isSigner: true ; name: "smartWallet" } ] ; args: [ { name: "owners" ; type: { vec: "publicKey" } } ] ; name: "setOwners" } , { accounts: [ { isMut: true ; isSigner: true ; name: "smartWallet" } ] ; args: [ { name: "threshold" ; type: "u64" } ] ; name: "changeThreshold" } , { accounts: [ { isMut: true ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiTransaction" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet" ; type: "publicKey" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet.num_transactions" ; type: "u64" } ] } } , { isMut: false ; isSigner: true ; name: "proposer" } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } ] ; name: "createTransaction" } , { accounts: [ { isMut: true ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiTransaction" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet" ; type: "publicKey" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet.num_transactions" ; type: "u64" } ] } } , { isMut: false ; isSigner: true ; name: "proposer" } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { name: "eta" ; type: "i64" } ] ; name: "createTransactionWithTimelock" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "approve" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "unapprove" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "executeTransaction" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } ] ; name: "executeTransactionDerived" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "ix" ; type: { defined: "TXInstruction" } } ] ; name: "ownerInvokeInstruction" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "invoker" ; type: "publicKey" } , { name: "data" ; type: "bytes" } ] ; name: "ownerInvokeInstructionV2" } , { accounts: [ { isMut: true ; isSigner: false ; name: "subaccountInfo" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiSubaccountInfo" } , { kind: "arg" ; path: "subaccount" ; type: "publicKey" } ] } } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "subaccount" ; type: "publicKey" } , { name: "smartWallet" ; type: "publicKey" } , { name: "index" ; type: "u64" } , { name: "subaccountType" ; type: { defined: "SubaccountType" } } ] ; name: "createSubaccountInfo" } ] ; name: "smart_wallet" ; types: [ { name: "TXInstruction" ; type: { fields: [ { name: "programId" ; type: "publicKey" } , { name: "keys" ; type: { vec: { defined: "TXAccountMeta" } } } , { name: "data" ; type: "bytes" } ] ; kind: "struct" } } , { name: "TXAccountMeta" ; type: { fields: [ { name: "pubkey" ; type: "publicKey" } , { name: "isSigner" ; type: "bool" } , { name: "isWritable" ; type: "bool" } ] ; kind: "struct" } } , { name: "SubaccountType" ; type: { kind: "enum" ; variants: [ { name: "Derived" } , { name: "OwnerInvoker" } ] } } ] ; version: "0.11.1" }
Defined in src/idls/smart_wallet.ts:3 Type declaration accounts: [ { name: "SmartWallet" ; type: { fields: [ { name: "base" ; type: "publicKey" } , { name: "bump" ; type: "u8" } , { name: "threshold" ; type: "u64" } , { name: "minimumDelay" ; type: "i64" } , { name: "gracePeriod" ; type: "i64" } , { name: "ownerSetSeqno" ; type: "u32" } , { name: "numTransactions" ; type: "u64" } , { name: "owners" ; type: { vec: "publicKey" } } , { name: "reserved" ; type: { array: [ "u64" , 16 ] } } ] ; kind: "struct" } } , { name: "Transaction" ; type: { fields: [ { name: "smartWallet" ; type: "publicKey" } , { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "proposer" ; type: "publicKey" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { name: "signers" ; type: { vec: "bool" } } , { name: "ownerSetSeqno" ; type: "u32" } , { name: "eta" ; type: "i64" } , { name: "executor" ; type: "publicKey" } , { name: "executedAt" ; type: "i64" } ] ; kind: "struct" } } , { name: "SubaccountInfo" ; type: { fields: [ { name: "smartWallet" ; type: "publicKey" } , { name: "subaccountType" ; type: { defined: "SubaccountType" } } , { name: "index" ; type: "u64" } ] ; kind: "struct" } } ] errors: [ { code: 6000 ; msg: "The given owner is not part of this smart wallet." ; name: "InvalidOwner" } , { code: 6001 ; msg: "Estimated execution block must satisfy delay." ; name: "InvalidETA" } , { code: 6002 ; msg: "Delay greater than the maximum." ; name: "DelayTooHigh" } , { code: 6003 ; msg: "Not enough owners signed this transaction." ; name: "NotEnoughSigners" } , { code: 6004 ; msg: "Transaction is past the grace period." ; name: "TransactionIsStale" } , { code: 6005 ; msg: "Transaction hasn't surpassed time lock." ; name: "TransactionNotReady" } , { code: 6006 ; msg: "The given transaction has already been executed." ; name: "AlreadyExecuted" } , { code: 6007 ; msg: "Threshold must be less than or equal to the number of owners." ; name: "InvalidThreshold" } , { code: 6008 ; msg: "Owner set has changed since the creation of the transaction." ; name: "OwnerSetChanged" } , { code: 6009 ; msg: "Subaccount does not belong to smart wallet." ; name: "SubaccountOwnerMismatch" } , { code: 6010 ; msg: "Buffer already finalized." ; name: "BufferFinalized" } , { code: 6011 ; msg: "Buffer bundle not found." ; name: "BufferBundleNotFound" } , { code: 6012 ; msg: "Buffer index specified is out of range." ; name: "BufferBundleOutOfRange" } , { code: 6013 ; msg: "Buffer has not been finalized." ; name: "BufferBundleNotFinalized" } , { code: 6014 ; msg: "Buffer bundle has already been executed." ; name: "BufferBundleExecuted" } ] events: [ { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "owners" ; type: { vec: "publicKey" } } , { index: false ; name: "threshold" ; type: "u64" } , { index: false ; name: "minimumDelay" ; type: "i64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletCreateEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "owners" ; type: { vec: "publicKey" } } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletSetOwnersEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "threshold" ; type: "u64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "WalletChangeThresholdEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "proposer" ; type: "publicKey" } , { index: false ; name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { index: false ; name: "eta" ; type: "i64" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionCreateEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "owner" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionApproveEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "owner" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionUnapproveEvent" } , { fields: [ { index: false ; name: "smartWallet" ; type: "publicKey" } , { index: false ; name: "transaction" ; type: "publicKey" } , { index: false ; name: "executor" ; type: "publicKey" } , { index: false ; name: "timestamp" ; type: "i64" } ] ; name: "TransactionExecuteEvent" } ] instructions: [ { accounts: [ { isMut: false ; isSigner: true ; name: "base" } , { isMut: true ; isSigner: false ; name: "smartWallet" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiSmartWallet" } , { kind: "account" ; path: "base" ; type: "publicKey" } ] } } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "maxOwners" ; type: "u8" } , { name: "owners" ; type: { vec: "publicKey" } } , { name: "threshold" ; type: "u64" } , { name: "minimumDelay" ; type: "i64" } ] ; name: "createSmartWallet" } , { accounts: [ { isMut: true ; isSigner: true ; name: "smartWallet" } ] ; args: [ { name: "owners" ; type: { vec: "publicKey" } } ] ; name: "setOwners" } , { accounts: [ { isMut: true ; isSigner: true ; name: "smartWallet" } ] ; args: [ { name: "threshold" ; type: "u64" } ] ; name: "changeThreshold" } , { accounts: [ { isMut: true ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiTransaction" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet" ; type: "publicKey" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet.num_transactions" ; type: "u64" } ] } } , { isMut: false ; isSigner: true ; name: "proposer" } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } ] ; name: "createTransaction" } , { accounts: [ { isMut: true ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiTransaction" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet" ; type: "publicKey" } , { account: "SmartWallet" ; kind: "account" ; path: "smart_wallet.num_transactions" ; type: "u64" } ] } } , { isMut: false ; isSigner: true ; name: "proposer" } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "instructions" ; type: { vec: { defined: "TXInstruction" } } } , { name: "eta" ; type: "i64" } ] ; name: "createTransactionWithTimelock" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "approve" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "unapprove" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ ] ; name: "executeTransaction" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: true ; isSigner: false ; name: "transaction" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } ] ; name: "executeTransactionDerived" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "ix" ; type: { defined: "TXInstruction" } } ] ; name: "ownerInvokeInstruction" } , { accounts: [ { isMut: false ; isSigner: false ; name: "smartWallet" } , { isMut: false ; isSigner: true ; name: "owner" } ] ; args: [ { name: "index" ; type: "u64" } , { name: "bump" ; type: "u8" } , { name: "invoker" ; type: "publicKey" } , { name: "data" ; type: "bytes" } ] ; name: "ownerInvokeInstructionV2" } , { accounts: [ { isMut: true ; isSigner: false ; name: "subaccountInfo" ; pda: { seeds: [ { kind: "const" ; type: "string" ; value: "GokiSubaccountInfo" } , { kind: "arg" ; path: "subaccount" ; type: "publicKey" } ] } } , { isMut: true ; isSigner: true ; name: "payer" } , { isMut: false ; isSigner: false ; name: "systemProgram" } ] ; args: [ { name: "bump" ; type: "u8" } , { name: "subaccount" ; type: "publicKey" } , { name: "smartWallet" ; type: "publicKey" } , { name: "index" ; type: "u64" } , { name: "subaccountType" ; type: { defined: "SubaccountType" } } ] ; name: "createSubaccountInfo" } ] name: "smart_wallet" types: [ { name: "TXInstruction" ; type: { fields: [ { name: "programId" ; type: "publicKey" } , { name: "keys" ; type: { vec: { defined: "TXAccountMeta" } } } , { name: "data" ; type: "bytes" } ] ; kind: "struct" } } , { name: "TXAccountMeta" ; type: { fields: [ { name: "pubkey" ; type: "publicKey" } , { name: "isSigner" ; type: "bool" } , { name: "isWritable" ; type: "bool" } ] ; kind: "struct" } } , { name: "SubaccountType" ; type: { kind: "enum" ; variants: [ { name: "Derived" } , { name: "OwnerInvoker" } ] } } ] version: "0.11.1"
Index of the transaction.