UNPKG

@rainfi/sdk

Version:

This package is used to interact with Rain.fi protocol on Solana

224 lines 9.02 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MORTGAGE_ACCOUNT_LAYOUT = exports.RAIN_CUSTOM_MORTGAGE_LAYOUT = exports.RAIN_CUSTOM_LOAN_LAYOUT = exports.COLLECTION_GLOBAL_OFFER_LAYOUT = exports.GLOBAL_OFFER_WHITELIST_LAYOUT = exports.COLLECTION_ACCOUNT_LAYOUT = exports.POOL_ACCOUNT_LAYOUT = exports.LOAN_ACCOUNT_LAYOUT = exports.ESCROW_ACCOUNT_DATA_LAYOUT = exports.uint32 = exports.publicKey = void 0; const web3_js_1 = require("@solana/web3.js"); const BufferLayout = __importStar(require("buffer-layout")); const bn_js_1 = __importDefault(require("bn.js")); /** * Layout for a public key */ const publicKey = (property = 'publicKey') => { const publicKeyLayout = BufferLayout.blob(32, property); const _decode = publicKeyLayout.decode.bind(publicKeyLayout); const _encode = publicKeyLayout.encode.bind(publicKeyLayout); publicKeyLayout.decode = (buffer, offset) => { const data = _decode(buffer, offset); return new web3_js_1.PublicKey(data); }; publicKeyLayout.encode = (key, buffer, offset) => { return _encode(key.toBuffer(), buffer, offset); }; return publicKeyLayout; }; exports.publicKey = publicKey; /** * Layout for a 64bit unsigned value */ const uint32 = (property = 'uint32') => { const layout = BufferLayout.blob(4, property); const _decode = layout.decode.bind(layout); const _encode = layout.encode.bind(layout); layout.decode = (buffer, offset) => { const data = _decode(buffer, offset); return new bn_js_1.default([...data] .reverse() .map(i => `00${i.toString(16)}`.slice(-2)) .join(''), 16); }; layout.encode = (num, buffer, offset) => { const a = num.toArray().reverse(); let b = Buffer.from(a); if (b.length !== 8) { const zeroPad = Buffer.alloc(8); b.copy(zeroPad); b = zeroPad; } return _encode(b, buffer, offset); }; return layout; }; exports.uint32 = uint32; exports.ESCROW_ACCOUNT_DATA_LAYOUT = BufferLayout.struct([ BufferLayout.u8("isInitialized"), BufferLayout.blob(32, "initializerPubkey"), BufferLayout.blob(32, "initializerTempTokenAccountPubkey"), BufferLayout.blob(8, "expectedAmount"), ]); exports.LOAN_ACCOUNT_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(1, "status"), BufferLayout.blob(32, "borrower"), BufferLayout.blob(32, "lender"), BufferLayout.blob(32, "pool"), BufferLayout.blob(32, "mint"), BufferLayout.blob(32, "currency"), BufferLayout.blob(1, "is_custom"), BufferLayout.blob(8, "interest"), BufferLayout.blob(8, "amount"), BufferLayout.blob(8, "duration"), BufferLayout.blob(4, "collection"), BufferLayout.blob(2, "liquidation"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(8, "expired_at"), BufferLayout.blob(8, "repaid_at"), BufferLayout.blob(8, "liquidated_at"), BufferLayout.blob(64, "padding"), ]); exports.POOL_ACCOUNT_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(1, "bump"), BufferLayout.blob(32, "owner"), BufferLayout.blob(32, "mint"), BufferLayout.blob(32, "oracle_pool_usd"), BufferLayout.blob(32, "oracle_sol_usd"), BufferLayout.blob(1, "status"), BufferLayout.blob(8, "deposited_amount"), BufferLayout.blob(8, "total_amount"), BufferLayout.blob(8, "borrowed_amount"), BufferLayout.blob(8, "available_amount"), BufferLayout.blob(8, "usable_amount"), BufferLayout.blob(8, "max_amount"), BufferLayout.blob(8, "interest_curve"), BufferLayout.blob(8, "interest_gap"), BufferLayout.blob(8, "max_duration"), BufferLayout.blob(2, "loan_to_value"), BufferLayout.blob(1, "interest_type"), BufferLayout.blob(8, "interest_rate"), BufferLayout.blob(1, "compound"), BufferLayout.blob(1, "is_mortgage_enabled"), BufferLayout.blob(8, "mortgage_interest_curve"), BufferLayout.blob(8, "mortgage_interest_gap"), BufferLayout.blob(8, "mortgage_fixed_interest"), BufferLayout.blob(8, "mortgage_max_duration"), BufferLayout.blob(8, "nft_locked"), BufferLayout.blob(8, "total_liquidations"), BufferLayout.blob(8, "total_loans"), BufferLayout.blob(8, "total_mortgage"), BufferLayout.blob(8, "total_interest"), BufferLayout.blob(8, "deposited_at"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(8, "updated_at"), BufferLayout.blob(8, "last_loan_at"), BufferLayout.blob(8, "last_mortgage_at"), BufferLayout.blob(2, "loan_liquidation"), BufferLayout.blob(2, "mortgage_liquidation"), BufferLayout.blob(4, "padding3"), BufferLayout.blob((19 * 8), "padding1"), BufferLayout.blob(6 * 50, "collections"), ]); exports.COLLECTION_ACCOUNT_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(4, "collection_id"), BufferLayout.blob(128, "name"), BufferLayout.blob(1, "risk"), BufferLayout.blob(32, "creator"), BufferLayout.blob(32, "collection"), BufferLayout.blob(8, "floor_price"), BufferLayout.blob(8, "supply"), BufferLayout.blob(8, "nft_locked"), BufferLayout.blob(1, "is_locked"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(8, "updated_at"), ]); exports.GLOBAL_OFFER_WHITELIST_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(4, "collection_id"), ]); exports.COLLECTION_GLOBAL_OFFER_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(128, "name"), BufferLayout.blob(32, "authority"), BufferLayout.blob(32, "creator"), BufferLayout.blob(32, "collection"), BufferLayout.blob(4, "collection_id"), BufferLayout.blob(8 + 8 + 8 + 8 + 1 + 1 + 8 + 8 + 8, "rest"), ]); exports.RAIN_CUSTOM_LOAN_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(1, "status"), BufferLayout.blob(32, "borrower"), BufferLayout.blob(32, "mint"), BufferLayout.blob(32, "pool"), BufferLayout.blob(8, "amount"), BufferLayout.blob(8, "duration"), BufferLayout.blob(4, "collection"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(73, "rest"), ]); exports.RAIN_CUSTOM_MORTGAGE_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(1, "status"), BufferLayout.blob(32, "borrower"), BufferLayout.blob(32, "mint"), BufferLayout.blob(32, "escrow_address"), BufferLayout.blob(32, "seller"), BufferLayout.blob(32, "pool"), BufferLayout.blob(1, "marketplace"), BufferLayout.blob(8, "amount"), BufferLayout.blob(8, "price"), BufferLayout.blob(8, "duration"), BufferLayout.blob(4, "collection"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(64, "rest"), ]); exports.MORTGAGE_ACCOUNT_LAYOUT = BufferLayout.struct([ BufferLayout.blob(8, "padding"), BufferLayout.blob(1, "status"), BufferLayout.blob(32, "borrower"), BufferLayout.blob(32, "pool"), BufferLayout.blob(32, "mint"), BufferLayout.blob(1, "marketplace"), BufferLayout.blob(1, "is_for_sale"), BufferLayout.blob(8, "sale_price"), BufferLayout.blob(8, "loan_to_value"), BufferLayout.blob(1, "is_frozen"), BufferLayout.blob(8, "interest"), BufferLayout.blob(8, "repaid"), BufferLayout.blob(8, "amount"), BufferLayout.blob(8, "price"), BufferLayout.blob(8, "duration"), BufferLayout.blob(4, "collection"), BufferLayout.blob(2, "liquidation"), BufferLayout.blob(8, "created_at"), BufferLayout.blob(8, "expired_at"), BufferLayout.blob(8, "sold_at"), BufferLayout.blob(8, "repaid_at"), BufferLayout.blob(8, "liquidated_at"), ]); //# sourceMappingURL=layout.utils.js.map