Skip to content

Instantly share code, notes, and snippets.

import { Amount, toBigNumber } from "@mrgnlabs/mrgn-common";
import { getMarginfiClient } from "./utils";
import { Bank, OraclePrice } from "../src";
import BigNumber from "bignumber.js";
async function main() {
const client = await getMarginfiClient();
const uxdBank = client.getBankByTokenSymbol("UXD");
if (!uxdBank) {
throw new Error("UXD bank not found");
@losman0s
losman0s / conversion_utils.rs
Created February 21, 2024 05:57
Collection of conversion helpers for UI -> non-UI transaction-related structs
pub fn convert_encoded_ui_transaction(
encoded_tx: EncodedTransactionWithStatusMeta,
) -> anyhow::Result<VersionedTransactionWithStatusMeta> {
Ok(VersionedTransactionWithStatusMeta {
transaction: encoded_tx.transaction.decode().unwrap(),
meta: convert_meta(encoded_tx.meta.unwrap())?,
})
}
pub fn convert_meta(ui_meta: UiTransactionStatusMeta) -> anyhow::Result<TransactionStatusMeta> {
import fs from "fs";
import { AccountInfo, Connection, PublicKey } from "@solana/web3.js";
import { getConfig, MarginfiAccountWrapper, MarginfiClient } from "@mrgnlabs/marginfi-client-v2";
const BANK_TOKEN = "SOL";
// const BANK_TOKEN_MINT = "So11111111111111111111111111111111111111112";
interface BankDepositor {
wallet: string;
userAccount: string;
@losman0s
losman0s / geyser_protos.rs
Created December 4, 2022 14:10
Collection of conversion impl's between Triton's gRPC proto structs and Solana SDK structs
use itertools::Itertools;
use solana_account_decoder::parse_token::UiTokenAmount;
use solana_sdk::{
hash::Hash,
instruction::CompiledInstruction,
message::{
legacy,
v0::{self, LoadedAddresses, MessageAddressTableLookup},
MessageHeader, VersionedMessage,
},
@losman0s
losman0s / token_account_helper.ts
Created January 8, 2022 20:13
Token accounts for owner
import * as BufferLayout from "buffer-layout";
import {
AccountInfo,
ASSOCIATED_TOKEN_PROGRAM_ID,
Token,
TOKEN_PROGRAM_ID,
u64,
} from "@solana/spl-token";
import { Connection, PublicKey } from "@solana/web3.js";
import { BN } from "bn.js";