"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RENT_CLAIM_DISCRIMINATOR = void 0;
exports.getRentClaimDiscriminatorBytes = getRentClaimDiscriminatorBytes;
exports.getRentClaimEncoder = getRentClaimEncoder;
exports.getRentClaimDecoder = getRentClaimDecoder;
exports.getRentClaimCodec = getRentClaimCodec;
exports.decodeRentClaim = decodeRentClaim;
exports.fetchRentClaim = fetchRentClaim;
exports.fetchMaybeRentClaim = fetchMaybeRentClaim;
exports.fetchAllRentClaim = fetchAllRentClaim;
exports.fetchAllMaybeRentClaim = fetchAllMaybeRentClaim;
exports.getRentClaimSize = getRentClaimSize;
var tslib_1 = require("tslib");
var kit_1 = require("@solana/kit");
exports.RENT_CLAIM_DISCRIMINATOR = new Uint8Array([
    13, 5, 183, 82, 60, 122, 72, 11,
]);
function getRentClaimDiscriminatorBytes() {
    return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.RENT_CLAIM_DISCRIMINATOR);
}
function getRentClaimEncoder() {
    return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
        ["discriminator", (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
        ["amount", (0, kit_1.getU64Encoder)()],
    ]), function (value) { return (tslib_1.__assign(tslib_1.__assign({}, value), { discriminator: exports.RENT_CLAIM_DISCRIMINATOR })); });
}
function getRentClaimDecoder() {
    return (0, kit_1.getStructDecoder)([
        ["discriminator", (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
        ["amount", (0, kit_1.getU64Decoder)()],
    ]);
}
function getRentClaimCodec() {
    return (0, kit_1.combineCodec)(getRentClaimEncoder(), getRentClaimDecoder());
}
function decodeRentClaim(encodedAccount) {
    return (0, kit_1.decodeAccount)(encodedAccount, getRentClaimDecoder());
}
function fetchRentClaim(rpc, address, config) {
    return tslib_1.__awaiter(this, void 0, void 0, function () {
        var maybeAccount;
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4, fetchMaybeRentClaim(rpc, address, config)];
                case 1:
                    maybeAccount = _a.sent();
                    (0, kit_1.assertAccountExists)(maybeAccount);
                    return [2, maybeAccount];
            }
        });
    });
}
function fetchMaybeRentClaim(rpc, address, config) {
    return tslib_1.__awaiter(this, void 0, void 0, function () {
        var maybeAccount;
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4, (0, kit_1.fetchEncodedAccount)(rpc, address, config)];
                case 1:
                    maybeAccount = _a.sent();
                    return [2, decodeRentClaim(maybeAccount)];
            }
        });
    });
}
function fetchAllRentClaim(rpc, addresses, config) {
    return tslib_1.__awaiter(this, void 0, void 0, function () {
        var maybeAccounts;
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4, fetchAllMaybeRentClaim(rpc, addresses, config)];
                case 1:
                    maybeAccounts = _a.sent();
                    (0, kit_1.assertAccountsExist)(maybeAccounts);
                    return [2, maybeAccounts];
            }
        });
    });
}
function fetchAllMaybeRentClaim(rpc, addresses, config) {
    return tslib_1.__awaiter(this, void 0, void 0, function () {
        var maybeAccounts;
        return tslib_1.__generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4, (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config)];
                case 1:
                    maybeAccounts = _a.sent();
                    return [2, maybeAccounts.map(function (maybeAccount) { return decodeRentClaim(maybeAccount); })];
            }
        });
    });
}
function getRentClaimSize() {
    return 16;
}
//# sourceMappingURL=rentClaim.js.map