@biconomy/abstractjs
Version:
SDK for Biconomy integration with support for account abstraction, smart accounts, ERC-4337.
126 lines • 5.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildComposable = exports.build = void 0;
const composabilityCalls_1 = require("../../modules/utils/composabilityCalls.js");
const buildAcrossIntentComposable_1 = require("./instructions/buildAcrossIntentComposable.js");
const buildApprove_1 = require("./instructions/buildApprove.js");
const buildBatch_1 = require("./instructions/buildBatch.js");
const buildComposable_1 = require("./instructions/buildComposable.js");
const buildDefaultInstructions_1 = require("./instructions/buildDefaultInstructions.js");
const buildIntent_1 = require("./instructions/buildIntent.js");
const buildMultichainInstructions_1 = require("./instructions/buildMultichainInstructions.js");
const buildNativeTokenTransfer_1 = require("./instructions/buildNativeTokenTransfer.js");
const buildRawComposable_1 = require("./instructions/buildRawComposable.js");
const buildTransfer_1 = require("./instructions/buildTransfer.js");
const buildTransferFrom_1 = require("./instructions/buildTransferFrom.js");
const buildWithdrawal_1 = require("./instructions/buildWithdrawal.js");
const build = async (baseParams, parameters) => {
const { type, data } = parameters;
const containsRuntimeValues = Object.values(data).some((value) => (0, composabilityCalls_1.isRuntimeComposableValue)(value));
if (containsRuntimeValues) {
throw new Error("Runtime values are not supported for `build` action. Use `buildComposable` instead.");
}
switch (type) {
case "intent": {
return (0, buildIntent_1.buildIntent)(baseParams, data);
}
case "default": {
return (0, buildDefaultInstructions_1.buildDefaultInstructions)(baseParams, data);
}
case "transferFrom": {
return (0, buildTransferFrom_1.buildTransferFrom)(baseParams, data);
}
case "transfer": {
return (0, buildTransfer_1.buildTransfer)(baseParams, data);
}
case "nativeTokenTransfer": {
return (0, buildNativeTokenTransfer_1.default)(baseParams, data);
}
case "approve": {
return (0, buildApprove_1.buildApprove)(baseParams, data);
}
case "withdrawal": {
return (0, buildWithdrawal_1.default)(baseParams, data);
}
case "batch": {
return (0, buildBatch_1.default)(baseParams, data);
}
case "multichain": {
return (0, buildMultichainInstructions_1.buildMultichainInstructions)(baseParams, data);
}
default: {
throw new Error(`Unknown build action type: ${type}`);
}
}
};
exports.build = build;
const buildComposable = async (baseParams, parameters, composabilityVersion) => {
const { type, data, efficientMode } = parameters;
if (type !== "batch" && !composabilityVersion) {
throw new Error(`Composability version param is required for composable type: ${type}`);
}
switch (type) {
case "default": {
return (0, buildComposable_1.buildComposableUtil)(baseParams, data, {
composabilityVersion: composabilityVersion,
efficientMode
});
}
case "rawCalldata": {
return (0, buildRawComposable_1.default)(baseParams, data, {
composabilityVersion: composabilityVersion
});
}
case "transferFrom": {
return (0, buildTransferFrom_1.buildTransferFrom)(baseParams, data, {
forceComposableEncoding: true,
efficientMode,
composabilityVersion: composabilityVersion
});
}
case "transfer": {
return (0, buildTransfer_1.buildTransfer)(baseParams, data, {
forceComposableEncoding: true,
efficientMode,
composabilityVersion: composabilityVersion
});
}
case "nativeTokenTransfer": {
return (0, buildNativeTokenTransfer_1.default)(baseParams, data, {
forceComposableEncoding: true,
efficientMode,
composabilityVersion: composabilityVersion
});
}
case "approve": {
return (0, buildApprove_1.buildApprove)(baseParams, data, {
forceComposableEncoding: true,
efficientMode,
composabilityVersion: composabilityVersion
});
}
case "withdrawal": {
return (0, buildWithdrawal_1.default)(baseParams, data, {
forceComposableEncoding: true,
efficientMode,
composabilityVersion: composabilityVersion
});
}
case "batch": {
return (0, buildBatch_1.default)(baseParams, data);
}
case "acrossIntent": {
return (0, buildAcrossIntentComposable_1.default)(baseParams, data, {
composabilityVersion: composabilityVersion,
efficientMode: false,
forceComposableEncoding: true
});
}
default: {
throw new Error(`Unknown build action type: ${type}`);
}
}
};
exports.buildComposable = buildComposable;
exports.default = exports.build;
//# sourceMappingURL=build.js.map