/** * Program IDL in camelCase format in order to be used in JS/TS. * * Note that this is only a type helper and is not the actual IDL. The original * IDL can be found at `target/idl/zebec_stream.json`. */ export type ZebecStream = { address: "zSTRMmYcFF8SPdHmsAmAUjBnx4zDHvnqqGz2mPcc5QC"; metadata: { name: "zebecStream"; version: "0.1.0"; spec: "0.1.0"; description: "Created with Anchor"; }; instructions: [ { name: "addFeeToken"; discriminator: [171, 6, 150, 97, 69, 55, 13, 136]; accounts: [ { name: "admin"; writable: true; signer: true; }, { name: "streamConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "addFeeTokenParams"; }; }; } ]; }, { name: "cancelStream"; discriminator: [218, 221, 38, 25, 177, 207, 188, 91]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "feePayer"; writable: true; signer: true; }, { name: "otherPartyAta"; writable: true; pda: { seeds: [ { kind: "account"; path: "otherParty"; }, { kind: "const"; value: [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ]; }, { kind: "account"; path: "streamToken"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "otherParty"; docs: ["Main receiver account for verification (read-only)"]; }, { name: "streamMetadata"; writable: true; }, { name: "streamVault"; writable: true; pda: { seeds: [ { kind: "account"; path: "streamMetadata"; } ]; }; }, { name: "streamVaultAta"; writable: true; }, { name: "signerAta"; writable: true; }, { name: "streamToken"; }, { name: "tokenProgram"; address: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: []; }, { name: "changeRecipient"; discriminator: [232, 88, 141, 180, 224, 181, 25, 161]; accounts: [ { name: "signer"; signer: true; }, { name: "stream"; writable: true; }, { name: "newRecipient"; } ]; args: []; }, { name: "createStream"; discriminator: [71, 188, 111, 127, 108, 40, 229, 158]; accounts: [ { name: "sender"; writable: true; signer: true; }, { name: "feePayer"; writable: true; signer: true; }, { name: "senderAta"; writable: true; }, { name: "receiver"; writable: true; }, { name: "receiverAta"; writable: true; pda: { seeds: [ { kind: "account"; path: "receiver"; }, { kind: "const"; value: [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ]; }, { kind: "account"; path: "streamToken"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "streamMetadata"; writable: true; signer: true; }, { name: "streamVault"; writable: true; pda: { seeds: [ { kind: "account"; path: "streamMetadata"; } ]; }; }, { name: "streamVaultAta"; writable: true; pda: { seeds: [ { kind: "account"; path: "streamVault"; }, { kind: "const"; value: [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ]; }, { kind: "account"; path: "streamToken"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "streamConfig"; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "withdrawAccount"; writable: true; }, { name: "streamToken"; }, { name: "tokenProgram"; address: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "createStreamParams"; }; }; } ]; }, { name: "initializeConfig"; discriminator: [208, 127, 21, 1, 194, 190, 196, 70]; accounts: [ { name: "admin"; writable: true; signer: true; }, { name: "streamConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "arg"; path: "params.config_name"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "initializeConfigParams"; }; }; } ]; }, { name: "pauseResumeStream"; discriminator: [173, 142, 243, 94, 154, 175, 5, 170]; accounts: [ { name: "user"; writable: true; signer: true; }, { name: "streamMetadata"; writable: true; } ]; args: []; }, { name: "removeWhitelist"; discriminator: [148, 244, 73, 234, 131, 55, 247, 90]; accounts: [ { name: "admin"; writable: true; signer: true; }, { name: "streamConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "removeWhitelistParams"; }; }; } ]; }, { name: "updateConfig"; discriminator: [29, 158, 252, 191, 10, 83, 219, 99]; accounts: [ { name: "admin"; writable: true; signer: true; }, { name: "streamConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "initializeConfigParams"; }; }; } ]; }, { name: "whitelistTokens"; discriminator: [27, 206, 128, 157, 199, 65, 149, 189]; accounts: [ { name: "admin"; writable: true; signer: true; }, { name: "streamConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "params"; type: { defined: { name: "whitelistTokensParams"; }; }; } ]; }, { name: "withdrawStream"; discriminator: [211, 21, 90, 92, 185, 214, 88, 157]; accounts: [ { name: "withdrawer"; writable: true; signer: true; }, { name: "feePayer"; writable: true; signer: true; }, { name: "receiver"; }, { name: "receiverAta"; writable: true; pda: { seeds: [ { kind: "account"; path: "receiver"; }, { kind: "const"; value: [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ]; }, { kind: "account"; path: "streamToken"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "streamMetadata"; writable: true; }, { name: "streamVault"; writable: true; pda: { seeds: [ { kind: "account"; path: "streamMetadata"; } ]; }; }, { name: "streamVaultAta"; writable: true; }, { name: "streamConfig"; pda: { seeds: [ { kind: "const"; value: [99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "stream_config.config_name"; account: "streamConfig"; } ]; }; }, { name: "streamToken"; }, { name: "tokenProgram"; address: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: []; } ]; accounts: [ { name: "paymentStream"; discriminator: [124, 85, 193, 22, 93, 1, 143, 75]; }, { name: "streamConfig"; discriminator: [130, 127, 218, 245, 133, 158, 70, 198]; } ]; events: [ { name: "burnEvent"; discriminator: [33, 89, 47, 117, 82, 124, 238, 250]; }, { name: "mintEvent"; discriminator: [197, 144, 146, 149, 66, 164, 95, 16]; }, { name: "streamCancelEvent"; discriminator: [155, 200, 221, 210, 40, 61, 207, 175]; }, { name: "streamChangeRecipientEvent"; discriminator: [45, 42, 3, 230, 162, 49, 127, 81]; }, { name: "streamCreateEvent"; discriminator: [55, 251, 103, 42, 227, 14, 96, 182]; }, { name: "streamPauseResumeEvent"; discriminator: [252, 54, 142, 181, 13, 165, 61, 229]; }, { name: "streamWithdrawEvent"; discriminator: [201, 202, 32, 160, 26, 199, 4, 70]; } ]; errors: [ { code: 6000; name: "maxWhitelistedTokensExceeded"; msg: "Maximum number of whitelisted tokens (250) exceeded"; }, { code: 6001; name: "zeroStreamDuration"; msg: "Stream duration must be greater than zero"; }, { code: 6002; name: "invalidStreamAmount"; msg: "Stream amount must be greater than zero"; }, { code: 6003; name: "pastStartTime"; msg: "Start time is in the past"; }, { code: 6004; name: "invalidCliffPercentage"; msg: "Invalid cliff percentage"; }, { code: 6005; name: "tokenNotWhitelisted"; msg: "Token not whitelisted"; }, { code: 6006; name: "insufficientSenderBalance"; msg: "Sender does not have enough balance to create the stream"; }, { code: 6007; name: "streamAlreadyCanceled"; msg: "Stream Already Canceled"; }, { code: 6008; name: "unauthorized"; msg: "unauthorized"; }, { code: 6009; name: "notCancellable"; msg: "Stream is not Cancellable"; }, { code: 6010; name: "streamAlreadyWithdrawn"; msg: "Stream has already been withdrawn"; }, { code: 6011; name: "invalidReceiver"; msg: "Invalid receiver address"; }, { code: 6012; name: "withdrawAmountExceeds"; msg: "Withdraw amount exceeds the available amount in the stream"; }, { code: 6013; name: "insufficientFundsToWithdraw"; msg: "Insufficient funds in the stream vault for withdrawal"; }, { code: 6014; name: "streamNotStarted"; msg: "Stream has not started yet"; }, { code: 6015; name: "noWithdrawableAmount"; msg: "No withdrawable amount available at this time"; }, { code: 6016; name: "invalidStreamToken"; msg: "Invalid stream token"; }, { code: 6017; name: "streamAlreadyEnded"; msg: "Stream already ended"; }, { code: 6018; name: "evergencyPauseActive"; msg: "Emergency pause is active"; }, { code: 6019; name: "invalidMint"; msg: "Invalid mint address"; }, { code: 6020; name: "invalidFeeVault"; msg: "Invalid fee vault"; } ]; types: [ { name: "addFeeTokenParams"; type: { kind: "struct"; fields: [ { name: "token"; type: "pubkey"; } ]; }; }, { name: "burnEvent"; type: { kind: "struct"; fields: [ { name: "from"; type: "pubkey"; }, { name: "amount"; type: "u64"; }, { name: "receiver"; type: "string"; } ]; }; }, { name: "createStreamParams"; type: { kind: "struct"; fields: [ { name: "amount"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "duration"; type: "u64"; }, { name: "streamFrequency"; type: "u64"; }, { name: "cliffPercentage"; type: "u64"; }, { name: "cancelableBySender"; type: "u8"; }, { name: "cancelableByRecipient"; type: "u8"; }, { name: "automaticWithdrawal"; type: "u8"; }, { name: "transferableBySender"; type: "u8"; }, { name: "transferableByRecipient"; type: "u8"; }, { name: "canTopup"; type: "u8"; }, { name: "isPausable"; type: "u8"; }, { name: "rateUpdatable"; type: "u8"; }, { name: "startNow"; type: "u8"; }, { name: "streamName"; type: { array: ["u8", 128]; }; } ]; }; }, { name: "feeMap"; type: { kind: "struct"; fields: [ { name: "tiers"; type: { vec: { defined: { name: "feeTier"; }; }; }; } ]; }; }, { name: "feeTier"; type: { kind: "struct"; fields: [ { name: "minAmount"; type: "u64"; }, { name: "maxAmount"; type: "u64"; }, { name: "fee"; type: "u64"; } ]; }; }, { name: "initializeConfigParams"; type: { kind: "struct"; fields: [ { name: "configName"; type: "string"; }, { name: "withdrawAccount"; type: "pubkey"; }, { name: "platformFee"; type: "u64"; }, { name: "baseFee"; type: "u64"; }, { name: "frequencies"; type: { vec: "u64"; }; }, { name: "feeTier"; type: { vec: { defined: { name: "feeTier"; }; }; }; }, { name: "feeVault"; type: "pubkey"; } ]; }; }, { name: "mintEvent"; type: { kind: "struct"; fields: [ { name: "mint"; type: "pubkey"; }, { name: "mintedTo"; type: "pubkey"; }, { name: "amount"; type: "u64"; }, { name: "mintAuthority"; type: "pubkey"; } ]; }; }, { name: "paymentStream"; serialization: "bytemuck"; repr: { kind: "c"; }; type: { kind: "struct"; fields: [ { name: "parties"; type: { defined: { name: "streamParties"; }; }; }, { name: "financials"; type: { defined: { name: "streamFinancials"; }; }; }, { name: "schedule"; type: { defined: { name: "streamSchedule"; }; }; }, { name: "permissions"; type: { defined: { name: "streamPermissions"; }; }; }, { name: "streamName"; type: { array: ["u8", 128]; }; } ]; }; }, { name: "removeWhitelistParams"; type: { kind: "struct"; fields: [ { name: "tokens"; type: { vec: "pubkey"; }; } ]; }; }, { name: "streamCancelEvent"; type: { kind: "struct"; fields: [ { name: "stream"; type: "pubkey"; }, { name: "canceledBy"; type: "pubkey"; }, { name: "sentToRecipient"; type: "u64"; }, { name: "sentToSender"; type: "u64"; } ]; }; }, { name: "streamChangeRecipientEvent"; type: { kind: "struct"; fields: [ { name: "stream"; type: "pubkey"; }, { name: "newRecipient"; type: "pubkey"; }, { name: "oldRecipient"; type: "pubkey"; }, { name: "changedBy"; type: "pubkey"; } ]; }; }, { name: "streamConfig"; type: { kind: "struct"; fields: [ { name: "configName"; type: "string"; }, { name: "admin"; type: "pubkey"; }, { name: "withdrawAccount"; type: "pubkey"; }, { name: "whitelistedTokens"; type: { vec: "pubkey"; }; }, { name: "platformFee"; type: "u64"; }, { name: "baseFee"; type: "u64"; }, { name: "frequencies"; type: { vec: "u64"; }; }, { name: "feeTiers"; type: { defined: { name: "feeMap"; }; }; }, { name: "feeVault"; type: "pubkey"; } ]; }; }, { name: "streamCreateEvent"; type: { kind: "struct"; fields: [ { name: "stream"; type: "pubkey"; }, { name: "sender"; type: "pubkey"; }, { name: "receiver"; type: "pubkey"; }, { name: "transactionFee"; type: "u64"; }, { name: "tokenMint"; type: "pubkey"; } ]; }; }, { name: "streamFinancials"; serialization: "bytemuck"; repr: { kind: "c"; }; type: { kind: "struct"; fields: [ { name: "cliffPercentage"; type: "u64"; }, { name: "depositedAmount"; type: "u64"; }, { name: "withdrawnAmount"; type: "u64"; }, { name: "streamToken"; type: "pubkey"; } ]; }; }, { name: "streamParties"; serialization: "bytemuck"; repr: { kind: "c"; }; type: { kind: "struct"; fields: [ { name: "sender"; type: "pubkey"; }, { name: "receiver"; type: "pubkey"; } ]; }; }, { name: "streamPauseResumeEvent"; type: { kind: "struct"; fields: [ { name: "stream"; type: "pubkey"; }, { name: "initiator"; type: "pubkey"; }, { name: "paused"; type: "bool"; }, { name: "pausedDuration"; type: "u64"; } ]; }; }, { name: "streamPermissions"; serialization: "bytemuck"; repr: { kind: "c"; }; type: { kind: "struct"; fields: [ { name: "cancelableBySender"; type: "u8"; }, { name: "cancelableByRecipient"; type: "u8"; }, { name: "automaticWithdrawal"; type: "u8"; }, { name: "transferableBySender"; type: "u8"; }, { name: "transferableByRecipient"; type: "u8"; }, { name: "canTopup"; type: "u8"; }, { name: "isPausable"; type: "u8"; }, { name: "rateUpdatable"; type: "u8"; } ]; }; }, { name: "streamSchedule"; serialization: "bytemuck"; repr: { kind: "c"; }; type: { kind: "struct"; fields: [ { name: "startTime"; type: "i64"; }, { name: "endTime"; type: "i64"; }, { name: "lastWithdrawTime"; type: "i64"; }, { name: "frequency"; type: "u64"; }, { name: "duration"; type: "u64"; }, { name: "pausedTimestamp"; type: "i64"; }, { name: "pausedInterval"; type: "i64"; }, { name: "canceledTimestamp"; type: "i64"; } ]; }; }, { name: "streamWithdrawEvent"; type: { kind: "struct"; fields: [ { name: "stream"; type: "pubkey"; }, { name: "withdrawer"; type: "pubkey"; }, { name: "recipient"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "whitelistTokensParams"; type: { kind: "struct"; fields: [ { name: "tokens"; type: { vec: "pubkey"; }; } ]; }; } ]; constants: [ { name: "streamConfig"; type: "string"; value: '"config"'; } ]; };