"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StargatePool__factory = void 0;
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_poolId',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_router',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '_token',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_sharedDecimals',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_localDecimals',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_feeLibrary',
                type: 'address',
            },
            {
                internalType: 'string',
                name: '_name',
                type: 'string',
            },
            {
                internalType: 'string',
                name: '_symbol',
                type: 'string',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'constructor',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'owner',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'spender',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'Approval',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountLP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        name: 'Burn',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'dstChainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'weight',
                type: 'uint256',
            },
        ],
        name: 'ChainPathUpdate',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'chainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'srcPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'idealBalance',
                type: 'uint256',
            },
        ],
        name: 'CreditChainPath',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bool',
                name: 'batched',
                type: 'bool',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'swapDeltaBP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'lpDeltaBP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'defaultSwapMode',
                type: 'bool',
            },
            {
                indexed: false,
                internalType: 'bool',
                name: 'defaultLPMode',
                type: 'bool',
            },
        ],
        name: 'DeltaParamUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'feeLibraryAddr',
                type: 'address',
            },
        ],
        name: 'FeeLibraryUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint256',
                name: 'mintFeeBP',
                type: 'uint256',
            },
        ],
        name: 'FeesUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountLP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
        ],
        name: 'InstantRedeemLocal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountLP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'mintFeeAmountSD',
                type: 'uint256',
            },
        ],
        name: 'Mint',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountLP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint16',
                name: 'chainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'bytes',
                name: 'to',
                type: 'bytes',
            },
        ],
        name: 'RedeemLocal',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: '_amountToMintSD',
                type: 'uint256',
            },
        ],
        name: 'RedeemLocalCallback',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'chainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountLP',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        name: 'RedeemRemote',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'dstChainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'credits',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'idealBalance',
                type: 'uint256',
            },
        ],
        name: 'SendCredits',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'bool',
                name: 'swapStop',
                type: 'bool',
            },
        ],
        name: 'StopSwapUpdated',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'chainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'eqReward',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'eqFee',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'protocolFee',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'lpFee',
                type: 'uint256',
            },
        ],
        name: 'Swap',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'protocolFee',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'dstFee',
                type: 'uint256',
            },
        ],
        name: 'SwapRemote',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                indexed: true,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'Transfer',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        name: 'WithdrawMintFeeBalance',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        name: 'WithdrawProtocolFeeBalance',
        type: 'event',
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: 'uint16',
                name: 'srcChainId',
                type: 'uint16',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'srcPoolId',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'swapAmount',
                type: 'uint256',
            },
            {
                indexed: false,
                internalType: 'uint256',
                name: 'mintAmount',
                type: 'uint256',
            },
        ],
        name: 'WithdrawRemote',
        type: 'event',
    },
    {
        inputs: [],
        name: 'BP_DENOMINATOR',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'DOMAIN_SEPARATOR',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'PERMIT_TYPEHASH',
        outputs: [
            {
                internalType: 'bytes32',
                name: '',
                type: 'bytes32',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
        ],
        name: 'activateChainPath',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'allowance',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_amountLP',
                type: 'uint256',
            },
        ],
        name: 'amountLPtoLD',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'spender',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'approve',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'balanceOf',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'batched',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bool',
                name: '_fullMode',
                type: 'bool',
            },
        ],
        name: 'callDelta',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'chainPathIndexLookup',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        name: 'chainPaths',
        outputs: [
            {
                internalType: 'bool',
                name: 'ready',
                type: 'bool',
            },
            {
                internalType: 'uint16',
                name: 'dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: 'dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'weight',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'balance',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'lkb',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'credits',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'idealBalance',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'convertRate',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_weight',
                type: 'uint256',
            },
        ],
        name: 'createChainPath',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'credits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'idealBalance',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct Pool.CreditObj',
                name: '_c',
                type: 'tuple',
            },
        ],
        name: 'creditChainPath',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'decimals',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'spender',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'subtractedValue',
                type: 'uint256',
            },
        ],
        name: 'decreaseAllowance',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'defaultLPMode',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'defaultSwapMode',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'deltaCredit',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'eqFeePool',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'feeLibrary',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
        ],
        name: 'getChainPath',
        outputs: [
            {
                components: [
                    {
                        internalType: 'bool',
                        name: 'ready',
                        type: 'bool',
                    },
                    {
                        internalType: 'uint16',
                        name: 'dstChainId',
                        type: 'uint16',
                    },
                    {
                        internalType: 'uint256',
                        name: 'dstPoolId',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'weight',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'balance',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lkb',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'credits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'idealBalance',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct Pool.ChainPath',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'getChainPathsLength',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'spender',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'addedValue',
                type: 'uint256',
            },
        ],
        name: 'increaseAllowance',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountLP',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
        ],
        name: 'instantRedeemLocal',
        outputs: [
            {
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'localDecimals',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'lpDeltaBP',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountLD',
                type: 'uint256',
            },
        ],
        name: 'mint',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'mintFeeBP',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'mintFeeBalance',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'name',
        outputs: [
            {
                internalType: 'string',
                name: '',
                type: 'string',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        name: 'nonces',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'owner',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'spender',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'deadline',
                type: 'uint256',
            },
            {
                internalType: 'uint8',
                name: 'v',
                type: 'uint8',
            },
            {
                internalType: 'bytes32',
                name: 'r',
                type: 'bytes32',
            },
            {
                internalType: 'bytes32',
                name: 's',
                type: 'bytes32',
            },
        ],
        name: 'permit',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'poolId',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'protocolFeeBalance',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountLP',
                type: 'uint256',
            },
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'bytes',
                name: '_to',
                type: 'bytes',
            },
        ],
        name: 'redeemLocal',
        outputs: [
            {
                internalType: 'uint256',
                name: 'amountSD',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_srcChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_srcPoolId',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountSD',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_amountToMintSD',
                type: 'uint256',
            },
        ],
        name: 'redeemLocalCallback',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_srcChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_srcPoolId',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_amountSD',
                type: 'uint256',
            },
        ],
        name: 'redeemLocalCheckOnRemote',
        outputs: [
            {
                internalType: 'uint256',
                name: 'swapAmount',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: 'mintAmount',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountLP',
                type: 'uint256',
            },
        ],
        name: 'redeemRemote',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'router',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
        ],
        name: 'sendCredits',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'credits',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'idealBalance',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct Pool.CreditObj',
                name: 'c',
                type: 'tuple',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bool',
                name: '_batched',
                type: 'bool',
            },
            {
                internalType: 'uint256',
                name: '_swapDeltaBP',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_lpDeltaBP',
                type: 'uint256',
            },
            {
                internalType: 'bool',
                name: '_defaultSwapMode',
                type: 'bool',
            },
            {
                internalType: 'bool',
                name: '_defaultLPMode',
                type: 'bool',
            },
        ],
        name: 'setDeltaParam',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint256',
                name: '_mintFeeBP',
                type: 'uint256',
            },
        ],
        name: 'setFee',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_feeLibraryAddr',
                type: 'address',
            },
        ],
        name: 'setFeeLibrary',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'bool',
                name: '_swapStop',
                type: 'bool',
            },
        ],
        name: 'setSwapStop',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'uint16',
                name: '_weight',
                type: 'uint16',
            },
        ],
        name: 'setWeightForChainPath',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'sharedDecimals',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'stopSwap',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_dstChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_dstPoolId',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_from',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: '_amountLD',
                type: 'uint256',
            },
            {
                internalType: 'uint256',
                name: '_minAmountLD',
                type: 'uint256',
            },
            {
                internalType: 'bool',
                name: 'newLiquidity',
                type: 'bool',
            },
        ],
        name: 'swap',
        outputs: [
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'eqFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'eqReward',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lpFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'protocolFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lkbRemove',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct Pool.SwapObj',
                name: '',
                type: 'tuple',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'swapDeltaBP',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'uint16',
                name: '_srcChainId',
                type: 'uint16',
            },
            {
                internalType: 'uint256',
                name: '_srcPoolId',
                type: 'uint256',
            },
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
            {
                components: [
                    {
                        internalType: 'uint256',
                        name: 'amount',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'eqFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'eqReward',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lpFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'protocolFee',
                        type: 'uint256',
                    },
                    {
                        internalType: 'uint256',
                        name: 'lkbRemove',
                        type: 'uint256',
                    },
                ],
                internalType: 'struct Pool.SwapObj',
                name: '_s',
                type: 'tuple',
            },
        ],
        name: 'swapRemote',
        outputs: [
            {
                internalType: 'uint256',
                name: 'amountLD',
                type: 'uint256',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [],
        name: 'symbol',
        outputs: [
            {
                internalType: 'string',
                name: '',
                type: 'string',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'token',
        outputs: [
            {
                internalType: 'address',
                name: '',
                type: 'address',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalLiquidity',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalSupply',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [],
        name: 'totalWeight',
        outputs: [
            {
                internalType: 'uint256',
                name: '',
                type: 'uint256',
            },
        ],
        stateMutability: 'view',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'transfer',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: 'from',
                type: 'address',
            },
            {
                internalType: 'address',
                name: 'to',
                type: 'address',
            },
            {
                internalType: 'uint256',
                name: 'value',
                type: 'uint256',
            },
        ],
        name: 'transferFrom',
        outputs: [
            {
                internalType: 'bool',
                name: '',
                type: 'bool',
            },
        ],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
        ],
        name: 'withdrawMintFeeBalance',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
    {
        inputs: [
            {
                internalType: 'address',
                name: '_to',
                type: 'address',
            },
        ],
        name: 'withdrawProtocolFeeBalance',
        outputs: [],
        stateMutability: 'nonpayable',
        type: 'function',
    },
];
class StargatePool__factory {
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.StargatePool__factory = StargatePool__factory;
StargatePool__factory.abi = _abi;
//# sourceMappingURL=StargatePool__factory.js.map