@astonic-io/astonic-router-ts
Version:
289 lines (288 loc) • 19.5 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AstonicRouter__factory = void 0;
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
var ethers_1 = require("ethers");
var _abi = [
{
type: "constructor",
inputs: [
{
name: "_broker",
type: "address",
internalType: "address",
},
{
name: "_astonicReserveMultisig",
type: "address",
internalType: "address",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "drain",
inputs: [
{
name: "asset",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "getAmountIn",
inputs: [
{
name: "amountOut",
type: "uint256",
internalType: "uint256",
},
{
name: "path",
type: "tuple[]",
internalType: "struct IAstonicRouter.Step[]",
components: [
{
name: "exchangeProvider",
type: "address",
internalType: "address",
},
{
name: "exchangeId",
type: "bytes32",
internalType: "bytes32",
},
{
name: "assetIn",
type: "address",
internalType: "address",
},
{
name: "assetOut",
type: "address",
internalType: "address",
},
],
},
],
outputs: [
{
name: "amountIn",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getAmountOut",
inputs: [
{
name: "amountIn",
type: "uint256",
internalType: "uint256",
},
{
name: "path",
type: "tuple[]",
internalType: "struct IAstonicRouter.Step[]",
components: [
{
name: "exchangeProvider",
type: "address",
internalType: "address",
},
{
name: "exchangeId",
type: "bytes32",
internalType: "bytes32",
},
{
name: "assetIn",
type: "address",
internalType: "address",
},
{
name: "assetOut",
type: "address",
internalType: "address",
},
],
},
],
outputs: [
{
name: "amountOut",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "swapExactTokensForTokens",
inputs: [
{
name: "amountIn",
type: "uint256",
internalType: "uint256",
},
{
name: "amountOutMin",
type: "uint256",
internalType: "uint256",
},
{
name: "path",
type: "tuple[]",
internalType: "struct IAstonicRouter.Step[]",
components: [
{
name: "exchangeProvider",
type: "address",
internalType: "address",
},
{
name: "exchangeId",
type: "bytes32",
internalType: "bytes32",
},
{
name: "assetIn",
type: "address",
internalType: "address",
},
{
name: "assetOut",
type: "address",
internalType: "address",
},
],
},
],
outputs: [
{
name: "amounts",
type: "uint256[]",
internalType: "uint256[]",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "swapTokensForExactTokens",
inputs: [
{
name: "amountOut",
type: "uint256",
internalType: "uint256",
},
{
name: "amountInMax",
type: "uint256",
internalType: "uint256",
},
{
name: "path",
type: "tuple[]",
internalType: "struct IAstonicRouter.Step[]",
components: [
{
name: "exchangeProvider",
type: "address",
internalType: "address",
},
{
name: "exchangeId",
type: "bytes32",
internalType: "bytes32",
},
{
name: "assetIn",
type: "address",
internalType: "address",
},
{
name: "assetOut",
type: "address",
internalType: "address",
},
],
},
],
outputs: [
{
name: "amounts",
type: "uint256[]",
internalType: "uint256[]",
},
],
stateMutability: "nonpayable",
},
];
var _bytecode = "0x60c060405234801561000f575f5ffd5b506040516113f73803806113f783398101604081905261002e91610060565b6001600160a01b039182166080521660a052610091565b80516001600160a01b038116811461005b575f5ffd5b919050565b5f5f60408385031215610071575f5ffd5b61007a83610045565b915061008860208401610045565b90509250929050565b60805160a0516113306100c75f395f6104bf01525f818161061601528181610910015281816109500152610c4101526113305ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063723d40f714610059578063d9b67a3114610082578063de2282ec14610095578063e49ee239146100b6578063ece53132146100c9575b5f5ffd5b61006c610067366004611089565b6100de565b60405161007991906110d8565b60405180910390f35b61006c610090366004611089565b61027b565b6100a86100a336600461111a565b6103b7565b604051908152602001610079565b6100a86100c436600461111a565b610430565b6100dc6100d736600461117d565b6104a4565b005b606061013b858484808060200260200160405190810160405280939291908181526020015f905b8282101561013157610122608083028601368190038101906111b1565b81526020019060010190610105565b505050505061053a565b905083816001835161014d9190611247565b8151811061015d5761015d61125a565b602002602001015110156101ca5760405162461bcd60e51b815260206004820152602960248201527f4173746f6e6963526f757465723a20494e53554646494349454e545f4f555450604482015268155517d05353d5539560ba1b60648201526084015b60405180910390fd5b61021883835f8181106101df576101df61125a565b90506080020160400160208101906101f7919061117d565b3330845f8151811061020b5761020b61125a565b602002602001015161079e565b610273818484808060200260200160405190810160405280939291908181526020015f905b828210156102695761025a608083028601368190038101906111b1565b8152602001906001019061023d565b50505050506108d7565b949350505050565b60606102d8858484808060200260200160405190810160405280939291908181526020015f905b828210156102ce576102bf608083028601368190038101906111b1565b815260200190600101906102a2565b5050505050610b5e565b905083815f815181106102ed576102ed61125a565b602002602001015111156103515760405162461bcd60e51b815260206004820152602560248201527f4173746f6e6963526f757465723a204558434553534956455f494e5055545f416044820152641353d5539560da1b60648201526084016101c1565b61036683835f8181106101df576101df61125a565b610273818484808060200260200160405190810160405280939291908181526020015f905b82821015610269576103a8608083028601368190038101906111b1565b8152602001906001019061038b565b5f5f61040a858585808060200260200160405190810160405280939291908181526020015f905b828210156102ce576103fb608083028601368190038101906111b1565b815260200190600101906103de565b9050805f8151811061041e5761041e61125a565b60200260200101519150509392505050565b5f5f610483858585808060200260200160405190810160405280939291908181526020015f905b8282101561013157610474608083028601368190038101906111b1565b81526020019060010190610457565b905080600182516104949190611247565b8151811061041e5761041e61125a565b6040516370a0823160e01b81523060048201526105379082907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561050e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610532919061126e565b610df2565b50565b606060028251101561058e5760405162461bcd60e51b815260206004820152601b60248201527f4173746f6e6963526f757465723a20494e56414c49445f50415448000000000060448201526064016101c1565b815161059b906001611285565b67ffffffffffffffff8111156105b3576105b361119d565b6040519080825280602002602001820160405280156105dc578160200160208202803683370190505b50905082815f815181106105f2576105f261125a565b6020026020010181815250505f5b6001835161060e9190611247565b8111610796577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a20f23058483815181106106555761065561125a565b60200260200101515f01518584815181106106725761067261125a565b6020026020010151602001518685815181106106905761069061125a565b6020026020010151604001518786815181106106ae576106ae61125a565b6020026020010151606001518787815181106106cc576106cc61125a565b602090810291909101015160405160e087901b6001600160e01b03191681526001600160a01b039586166004820152602481019490945291841660448401529092166064820152608481019190915260a401602060405180830381865afa158015610739573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075d919061126e565b82610769836001611285565b815181106107795761077961125a565b60209081029190910101528061078e81611298565b915050610600565b505b92915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f9283929088169161080191906112b0565b5f604051808303815f865af19150503d805f811461083a576040519150601f19603f3d011682016040523d82523d5f602084013e61083f565b606091505b509150915081801561086957508051158061086957508080602001905181019061086991906112c6565b6108cf5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016101c1565b505050505050565b5f5b600182516108e79190611247565b8111610afe5761094e8282815181106109025761090261125a565b6020026020010151604001517f00000000000000000000000000000000000000000000000000000000000000008584815181106109415761094161125a565b6020026020010151610f1e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddbbe85083838151811061098f5761098f61125a565b60200260200101515f01518484815181106109ac576109ac61125a565b6020026020010151602001518585815181106109ca576109ca61125a565b6020026020010151604001518686815181106109e8576109e861125a565b602002602001015160600151888781518110610a0657610a0661125a565b602002602001015189886001610a1c9190611285565b81518110610a2c57610a2c61125a565b60209081029190910101516040516001600160e01b031960e089901b1681526001600160a01b0396871660048201526024810195909552928516604485015293166064830152608482019290925260a481019190915260c4016020604051808303815f875af1158015610aa1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac5919061126e565b83610ad1836001611285565b81518110610ae157610ae161125a565b602090810291909101015280610af681611298565b9150506108d9565b50610b5a8160018351610b119190611247565b81518110610b2157610b2161125a565b602002602001015160600151338460018651610b3d9190611247565b81518110610b4d57610b4d61125a565b6020026020010151610df2565b5050565b6060600282511015610bb25760405162461bcd60e51b815260206004820152601b60248201527f4173746f6e6963526f757465723a20494e56414c49445f50415448000000000060448201526064016101c1565b8151610bbf906001611285565b67ffffffffffffffff811115610bd757610bd761119d565b604051908082528060200260200182016040528015610c00578160200160208202803683370190505b509050828160018351610c139190611247565b81518110610c2357610c2361125a565b602090810291909101015281515b8015610796576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166304e4564084610c72600185611247565b81518110610c8257610c8261125a565b60200260200101515f015185600185610c9b9190611247565b81518110610cab57610cab61125a565b60200260200101516020015186600186610cc59190611247565b81518110610cd557610cd561125a565b60200260200101516040015187600187610cef9190611247565b81518110610cff57610cff61125a565b602002602001015160600151878781518110610d1d57610d1d61125a565b602090810291909101015160405160e087901b6001600160e01b03191681526001600160a01b039586166004820152602481019490945291841660448401529092166064820152608481019190915260a401602060405180830381865afa158015610d8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae919061126e565b610db9906001611285565b82610dc5600184611247565b81518110610dd557610dd561125a565b602090810291909101015280610dea816112e5565b915050610c31565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691610e4d91906112b0565b5f604051808303815f865af19150503d805f8114610e86576040519150601f19603f3d011682016040523d82523d5f602084013e610e8b565b606091505b5091509150818015610eb5575080511580610eb5575080806020019051810190610eb591906112c6565b610f175760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016101c1565b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610f7991906112b0565b5f604051808303815f865af19150503d805f8114610fb2576040519150601f19603f3d011682016040523d82523d5f602084013e610fb7565b606091505b5091509150818015610fe1575080511580610fe1575080806020019051810190610fe191906112c6565b610f175760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b60648201526084016101c1565b5f5f83601f840112611051575f5ffd5b50813567ffffffffffffffff811115611068575f5ffd5b6020830191508360208260071b8501011115611082575f5ffd5b9250929050565b5f5f5f5f6060858703121561109c575f5ffd5b8435935060208501359250604085013567ffffffffffffffff8111156110c0575f5ffd5b6110cc87828801611041565b95989497509550505050565b602080825282518282018190525f918401906040840190835b8181101561110f5783518352602093840193909201916001016110f1565b509095945050505050565b5f5f5f6040848603121561112c575f5ffd5b83359250602084013567ffffffffffffffff811115611149575f5ffd5b61115586828701611041565b9497909650939450505050565b80356001600160a01b0381168114611178575f5ffd5b919050565b5f6020828403121561118d575f5ffd5b61119682611162565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60808284031280156111c2575f5ffd5b506040516080810167ffffffffffffffff811182821017156111f257634e487b7160e01b5f52604160045260245ffd5b6040526111fe83611162565b81526020838101359082015261121660408401611162565b604082015261122760608401611162565b60608201529392505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561079857610798611233565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561127e575f5ffd5b5051919050565b8082018082111561079857610798611233565b5f600182016112a9576112a9611233565b5060010190565b5f82518060208501845e5f920191825250919050565b5f602082840312156112d6575f5ffd5b81518015158114611196575f5ffd5b5f816112f3576112f3611233565b505f19019056fea2646970667358221220e3f16b960c074091fd8117a49a475325ebc63be87a639ff46eb82b6a87b47b9164736f6c634300081c0033";
var isSuperArgs = function (xs) { return xs.length > 1; };
var AstonicRouter__factory = /** @class */ (function (_super) {
__extends(AstonicRouter__factory, _super);
function AstonicRouter__factory() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var _this = this;
if (isSuperArgs(args)) {
_this = _super.apply(this, args) || this;
}
else {
_this = _super.call(this, _abi, _bytecode, args[0]) || this;
}
return _this;
}
AstonicRouter__factory.prototype.deploy = function (_broker, _astonicReserveMultisig, overrides) {
return _super.prototype.deploy.call(this, _broker, _astonicReserveMultisig, overrides || {});
};
AstonicRouter__factory.prototype.getDeployTransaction = function (_broker, _astonicReserveMultisig, overrides) {
return _super.prototype.getDeployTransaction.call(this, _broker, _astonicReserveMultisig, overrides || {});
};
AstonicRouter__factory.prototype.attach = function (address) {
return _super.prototype.attach.call(this, address);
};
AstonicRouter__factory.prototype.connect = function (signer) {
return _super.prototype.connect.call(this, signer);
};
AstonicRouter__factory.createInterface = function () {
return new ethers_1.utils.Interface(_abi);
};
AstonicRouter__factory.connect = function (address, signerOrProvider) {
return new ethers_1.Contract(address, _abi, signerOrProvider);
};
AstonicRouter__factory.bytecode = _bytecode;
AstonicRouter__factory.abi = _abi;
return AstonicRouter__factory;
}(ethers_1.ContractFactory));
exports.AstonicRouter__factory = AstonicRouter__factory;