UNPKG

@firefly-exchange/library-sui

Version:

Sui library housing helper methods, classes to interact with Bluefin protocol(s) deployed on Sui

51 lines (50 loc) 2.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BluefinV3 = void 0; const on_chain_calls_1 = require("./on-chain-calls"); const account_1 = __importDefault(require("./on-chain-calls/account")); const store_1 = __importDefault(require("./on-chain-calls/store")); const requests_builder_1 = require("./requests-builder"); const utils_1 = require("./utils"); const deployment_parser_1 = require("./utils/deployment-parser"); class BluefinV3 { constructor(_network, _suiClient, _deployment, _signer, _walletAddress) { this.network = _network; this.suiClient = _suiClient; this.parser = new deployment_parser_1.DeploymentParser(_deployment); // could be undefined, if initializing the bluefinV3 for only get calls this.signer = _signer; this.walletAddress = _walletAddress || _signer?.toSuiAddress(); this.txBuilder = new on_chain_calls_1.TxBuilder(_deployment); this.admin = new on_chain_calls_1.AdminCalls(_network, _suiClient, _deployment, _signer, _walletAddress); this.user = new on_chain_calls_1.UserCalls(_network, _suiClient, _deployment, _signer, _walletAddress); this.sequencer = new on_chain_calls_1.SequencerCalls(_network, _suiClient, _deployment, _signer, _walletAddress); this.requests = new requests_builder_1.RequestsBuilder(_deployment, _signer, _walletAddress); this.simulator = new utils_1.MarginingEngineSimulator(_suiClient, _deployment); } /** * Returns on-chain data of provided perpetual from EDS * @param perpName Name of the perpetual */ async getPerpetualFromEDS(perpName) { return store_1.default.getPerpetualFromStore(this.suiClient, this.parser.getExternalDataStore(), perpName, true); } /** * Returns on-chain data of provided perpetual from IDS * @param perpName Name of the perpetual */ async getPerpetualFromIDS(perpName) { return store_1.default.getPerpetualFromStore(this.suiClient, this.parser.getInternalDataStore(), perpName); } /** * Returns account state from chain * @param account (optional) address of the user */ async getAccountStateOnChain(account) { return account_1.default.getAccount(this.suiClient, this.parser.getInternalDataStore(), account || this.walletAddress); } } exports.BluefinV3 = BluefinV3;