UNPKG

@parifi/synthetix-sdk-ts

Version:

A Typescript SDK for interactions with the Synthetix protocol

179 lines (176 loc) 5.4 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/utils/override.ts var override_exports = {}; __export(override_exports, { erc20AllowanceOverride: () => erc20AllowanceOverride, erc20BalanceOverride: () => erc20BalanceOverride, erc20StateOverrideBalanceAndAllowance: () => erc20StateOverrideBalanceAndAllowance }); module.exports = __toCommonJS(override_exports); var import_viem = require("viem"); // src/constants/slots.ts var tokensSlots = [ { address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", balanceSlot: 9, approveSlot: 10 }, { address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", balanceSlot: 9, approveSlot: 10 }, { address: "0x4EA71A20e655794051D1eE8b6e4A3269B13ccaCc", balanceSlot: 5, approveSlot: 6 }, { address: "0x4EA71A20e655794051D1eE8b6e4A3269B13ccaCc", balanceSlot: 5, approveSlot: 6 }, { address: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", balanceSlot: 9, approveSlot: 10 }, { address: "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", balanceSlot: 9, approveSlot: 10 }, { address: "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22", balanceSlot: 51, approveSlot: 52 }, { address: "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22", balanceSlot: 51, approveSlot: 52 }, { address: "0x4200000000000000000000000000000000000006", balanceSlot: 3, approveSlot: 4 }, { address: "0x4200000000000000000000000000000000000006", balanceSlot: 3, approveSlot: 4 }, { address: "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452", balanceSlot: 1, approveSlot: 2 }, { address: "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452", balanceSlot: 1, approveSlot: 2 }, { address: "0xc43708f8987Df3f3681801e5e640667D86Ce3C30", balanceSlot: 0, approveSlot: 1 }, { address: "0x8608d511E224180051A36d34121725D978064e6E", balanceSlot: 0, approveSlot: 1 }, { address: "0x4200000000000000000000000000000000000006", balanceSlot: 3, approveSlot: 4 }, { address: "0xB3f05d39504dA95876EA0174D25Ae51Ac2422a70", balanceSlot: 0, approveSlot: 1 }, { address: "0x00ab6b818652bB3bFE334983171edFD38184DbeD", balanceSlot: 0, approveSlot: 1 }, { address: "0x7Bf65af7EFBd0E933fb87dD2C9cE7A17d959b822", balanceSlot: 0, approveSlot: 1 } ]; // src/utils/override.ts function erc20BalanceOverride({ token, owner, slot, balance = BigInt("0x100000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") }) { const smartAccountErc20BalanceSlot = (0, import_viem.keccak256)( (0, import_viem.encodeAbiParameters)( [ { type: "address" }, { type: "uint256" } ], [owner, slot] ) ); return [ { address: token, stateDiff: [ { slot: smartAccountErc20BalanceSlot, value: (0, import_viem.toHex)(balance) } ] } ]; } function erc20AllowanceOverride({ token, owner, spender, slot, amount = BigInt("0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") }) { const smartAccountErc20AllowanceSlot = (0, import_viem.keccak256)( (0, import_viem.encodeAbiParameters)( [ { type: "address" }, { type: "bytes32" } ], [ spender, (0, import_viem.keccak256)( (0, import_viem.encodeAbiParameters)( [ { type: "address" }, { type: "uint256" } ], [owner, BigInt(slot)] ) ) ] ) ); return [ { address: token, stateDiff: [ { slot: smartAccountErc20AllowanceSlot, value: (0, import_viem.toHex)(amount) } ] } ]; } var erc20StateOverrideBalanceAndAllowance = ({ token, owner, balance = BigInt("0x100000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"), spender }) => { const balanceSlot = tokensSlots.find((slotData) => slotData.address.toLowerCase() === token.toLowerCase()); if (!balanceSlot) throw new Error("No balance slot"); const balanceOverride = erc20BalanceOverride({ balance, slot: BigInt(balanceSlot.balanceSlot), token, owner }); const approveOverride = erc20AllowanceOverride({ spender, amount: balance, token, slot: BigInt(balanceSlot.approveSlot), owner }); return [...balanceOverride, ...approveOverride]; }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { erc20AllowanceOverride, erc20BalanceOverride, erc20StateOverrideBalanceAndAllowance }); //# sourceMappingURL=override.js.map