startale-aa-sdk
Version:
SDK for startale account integration with support for account abstraction, ERC-7579, ERC-4337.
52 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSimulationUserOp = exports.DUMMY_SIMULATION_GAS = void 0;
exports.tenderlySimulation = tenderlySimulation;
const account_abstraction_1 = require("viem/account-abstraction");
const _1 = require("./index.js");
const constants_1 = require("../../constants/index.js");
const deepHexlify_1 = require("./deepHexlify.js");
exports.DUMMY_SIMULATION_GAS = {
callGasLimit: 1000000n,
verificationGasLimit: 1000000n,
preVerificationGas: 1000000n,
maxFeePerGas: 1000000n,
maxPriorityFeePerGas: 1000000n
};
const getSimulationUserOp = (partialUserOp) => {
const mergedUserOp = (0, deepHexlify_1.deepHexlify)({
...exports.DUMMY_SIMULATION_GAS,
...partialUserOp
});
return (0, account_abstraction_1.toPackedUserOperation)(mergedUserOp);
};
exports.getSimulationUserOp = getSimulationUserOp;
function tenderlySimulation(partialUserOp, chainId = 84532) {
const tenderlyDetails = (0, _1.getTenderlyDetails)();
if (!tenderlyDetails) {
console.log("Tenderly details not found in environment variables. Please set TENDERLY_API_KEY, TENDERLY_ACCOUNT_SLUG, and TENDERLY_PROJECT_SLUG.");
return null;
}
const tenderlyUrl = new URL(`https://dashboard.tenderly.co/${tenderlyDetails.accountSlug}/${tenderlyDetails.projectSlug}/simulator/new`);
const packedUserOp = (0, exports.getSimulationUserOp)(partialUserOp);
console.log({ packedUserOp });
const params = new URLSearchParams();
params.append("contractAddress", constants_1.ENTRY_POINT_ADDRESS);
params.append("value", "0");
params.append("network", chainId.toString());
params.append("contractFunction", "0x765e827f");
params.append("functionInputs", JSON.stringify([packedUserOp]));
params.append("stateOverrides", JSON.stringify([
{
contractAddress: packedUserOp.sender,
balance: "100000000000000000000"
},
{
contractAddress: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
balance: "100000000000000000000"
}
]));
tenderlyUrl.search = params.toString();
return tenderlyUrl.toString();
}
//# sourceMappingURL=tenderlySimulation.js.map