@descent-protocol/sdk
Version:
A Typescript library for interacting with the Descent Protocol
1,096 lines (1,088 loc) • 46.3 kB
text/typescript
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type {
Signer,
BigNumberish,
AddressLike,
ContractDeployTransaction,
ContractRunner,
} from "ethers";
import type { NonPayableOverrides } from "../common";
import type { Vault, VaultInterface } from "../Vault";
const _abi = [
{
inputs: [
{
internalType: "contract Currency",
name: "_currencyToken",
type: "address",
},
{
internalType: "uint256",
name: "_baseRate",
type: "uint256",
},
{
internalType: "uint256",
name: "_debtCeiling",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [],
name: "AlreadyInitialized",
type: "error",
},
{
inputs: [],
name: "BadCollateralRatio",
type: "error",
},
{
inputs: [],
name: "CollateralAlreadyExists",
type: "error",
},
{
inputs: [],
name: "CollateralDebtCeilingExceeded",
type: "error",
},
{
inputs: [],
name: "CollateralDoesNotExist",
type: "error",
},
{
inputs: [],
name: "CollateralRatioNotImproved",
type: "error",
},
{
inputs: [],
name: "EthTransferFailed",
type: "error",
},
{
inputs: [],
name: "GlobalDebtCeilingExceeded",
type: "error",
},
{
inputs: [],
name: "InsufficientCurrencyAmountToPay",
type: "error",
},
{
inputs: [],
name: "InvalidStabilityModule",
type: "error",
},
{
inputs: [],
name: "NewOwnerIsZeroAddress",
type: "error",
},
{
inputs: [],
name: "NoHandoverRequest",
type: "error",
},
{
inputs: [],
name: "NotEnoughCollateralToPay",
type: "error",
},
{
inputs: [],
name: "NotFeedContract",
type: "error",
},
{
inputs: [],
name: "NotOwnerOrReliedUpon",
type: "error",
},
{
inputs: [],
name: "NotPaused",
type: "error",
},
{
inputs: [],
name: "Paused",
type: "error",
},
{
inputs: [],
name: "PositionIsSafe",
type: "error",
},
{
inputs: [],
name: "TotalUserCollateralBelowFloor",
type: "error",
},
{
inputs: [],
name: "Unauthorized",
type: "error",
},
{
inputs: [],
name: "UnrecognizedParam",
type: "error",
},
{
inputs: [],
name: "ZeroAddress",
type: "error",
},
{
inputs: [],
name: "ZeroCollateral",
type: "error",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "CollateralDeposited",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "collateralAddress",
type: "address",
},
],
name: "CollateralTypeAdded",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "CollateralWithdrawn",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "CurrencyBurned",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "CurrencyMinted",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "FeesPaid",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "liquidator",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "currencyAmountPaid",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "collateralAmountCovered",
type: "uint256",
},
],
name: "Liquidated",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "pendingOwner",
type: "address",
},
],
name: "OwnershipHandoverCanceled",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "pendingOwner",
type: "address",
},
],
name: "OwnershipHandoverRequested",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "oldOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
inputs: [],
name: "CURRENCY_TOKEN",
outputs: [
{
internalType: "contract Currency",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "baseRateInfo",
outputs: [
{
internalType: "uint256",
name: "rate",
type: "uint256",
},
{
internalType: "uint256",
name: "accumulatedRate",
type: "uint256",
},
{
internalType: "uint256",
name: "lastUpdateTime",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "address",
name: "_owner",
type: "address",
},
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
],
name: "burnCurrency",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "cancelOwnershipHandover",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "",
type: "address",
},
],
name: "collateralMapping",
outputs: [
{
internalType: "uint256",
name: "totalDepositedCollateral",
type: "uint256",
},
{
internalType: "uint256",
name: "totalBorrowedAmount",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidationThreshold",
type: "uint256",
},
{
internalType: "uint256",
name: "liquidationBonus",
type: "uint256",
},
{
components: [
{
internalType: "uint256",
name: "rate",
type: "uint256",
},
{
internalType: "uint256",
name: "accumulatedRate",
type: "uint256",
},
{
internalType: "uint256",
name: "lastUpdateTime",
type: "uint256",
},
],
internalType: "struct IVault.RateInfo",
name: "rateInfo",
type: "tuple",
},
{
internalType: "uint256",
name: "price",
type: "uint256",
},
{
internalType: "uint256",
name: "debtCeiling",
type: "uint256",
},
{
internalType: "uint256",
name: "collateralFloorPerPosition",
type: "uint256",
},
{
internalType: "uint256",
name: "additionalCollateralPrecision",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "pendingOwner",
type: "address",
},
],
name: "completeOwnershipHandover",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "uint256",
name: "_rate",
type: "uint256",
},
{
internalType: "uint256",
name: "_liquidationThreshold",
type: "uint256",
},
{
internalType: "uint256",
name: "_liquidationBonus",
type: "uint256",
},
{
internalType: "uint256",
name: "_debtCeiling",
type: "uint256",
},
{
internalType: "uint256",
name: "_collateralFloorPerPosition",
type: "uint256",
},
],
name: "createCollateralType",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "debt",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "debtCeiling",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_reliedUpon",
type: "address",
},
],
name: "deny",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "address",
name: "_owner",
type: "address",
},
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
],
name: "depositCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "feedModule",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "address",
name: "_owner",
type: "address",
},
{
internalType: "address",
name: "_to",
type: "address",
},
{
internalType: "uint256",
name: "_currencyAmountToPay",
type: "uint256",
},
],
name: "liquidate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "address",
name: "_owner",
type: "address",
},
{
internalType: "address",
name: "_to",
type: "address",
},
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
],
name: "mintCurrency",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "result",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "pendingOwner",
type: "address",
},
],
name: "ownershipHandoverExpiresAt",
outputs: [
{
internalType: "uint256",
name: "result",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "paidFees",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "rateModule",
outputs: [
{
internalType: "contract IRate",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_tokenAddress",
type: "address",
},
{
internalType: "address",
name: "_to",
type: "address",
},
],
name: "recoverToken",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_relyUpon",
type: "address",
},
],
name: "rely",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "relyMapping",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "requestOwnershipHandover",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "stabilityModule",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "status",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "payable",
type: "function",
},
{
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_baseRate",
type: "uint256",
},
],
name: "updateBaseRate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "enum IVault.ModifiableParameters",
name: "_param",
type: "uint8",
},
{
internalType: "uint256",
name: "_data",
type: "uint256",
},
],
name: "updateCollateralData",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_debtCeiling",
type: "uint256",
},
],
name: "updateDebtCeiling",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_feedModule",
type: "address",
},
],
name: "updateFeedModule",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralAddress",
type: "address",
},
{
internalType: "uint256",
name: "_price",
type: "uint256",
},
],
name: "updatePrice",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract IRate",
name: "_rateModule",
type: "address",
},
],
name: "updateRateModule",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_stabilityModule",
type: "address",
},
],
name: "updateStabilityModule",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "",
type: "address",
},
{
internalType: "address",
name: "",
type: "address",
},
],
name: "vaultMapping",
outputs: [
{
internalType: "uint256",
name: "depositedCollateral",
type: "uint256",
},
{
internalType: "uint256",
name: "borrowedAmount",
type: "uint256",
},
{
internalType: "uint256",
name: "accruedFees",
type: "uint256",
},
{
internalType: "uint256",
name: "lastTotalAccumulatedRate",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "contract ERC20Token",
name: "_collateralToken",
type: "address",
},
{
internalType: "address",
name: "_owner",
type: "address",
},
{
internalType: "address",
name: "_to",
type: "address",
},
{
internalType: "uint256",
name: "_amount",
type: "uint256",
},
],
name: "withdrawCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "withdrawFees",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
] as const;
const _bytecode =
"0x60a06040523480156200001157600080fd5b50604051620031bc380380620031bc83398101604081905262000034916200009e565b6002600055620000443362000062565b6001600160a01b0390921660805242600655600455600755620000e3565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b600080600060608486031215620000b457600080fd5b83516001600160a01b0381168114620000cc57600080fd5b602085015160409095015190969495509392505050565b60805161308c62000130600039600081816107b801528181610d4201528181611d4c01528181611de30152818161215b015281816122ff015281816124470152612abe015261308c6000f3fe6080604052600436106102855760003560e01c806365fae35e11610153578063d707eed5116100cb578063f04e283e1161007f578063f970c3b711610064578063f970c3b71461082d578063feaea5861461084d578063fee81cf41461086d57600080fd5b8063f04e283e14610807578063f2fde38b1461081a57600080fd5b8063e2c7283f116100b0578063e2c7283f14610739578063e72531c8146107a6578063ea061ad4146107da57600080fd5b8063d707eed514610703578063e1c84ea41461072357600080fd5b80639c52a7f111610122578063aab3f86811610107578063aab3f868146105da578063b80a0a77146105fa578063c665471f1461061057600080fd5b80639c52a7f11461058d578063a12ad552146105ad57600080fd5b806365fae35e1461051c578063715018a61461053c5780638456cb59146105445780638da5cb5b1461055957600080fd5b80633f4ba83a1161020157806354d1f13d116101b55780635820ba631161019a5780635820ba63146104915780635881fc33146104b1578063645ba425146104fc57600080fd5b806354d1f13d1461046957806357b35a781461047157600080fd5b8063476343ee116101e6578063476343ee1461041457806349a66ca3146104295780634fa739191461044957600080fd5b80633f4ba83a146103df578063457972de146103f457600080fd5b806313f60c9a11610258578063256929621161023d5780632569296214610365578063330283aa1461036d578063336d391e1461038d57600080fd5b806313f60c9a14610315578063200d2ed21461034f57600080fd5b80630408ccd61461028a5780630ae5ccab146102ac5780630dca59c1146102cc5780631218c5fd146102f5575b600080fd5b34801561029657600080fd5b506102aa6102a5366004612c22565b6108a0565b005b3480156102b857600080fd5b506102aa6102c7366004612c22565b61092b565b3480156102d857600080fd5b506102e260085481565b6040519081526020015b60405180910390f35b34801561030157600080fd5b506102aa610310366004612c3f565b6109b6565b34801561032157600080fd5b5060045460055460065461033492919083565b604080519384526020840192909252908201526060016102ec565b34801561035b57600080fd5b506102e260005481565b6102aa6109ff565b34801561037957600080fd5b506102aa610388366004612c3f565b610a4f565b34801561039957600080fd5b506003546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ec565b3480156103eb57600080fd5b506102aa610b36565b34801561040057600080fd5b506102aa61040f366004612c58565b610b45565b34801561042057600080fd5b506102aa610c61565b34801561043557600080fd5b506102aa610444366004612c84565b610db4565b34801561045557600080fd5b506102aa610464366004612cd5565b61111f565b6102aa6111df565b34801561047d57600080fd5b506102aa61048c366004612d16565b61121b565b34801561049d57600080fd5b506102aa6104ac366004612c84565b61142c565b3480156104bd57600080fd5b506104ec6104cc366004612d4a565b600c60209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016102ec565b34801561050857600080fd5b506102aa610517366004612d83565b6115c5565b34801561052857600080fd5b506102aa610537366004612c22565b611786565b6102aa61181e565b34801561055057600080fd5b506102aa611826565b34801561056557600080fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927546103ba565b34801561059957600080fd5b506102aa6105a8366004612c22565b611835565b3480156105b957600080fd5b506002546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105e657600080fd5b506102aa6105f5366004612c84565b6118ca565b34801561060657600080fd5b506102e260095481565b34801561061c57600080fd5b506106a161062b366004612c22565b600a6020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040160405180606001604052908160008201548152602001600182015481526020016002820154815250509080600701549080600801549080600901549080600a0154905089565b60408051998a526020808b0199909952898101979097526060890195909552835160808901529583015160a0880152919093015160c086015260e0850192909252610100840191909152610120830191909152610140820152610160016102ec565b34801561070f57600080fd5b506102aa61071e366004612c22565b611b1d565b34801561072f57600080fd5b506102e260075481565b34801561074557600080fd5b50610786610754366004612d4a565b600b60209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102ec565b3480156107b257600080fd5b506103ba7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107e657600080fd5b506001546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b6102aa610815366004612c22565b611ba8565b6102aa610828366004612c22565b611be8565b34801561083957600080fd5b506102aa610848366004612cd5565b611c0f565b34801561085957600080fd5b506102aa610868366004612d4a565b611d0e565b34801561087957600080fd5b506102e2610888366004612c22565b63389a75e1600c908152600091909152602090205490565b6001600054036108dc576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108e4612043565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600160005403610967576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61096f612043565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6001600054036109f2576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109fa612043565b600755565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600160005403610a8b576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a93612043565b6003546040517fd14a27fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d14a27fd90610ae9906004908101612dcf565b602060405180830381865afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190612df0565b60055542600655600455565b610b3e612043565b6002600055565b600160005403610b81576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a6020526040812060040154839103610be3576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025473ffffffffffffffffffffffffffffffffffffffff163314610c34576040517f16ee083800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff9091166000908152600a6020526040902060070155565b600160005403610c9d576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff1680610ced576040517fd389b01000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805460009091556040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf9190612e09565b505050565b600160005403610df0576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040812060040154859103610e52576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff81163314801590610eaa575073ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020908152604080832033845290915290205460ff16155b15610ee1576040517fed76312100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600b60209081526040808320948a168352938152838220928252600a905291909120815460098201541115610f5f576040517f8464610300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075485600854610f709190612e5a565b1115610fa8576040517fdd0b23bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060080154858260010154610fbd9190612e5a565b1115610ff5576040517fa99870f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018201541561100e57611009818361207b565b6110af565b6003546040517fcf5696cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063cf5696cb9061106890600490858201908201612e6d565b602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190612df0565b60038301555b8673ffffffffffffffffffffffffffffffffffffffff167f2794e993350ecd3e426a1d6ba9554613ee597988342e95658e5e97a121565852866040516110f791815260200190565b60405180910390a261110b818388886120c2565b61111581836121c9565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040812060040154849103611181576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600b602090815260408083209488168352938152838220928252600a9052919091206111ca818361207b565b6111d78183873388612210565b505050505050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b600160005403611257576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61125f612043565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a60205260408120600401548491036112c1576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a60205260408120908460048111156112f9576112f9612ea9565b036113ae576003546040517fd14a27fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d14a27fd906113569060048086019101612dcf565b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113979190612df0565b600582015542600682015560048101839055611425565b60018460048111156113c2576113c2612ea9565b036113d35760088101839055611425565b60028460048111156113e7576113e7612ea9565b036113f85760098101839055611425565b600384600481111561140c5761140c612ea9565b0361141d5760038101839055611425565b600281018390555b5050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081206004015485910361148e576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff811633148015906114e6575073ffffffffffffffffffffffffffffffffffffffff81166000908152600c6020908152604080832033845290915290205460ff16155b1561151d576040517fed76312100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600b60209081526040808320948a168352938152838220928252600a905291909120611566818361207b565b6040805173ffffffffffffffffffffffffffffffffffffffff8881168252602082018890528916917f45892a46e6cef329bb642da6d69846d324db43d19008edc141ed82382eda1bee910160405180910390a261110b888888886124ca565b600160005403611601576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611609612043565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600a6020526040902060048101541561166a576040517fbf508dc400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480820187905542600683015560028201869055600382018590556008820184905560098201839055604080517f313ce567000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff8a169263313ce567928082019260209290918290030181865afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190612ed8565b61172f9060ff166012612efb565b600a82015560405173ffffffffffffffffffffffffffffffffffffffff881681527f8abd6b05a86c62b0ddaec80e50ab0326ee89a599589d4b4126cf8f94ff3d0a879060200160405180910390a150505050505050565b6001600054036117c2576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c6020908152604080832073ffffffffffffffffffffffffffffffffffffffff9490941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b610285612043565b61182e612043565b6001600055565b600160005403611871576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600c6020908152604080832073ffffffffffffffffffffffffffffffffffffffff9490941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081206004015485910361192c576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8086166000818152600b602090815260408083209489168352938152838220928252600a905291909120611975818361207b565b6000611981828461257c565b9050816002015481116119c0576040517f819a066c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85036119fe57826002015483600101546119fb9190612e5a565b94505b6000611a0a838761261c565b90506000611a1a6012600a61302e565b611a2590606461303a565b6003850154611a34908461303a565b611a3e9190613051565b90506000611a4c8284612e5a565b8654909150811115611a5c575084545b60408051338152602081018a905290810182905273ffffffffffffffffffffffffffffffffffffffff8b16907f1f0c6615429d1cdae0dfa233abf91d3b31cdbdd82c8081389832a61e1072f1ea9060600160405180910390a2611ac18b8b8b846124ca565b611ace85878c338c612210565b611ad8858761257c565b8411611b10576040517f07af690800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b600160005403611b59576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b61612043565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b611bb0612043565b63389a75e1600c52806000526020600c208054421115611bd857636f5e88186000526004601cfd5b60009055611be581612680565b50565b611bf0612043565b8060601b611c0657637448fbae6000526004601cfd5b611be581612680565b600160005403611c4b576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040812060040154849103611cad576040517f0d8b6eb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167fd7243f6f8212d5188fd054141cf6ea89cfc0d91facb8c3afe2f88a135848014283604051611cf591815260200190565b60405180910390a2611d088484846126e6565b50505050565b600160005403611d4a576040517f9e87fac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed3576009546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163a9059cbb9184919084906370a0823190602401602060405180830381865afa158015611e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e599190612df0565b611e639190612efb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff909216600483015260248201526044016020604051808303816000875af1158015610d8b573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff8216611f885760008173ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114611f48576040519150601f19603f3d011682016040523d82523d6000602084013e611f4d565b606091505b5050905080610daf576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600a6020526040908190205490517f70a082310000000000000000000000000000000000000000000000000000000081523060048201528492610daf9284928692906370a0823190602401602060405180830381865afa15801561200c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120309190612df0565b61203a9190612efb565b6128b1565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314612079576382b429006000526004601cfd5b565b6000806120888484612900565b91509150808360030181905550816000036120a35750505050565b818360020160008282546120b79190612e5a565b909155505050505050565b808360010160008282546120d69190612e5a565b92505081905550808460010160008282546120f19190612e5a565b92505081905550806008600082825461210a9190612e5a565b90915550506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015b6020604051808303816000875af11580156121a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190612e09565b81600201546121d8838361257c565b111561203f576040517f963c7ede00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83600101548111612372578084600101600082825461222f9190612efb565b925050819055508085600101600082825461224a9190612efb565b9250508190555080600860008282546122639190612efb565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8416907fcb55e9f35638c4fdb4390d3a385ac1d72a8f72e4dcf0eb1f3c79d144b1023f859060200160405180910390a26040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690639dc29fac906044016020604051808303816000875af1158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190612e09565b50611425565b600180850180546000918290559187018054839290612392908490612efb565b9250508190555080600860008282546123ab9190612efb565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8516907fcb55e9f35638c4fdb4390d3a385ac1d72a8f72e4dcf0eb1f3c79d144b1023f859060200160405180910390a26040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690639dc29fac906044016020604051808303816000875af1158015612490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b49190612e09565b506111d78585856124c58587612efb565b6129ef565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600b602090815260408083209387168352929052908120805483929061250e908490612efb565b909155505073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604081208054839290612548908490612efb565b909155505073ffffffffffffffffffffffffffffffffffffffff84163b60000361257157600080fd5b611d088483836128b1565b600080826002015483600101546125939190612e5a565b9050806000036125a7576000915050612616565b82546000036125d9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050612616565b60006125e58585612aed565b90506126116125f66012600a61302e565b61260190606461303a565b61260b908461303a565b82612b46565b925050505b92915050565b600082600a0154600a61262f919061302e565b64e8d4a510008460070154612644919061303a565b61264e919061303a565b61265a6012600a61302e565b61266590600161303a565b61266f908461303a565b6126799190613051565b9392505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015612753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127779190612df0565b905061278584333085612b86565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090829073ffffffffffffffffffffffffffffffffffffffff8716906370a0823190602401602060405180830381865afa1580156127f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128189190612df0565b6128229190612efb565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600b6020908152604080832093891683529290529081208054929350839290919061286b908490612e5a565b909155505073ffffffffffffffffffffffffffffffffffffffff85166000908152600a6020526040812080548392906128a5908490612e5a565b90915550505050505050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166128f6576390b8ec186000526004601cfd5b6000603452505050565b6003546040517fcf5696cb0000000000000000000000000000000000000000000000000000000081526000918291829173ffffffffffffffffffffffffffffffffffffffff169063cf5696cb9061295f90600490898201908201612e6d565b602060405180830381865afa15801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a09190612df0565b905060006129b06012600a61302e565b6129bb90606461303a565b600186015460038701546129cf9085612efb565b6129d9919061303a565b6129e39190613051565b96919550909350505050565b80846002016000828254612a039190612efb565b925050819055508060096000828254612a1c9190612e5a565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8416907f6a41f86b2a18fe00e10a9bd078e790ae82c2627a6f940166bddc2db475194a5f9060200160405180910390a26040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152306024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90606401612186565b600080612afc6012600a61302e565b612b0790600161303a565b64e8d4a510008560070154612b20878760000154612be3565b612b2a919061303a565b612b34919061303a565b612b3e9190613051565b949350505050565b600081600003612b5557600080fd5b82600003612b6557506000612616565b81612b71600185612efb565b612b7b9190613051565b612679906001612e5a565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d156001600051141716612bd557637939f4246000526004601cfd5b600060605260405250505050565b600082600a0154600a612bf6919061302e565b612679908361303a565b73ffffffffffffffffffffffffffffffffffffffff81168114611be557600080fd5b600060208284031215612c3457600080fd5b813561267981612c00565b600060208284031215612c5157600080fd5b5035919050565b60008060408385031215612c6b57600080fd5b8235612c7681612c00565b946020939093013593505050565b60008060008060808587031215612c9a57600080fd5b8435612ca581612c00565b93506020850135612cb581612c00565b92506040850135612cc581612c00565b9396929550929360600135925050565b600080600060608486031215612cea57600080fd5b8335612cf581612c00565b92506020840135612d0581612c00565b929592945050506040919091013590565b600080600060608486031215612d2b57600080fd5b8335612d3681612c00565b9250602084013560058110612d0557600080fd5b60008060408385031215612d5d57600080fd5b8235612d6881612c00565b91506020830135612d7881612c00565b809150509250929050565b60008060008060008060c08789031215612d9c57600080fd5b8635612da781612c00565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b81548152600182015460208201526002820154604082015260608101612616565b600060208284031215612e0257600080fd5b5051919050565b600060208284031215612e1b57600080fd5b8151801515811461267957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561261657612616612e2b565b82548152600183015460208201526002830154604082015260c081018254606083015260018301546080830152600283015460a0830152612679565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215612eea57600080fd5b815160ff8116811461267957600080fd5b8181038181111561261657612616612e2b565b600181815b80851115612f6757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612f4d57612f4d612e2b565b80851615612f5a57918102915b93841c9390800290612f13565b509250929050565b600082612f7e57506001612616565b81612f8b57506000612616565b8160018114612fa15760028114612fab57612fc7565b6001915050612616565b60ff841115612fbc57612fbc612e2b565b50506001821b612616565b5060208310610133831016604e8410600b8410161715612fea575081810a612616565b612ff48383612f0e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561302657613026612e2b565b029392505050565b60006126798383612f6f565b808202811582820484141761261657612616612e2b565b600082613087577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056";
type VaultConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: VaultConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class Vault__factory extends ContractFactory {
constructor(...args: VaultConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
_currencyToken: AddressLike,
_baseRate: BigNumberish,
_debtCeiling: BigNumberish,
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(
_currencyToken,
_baseRate,
_debtCeiling,
overrides || {}
);
}
override deploy(
_currencyToken: AddressLike,
_baseRate: BigNumberish,
_debtCeiling: BigNumberish,
overrides?: NonPayableOverrides & { from?: string }
) {
return super.deploy(
_currencyToken,
_baseRate,
_debtCeiling,
overrides || {}
) as Promise<
Vault & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(runner: ContractRunner | null): Vault__factory {
return super.connect(runner) as Vault__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): VaultInterface {
return new Interface(_abi) as VaultInterface;
}
static connect(address: string, runner?: ContractRunner | null): Vault {
return new Contract(address, _abi, runner) as unknown as Vault;
}
}