@wormhole-foundation/sdk-solana-cctp
Version:
SDK for Solana, used in conjunction with @wormhole-foundation/sdk
1,369 lines • 37.8 kB
TypeScript
export type MessageTransmitter = {
version: '0.1.0';
name: 'message_transmitter';
instructions: [
{
name: 'initialize';
accounts: [
{
name: 'payer';
isMut: true;
isSigner: true;
},
{
name: 'upgradeAuthority';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'messageTransmitterProgramData';
isMut: false;
isSigner: false;
},
{
name: 'messageTransmitterProgram';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'InitializeParams';
};
}
];
},
{
name: 'transferOwnership';
accounts: [
{
name: 'owner';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'TransferOwnershipParams';
};
}
];
},
{
name: 'acceptOwnership';
accounts: [
{
name: 'pendingOwner';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'AcceptOwnershipParams';
};
}
];
},
{
name: 'updatePauser';
accounts: [
{
name: 'owner';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'UpdatePauserParams';
};
}
];
},
{
name: 'updateAttesterManager';
accounts: [
{
name: 'owner';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'UpdateAttesterManagerParams';
};
}
];
},
{
name: 'pause';
accounts: [
{
name: 'pauser';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'PauseParams';
};
}
];
},
{
name: 'unpause';
accounts: [
{
name: 'pauser';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'UnpauseParams';
};
}
];
},
{
name: 'setMaxMessageBodySize';
accounts: [
{
name: 'owner';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'SetMaxMessageBodySizeParams';
};
}
];
},
{
name: 'enableAttester';
accounts: [
{
name: 'payer';
isMut: true;
isSigner: true;
},
{
name: 'attesterManager';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'EnableAttesterParams';
};
}
];
},
{
name: 'disableAttester';
accounts: [
{
name: 'payer';
isMut: true;
isSigner: true;
},
{
name: 'attesterManager';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'DisableAttesterParams';
};
}
];
},
{
name: 'setSignatureThreshold';
accounts: [
{
name: 'attesterManager';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'SetSignatureThresholdParams';
};
}
];
},
{
name: 'sendMessage';
accounts: [
{
name: 'eventRentPayer';
isMut: true;
isSigner: true;
},
{
name: 'senderAuthorityPda';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'messageSentEventData';
isMut: true;
isSigner: true;
},
{
name: 'senderProgram';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'SendMessageParams';
};
}
];
returns: 'u64';
},
{
name: 'sendMessageWithCaller';
accounts: [
{
name: 'eventRentPayer';
isMut: true;
isSigner: true;
},
{
name: 'senderAuthorityPda';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'messageSentEventData';
isMut: true;
isSigner: true;
},
{
name: 'senderProgram';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'SendMessageWithCallerParams';
};
}
];
returns: 'u64';
},
{
name: 'replaceMessage';
accounts: [
{
name: 'eventRentPayer';
isMut: true;
isSigner: true;
},
{
name: 'senderAuthorityPda';
isMut: false;
isSigner: true;
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'messageSentEventData';
isMut: true;
isSigner: true;
},
{
name: 'senderProgram';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'ReplaceMessageParams';
};
}
];
returns: 'u64';
},
{
name: 'receiveMessage';
accounts: [
{
name: 'payer';
isMut: true;
isSigner: true;
},
{
name: 'caller';
isMut: false;
isSigner: true;
},
{
name: 'authorityPda';
isMut: false;
isSigner: false;
},
{
name: 'messageTransmitter';
isMut: false;
isSigner: false;
},
{
name: 'usedNonces';
isMut: true;
isSigner: false;
},
{
name: 'receiver';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'eventAuthority';
isMut: false;
isSigner: false;
},
{
name: 'program';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'ReceiveMessageParams';
};
}
];
},
{
name: 'reclaimEventAccount';
accounts: [
{
name: 'payee';
isMut: true;
isSigner: true;
docs: ['rent SOL receiver, should match original rent payer'];
},
{
name: 'messageTransmitter';
isMut: true;
isSigner: false;
},
{
name: 'messageSentEventData';
isMut: true;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'ReclaimEventAccountParams';
};
}
];
},
{
name: 'getNoncePda';
accounts: [
{
name: 'messageTransmitter';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'params';
type: {
defined: 'GetNoncePDAParams';
};
}
];
returns: 'publicKey';
},
{
name: 'isNonceUsed';
accounts: [
{
name: 'usedNonces';
isMut: false;
isSigner: false;
docs: [
"Account will be explicitly loaded to avoid error when it's not initialized"
];
}
];
args: [
{
name: 'params';
type: {
defined: 'IsNonceUsedParams';
};
}
];
returns: 'bool';
}
];
accounts: [
{
name: 'messageSent';
type: {
kind: 'struct';
fields: [
{
name: 'rentPayer';
type: 'publicKey';
},
{
name: 'message';
type: 'bytes';
}
];
};
},
{
name: 'messageTransmitter';
docs: ['Main state of the MessageTransmitter program'];
type: {
kind: 'struct';
fields: [
{
name: 'owner';
type: 'publicKey';
},
{
name: 'pendingOwner';
type: 'publicKey';
},
{
name: 'attesterManager';
type: 'publicKey';
},
{
name: 'pauser';
type: 'publicKey';
},
{
name: 'paused';
type: 'bool';
},
{
name: 'localDomain';
type: 'u32';
},
{
name: 'version';
type: 'u32';
},
{
name: 'signatureThreshold';
type: 'u32';
},
{
name: 'enabledAttesters';
type: {
vec: 'publicKey';
};
},
{
name: 'maxMessageBodySize';
type: 'u64';
},
{
name: 'nextAvailableNonce';
type: 'u64';
}
];
};
},
{
name: 'usedNonces';
docs: [
'UsedNonces account holds an array of bits that indicate which nonces were already used',
"so they can't be resused to receive new messages. Array starts with the first_nonce and",
'holds flags for UsedNonces::MAX_NONCES. Nonces are recorded separately for each remote_domain.'
];
type: {
kind: 'struct';
fields: [
{
name: 'remoteDomain';
type: 'u32';
},
{
name: 'firstNonce';
type: 'u64';
},
{
name: 'usedNonces';
type: {
array: ['u64', 100];
};
}
];
};
}
];
types: [
{
name: 'AcceptOwnershipParams';
type: {
kind: 'struct';
fields: [];
};
},
{
name: 'DisableAttesterParams';
type: {
kind: 'struct';
fields: [
{
name: 'attester';
type: 'publicKey';
}
];
};
},
{
name: 'EnableAttesterParams';
type: {
kind: 'struct';
fields: [
{
name: 'newAttester';
type: 'publicKey';
}
];
};
},
{
name: 'GetNoncePDAParams';
type: {
kind: 'struct';
fields: [
{
name: 'nonce';
type: 'u64';
},
{
name: 'sourceDomain';
type: 'u32';
}
];
};
},
{
name: 'InitializeParams';
type: {
kind: 'struct';
fields: [
{
name: 'localDomain';
type: 'u32';
},
{
name: 'attester';
type: 'publicKey';
},
{
name: 'maxMessageBodySize';
type: 'u64';
},
{
name: 'version';
type: 'u32';
}
];
};
},
{
name: 'IsNonceUsedParams';
type: {
kind: 'struct';
fields: [
{
name: 'nonce';
type: 'u64';
}
];
};
},
{
name: 'PauseParams';
type: {
kind: 'struct';
fields: [];
};
},
{
name: 'ReceiveMessageParams';
type: {
kind: 'struct';
fields: [
{
name: 'message';
type: 'bytes';
},
{
name: 'attestation';
type: 'bytes';
}
];
};
},
{
name: 'HandleReceiveMessageParams';
type: {
kind: 'struct';
fields: [
{
name: 'remoteDomain';
type: 'u32';
},
{
name: 'sender';
type: 'publicKey';
},
{
name: 'messageBody';
type: 'bytes';
},
{
name: 'authorityBump';
type: 'u8';
}
];
};
},
{
name: 'ReclaimEventAccountParams';
type: {
kind: 'struct';
fields: [
{
name: 'attestation';
type: 'bytes';
}
];
};
},
{
name: 'ReplaceMessageParams';
type: {
kind: 'struct';
fields: [
{
name: 'originalMessage';
type: 'bytes';
},
{
name: 'originalAttestation';
type: 'bytes';
},
{
name: 'newMessageBody';
type: 'bytes';
},
{
name: 'newDestinationCaller';
type: 'publicKey';
}
];
};
},
{
name: 'SendMessageWithCallerParams';
type: {
kind: 'struct';
fields: [
{
name: 'destinationDomain';
type: 'u32';
},
{
name: 'recipient';
type: 'publicKey';
},
{
name: 'messageBody';
type: 'bytes';
},
{
name: 'destinationCaller';
type: 'publicKey';
}
];
};
},
{
name: 'SendMessageParams';
type: {
kind: 'struct';
fields: [
{
name: 'destinationDomain';
type: 'u32';
},
{
name: 'recipient';
type: 'publicKey';
},
{
name: 'messageBody';
type: 'bytes';
}
];
};
},
{
name: 'SetMaxMessageBodySizeParams';
type: {
kind: 'struct';
fields: [
{
name: 'newMaxMessageBodySize';
type: 'u64';
}
];
};
},
{
name: 'SetSignatureThresholdParams';
type: {
kind: 'struct';
fields: [
{
name: 'newSignatureThreshold';
type: 'u32';
}
];
};
},
{
name: 'TransferOwnershipParams';
type: {
kind: 'struct';
fields: [
{
name: 'newOwner';
type: 'publicKey';
}
];
};
},
{
name: 'UnpauseParams';
type: {
kind: 'struct';
fields: [];
};
},
{
name: 'UpdateAttesterManagerParams';
type: {
kind: 'struct';
fields: [
{
name: 'newAttesterManager';
type: 'publicKey';
}
];
};
},
{
name: 'UpdatePauserParams';
type: {
kind: 'struct';
fields: [
{
name: 'newPauser';
type: 'publicKey';
}
];
};
},
{
name: 'MathError';
type: {
kind: 'enum';
variants: [
{
name: 'MathOverflow';
},
{
name: 'MathUnderflow';
},
{
name: 'ErrorInDivision';
}
];
};
}
];
events: [
{
name: 'OwnershipTransferStarted';
fields: [
{
name: 'previousOwner';
type: 'publicKey';
index: false;
},
{
name: 'newOwner';
type: 'publicKey';
index: false;
}
];
},
{
name: 'OwnershipTransferred';
fields: [
{
name: 'previousOwner';
type: 'publicKey';
index: false;
},
{
name: 'newOwner';
type: 'publicKey';
index: false;
}
];
},
{
name: 'PauserChanged';
fields: [
{
name: 'newAddress';
type: 'publicKey';
index: false;
}
];
},
{
name: 'AttesterManagerUpdated';
fields: [
{
name: 'previousAttesterManager';
type: 'publicKey';
index: false;
},
{
name: 'newAttesterManager';
type: 'publicKey';
index: false;
}
];
},
{
name: 'MessageReceived';
fields: [
{
name: 'caller';
type: 'publicKey';
index: false;
},
{
name: 'sourceDomain';
type: 'u32';
index: false;
},
{
name: 'nonce';
type: 'u64';
index: false;
},
{
name: 'sender';
type: 'publicKey';
index: false;
},
{
name: 'messageBody';
type: 'bytes';
index: false;
}
];
},
{
name: 'SignatureThresholdUpdated';
fields: [
{
name: 'oldSignatureThreshold';
type: 'u32';
index: false;
},
{
name: 'newSignatureThreshold';
type: 'u32';
index: false;
}
];
},
{
name: 'AttesterEnabled';
fields: [
{
name: 'attester';
type: 'publicKey';
index: false;
}
];
},
{
name: 'AttesterDisabled';
fields: [
{
name: 'attester';
type: 'publicKey';
index: false;
}
];
},
{
name: 'MaxMessageBodySizeUpdated';
fields: [
{
name: 'newMaxMessageBodySize';
type: 'u64';
index: false;
}
];
},
{
name: 'Pause';
fields: [];
},
{
name: 'Unpause';
fields: [];
}
];
errors: [
{
code: 6000;
name: 'InvalidAuthority';
msg: 'Invalid authority';
},
{
code: 6001;
name: 'ProgramPaused';
msg: 'Instruction is not allowed at this time';
},
{
code: 6002;
name: 'InvalidMessageTransmitterState';
msg: 'Invalid message transmitter state';
},
{
code: 6003;
name: 'InvalidSignatureThreshold';
msg: 'Invalid signature threshold';
},
{
code: 6004;
name: 'SignatureThresholdAlreadySet';
msg: 'Signature threshold already set';
},
{
code: 6005;
name: 'InvalidOwner';
msg: 'Invalid owner';
},
{
code: 6006;
name: 'InvalidPauser';
msg: 'Invalid pauser';
},
{
code: 6007;
name: 'InvalidAttesterManager';
msg: 'Invalid attester manager';
},
{
code: 6008;
name: 'InvalidAttester';
msg: 'Invalid attester';
},
{
code: 6009;
name: 'AttesterAlreadyEnabled';
msg: 'Attester already enabled';
},
{
code: 6010;
name: 'TooFewEnabledAttesters';
msg: 'Too few enabled attesters';
},
{
code: 6011;
name: 'SignatureThresholdTooLow';
msg: 'Signature threshold is too low';
},
{
code: 6012;
name: 'AttesterAlreadyDisabled';
msg: 'Attester already disabled';
},
{
code: 6013;
name: 'MessageBodyLimitExceeded';
msg: 'Message body exceeds max size';
},
{
code: 6014;
name: 'InvalidDestinationCaller';
msg: 'Invalid destination caller';
},
{
code: 6015;
name: 'InvalidRecipient';
msg: 'Invalid message recipient';
},
{
code: 6016;
name: 'SenderNotPermitted';
msg: 'Sender is not permitted';
},
{
code: 6017;
name: 'InvalidSourceDomain';
msg: 'Invalid source domain';
},
{
code: 6018;
name: 'InvalidDestinationDomain';
msg: 'Invalid destination domain';
},
{
code: 6019;
name: 'InvalidMessageVersion';
msg: 'Invalid message version';
},
{
code: 6020;
name: 'InvalidUsedNoncesAccount';
msg: 'Invalid used nonces account';
},
{
code: 6021;
name: 'InvalidRecipientProgram';
msg: 'Invalid recipient program';
},
{
code: 6022;
name: 'InvalidNonce';
msg: 'Invalid nonce';
},
{
code: 6023;
name: 'NonceAlreadyUsed';
msg: 'Nonce already used';
},
{
code: 6024;
name: 'MessageTooShort';
msg: 'Message is too short';
},
{
code: 6025;
name: 'MalformedMessage';
msg: 'Malformed message';
},
{
code: 6026;
name: 'InvalidSignatureOrderOrDupe';
msg: 'Invalid signature order or dupe';
},
{
code: 6027;
name: 'InvalidAttesterSignature';
msg: 'Invalid attester signature';
},
{
code: 6028;
name: 'InvalidAttestationLength';
msg: 'Invalid attestation length';
},
{
code: 6029;
name: 'InvalidSignatureRecoveryId';
msg: 'Invalid signature recovery ID';
},
{
code: 6030;
name: 'InvalidSignatureSValue';
msg: 'Invalid signature S value';
},
{
code: 6031;
name: 'InvalidMessageHash';
msg: 'Invalid message hash';
}
];
};
export declare const MessageTransmitterIdl: MessageTransmitter;
//# sourceMappingURL=messageTransmitter.d.ts.map