rubic-sdk
Version:
Simplify dApp creation
39 lines • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CamelotGravityProvider = void 0;
const blockchain_name_1 = require("../../../../../../../core/blockchain/models/blockchain-name");
const evm_web3_pure_1 = require("../../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
const token_native_address_proxy_1 = require("../../../../../../common/utils/token-native-address-proxy");
const on_chain_trade_type_1 = require("../../../common/models/on-chain-trade-type");
const algebra_quoter_controller_1 = require("../../common/algebra/algebra-quoter-controller");
const uniswap_v3_algebra_abstract_provider_1 = require("../../common/uniswap-v3-algebra-abstract/uniswap-v3-algebra-abstract-provider");
const swap_router_contract_data_1 = require("../../polygon/quick-swap-v3/constants/swap-router-contract-data");
const default_constants_1 = require("../default-constants");
const camelot_gravity_trade_1 = require("./camelot-gravity-trade");
const gravity_swap_router_contract_address_1 = require("./constants/gravity-swap-router-contract-address");
const provider_configuration_1 = require("./constants/provider-configuration");
const quote_contract_data_1 = require("./constants/quote-contract-data");
class CamelotGravityProvider extends uniswap_v3_algebra_abstract_provider_1.UniswapV3AlgebraAbstractProvider {
constructor() {
super(...arguments);
this.contractAddress = gravity_swap_router_contract_address_1.CAMELOT_GRAVITY_ROUTER_CONTRACT_ADDRESS;
this.contractAbi = swap_router_contract_data_1.QUICK_SWAP_V3_ROUTER_CONTRACT_ABI;
this.blockchain = blockchain_name_1.BLOCKCHAIN_NAME.GRAVITY;
this.OnChainTradeClass = camelot_gravity_trade_1.CamelotGravityTrade;
this.quoterController = new algebra_quoter_controller_1.AlgebraQuoterController(this.blockchain, default_constants_1.defaultGravityProviderConfiguration.routingProvidersAddresses, quote_contract_data_1.CAMELOT_GRAVITY_QUOTER_CONTRACT_ADDRESS, quote_contract_data_1.CAMELOT_GRAVITY_QUOTER_CONTRACT_ABI);
this.providerConfiguration = provider_configuration_1.CAMELOT_GRAVITY_PROVIDER_CONFIGURATION;
}
get type() {
return on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.CAMELOT;
}
createTradeInstance(tradeStruct, route, providerAddress) {
const path = (0, token_native_address_proxy_1.createTokenNativeAddressProxyInPathStartAndEnd)(route.path, evm_web3_pure_1.EvmWeb3Pure.nativeTokenAddress);
return new camelot_gravity_trade_1.CamelotGravityTrade({
...tradeStruct,
path,
route
}, providerAddress);
}
}
exports.CamelotGravityProvider = CamelotGravityProvider;
//# sourceMappingURL=camelot-gravity-provider.js.map