@lifi/composer-sdk
Version:
Public Composer SDK for building and submitting flows
41 lines • 1.3 kB
JavaScript
import {
createFlowBuilderCore
} from "./authoring/FlowBuilderCore.js";
import { createComposeClient } from "./client.js";
import {
bindGeneratedOps
} from "./generated/operations.generated.js";
import { buildRun } from "./run/inputs.js";
const createComposeSdk = (options) => {
const composeClient = createComposeClient(options);
const request = (flowDoc, run) => ({
flow: flowDoc,
run: buildRun({
inputs: run.inputs,
preconditions: run.preconditions,
signer: run.signer,
assumptions: run.assumptions,
referrer: run.referrer,
integratorFeeBps: run.integratorFeeBps,
maxPriceImpactBps: run.maxPriceImpactBps,
sweepTo: run.sweepTo,
simulationPolicy: run.simulationPolicy,
checkOnChainAllowances: run.checkOnChainAllowances
})
});
const flow = (chainId, opts) => {
const core = createFlowBuilderCore(chainId, opts);
const builder = Object.assign(core, bindGeneratedOps(core));
const compile = async (run) => {
const flowDoc = builder.build();
const req = request(flowDoc, run);
return composeClient.compile(req);
};
return Object.assign(builder, { compile });
};
return { client: composeClient, flow, request };
};
export {
createComposeSdk
};
//# sourceMappingURL=sdk.js.map