{
    "accounts": [
        {
            "discriminator": [124, 85, 193, 22, 93, 1, 143, 75],
            "name": "PaymentStream"
        },
        {
            "discriminator": [130, 127, 218, 245, 133, 158, 70, 198],
            "name": "StreamConfig"
        }
    ],
    "address": "zSTRMmYcFF8SPdHmsAmAUjBnx4zDHvnqqGz2mPcc5QC",
    "constants": [
        {
            "name": "STREAM_CONFIG",
            "type": "string",
            "value": "\"config\""
        }
    ],
    "errors": [
        {
            "code": 6000,
            "msg": "Maximum number of whitelisted tokens (250) exceeded",
            "name": "MaxWhitelistedTokensExceeded"
        },
        {
            "code": 6001,
            "msg": "Stream duration must be greater than zero",
            "name": "ZeroStreamDuration"
        },
        {
            "code": 6002,
            "msg": "Stream amount must be greater than zero",
            "name": "InvalidStreamAmount"
        },
        {
            "code": 6003,
            "msg": "Start time is in the past",
            "name": "PastStartTime"
        },
        {
            "code": 6004,
            "msg": "Invalid cliff percentage",
            "name": "InvalidCliffPercentage"
        },
        {
            "code": 6005,
            "msg": "Token not whitelisted",
            "name": "TokenNotWhitelisted"
        },
        {
            "code": 6006,
            "msg": "Sender does not have enough balance to create the stream",
            "name": "InsufficientSenderBalance"
        },
        {
            "code": 6007,
            "msg": "Stream Already Canceled",
            "name": "StreamAlreadyCanceled"
        },
        {
            "code": 6008,
            "msg": "Unauthorized",
            "name": "Unauthorized"
        },
        {
            "code": 6009,
            "msg": "Stream is not Cancellable",
            "name": "NotCancellable"
        },
        {
            "code": 6010,
            "msg": "Stream has already been withdrawn",
            "name": "StreamAlreadyWithdrawn"
        },
        {
            "code": 6011,
            "msg": "Invalid receiver address",
            "name": "InvalidReceiver"
        },
        {
            "code": 6012,
            "msg": "Withdraw amount exceeds the available amount in the stream",
            "name": "WithdrawAmountExceeds"
        },
        {
            "code": 6013,
            "msg": "Insufficient funds in the stream vault for withdrawal",
            "name": "InsufficientFundsToWithdraw"
        },
        {
            "code": 6014,
            "msg": "Stream has not started yet",
            "name": "StreamNotStarted"
        },
        {
            "code": 6015,
            "msg": "No withdrawable amount available at this time",
            "name": "NoWithdrawableAmount"
        },
        {
            "code": 6016,
            "msg": "Invalid stream token",
            "name": "InvalidStreamToken"
        },
        {
            "code": 6017,
            "msg": "Stream already ended",
            "name": "StreamAlreadyEnded"
        },
        {
            "code": 6018,
            "msg": "Emergency pause is active",
            "name": "EvergencyPauseActive"
        },
        {
            "code": 6019,
            "msg": "Invalid mint address",
            "name": "InvalidMint"
        },
        {
            "code": 6020,
            "msg": "Invalid fee vault",
            "name": "InvalidFeeVault"
        }
    ],
    "events": [
        {
            "discriminator": [33, 89, 47, 117, 82, 124, 238, 250],
            "name": "BurnEvent"
        },
        {
            "discriminator": [197, 144, 146, 149, 66, 164, 95, 16],
            "name": "MintEvent"
        },
        {
            "discriminator": [155, 200, 221, 210, 40, 61, 207, 175],
            "name": "StreamCancelEvent"
        },
        {
            "discriminator": [45, 42, 3, 230, 162, 49, 127, 81],
            "name": "StreamChangeRecipientEvent"
        },
        {
            "discriminator": [55, 251, 103, 42, 227, 14, 96, 182],
            "name": "StreamCreateEvent"
        },
        {
            "discriminator": [252, 54, 142, 181, 13, 165, 61, 229],
            "name": "StreamPauseResumeEvent"
        },
        {
            "discriminator": [201, 202, 32, 160, 26, 199, 4, 70],
            "name": "StreamWithdrawEvent"
        }
    ],
    "instructions": [
        {
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "AddFeeTokenParams"
                        }
                    }
                }
            ],
            "discriminator": [171, 6, 150, 97, 69, 55, 13, 136],
            "name": "add_fee_token"
        },
        {
            "accounts": [
                {
                    "name": "signer",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "fee_payer",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "other_party_ata",
                    "pda": {
                        "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
                            ]
                        },
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "other_party"
                            },
                            {
                                "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": "stream_token"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "docs": ["Main receiver account for verification (read-only)"],
                    "name": "other_party"
                },
                {
                    "name": "stream_metadata",
                    "writable": true
                },
                {
                    "name": "stream_vault",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "stream_metadata"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_vault_ata",
                    "writable": true
                },
                {
                    "name": "signer_ata",
                    "writable": true
                },
                {
                    "name": "stream_token"
                },
                {
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                    "name": "token_program"
                },
                {
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
                    "name": "associated_token_program"
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [],
            "discriminator": [218, 221, 38, 25, 177, 207, 188, 91],
            "name": "cancel_stream"
        },
        {
            "accounts": [
                {
                    "name": "signer",
                    "signer": true
                },
                {
                    "name": "stream",
                    "writable": true
                },
                {
                    "name": "new_recipient"
                }
            ],
            "args": [],
            "discriminator": [232, 88, 141, 180, 224, 181, 25, 161],
            "name": "change_recipient"
        },
        {
            "accounts": [
                {
                    "name": "sender",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "fee_payer",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "sender_ata",
                    "writable": true
                },
                {
                    "name": "receiver",
                    "writable": true
                },
                {
                    "name": "receiver_ata",
                    "pda": {
                        "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
                            ]
                        },
                        "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": "stream_token"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_metadata",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_vault",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "stream_metadata"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_vault_ata",
                    "pda": {
                        "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
                            ]
                        },
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "stream_vault"
                            },
                            {
                                "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": "stream_token"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    }
                },
                {
                    "name": "withdraw_account",
                    "writable": true
                },
                {
                    "name": "stream_token"
                },
                {
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                    "name": "token_program"
                },
                {
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
                    "name": "associated_token_program"
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "CreateStreamParams"
                        }
                    }
                }
            ],
            "discriminator": [71, 188, 111, 127, 108, 40, 229, 158],
            "name": "create_stream"
        },
        {
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "kind": "arg",
                                "path": "params.config_name"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "InitializeConfigParams"
                        }
                    }
                }
            ],
            "discriminator": [208, 127, 21, 1, 194, 190, 196, 70],
            "name": "initialize_config"
        },
        {
            "accounts": [
                {
                    "name": "user",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_metadata",
                    "writable": true
                }
            ],
            "args": [],
            "discriminator": [173, 142, 243, 94, 154, 175, 5, 170],
            "name": "pause_resume_stream"
        },
        {
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "RemoveWhitelistParams"
                        }
                    }
                }
            ],
            "discriminator": [148, 244, 73, 234, 131, 55, 247, 90],
            "name": "remove_whitelist"
        },
        {
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "InitializeConfigParams"
                        }
                    }
                }
            ],
            "discriminator": [29, 158, 252, 191, 10, 83, 219, 99],
            "name": "update_config"
        },
        {
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": {
                            "name": "WhitelistTokensParams"
                        }
                    }
                }
            ],
            "discriminator": [27, 206, 128, 157, 199, 65, 149, 189],
            "name": "whitelist_tokens"
        },
        {
            "accounts": [
                {
                    "name": "withdrawer",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "fee_payer",
                    "signer": true,
                    "writable": true
                },
                {
                    "name": "receiver"
                },
                {
                    "name": "receiver_ata",
                    "pda": {
                        "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
                            ]
                        },
                        "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": "stream_token"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_metadata",
                    "writable": true
                },
                {
                    "name": "stream_vault",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "stream_metadata"
                            }
                        ]
                    },
                    "writable": true
                },
                {
                    "name": "stream_vault_ata",
                    "writable": true
                },
                {
                    "name": "stream_config",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [99, 111, 110, 102, 105, 103]
                            },
                            {
                                "account": "StreamConfig",
                                "kind": "account",
                                "path": "stream_config.config_name"
                            }
                        ]
                    }
                },
                {
                    "name": "stream_token"
                },
                {
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
                    "name": "token_program"
                },
                {
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
                    "name": "associated_token_program"
                },
                {
                    "address": "11111111111111111111111111111111",
                    "name": "system_program"
                }
            ],
            "args": [],
            "discriminator": [211, 21, 90, 92, 185, 214, 88, 157],
            "name": "withdraw_stream"
        }
    ],
    "metadata": {
        "description": "Created with Anchor",
        "name": "zebec_stream",
        "spec": "0.1.0",
        "version": "0.1.0"
    },
    "types": [
        {
            "name": "AddFeeTokenParams",
            "type": {
                "fields": [
                    {
                        "name": "token",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "BurnEvent",
            "type": {
                "fields": [
                    {
                        "name": "from",
                        "type": "pubkey"
                    },
                    {
                        "name": "amount",
                        "type": "u64"
                    },
                    {
                        "name": "receiver",
                        "type": "string"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "CreateStreamParams",
            "type": {
                "fields": [
                    {
                        "name": "amount",
                        "type": "u64"
                    },
                    {
                        "name": "start_time",
                        "type": "i64"
                    },
                    {
                        "name": "duration",
                        "type": "u64"
                    },
                    {
                        "name": "stream_frequency",
                        "type": "u64"
                    },
                    {
                        "name": "cliff_percentage",
                        "type": "u64"
                    },
                    {
                        "name": "cancelable_by_sender",
                        "type": "u8"
                    },
                    {
                        "name": "cancelable_by_recipient",
                        "type": "u8"
                    },
                    {
                        "name": "automatic_withdrawal",
                        "type": "u8"
                    },
                    {
                        "name": "transferable_by_sender",
                        "type": "u8"
                    },
                    {
                        "name": "transferable_by_recipient",
                        "type": "u8"
                    },
                    {
                        "name": "can_topup",
                        "type": "u8"
                    },
                    {
                        "name": "is_pausable",
                        "type": "u8"
                    },
                    {
                        "name": "rate_updatable",
                        "type": "u8"
                    },
                    {
                        "name": "start_now",
                        "type": "u8"
                    },
                    {
                        "name": "stream_name",
                        "type": {
                            "array": ["u8", 128]
                        }
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "FeeMap",
            "type": {
                "fields": [
                    {
                        "name": "tiers",
                        "type": {
                            "vec": {
                                "defined": {
                                    "name": "FeeTier"
                                }
                            }
                        }
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "FeeTier",
            "type": {
                "fields": [
                    {
                        "name": "min_amount",
                        "type": "u64"
                    },
                    {
                        "name": "max_amount",
                        "type": "u64"
                    },
                    {
                        "name": "fee",
                        "type": "u64"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "InitializeConfigParams",
            "type": {
                "fields": [
                    {
                        "name": "config_name",
                        "type": "string"
                    },
                    {
                        "name": "withdraw_account",
                        "type": "pubkey"
                    },
                    {
                        "name": "platform_fee",
                        "type": "u64"
                    },
                    {
                        "name": "base_fee",
                        "type": "u64"
                    },
                    {
                        "name": "frequencies",
                        "type": {
                            "vec": "u64"
                        }
                    },
                    {
                        "name": "fee_tier",
                        "type": {
                            "vec": {
                                "defined": {
                                    "name": "FeeTier"
                                }
                            }
                        }
                    },
                    {
                        "name": "fee_vault",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "MintEvent",
            "type": {
                "fields": [
                    {
                        "name": "mint",
                        "type": "pubkey"
                    },
                    {
                        "name": "minted_to",
                        "type": "pubkey"
                    },
                    {
                        "name": "amount",
                        "type": "u64"
                    },
                    {
                        "name": "mint_authority",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "PaymentStream",
            "repr": {
                "kind": "c"
            },
            "serialization": "bytemuck",
            "type": {
                "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": "stream_name",
                        "type": {
                            "array": ["u8", 128]
                        }
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "RemoveWhitelistParams",
            "type": {
                "fields": [
                    {
                        "name": "tokens",
                        "type": {
                            "vec": "pubkey"
                        }
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamCancelEvent",
            "type": {
                "fields": [
                    {
                        "name": "stream",
                        "type": "pubkey"
                    },
                    {
                        "name": "canceled_by",
                        "type": "pubkey"
                    },
                    {
                        "name": "sent_to_recipient",
                        "type": "u64"
                    },
                    {
                        "name": "sent_to_sender",
                        "type": "u64"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamChangeRecipientEvent",
            "type": {
                "fields": [
                    {
                        "name": "stream",
                        "type": "pubkey"
                    },
                    {
                        "name": "new_recipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "old_recipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "changed_by",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamConfig",
            "type": {
                "fields": [
                    {
                        "name": "config_name",
                        "type": "string"
                    },
                    {
                        "name": "admin",
                        "type": "pubkey"
                    },
                    {
                        "name": "withdraw_account",
                        "type": "pubkey"
                    },
                    {
                        "name": "whitelisted_tokens",
                        "type": {
                            "vec": "pubkey"
                        }
                    },
                    {
                        "name": "platform_fee",
                        "type": "u64"
                    },
                    {
                        "name": "base_fee",
                        "type": "u64"
                    },
                    {
                        "name": "frequencies",
                        "type": {
                            "vec": "u64"
                        }
                    },
                    {
                        "name": "fee_tiers",
                        "type": {
                            "defined": {
                                "name": "FeeMap"
                            }
                        }
                    },
                    {
                        "name": "fee_vault",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamCreateEvent",
            "type": {
                "fields": [
                    {
                        "name": "stream",
                        "type": "pubkey"
                    },
                    {
                        "name": "sender",
                        "type": "pubkey"
                    },
                    {
                        "name": "receiver",
                        "type": "pubkey"
                    },
                    {
                        "name": "transaction_fee",
                        "type": "u64"
                    },
                    {
                        "name": "token_mint",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamFinancials",
            "repr": {
                "kind": "c"
            },
            "serialization": "bytemuck",
            "type": {
                "fields": [
                    {
                        "name": "cliff_percentage",
                        "type": "u64"
                    },
                    {
                        "name": "deposited_amount",
                        "type": "u64"
                    },
                    {
                        "name": "withdrawn_amount",
                        "type": "u64"
                    },
                    {
                        "name": "stream_token",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamParties",
            "repr": {
                "kind": "c"
            },
            "serialization": "bytemuck",
            "type": {
                "fields": [
                    {
                        "name": "sender",
                        "type": "pubkey"
                    },
                    {
                        "name": "receiver",
                        "type": "pubkey"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamPauseResumeEvent",
            "type": {
                "fields": [
                    {
                        "name": "stream",
                        "type": "pubkey"
                    },
                    {
                        "name": "initiator",
                        "type": "pubkey"
                    },
                    {
                        "name": "paused",
                        "type": "bool"
                    },
                    {
                        "name": "paused_duration",
                        "type": "u64"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamPermissions",
            "repr": {
                "kind": "c"
            },
            "serialization": "bytemuck",
            "type": {
                "fields": [
                    {
                        "name": "cancelable_by_sender",
                        "type": "u8"
                    },
                    {
                        "name": "cancelable_by_recipient",
                        "type": "u8"
                    },
                    {
                        "name": "automatic_withdrawal",
                        "type": "u8"
                    },
                    {
                        "name": "transferable_by_sender",
                        "type": "u8"
                    },
                    {
                        "name": "transferable_by_recipient",
                        "type": "u8"
                    },
                    {
                        "name": "can_topup",
                        "type": "u8"
                    },
                    {
                        "name": "is_pausable",
                        "type": "u8"
                    },
                    {
                        "name": "rate_updatable",
                        "type": "u8"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamSchedule",
            "repr": {
                "kind": "c"
            },
            "serialization": "bytemuck",
            "type": {
                "fields": [
                    {
                        "name": "start_time",
                        "type": "i64"
                    },
                    {
                        "name": "end_time",
                        "type": "i64"
                    },
                    {
                        "name": "last_withdraw_time",
                        "type": "i64"
                    },
                    {
                        "name": "frequency",
                        "type": "u64"
                    },
                    {
                        "name": "duration",
                        "type": "u64"
                    },
                    {
                        "name": "paused_timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "paused_interval",
                        "type": "i64"
                    },
                    {
                        "name": "canceled_timestamp",
                        "type": "i64"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "StreamWithdrawEvent",
            "type": {
                "fields": [
                    {
                        "name": "stream",
                        "type": "pubkey"
                    },
                    {
                        "name": "withdrawer",
                        "type": "pubkey"
                    },
                    {
                        "name": "recipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "amount",
                        "type": "u64"
                    }
                ],
                "kind": "struct"
            }
        },
        {
            "name": "WhitelistTokensParams",
            "type": {
                "fields": [
                    {
                        "name": "tokens",
                        "type": {
                            "vec": "pubkey"
                        }
                    }
                ],
                "kind": "struct"
            }
        }
    ]
}
