@indigo-labs/indigo-sdk
Version:
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
24 lines (21 loc) • 822 B
text/typescript
import { Constr, Data } from "@lucid-evolution/lucid";
import { PriceOracleDatum } from "../types/indigo/price-oracle";
export class PriceOracleContract {
static decodePriceOracleDatum(datum: string): PriceOracleDatum {
const oracleDatum = Data.from(datum) as any;
if (oracleDatum.index != 0 || oracleDatum.fields.length !== 2 || oracleDatum.fields[0].index !== 0)
throw 'Invalid Price Oracle Datum provided.'
return {
price: oracleDatum.fields[0].fields[0],
expiration: oracleDatum.fields[1],
}
}
static encodePriceOracleDatum(datum: PriceOracleDatum): string {
return Data.to(
new Constr(0, [
new Constr(0, [datum.price]),
datum.expiration,
])
)
}
}