flash-sdk 2.9.3 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PerpetualsClient.d.ts +16 -2
- package/dist/PerpetualsClient.js +155 -1
- package/dist/PoolConfig.d.ts +14 -1
- package/dist/PoolConfig.js +9 -2
- package/dist/PoolConfig.json +123 -0
- package/dist/idl/reward_distribution.d.ts +261 -0
- package/dist/idl/reward_distribution.js +263 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
| @@ -8,11 +8,12 @@ import { OraclePrice } from "./OraclePrice"; | |
| 8 8 | 
             
            import { CustodyAccount } from "./CustodyAccount";
         | 
| 9 9 | 
             
            import { Perpetuals } from "./idl/perpetuals";
         | 
| 10 10 | 
             
            import { PerpComposability } from "./idl/perp_composability";
         | 
| 11 | 
            +
            import { FbnftRewards } from "./idl/fbnft_rewards";
         | 
| 12 | 
            +
            import { RewardDistribution } from "./idl/reward_distribution";
         | 
| 11 13 | 
             
            import { SendTransactionOpts } from "./utils/rpc";
         | 
| 12 14 | 
             
            import { MarketConfig, PoolConfig, Token } from "./PoolConfig";
         | 
| 13 15 | 
             
            import { max } from "bn.js";
         | 
| 14 16 | 
             
            import { MarketAccount } from "./MarketAccount";
         | 
| 15 | 
            -
            import { FbnftRewards } from "./idl/fbnft_rewards";
         | 
| 16 17 | 
             
            export type PerpClientOptions = {
         | 
| 17 18 | 
             
                postSendTxCallback?: ({ txid }: {
         | 
| 18 19 | 
             
                    txid: string;
         | 
| @@ -25,6 +26,7 @@ export declare class PerpetualsClient { | |
| 25 26 | 
             
                program: Program<Perpetuals>;
         | 
| 26 27 | 
             
                programPerpComposability: Program<PerpComposability>;
         | 
| 27 28 | 
             
                programFbnftReward: Program<FbnftRewards>;
         | 
| 29 | 
            +
                programRewardDistribution: Program<RewardDistribution>;
         | 
| 28 30 | 
             
                admin: PublicKey;
         | 
| 29 31 | 
             
                programId: PublicKey;
         | 
| 30 32 | 
             
                composabilityProgramId: PublicKey;
         | 
| @@ -49,7 +51,7 @@ export declare class PerpetualsClient { | |
| 49 51 | 
             
                private prioritizationFee;
         | 
| 50 52 | 
             
                private useExtOracleAccount;
         | 
| 51 53 | 
             
                private txConfirmationCommitment;
         | 
| 52 | 
            -
                constructor(provider: AnchorProvider, programId: PublicKey, composabilityProgramId: PublicKey, fbNftRewardProgramId: PublicKey, opts: PerpClientOptions, useExtOracleAccount?: boolean);
         | 
| 54 | 
            +
                constructor(provider: AnchorProvider, programId: PublicKey, composabilityProgramId: PublicKey, fbNftRewardProgramId: PublicKey, rewardDistributionProgramId: PublicKey, opts: PerpClientOptions, useExtOracleAccount?: boolean);
         | 
| 53 55 | 
             
                setPrioritizationFee: (fee: number) => void;
         | 
| 54 56 | 
             
                loadAddressLookupTable: (poolConfig: PoolConfig) => Promise<void>;
         | 
| 55 57 | 
             
                findProgramAddress: (label: string, extraSeeds?: any) => {
         | 
| @@ -2405,5 +2407,17 @@ export declare class PerpetualsClient { | |
| 2405 2407 | 
             
                    instructions: TransactionInstruction[];
         | 
| 2406 2408 | 
             
                    additionalSigners: Signer[];
         | 
| 2407 2409 | 
             
                }>;
         | 
| 2410 | 
            +
                initRewardDistribution: (rewardSymbol: string, poolConfig: PoolConfig) => Promise<{
         | 
| 2411 | 
            +
                    instructions: TransactionInstruction[];
         | 
| 2412 | 
            +
                    additionalSigners: Signer[];
         | 
| 2413 | 
            +
                }>;
         | 
| 2414 | 
            +
                rewardDistribution: (counter: BN, owner: PublicKey, rewardAmount: BN, rewardSymbol: string, poolConfig: PoolConfig) => Promise<{
         | 
| 2415 | 
            +
                    instructions: TransactionInstruction[];
         | 
| 2416 | 
            +
                    additionalSigners: Signer[];
         | 
| 2417 | 
            +
                }>;
         | 
| 2418 | 
            +
                collectReward: (counter: BN, owner: PublicKey, rewardSymbol: string, poolConfig: PoolConfig, createUserATA?: boolean) => Promise<{
         | 
| 2419 | 
            +
                    instructions: TransactionInstruction[];
         | 
| 2420 | 
            +
                    additionalSigners: Signer[];
         | 
| 2421 | 
            +
                }>;
         | 
| 2408 2422 | 
             
                sendTransaction(ixs: TransactionInstruction[], opts?: SendTransactionOpts): Promise<string>;
         | 
| 2409 2423 | 
             
            }
         | 
    
        package/dist/PerpetualsClient.js
    CHANGED
    
    | @@ -71,13 +71,14 @@ var OraclePrice_1 = require("./OraclePrice"); | |
| 71 71 | 
             
            var perpetuals_1 = require("./idl/perpetuals");
         | 
| 72 72 | 
             
            var perp_composability_1 = require("./idl/perp_composability");
         | 
| 73 73 | 
             
            var fbnft_rewards_1 = require("./idl/fbnft_rewards");
         | 
| 74 | 
            +
            var reward_distribution_1 = require("./idl/reward_distribution");
         | 
| 74 75 | 
             
            var rpc_1 = require("./utils/rpc");
         | 
| 75 76 | 
             
            var utils_1 = require("./utils");
         | 
| 76 77 | 
             
            var constants_1 = require("./constants");
         | 
| 77 78 | 
             
            var bignumber_js_1 = __importDefault(require("bignumber.js"));
         | 
| 78 79 | 
             
            var getNftAccounts_1 = require("./utils/getNftAccounts");
         | 
| 79 80 | 
             
            var PerpetualsClient = (function () {
         | 
| 80 | 
            -
                function PerpetualsClient(provider, programId, composabilityProgramId, fbNftRewardProgramId, opts, useExtOracleAccount) {
         | 
| 81 | 
            +
                function PerpetualsClient(provider, programId, composabilityProgramId, fbNftRewardProgramId, rewardDistributionProgramId, opts, useExtOracleAccount) {
         | 
| 81 82 | 
             
                    if (useExtOracleAccount === void 0) { useExtOracleAccount = false; }
         | 
| 82 83 | 
             
                    var _this = this;
         | 
| 83 84 | 
             
                    var _a;
         | 
| @@ -4474,11 +4475,164 @@ var PerpetualsClient = (function () { | |
| 4474 4475 | 
             
                            }
         | 
| 4475 4476 | 
             
                        });
         | 
| 4476 4477 | 
             
                    }); };
         | 
| 4478 | 
            +
                    this.initRewardDistribution = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
         | 
| 4479 | 
            +
                        var publicKey, rewardMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, transferAuthority, initRewardVault, err_28;
         | 
| 4480 | 
            +
                        return __generator(this, function (_a) {
         | 
| 4481 | 
            +
                            switch (_a.label) {
         | 
| 4482 | 
            +
                                case 0:
         | 
| 4483 | 
            +
                                    publicKey = this.provider.wallet.publicKey;
         | 
| 4484 | 
            +
                                    rewardMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
         | 
| 4485 | 
            +
                                    instructions = [];
         | 
| 4486 | 
            +
                                    additionalSigners = [];
         | 
| 4487 | 
            +
                                    _a.label = 1;
         | 
| 4488 | 
            +
                                case 1:
         | 
| 4489 | 
            +
                                    _a.trys.push([1, 3, , 4]);
         | 
| 4490 | 
            +
                                    fbNftProgramData = web3_js_1.PublicKey.findProgramAddressSync([this.programRewardDistribution.programId.toBuffer()], new web3_js_1.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111"))[0];
         | 
| 4491 | 
            +
                                    rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programRewardDistribution.programId)[0];
         | 
| 4492 | 
            +
                                    rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programRewardDistribution.programId)[0];
         | 
| 4493 | 
            +
                                    transferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programRewardDistribution.programId)[0];
         | 
| 4494 | 
            +
                                    return [4, this.programRewardDistribution.methods
         | 
| 4495 | 
            +
                                            .initRewardVault()
         | 
| 4496 | 
            +
                                            .accounts({
         | 
| 4497 | 
            +
                                            admin: publicKey,
         | 
| 4498 | 
            +
                                            transferAuthority: transferAuthority,
         | 
| 4499 | 
            +
                                            rewardVault: rewardVault,
         | 
| 4500 | 
            +
                                            rewardMint: rewardMint,
         | 
| 4501 | 
            +
                                            rewardTokenAccount: rewardTokenAccount,
         | 
| 4502 | 
            +
                                            programData: fbNftProgramData,
         | 
| 4503 | 
            +
                                            systemProgram: web3_js_1.SystemProgram.programId,
         | 
| 4504 | 
            +
                                            tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
         | 
| 4505 | 
            +
                                            rent: web3_js_1.SYSVAR_RENT_PUBKEY
         | 
| 4506 | 
            +
                                        })
         | 
| 4507 | 
            +
                                            .instruction()];
         | 
| 4508 | 
            +
                                case 2:
         | 
| 4509 | 
            +
                                    initRewardVault = _a.sent();
         | 
| 4510 | 
            +
                                    instructions.push(initRewardVault);
         | 
| 4511 | 
            +
                                    return [3, 4];
         | 
| 4512 | 
            +
                                case 3:
         | 
| 4513 | 
            +
                                    err_28 = _a.sent();
         | 
| 4514 | 
            +
                                    console.log("rewardDistribution InitRewardVault error:: ", err_28);
         | 
| 4515 | 
            +
                                    throw err_28;
         | 
| 4516 | 
            +
                                case 4: return [2, {
         | 
| 4517 | 
            +
                                        instructions: __spreadArray([], instructions, true),
         | 
| 4518 | 
            +
                                        additionalSigners: additionalSigners
         | 
| 4519 | 
            +
                                    }];
         | 
| 4520 | 
            +
                            }
         | 
| 4521 | 
            +
                        });
         | 
| 4522 | 
            +
                    }); };
         | 
| 4523 | 
            +
                    this.rewardDistribution = function (counter, owner, rewardAmount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
         | 
| 4524 | 
            +
                        var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, rewardRecord, distributeReward, err_29;
         | 
| 4525 | 
            +
                        return __generator(this, function (_a) {
         | 
| 4526 | 
            +
                            switch (_a.label) {
         | 
| 4527 | 
            +
                                case 0:
         | 
| 4528 | 
            +
                                    publicKey = this.provider.wallet.publicKey;
         | 
| 4529 | 
            +
                                    rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
         | 
| 4530 | 
            +
                                    instructions = [];
         | 
| 4531 | 
            +
                                    additionalSigners = [];
         | 
| 4532 | 
            +
                                    _a.label = 1;
         | 
| 4533 | 
            +
                                case 1:
         | 
| 4534 | 
            +
                                    _a.trys.push([1, 4, , 5]);
         | 
| 4535 | 
            +
                                    return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey)];
         | 
| 4536 | 
            +
                                case 2:
         | 
| 4537 | 
            +
                                    fundingAccount = _a.sent();
         | 
| 4538 | 
            +
                                    rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programRewardDistribution.programId)[0];
         | 
| 4539 | 
            +
                                    rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programRewardDistribution.programId)[0];
         | 
| 4540 | 
            +
                                    rewardRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_record"), owner.toBuffer(), rewardVault.toBuffer(), counter.toArrayLike(Buffer, 'le', 8)], this.programRewardDistribution.programId)[0];
         | 
| 4541 | 
            +
                                    return [4, this.programRewardDistribution.methods
         | 
| 4542 | 
            +
                                            .distributeRewards({
         | 
| 4543 | 
            +
                                            rewardAmount: rewardAmount
         | 
| 4544 | 
            +
                                        })
         | 
| 4545 | 
            +
                                            .accounts({
         | 
| 4546 | 
            +
                                            admin: publicKey,
         | 
| 4547 | 
            +
                                            owner: owner,
         | 
| 4548 | 
            +
                                            fundingAccount: fundingAccount,
         | 
| 4549 | 
            +
                                            rewardVault: rewardVault,
         | 
| 4550 | 
            +
                                            rewardTokenAccount: rewardTokenAccount,
         | 
| 4551 | 
            +
                                            rewardRecord: rewardRecord,
         | 
| 4552 | 
            +
                                            systemProgram: web3_js_1.SystemProgram.programId,
         | 
| 4553 | 
            +
                                            tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
         | 
| 4554 | 
            +
                                            rent: web3_js_1.SYSVAR_RENT_PUBKEY
         | 
| 4555 | 
            +
                                        })
         | 
| 4556 | 
            +
                                            .instruction()];
         | 
| 4557 | 
            +
                                case 3:
         | 
| 4558 | 
            +
                                    distributeReward = _a.sent();
         | 
| 4559 | 
            +
                                    instructions.push(distributeReward);
         | 
| 4560 | 
            +
                                    return [3, 5];
         | 
| 4561 | 
            +
                                case 4:
         | 
| 4562 | 
            +
                                    err_29 = _a.sent();
         | 
| 4563 | 
            +
                                    console.log("rewardDistribution distributeReward error:: ", err_29);
         | 
| 4564 | 
            +
                                    throw err_29;
         | 
| 4565 | 
            +
                                case 5: return [2, {
         | 
| 4566 | 
            +
                                        instructions: __spreadArray([], instructions, true),
         | 
| 4567 | 
            +
                                        additionalSigners: additionalSigners
         | 
| 4568 | 
            +
                                    }];
         | 
| 4569 | 
            +
                            }
         | 
| 4570 | 
            +
                        });
         | 
| 4571 | 
            +
                    }); };
         | 
| 4572 | 
            +
                    this.collectReward = function (counter, owner, rewardSymbol, poolConfig, createUserATA) {
         | 
| 4573 | 
            +
                        if (createUserATA === void 0) { createUserATA = true; }
         | 
| 4574 | 
            +
                        return __awaiter(_this, void 0, void 0, function () {
         | 
| 4575 | 
            +
                            var publicKey, rewardCustodyMint, instructions, additionalSigners, receivingTokenAccount, _a, rewardVault, rewardTokenAccount, rewardRecord, transferAuthority, collectNftReward, err_30;
         | 
| 4576 | 
            +
                            return __generator(this, function (_b) {
         | 
| 4577 | 
            +
                                switch (_b.label) {
         | 
| 4578 | 
            +
                                    case 0:
         | 
| 4579 | 
            +
                                        publicKey = this.provider.wallet.publicKey;
         | 
| 4580 | 
            +
                                        rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
         | 
| 4581 | 
            +
                                        instructions = [];
         | 
| 4582 | 
            +
                                        additionalSigners = [];
         | 
| 4583 | 
            +
                                        _b.label = 1;
         | 
| 4584 | 
            +
                                    case 1:
         | 
| 4585 | 
            +
                                        _b.trys.push([1, 6, , 7]);
         | 
| 4586 | 
            +
                                        return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey)];
         | 
| 4587 | 
            +
                                    case 2:
         | 
| 4588 | 
            +
                                        receivingTokenAccount = _b.sent();
         | 
| 4589 | 
            +
                                        _a = createUserATA;
         | 
| 4590 | 
            +
                                        if (!_a) return [3, 4];
         | 
| 4591 | 
            +
                                        return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
         | 
| 4592 | 
            +
                                    case 3:
         | 
| 4593 | 
            +
                                        _a = !(_b.sent());
         | 
| 4594 | 
            +
                                        _b.label = 4;
         | 
| 4595 | 
            +
                                    case 4:
         | 
| 4596 | 
            +
                                        if (_a) {
         | 
| 4597 | 
            +
                                            instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint));
         | 
| 4598 | 
            +
                                        }
         | 
| 4599 | 
            +
                                        rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programRewardDistribution.programId)[0];
         | 
| 4600 | 
            +
                                        rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programRewardDistribution.programId)[0];
         | 
| 4601 | 
            +
                                        rewardRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_record"), owner.toBuffer(), rewardVault.toBuffer(), counter.toArrayLike(Buffer, 'le', 8)], this.programRewardDistribution.programId)[0];
         | 
| 4602 | 
            +
                                        transferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programRewardDistribution.programId)[0];
         | 
| 4603 | 
            +
                                        return [4, this.programRewardDistribution.methods
         | 
| 4604 | 
            +
                                                .collectReward()
         | 
| 4605 | 
            +
                                                .accounts({
         | 
| 4606 | 
            +
                                                owner: publicKey,
         | 
| 4607 | 
            +
                                                receivingAccount: receivingTokenAccount,
         | 
| 4608 | 
            +
                                                rewardVault: rewardVault,
         | 
| 4609 | 
            +
                                                rewardTokenAccount: rewardTokenAccount,
         | 
| 4610 | 
            +
                                                rewardRecord: rewardRecord,
         | 
| 4611 | 
            +
                                                transferAuthority: transferAuthority,
         | 
| 4612 | 
            +
                                                tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
         | 
| 4613 | 
            +
                                            })
         | 
| 4614 | 
            +
                                                .instruction()];
         | 
| 4615 | 
            +
                                    case 5:
         | 
| 4616 | 
            +
                                        collectNftReward = _b.sent();
         | 
| 4617 | 
            +
                                        instructions.push(collectNftReward);
         | 
| 4618 | 
            +
                                        return [3, 7];
         | 
| 4619 | 
            +
                                    case 6:
         | 
| 4620 | 
            +
                                        err_30 = _b.sent();
         | 
| 4621 | 
            +
                                        throw err_30;
         | 
| 4622 | 
            +
                                    case 7: return [2, {
         | 
| 4623 | 
            +
                                            instructions: __spreadArray([], instructions, true),
         | 
| 4624 | 
            +
                                            additionalSigners: additionalSigners
         | 
| 4625 | 
            +
                                        }];
         | 
| 4626 | 
            +
                                }
         | 
| 4627 | 
            +
                            });
         | 
| 4628 | 
            +
                        });
         | 
| 4629 | 
            +
                    };
         | 
| 4477 4630 | 
             
                    this.provider = provider;
         | 
| 4478 4631 | 
             
                    (0, anchor_1.setProvider)(provider);
         | 
| 4479 4632 | 
             
                    this.program = new anchor_1.Program(perpetuals_1.IDL, programId);
         | 
| 4480 4633 | 
             
                    this.programPerpComposability = new anchor_1.Program(perp_composability_1.IDL, composabilityProgramId);
         | 
| 4481 4634 | 
             
                    this.programFbnftReward = new anchor_1.Program(fbnft_rewards_1.IDL, fbNftRewardProgramId);
         | 
| 4635 | 
            +
                    this.programRewardDistribution = new anchor_1.Program(reward_distribution_1.IDL, rewardDistributionProgramId);
         | 
| 4482 4636 | 
             
                    this.programId = programId;
         | 
| 4483 4637 | 
             
                    this.composabilityProgramId = composabilityProgramId;
         | 
| 4484 4638 | 
             
                    this.admin = this.provider.wallet.publicKey;
         | 
    
        package/dist/PoolConfig.d.ts
    CHANGED
    
    | @@ -59,10 +59,23 @@ export declare class PoolConfig { | |
| 59 59 | 
             
                addressLookupTableAddresses: PublicKey[];
         | 
| 60 60 | 
             
                backupOracle: PublicKey;
         | 
| 61 61 | 
             
                nftCollectionAddress: PublicKey;
         | 
| 62 | 
            +
                rewardDistributionProgram: {
         | 
| 63 | 
            +
                    programId: PublicKey;
         | 
| 64 | 
            +
                    transferAuthority: PublicKey;
         | 
| 65 | 
            +
                    rewardVault: PublicKey;
         | 
| 66 | 
            +
                    rewardMint: PublicKey;
         | 
| 67 | 
            +
                    rewardTokenAccount: PublicKey;
         | 
| 68 | 
            +
                };
         | 
| 62 69 | 
             
                tokens: Token[];
         | 
| 63 70 | 
             
                custodies: CustodyConfig[];
         | 
| 64 71 | 
             
                markets: MarketConfig[];
         | 
| 65 | 
            -
                constructor(programId: PublicKey, perpComposibilityProgramId: PublicKey, fbNftRewardProgramId: PublicKey, cluster: Cluster, poolName: string, poolAddress: PublicKey, lpTokenMint: PublicKey, flpTokenAccount: PublicKey, lpDecimals: number, lpTokenSymbol: string, perpetuals: PublicKey, transferAuthority: PublicKey, multisig: PublicKey, addressLookupTableAddresses: PublicKey[], backupOracle: PublicKey, nftCollectionAddress: PublicKey,  | 
| 72 | 
            +
                constructor(programId: PublicKey, perpComposibilityProgramId: PublicKey, fbNftRewardProgramId: PublicKey, cluster: Cluster, poolName: string, poolAddress: PublicKey, lpTokenMint: PublicKey, flpTokenAccount: PublicKey, lpDecimals: number, lpTokenSymbol: string, perpetuals: PublicKey, transferAuthority: PublicKey, multisig: PublicKey, addressLookupTableAddresses: PublicKey[], backupOracle: PublicKey, nftCollectionAddress: PublicKey, rewardDistributionProgram: {
         | 
| 73 | 
            +
                    programId: PublicKey;
         | 
| 74 | 
            +
                    transferAuthority: PublicKey;
         | 
| 75 | 
            +
                    rewardVault: PublicKey;
         | 
| 76 | 
            +
                    rewardMint: PublicKey;
         | 
| 77 | 
            +
                    rewardTokenAccount: PublicKey;
         | 
| 78 | 
            +
                }, tokens: Token[], custodies: CustodyConfig[], markets: MarketConfig[]);
         | 
| 66 79 | 
             
                getAllTokenMints(): PublicKey[];
         | 
| 67 80 | 
             
                getMarketConfigByPk(marketAccountPk: PublicKey): MarketConfig;
         | 
| 68 81 | 
             
                getMarketConfig(targetCustody: PublicKey, collateralCustody: PublicKey, side: Side): MarketConfig | null;
         | 
    
        package/dist/PoolConfig.js
    CHANGED
    
    | @@ -19,7 +19,7 @@ var web3_js_1 = require("@solana/web3.js"); | |
| 19 19 | 
             
            var PoolConfig_json_1 = __importDefault(require("./PoolConfig.json"));
         | 
| 20 20 | 
             
            var types_1 = require("./types");
         | 
| 21 21 | 
             
            var PoolConfig = (function () {
         | 
| 22 | 
            -
                function PoolConfig(programId, perpComposibilityProgramId, fbNftRewardProgramId, cluster, poolName, poolAddress, lpTokenMint, flpTokenAccount, lpDecimals, lpTokenSymbol, perpetuals, transferAuthority, multisig, addressLookupTableAddresses, backupOracle, nftCollectionAddress, tokens, custodies, markets) {
         | 
| 22 | 
            +
                function PoolConfig(programId, perpComposibilityProgramId, fbNftRewardProgramId, cluster, poolName, poolAddress, lpTokenMint, flpTokenAccount, lpDecimals, lpTokenSymbol, perpetuals, transferAuthority, multisig, addressLookupTableAddresses, backupOracle, nftCollectionAddress, rewardDistributionProgram, tokens, custodies, markets) {
         | 
| 23 23 | 
             
                    var _this = this;
         | 
| 24 24 | 
             
                    this.programId = programId;
         | 
| 25 25 | 
             
                    this.perpComposibilityProgramId = perpComposibilityProgramId;
         | 
| @@ -37,6 +37,7 @@ var PoolConfig = (function () { | |
| 37 37 | 
             
                    this.addressLookupTableAddresses = addressLookupTableAddresses;
         | 
| 38 38 | 
             
                    this.backupOracle = backupOracle;
         | 
| 39 39 | 
             
                    this.nftCollectionAddress = nftCollectionAddress;
         | 
| 40 | 
            +
                    this.rewardDistributionProgram = rewardDistributionProgram;
         | 
| 40 41 | 
             
                    this.tokens = tokens;
         | 
| 41 42 | 
             
                    this.custodies = custodies;
         | 
| 42 43 | 
             
                    this.markets = markets;
         | 
| @@ -162,7 +163,13 @@ var PoolConfig = (function () { | |
| 162 163 | 
             
                    catch (error) {
         | 
| 163 164 | 
             
                        console.log("ERROR: buildPoolconfigFromJson  unable to load markets ");
         | 
| 164 165 | 
             
                    }
         | 
| 165 | 
            -
                    return new PoolConfig(new web3_js_1.PublicKey(poolConfig.programId), new web3_js_1.PublicKey(poolConfig.perpComposibilityProgramId), new web3_js_1.PublicKey(poolConfig.fbNftRewardProgramId), poolConfig.cluster, poolConfig.poolName, new web3_js_1.PublicKey(poolConfig.poolAddress), new web3_js_1.PublicKey(poolConfig.lpTokenMint), new web3_js_1.PublicKey(poolConfig.flpTokenAccount), poolConfig.lpDecimals, poolConfig.lpTokenSymbol, new web3_js_1.PublicKey(poolConfig.perpetuals), new web3_js_1.PublicKey(poolConfig.transferAuthority), new web3_js_1.PublicKey(poolConfig.multisig), addressLookupTableAddresses, new web3_js_1.PublicKey(poolConfig.backupOracle), new web3_js_1.PublicKey(poolConfig.nftCollectionAddress),  | 
| 166 | 
            +
                    return new PoolConfig(new web3_js_1.PublicKey(poolConfig.programId), new web3_js_1.PublicKey(poolConfig.perpComposibilityProgramId), new web3_js_1.PublicKey(poolConfig.fbNftRewardProgramId), poolConfig.cluster, poolConfig.poolName, new web3_js_1.PublicKey(poolConfig.poolAddress), new web3_js_1.PublicKey(poolConfig.lpTokenMint), new web3_js_1.PublicKey(poolConfig.flpTokenAccount), poolConfig.lpDecimals, poolConfig.lpTokenSymbol, new web3_js_1.PublicKey(poolConfig.perpetuals), new web3_js_1.PublicKey(poolConfig.transferAuthority), new web3_js_1.PublicKey(poolConfig.multisig), addressLookupTableAddresses, new web3_js_1.PublicKey(poolConfig.backupOracle), new web3_js_1.PublicKey(poolConfig.nftCollectionAddress), {
         | 
| 167 | 
            +
                        programId: new web3_js_1.PublicKey(poolConfig.rewardDistributionProgram.programId),
         | 
| 168 | 
            +
                        rewardMint: new web3_js_1.PublicKey(poolConfig.rewardDistributionProgram.rewardMint),
         | 
| 169 | 
            +
                        rewardTokenAccount: new web3_js_1.PublicKey(poolConfig.rewardDistributionProgram.rewardTokenAccount),
         | 
| 170 | 
            +
                        rewardVault: new web3_js_1.PublicKey(poolConfig.rewardDistributionProgram.rewardVault),
         | 
| 171 | 
            +
                        transferAuthority: new web3_js_1.PublicKey(poolConfig.rewardDistributionProgram.transferAuthority),
         | 
| 172 | 
            +
                    }, tokens, custodies, markets);
         | 
| 166 173 | 
             
                };
         | 
| 167 174 | 
             
                PoolConfig.fromIdsByName = function (name, cluster) {
         | 
| 168 175 | 
             
                    var poolConfig = PoolConfig_json_1.default.pools.find(function (pool) { return pool['poolName'] === name && cluster === pool['cluster']; });
         | 
    
        package/dist/PoolConfig.json
    CHANGED
    
    | @@ -26,6 +26,13 @@ | |
| 26 26 | 
             
                        ],
         | 
| 27 27 | 
             
                        "backupOracle": "AjAubETeBLhebBxLcErmzbavZfqF9bCxkpRAdyJtoi9G",
         | 
| 28 28 | 
             
                        "nftCollectionAddress": "H4EQ8pcE7PQSQGG1WYW4hAA1nizU6ULYipHZcYk9b64u",
         | 
| 29 | 
            +
                        "rewardDistributionProgram": {
         | 
| 30 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 31 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 32 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 33 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 34 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 35 | 
            +
                        },
         | 
| 29 36 | 
             
                        "tokens": [
         | 
| 30 37 | 
             
                            {
         | 
| 31 38 | 
             
                                "symbol": "USDC",
         | 
| @@ -250,6 +257,13 @@ | |
| 250 257 | 
             
                        ],
         | 
| 251 258 | 
             
                        "backupOracle": "AjAubETeBLhebBxLcErmzbavZfqF9bCxkpRAdyJtoi9G",
         | 
| 252 259 | 
             
                        "nftCollectionAddress": "H4EQ8pcE7PQSQGG1WYW4hAA1nizU6ULYipHZcYk9b64u",
         | 
| 260 | 
            +
                        "rewardDistributionProgram": {
         | 
| 261 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 262 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 263 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 264 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 265 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 266 | 
            +
                        },
         | 
| 253 267 | 
             
                        "tokens": [
         | 
| 254 268 | 
             
                            {
         | 
| 255 269 | 
             
                                "symbol": "USDC",
         | 
| @@ -569,6 +583,13 @@ | |
| 569 583 | 
             
                        ],
         | 
| 570 584 | 
             
                        "backupOracle": "AjAubETeBLhebBxLcErmzbavZfqF9bCxkpRAdyJtoi9G",
         | 
| 571 585 | 
             
                        "nftCollectionAddress": "H4EQ8pcE7PQSQGG1WYW4hAA1nizU6ULYipHZcYk9b64u",
         | 
| 586 | 
            +
                        "rewardDistributionProgram": {
         | 
| 587 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 588 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 589 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 590 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 591 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 592 | 
            +
                        },
         | 
| 572 593 | 
             
                        "tokens": [
         | 
| 573 594 | 
             
                            {
         | 
| 574 595 | 
             
                                "symbol": "USDC",
         | 
| @@ -635,6 +656,17 @@ | |
| 635 656 | 
             
                                "isVirtual": false,
         | 
| 636 657 | 
             
                                "pythTicker": "Crypto.RAY/USD",
         | 
| 637 658 | 
             
                                "pythPriceId": "0x91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a"
         | 
| 659 | 
            +
                            },
         | 
| 660 | 
            +
                            {
         | 
| 661 | 
            +
                                "symbol": "KMNO",
         | 
| 662 | 
            +
                                "mintKey": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
         | 
| 663 | 
            +
                                "decimals": 6,
         | 
| 664 | 
            +
                                "usdPrecision": 4,
         | 
| 665 | 
            +
                                "tokenPrecision": 4,
         | 
| 666 | 
            +
                                "isStable": false,
         | 
| 667 | 
            +
                                "isVirtual": false,
         | 
| 668 | 
            +
                                "pythTicker": "Crypto.KMNO/USD",
         | 
| 669 | 
            +
                                "pythPriceId": "0xb17e5bc5de742a8a378b54c9c75442b7d51e30ada63f28d9bd28d3c0e26511a0"
         | 
| 638 670 | 
             
                            }
         | 
| 639 671 | 
             
                        ],
         | 
| 640 672 | 
             
                        "custodies": [
         | 
| @@ -733,6 +765,22 @@ | |
| 733 765 | 
             
                                "extOracleAddress": "Hhipna3EoWR7u8pDruUg8RxhP5F6XLh6SEHMVDmZhWi8",
         | 
| 734 766 | 
             
                                "pythTicker": "Crypto.RAY/USD",
         | 
| 735 767 | 
             
                                "pythPriceId": "0x91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a"
         | 
| 768 | 
            +
                            },
         | 
| 769 | 
            +
                            {
         | 
| 770 | 
            +
                                "custodyId": 6,
         | 
| 771 | 
            +
                                "custodyAccount": "5JtPiHFmkb1nv1Qvs3sryLgXmjs8p5iQexAseC2Ljjzg",
         | 
| 772 | 
            +
                                "tokenAccount": "EofwtSbFk3fsVWYKdYp5nzkhK5At8yRM6YA2YxNE5iWV",
         | 
| 773 | 
            +
                                "symbol": "KMNO",
         | 
| 774 | 
            +
                                "mintKey": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
         | 
| 775 | 
            +
                                "decimals": 6,
         | 
| 776 | 
            +
                                "usdPrecision": 4,
         | 
| 777 | 
            +
                                "tokenPrecision": 4,
         | 
| 778 | 
            +
                                "isStable": false,
         | 
| 779 | 
            +
                                "isVirtual": false,
         | 
| 780 | 
            +
                                "intOracleAddress": "4tNprL7ziCzxHotNnuNWE8Z8znvQbg2irng4SEyjy9rs",
         | 
| 781 | 
            +
                                "extOracleAddress": "ArjngUHXrQPr1wH9Bqrji9hdDQirM6ijbzc1Jj1fXUk7",
         | 
| 782 | 
            +
                                "pythTicker": "Crypto.KMNO/USD",
         | 
| 783 | 
            +
                                "pythPriceId": "0xb17e5bc5de742a8a378b54c9c75442b7d51e30ada63f28d9bd28d3c0e26511a0"
         | 
| 736 784 | 
             
                            }
         | 
| 737 785 | 
             
                        ],
         | 
| 738 786 | 
             
                        "markets": [
         | 
| @@ -865,6 +913,32 @@ | |
| 865 913 | 
             
                                "collateralCustodyId": 0,
         | 
| 866 914 | 
             
                                "targetMint": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
         | 
| 867 915 | 
             
                                "collateralMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
         | 
| 916 | 
            +
                            },
         | 
| 917 | 
            +
                            {
         | 
| 918 | 
            +
                                "marketId": 10,
         | 
| 919 | 
            +
                                "marketAccount": "FaT568uYioPFsf2rFgSSFrNyrqHZfG9LZBReaq56dSYJ",
         | 
| 920 | 
            +
                                "pool": "D6bfytnxoZBSzJM7fcixg5sgWJ2hj8SbwkPvb2r8XpbH",
         | 
| 921 | 
            +
                                "targetCustody": "5JtPiHFmkb1nv1Qvs3sryLgXmjs8p5iQexAseC2Ljjzg",
         | 
| 922 | 
            +
                                "collateralCustody": "5JtPiHFmkb1nv1Qvs3sryLgXmjs8p5iQexAseC2Ljjzg",
         | 
| 923 | 
            +
                                "side": "long",
         | 
| 924 | 
            +
                                "maxLev": 50,
         | 
| 925 | 
            +
                                "targetCustodyId": 6,
         | 
| 926 | 
            +
                                "collateralCustodyId": 6,
         | 
| 927 | 
            +
                                "targetMint": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
         | 
| 928 | 
            +
                                "collateralMint": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS"
         | 
| 929 | 
            +
                            },
         | 
| 930 | 
            +
                            {
         | 
| 931 | 
            +
                                "marketId": 11,
         | 
| 932 | 
            +
                                "marketAccount": "Hfkgp91DXQivzd8XihGHh7ansPm1SFfosNZ5CN3yz1PW",
         | 
| 933 | 
            +
                                "pool": "D6bfytnxoZBSzJM7fcixg5sgWJ2hj8SbwkPvb2r8XpbH",
         | 
| 934 | 
            +
                                "targetCustody": "5JtPiHFmkb1nv1Qvs3sryLgXmjs8p5iQexAseC2Ljjzg",
         | 
| 935 | 
            +
                                "collateralCustody": "6fiadNoZVTha5NdaktZgJ3PHm7bncZpiqGvFbCsrUv72",
         | 
| 936 | 
            +
                                "side": "short",
         | 
| 937 | 
            +
                                "maxLev": 50,
         | 
| 938 | 
            +
                                "targetCustodyId": 6,
         | 
| 939 | 
            +
                                "collateralCustodyId": 0,
         | 
| 940 | 
            +
                                "targetMint": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
         | 
| 941 | 
            +
                                "collateralMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
         | 
| 868 942 | 
             
                            }
         | 
| 869 943 | 
             
                        ]
         | 
| 870 944 | 
             
                    },
         | 
| @@ -888,6 +962,13 @@ | |
| 888 962 | 
             
                        ],
         | 
| 889 963 | 
             
                        "backupOracle": "AjAubETeBLhebBxLcErmzbavZfqF9bCxkpRAdyJtoi9G",
         | 
| 890 964 | 
             
                        "nftCollectionAddress": "H4EQ8pcE7PQSQGG1WYW4hAA1nizU6ULYipHZcYk9b64u",
         | 
| 965 | 
            +
                        "rewardDistributionProgram": {
         | 
| 966 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 967 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 968 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 969 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 970 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 971 | 
            +
                        },
         | 
| 891 972 | 
             
                        "tokens": [
         | 
| 892 973 | 
             
                            {
         | 
| 893 974 | 
             
                                "symbol": "USDC",
         | 
| @@ -995,6 +1076,13 @@ | |
| 995 1076 | 
             
                        ],
         | 
| 996 1077 | 
             
                        "backupOracle": "AjAubETeBLhebBxLcErmzbavZfqF9bCxkpRAdyJtoi9G",
         | 
| 997 1078 | 
             
                        "nftCollectionAddress": "H4EQ8pcE7PQSQGG1WYW4hAA1nizU6ULYipHZcYk9b64u",
         | 
| 1079 | 
            +
                        "rewardDistributionProgram": {
         | 
| 1080 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 1081 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 1082 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 1083 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 1084 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 1085 | 
            +
                        },
         | 
| 998 1086 | 
             
                        "tokens": [
         | 
| 999 1087 | 
             
                            {
         | 
| 1000 1088 | 
             
                                "symbol": "USDC",
         | 
| @@ -1102,6 +1190,13 @@ | |
| 1102 1190 | 
             
                        ],
         | 
| 1103 1191 | 
             
                        "backupOracle": "AHaKsRB4tsGSzFfFqAxUpfRRmsUj5EhwHSxSXK2UGRp5",
         | 
| 1104 1192 | 
             
                        "nftCollectionAddress": "3rkRzHdN7dXy5CQfX3Lz6UBBJ2F9n58VEpvDSmbaVHt9",
         | 
| 1193 | 
            +
                        "rewardDistributionProgram": {
         | 
| 1194 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 1195 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 1196 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 1197 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 1198 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 1199 | 
            +
                        },
         | 
| 1105 1200 | 
             
                        "tokens": [
         | 
| 1106 1201 | 
             
                            {
         | 
| 1107 1202 | 
             
                                "symbol": "USDC",
         | 
| @@ -1326,6 +1421,13 @@ | |
| 1326 1421 | 
             
                        ],
         | 
| 1327 1422 | 
             
                        "backupOracle": "AHaKsRB4tsGSzFfFqAxUpfRRmsUj5EhwHSxSXK2UGRp5",
         | 
| 1328 1423 | 
             
                        "nftCollectionAddress": "3rkRzHdN7dXy5CQfX3Lz6UBBJ2F9n58VEpvDSmbaVHt9",
         | 
| 1424 | 
            +
                        "rewardDistributionProgram": {
         | 
| 1425 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 1426 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 1427 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 1428 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 1429 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 1430 | 
            +
                        },
         | 
| 1329 1431 | 
             
                        "tokens": [
         | 
| 1330 1432 | 
             
                            {
         | 
| 1331 1433 | 
             
                                "symbol": "USDC",
         | 
| @@ -1645,6 +1747,13 @@ | |
| 1645 1747 | 
             
                        ],
         | 
| 1646 1748 | 
             
                        "backupOracle": "AHaKsRB4tsGSzFfFqAxUpfRRmsUj5EhwHSxSXK2UGRp5",
         | 
| 1647 1749 | 
             
                        "nftCollectionAddress": "3rkRzHdN7dXy5CQfX3Lz6UBBJ2F9n58VEpvDSmbaVHt9",
         | 
| 1750 | 
            +
                        "rewardDistributionProgram": {
         | 
| 1751 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 1752 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 1753 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 1754 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 1755 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 1756 | 
            +
                        },
         | 
| 1648 1757 | 
             
                        "tokens": [
         | 
| 1649 1758 | 
             
                            {
         | 
| 1650 1759 | 
             
                                "symbol": "USDC",
         | 
| @@ -2017,6 +2126,13 @@ | |
| 2017 2126 | 
             
                        ],
         | 
| 2018 2127 | 
             
                        "backupOracle": "AHaKsRB4tsGSzFfFqAxUpfRRmsUj5EhwHSxSXK2UGRp5",
         | 
| 2019 2128 | 
             
                        "nftCollectionAddress": "3rkRzHdN7dXy5CQfX3Lz6UBBJ2F9n58VEpvDSmbaVHt9",
         | 
| 2129 | 
            +
                        "rewardDistributionProgram": {
         | 
| 2130 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 2131 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 2132 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 2133 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 2134 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 2135 | 
            +
                        },
         | 
| 2020 2136 | 
             
                        "tokens": [
         | 
| 2021 2137 | 
             
                            {
         | 
| 2022 2138 | 
             
                                "symbol": "USDC",
         | 
| @@ -2124,6 +2240,13 @@ | |
| 2124 2240 | 
             
                        ],
         | 
| 2125 2241 | 
             
                        "backupOracle": "AHaKsRB4tsGSzFfFqAxUpfRRmsUj5EhwHSxSXK2UGRp5",
         | 
| 2126 2242 | 
             
                        "nftCollectionAddress": "3rkRzHdN7dXy5CQfX3Lz6UBBJ2F9n58VEpvDSmbaVHt9",
         | 
| 2243 | 
            +
                        "rewardDistributionProgram": {
         | 
| 2244 | 
            +
                            "programId": "FARTfzmezUtejeF42vfyvX96NWq1BuAcXFiAQuz6wZZg",
         | 
| 2245 | 
            +
                            "transferAuthority": "4cgNvcrPFxmgJVyQNJqM8Sb6eJnDktr5mWA3gSkdNcyT",
         | 
| 2246 | 
            +
                            "rewardVault": "DrXUtn8BRUYAo1i3ZTkPRXqU7w2KGbCjiskzH8wGExGK",
         | 
| 2247 | 
            +
                            "rewardMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr",
         | 
| 2248 | 
            +
                            "rewardTokenAccount": "6X9LbFxtvjGxBEgHiE3KLQjJtAqkThqrhCufLhrPfMEp"
         | 
| 2249 | 
            +
                        },
         | 
| 2127 2250 | 
             
                        "tokens": [
         | 
| 2128 2251 | 
             
                            {
         | 
| 2129 2252 | 
             
                                "symbol": "USDC",
         |