Type alias AtlasFeePayerIDL
AtlasFeePayerIDL: {
accounts: [{
docs: ["A given fee payer"];
name: "feePayer";
type: {
fields: [{
docs: ["The data version for this account."];
name: "version";
type: "u8";
}, {
docs: ["The rates for this fee payer"];
name: "rates";
type: "publicKey";
}, {
docs: ["The vault for tokens to be sent to"];
name: "tokenVault";
type: "publicKey";
}, {
docs: ["The account sol is stored in"];
name: "paymentAccount";
type: "publicKey";
}, {
docs: ["Used to track the last value of the payment account"];
name: "lastPayerValue";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Rates for a set of fee payers"];
name: "feePayerRates";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The profile that owns this fee payer"];
name: "owningProfile";
type: "publicKey";
}, {
docs: ["The token mint for the sub tokens"];
name: "tokenMint";
type: "publicKey";
}, {
docs: ["The owner of the token mint"];
name: "tokenOwner";
type: "publicKey";
}, {
docs: ["The max number of sub tokens per interaction"];
name: "tokenLimit";
type: "u64";
}, {
docs: ["Math is to multiply `lamports * conversion_rate / 1_000_000_000 = sub_tokens`", "A corollary to this is `conversion_rate = sub_tokens / sol`"];
name: "conversionRate";
type: "u64";
}];
kind: "struct";
};
}];
errors: [{
code: 6000;
msg: "This is not the first instruction in the transaction";
name: "NotFirstInstruction";
}, {
code: 6001;
msg: "This is not the last instruction in the transaction";
name: "NotLastInstruction";
}, {
code: 6002;
msg: "The instruction was called in a CPI";
name: "InstructionIsCPI";
}, {
code: 6003;
msg: "The conversion rate is out of range";
name: "ConversionRateOutOfRange";
}, {
code: 6004;
msg: "The token limit was exceeded";
name: "TokenLimitExceeded";
}, {
code: 6005;
msg: "Payment account has data";
name: "PaymentAccountHasData";
}, {
code: 6006;
msg: "The transaction includes a ComputeBudget instruction type that isn't supported by the fee payer";
name: "InvalidComputeBudgetInstruction";
}, {
code: 6007;
msg: "Invalid data in instruction";
name: "InvalidData";
}];
instructions: [{
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The payment account for the fee payer"];
isMut: true;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The recipient of the fee payer and payment_account lamports"];
isMut: true;
isSigner: false;
name: "recipient";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "closeFeePayer";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: true;
name: "feePayer";
}, {
docs: ["The rates for the new fee payer"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The funder for the new fee payer"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The payment account for the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: false;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "createFeePayer";
}, {
accounts: [{
docs: ["The new rates"];
isMut: true;
isSigner: true;
name: "rates";
}, {
docs: ["The funder for the new fee payer"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The profile with authority over the rates"];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The mint for these rates."];
isMut: false;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The owner of all token vaults on fee payers."];
isMut: false;
isSigner: false;
name: "tokenOwner";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "tokenLimit";
type: "u64";
}, {
name: "conversionRate";
type: "u64";
}];
name: "createFeePayerRates";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: false;
isSigner: false;
name: "feePayer";
}, {
docs: ["The fee payer rates"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: true;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The funder's profile"];
isMut: false;
isSigner: false;
name: "funderProfile";
}, {
docs: ["The funder's key"];
isMut: true;
isSigner: true;
name: "funderKey";
}, {
docs: ["The funder's vault authority"];
isMut: false;
isSigner: false;
name: "funderVaultAuthority";
}, {
docs: ["The funder's vault"];
isMut: true;
isSigner: false;
name: "funderVault";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}, {
docs: ["The vault program"];
isMut: false;
isSigner: false;
name: "vaultProgram";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "funderKeyIndex";
type: "u16";
}];
name: "postTransaction";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: false;
isSigner: false;
name: "feePayer";
}, {
docs: ["The fee payer rates"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: true;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The funder's key"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The funder's token account"];
isMut: true;
isSigner: false;
name: "funderTokenAccount";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "postTransactionNoVault";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}];
args: [{
name: "signerCount";
type: "u8";
}];
name: "preTransaction";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The profile that will own this fee payer"];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The key with proper permissions"];
isMut: false;
isSigner: true;
name: "owningKey";
}];
args: [{
name: "setData";
type: {
defined: "SetFeePayerData";
};
}, {
name: "keyIndex";
type: "u16";
}];
name: "setFeePayerRates";
}];
name: "atlas_fee_payer";
types: [{
docs: ["The data for `SetFeePayerValues`"];
name: "SetFeePayerData";
type: {
fields: [{
docs: ["Sets the owning profile"];
name: "owningProfile";
type: "bool";
}, {
docs: ["Sets the token owner"];
name: "tokenOwner";
type: "bool";
}, {
docs: ["Sets the token limit"];
name: "tokenLimit";
type: {
option: "u64";
};
}, {
docs: ["Sets the conversion rate"];
name: "conversionRate";
type: {
option: "u64";
};
}];
kind: "struct";
};
}];
version: "0.4.1";
}
Type declaration
-
accounts: [{
docs: ["A given fee payer"];
name: "feePayer";
type: {
fields: [{
docs: ["The data version for this account."];
name: "version";
type: "u8";
}, {
docs: ["The rates for this fee payer"];
name: "rates";
type: "publicKey";
}, {
docs: ["The vault for tokens to be sent to"];
name: "tokenVault";
type: "publicKey";
}, {
docs: ["The account sol is stored in"];
name: "paymentAccount";
type: "publicKey";
}, {
docs: ["Used to track the last value of the payment account"];
name: "lastPayerValue";
type: "u64";
}];
kind: "struct";
};
}, {
docs: ["Rates for a set of fee payers"];
name: "feePayerRates";
type: {
fields: [{
docs: ["The data version of this account"];
name: "version";
type: "u8";
}, {
docs: ["The profile that owns this fee payer"];
name: "owningProfile";
type: "publicKey";
}, {
docs: ["The token mint for the sub tokens"];
name: "tokenMint";
type: "publicKey";
}, {
docs: ["The owner of the token mint"];
name: "tokenOwner";
type: "publicKey";
}, {
docs: ["The max number of sub tokens per interaction"];
name: "tokenLimit";
type: "u64";
}, {
docs: ["Math is to multiply `lamports * conversion_rate / 1_000_000_000 = sub_tokens`", "A corollary to this is `conversion_rate = sub_tokens / sol`"];
name: "conversionRate";
type: "u64";
}];
kind: "struct";
};
}]
-
errors: [{
code: 6000;
msg: "This is not the first instruction in the transaction";
name: "NotFirstInstruction";
}, {
code: 6001;
msg: "This is not the last instruction in the transaction";
name: "NotLastInstruction";
}, {
code: 6002;
msg: "The instruction was called in a CPI";
name: "InstructionIsCPI";
}, {
code: 6003;
msg: "The conversion rate is out of range";
name: "ConversionRateOutOfRange";
}, {
code: 6004;
msg: "The token limit was exceeded";
name: "TokenLimitExceeded";
}, {
code: 6005;
msg: "Payment account has data";
name: "PaymentAccountHasData";
}, {
code: 6006;
msg: "The transaction includes a ComputeBudget instruction type that isn't supported by the fee payer";
name: "InvalidComputeBudgetInstruction";
}, {
code: 6007;
msg: "Invalid data in instruction";
name: "InvalidData";
}]
-
instructions: [{
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The payment account for the fee payer"];
isMut: true;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The recipient of the fee payer and payment_account lamports"];
isMut: true;
isSigner: false;
name: "recipient";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "closeFeePayer";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: true;
name: "feePayer";
}, {
docs: ["The rates for the new fee payer"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The funder for the new fee payer"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The payment account for the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: false;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "createFeePayer";
}, {
accounts: [{
docs: ["The new rates"];
isMut: true;
isSigner: true;
name: "rates";
}, {
docs: ["The funder for the new fee payer"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The profile with authority over the rates"];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The mint for these rates."];
isMut: false;
isSigner: false;
name: "tokenMint";
}, {
docs: ["The owner of all token vaults on fee payers."];
isMut: false;
isSigner: false;
name: "tokenOwner";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "tokenLimit";
type: "u64";
}, {
name: "conversionRate";
type: "u64";
}];
name: "createFeePayerRates";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: false;
isSigner: false;
name: "feePayer";
}, {
docs: ["The fee payer rates"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: true;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The funder's profile"];
isMut: false;
isSigner: false;
name: "funderProfile";
}, {
docs: ["The funder's key"];
isMut: true;
isSigner: true;
name: "funderKey";
}, {
docs: ["The funder's vault authority"];
isMut: false;
isSigner: false;
name: "funderVaultAuthority";
}, {
docs: ["The funder's vault"];
isMut: true;
isSigner: false;
name: "funderVault";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}, {
docs: ["The vault program"];
isMut: false;
isSigner: false;
name: "vaultProgram";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [{
name: "funderKeyIndex";
type: "u16";
}];
name: "postTransaction";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: false;
isSigner: false;
name: "feePayer";
}, {
docs: ["The fee payer rates"];
isMut: false;
isSigner: false;
name: "rates";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The token vault for the fee payer"];
isMut: true;
isSigner: false;
name: "tokenVault";
}, {
docs: ["The funder's key"];
isMut: true;
isSigner: true;
name: "funder";
}, {
docs: ["The funder's token account"];
isMut: true;
isSigner: false;
name: "funderTokenAccount";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}, {
docs: ["The token program"];
isMut: false;
isSigner: false;
name: "tokenProgram";
}, {
docs: ["The system program"];
isMut: false;
isSigner: false;
name: "systemProgram";
}];
args: [];
name: "postTransactionNoVault";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The payment account in the fee payer"];
isMut: false;
isSigner: true;
name: "paymentAccount";
}, {
docs: ["The instructions sysvar"];
isMut: false;
isSigner: false;
name: "instructionSysvar";
}];
args: [{
name: "signerCount";
type: "u8";
}];
name: "preTransaction";
}, {
accounts: [{
docs: ["The fee payer account"];
isMut: true;
isSigner: false;
name: "feePayer";
}, {
docs: ["The profile that will own this fee payer"];
isMut: false;
isSigner: false;
name: "owningProfile";
}, {
docs: ["The key with proper permissions"];
isMut: false;
isSigner: true;
name: "owningKey";
}];
args: [{
name: "setData";
type: {
defined: "SetFeePayerData";
};
}, {
name: "keyIndex";
type: "u16";
}];
name: "setFeePayerRates";
}]
-
name: "atlas_fee_payer"
-
types: [{
docs: ["The data for `SetFeePayerValues`"];
name: "SetFeePayerData";
type: {
fields: [{
docs: ["Sets the owning profile"];
name: "owningProfile";
type: "bool";
}, {
docs: ["Sets the token owner"];
name: "tokenOwner";
type: "bool";
}, {
docs: ["Sets the token limit"];
name: "tokenLimit";
type: {
option: "u64";
};
}, {
docs: ["Sets the conversion rate"];
name: "conversionRate";
type: {
option: "u64";
};
}];
kind: "struct";
};
}]
-
version: "0.4.1"