@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
JavaScript
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;
;