voxelithic-interfaces 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/abi.js CHANGED
@@ -4,3 +4,5 @@ export const VoxRouterABI = [{ "type": "constructor", "inputs": [], "stateMutabi
4
4
  export const VoxQuoterABI = [{ "type": "fallback", "stateMutability": "nonpayable" }, { "type": "function", "name": "quoteExactIn", "inputs": [{ "name": "pool", "type": "address", "internalType": "address" }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "amountOut", "type": "uint256", "internalType": "uint256" }, { "name": "amountPaid", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "quoteMany", "inputs": [{ "name": "legs", "type": "tuple[]", "internalType": "struct VoxQuoter.Leg[]", "components": [{ "name": "pool", "type": "address", "internalType": "address" }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "outs", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "paid", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "nonpayable" }, { "type": "error", "name": "PoolDidNotRevert", "inputs": [] }, { "type": "error", "name": "QuoteResult", "inputs": [{ "name": "amountOut", "type": "uint256", "internalType": "uint256" }, { "name": "amountPaid", "type": "uint256", "internalType": "uint256" }] }];
5
5
  export const VoxRouterV4ABI = [{ "type": "constructor", "inputs": [{ "name": "poolManager", "type": "address", "internalType": "address" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "MAX_FEE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }], "stateMutability": "view" }, { "type": "function", "name": "MAX_HOPS", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "acceptOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "feeBps", "inputs": [], "outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }], "stateMutability": "view" }, { "type": "function", "name": "feeRecipient", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "manager", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IPoolManagerV4" }], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "pendingOwner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "rescue", "inputs": [{ "name": "token", "type": "address", "internalType": "address" }, { "name": "to", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setFee", "inputs": [{ "name": "bps", "type": "uint16", "internalType": "uint16" }, { "name": "recipient", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapExactIn", "inputs": [{ "name": "hops", "type": "tuple[]", "internalType": "struct VoxRouterV4.Hop[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "outToUser", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "transferOwnership", "inputs": [{ "name": "to", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockCallback", "inputs": [{ "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "event", "name": "FeeSet", "inputs": [{ "name": "feeBps", "type": "uint16", "indexed": false, "internalType": "uint16" }, { "name": "feeRecipient", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerSet", "inputs": [{ "name": "owner", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerTransferStarted", "inputs": [{ "name": "from", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "Rescued", "inputs": [{ "name": "token", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "RouteExecuted", "inputs": [{ "name": "user", "type": "address", "indexed": true, "internalType": "address" }, { "name": "tokenIn", "type": "address", "indexed": true, "internalType": "address" }, { "name": "tokenOut", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amountIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "amountOut", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "venueCount", "type": "uint8", "indexed": false, "internalType": "uint8" }], "anonymous": false }, { "type": "error", "name": "AmountTooLarge", "inputs": [] }, { "type": "error", "name": "BadDelta", "inputs": [{ "name": "delta", "type": "int256", "internalType": "int256" }] }, { "type": "error", "name": "CircularPath", "inputs": [] }, { "type": "error", "name": "Expired", "inputs": [{ "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "nowTs", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "FeeTooHigh", "inputs": [{ "name": "bps", "type": "uint16", "internalType": "uint16" }] }, { "type": "error", "name": "HooksNotSupported", "inputs": [{ "name": "hooks", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "NativeNotSupported", "inputs": [] }, { "type": "error", "name": "NoHops", "inputs": [] }, { "type": "error", "name": "NotAContract", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "NotOwner", "inputs": [] }, { "type": "error", "name": "PartialFill", "inputs": [{ "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "wanted", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "PathBroken", "inputs": [{ "name": "hopIndex", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "Reentered", "inputs": [] }, { "type": "error", "name": "TooManyHops", "inputs": [{ "name": "given", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "TransferFailed", "inputs": [] }, { "type": "error", "name": "UnexpectedCallback", "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "VoxSlippage", "inputs": [{ "name": "received", "type": "uint256", "internalType": "uint256" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "ZeroAddress", "inputs": [] }, { "type": "error", "name": "ZeroAmount", "inputs": [] }];
6
6
  export const VoxQuoterV4ABI = [{ "type": "constructor", "inputs": [{ "name": "poolManager", "type": "address", "internalType": "address" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "manager", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IPoolManagerV4" }], "stateMutability": "view" }, { "type": "function", "name": "quoteExactIn", "inputs": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "amountOut", "type": "uint256", "internalType": "uint256" }, { "name": "amountPaid", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "quoteMany", "inputs": [{ "name": "legs", "type": "tuple[]", "internalType": "struct VoxQuoterV4.Leg[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "outs", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "paids", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "quotePath", "inputs": [{ "name": "path", "type": "tuple[]", "internalType": "struct VoxQuoterV4.Leg[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }, { "name": "amountIn", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "amountOut", "type": "uint256", "internalType": "uint256" }, { "name": "amountPaid", "type": "uint256", "internalType": "uint256" }, { "name": "hopsFilled", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockCallback", "inputs": [{ "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "error", "name": "BadDelta", "inputs": [{ "name": "delta", "type": "int256", "internalType": "int256" }] }, { "type": "error", "name": "ManagerDidNotRevert", "inputs": [] }, { "type": "error", "name": "QuoteFailed", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "QuoteResult", "inputs": [{ "name": "amountOut", "type": "uint256", "internalType": "uint256" }, { "name": "amountPaid", "type": "uint256", "internalType": "uint256" }, { "name": "hopsFilled", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "UnexpectedCallback", "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] }];
7
+ export const VoxRouterMixedABI = [{ "type": "constructor", "inputs": [{ "name": "poolManager", "type": "address", "internalType": "address" }], "stateMutability": "nonpayable" }, { "type": "fallback", "stateMutability": "nonpayable" }, { "type": "function", "name": "MAX_FEE_BPS", "inputs": [], "outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }], "stateMutability": "view" }, { "type": "function", "name": "MAX_HOPS_PER_LEG", "inputs": [], "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }], "stateMutability": "view" }, { "type": "function", "name": "MAX_LEGS", "inputs": [], "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }], "stateMutability": "view" }, { "type": "function", "name": "MAX_TOTAL_HOPS", "inputs": [], "outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }], "stateMutability": "view" }, { "type": "function", "name": "acceptOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "feeBps", "inputs": [], "outputs": [{ "name": "", "type": "uint16", "internalType": "uint16" }], "stateMutability": "view" }, { "type": "function", "name": "feeRecipient", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "manager", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IPoolManagerV4" }], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "pendingOwner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "rescue", "inputs": [{ "name": "token", "type": "address", "internalType": "address" }, { "name": "to", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setFee", "inputs": [{ "name": "bps", "type": "uint16", "internalType": "uint16" }, { "name": "recipient", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapExactInSplit", "inputs": [{ "name": "tokenIn", "type": "address", "internalType": "address" }, { "name": "tokenOut", "type": "address", "internalType": "address" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "legs3", "type": "tuple[]", "internalType": "struct VoxRouterMixed.LegV3[]", "components": [{ "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "hops", "type": "tuple[]", "internalType": "struct VoxRouterMixed.HopV3[]", "components": [{ "name": "kind", "type": "uint8", "internalType": "uint8" }, { "name": "pool", "type": "address", "internalType": "address" }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }, { "name": "feePpm", "type": "uint24", "internalType": "uint24" }] }] }, { "name": "legs4", "type": "tuple[]", "internalType": "struct VoxRouterMixed.LegV4[]", "components": [{ "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "hops", "type": "tuple[]", "internalType": "struct VoxRouterMixed.HopV4[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }] }], "outputs": [{ "name": "outToUser", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "transferOwnership", "inputs": [{ "name": "to", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "uniswapV3SwapCallback", "inputs": [{ "name": "amount0Delta", "type": "int256", "internalType": "int256" }, { "name": "amount1Delta", "type": "int256", "internalType": "int256" }, { "name": "", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockCallback", "inputs": [{ "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "event", "name": "FeeSet", "inputs": [{ "name": "feeBps", "type": "uint16", "indexed": false, "internalType": "uint16" }, { "name": "feeRecipient", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerSet", "inputs": [{ "name": "owner", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerTransferStarted", "inputs": [{ "name": "from", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "Rescued", "inputs": [{ "name": "token", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "RouteExecuted", "inputs": [{ "name": "user", "type": "address", "indexed": true, "internalType": "address" }, { "name": "tokenIn", "type": "address", "indexed": true, "internalType": "address" }, { "name": "tokenOut", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amountIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "amountOut", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "venueCount", "type": "uint8", "indexed": false, "internalType": "uint8" }], "anonymous": false }, { "type": "event", "name": "SplitExecuted", "inputs": [{ "name": "user", "type": "address", "indexed": true, "internalType": "address" }, { "name": "legsV3", "type": "uint8", "indexed": false, "internalType": "uint8" }, { "name": "legsV4", "type": "uint8", "indexed": false, "internalType": "uint8" }, { "name": "amountIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "amountOut", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "AmountTooLarge", "inputs": [] }, { "type": "error", "name": "BadDelta", "inputs": [{ "name": "delta", "type": "int256", "internalType": "int256" }] }, { "type": "error", "name": "BadHops", "inputs": [] }, { "type": "error", "name": "BadLegs", "inputs": [] }, { "type": "error", "name": "CallbackOverdraw", "inputs": [{ "name": "owed", "type": "uint256", "internalType": "uint256" }, { "name": "allowed", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "Expired", "inputs": [{ "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "nowTs", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "FeeTooHigh", "inputs": [{ "name": "bps", "type": "uint16", "internalType": "uint16" }] }, { "type": "error", "name": "HooksNotSupported", "inputs": [{ "name": "hooks", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "NativeNotSupported", "inputs": [] }, { "type": "error", "name": "NotAContract", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "NotOwner", "inputs": [] }, { "type": "error", "name": "PartialFill", "inputs": [{ "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "wanted", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "Reentered", "inputs": [] }, { "type": "error", "name": "RouteMismatch", "inputs": [{ "name": "got", "type": "address", "internalType": "address" }, { "name": "want", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SameToken", "inputs": [] }, { "type": "error", "name": "TransferFailed", "inputs": [] }, { "type": "error", "name": "UnexpectedCallback", "inputs": [{ "name": "caller", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "UnsupportedVenue", "inputs": [{ "name": "kind", "type": "uint8", "internalType": "uint8" }] }, { "type": "error", "name": "VoxSlippage", "inputs": [{ "name": "received", "type": "uint256", "internalType": "uint256" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "ZeroAddress", "inputs": [] }, { "type": "error", "name": "ZeroAmount", "inputs": [] }];
8
+ export const VoxTreasuryV2ABI = [{ "type": "constructor", "inputs": [{ "name": "routerV4", "type": "address", "internalType": "address" }, { "name": "routerSplit", "type": "address", "internalType": "address" }, { "name": "voxel", "type": "address", "internalType": "address" }, { "name": "sink", "type": "address", "internalType": "address" }, { "name": "executor_", "type": "address", "internalType": "address" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "ROUTER_SPLIT", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "ROUTER_V4", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "SINK", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "VOXEL", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "acceptOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "allowedPool", "inputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "burnVoxel", "inputs": [], "outputs": [{ "name": "amount", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "buybackSplit", "inputs": [{ "name": "tokenIn", "type": "address", "internalType": "address" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "legs3", "type": "tuple[]", "internalType": "struct IVoxRouterMixed.LegV3[]", "components": [{ "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "hops", "type": "tuple[]", "internalType": "struct IVoxRouterMixed.HopV3[]", "components": [{ "name": "kind", "type": "uint8", "internalType": "uint8" }, { "name": "pool", "type": "address", "internalType": "address" }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }, { "name": "feePpm", "type": "uint24", "internalType": "uint24" }] }] }, { "name": "legs4", "type": "tuple[]", "internalType": "struct IVoxRouterMixed.LegV4[]", "components": [{ "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "hops", "type": "tuple[]", "internalType": "struct IVoxRouterMixed.HopV4[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }] }], "outputs": [{ "name": "voxelBurned", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "buybackV4", "inputs": [{ "name": "amountIn", "type": "uint256", "internalType": "uint256" }, { "name": "minOut", "type": "uint256", "internalType": "uint256" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "hops", "type": "tuple[]", "internalType": "struct IVoxRouterV4.Hop[]", "components": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }, { "name": "zeroForOne", "type": "bool", "internalType": "bool" }] }], "outputs": [{ "name": "voxelBurned", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "executor", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "pendingOwner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "poolIdV3", "inputs": [{ "name": "pool", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "poolIdV4", "inputs": [{ "name": "key", "type": "tuple", "internalType": "struct PoolKey", "components": [{ "name": "currency0", "type": "address", "internalType": "address" }, { "name": "currency1", "type": "address", "internalType": "address" }, { "name": "fee", "type": "uint24", "internalType": "uint24" }, { "name": "tickSpacing", "type": "int24", "internalType": "int24" }, { "name": "hooks", "type": "address", "internalType": "address" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "setExecutor", "inputs": [{ "name": "executor_", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setPoolsAllowed", "inputs": [{ "name": "ids", "type": "bytes32[]", "internalType": "bytes32[]" }, { "name": "allowed", "type": "bool", "internalType": "bool" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "totalBurned", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "transferOwnership", "inputs": [{ "name": "to", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "BoughtBack", "inputs": [{ "name": "tokenIn", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amountIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "voxelBurned", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "family", "type": "uint8", "indexed": false, "internalType": "uint8" }], "anonymous": false }, { "type": "event", "name": "ExecutorSet", "inputs": [{ "name": "executor", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerSet", "inputs": [{ "name": "owner", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "OwnerTransferStarted", "inputs": [{ "name": "from", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "PoolAllowed", "inputs": [{ "name": "id", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "allowed", "type": "bool", "indexed": false, "internalType": "bool" }], "anonymous": false }, { "type": "error", "name": "NoHops", "inputs": [] }, { "type": "error", "name": "NotExecutor", "inputs": [] }, { "type": "error", "name": "NotOwner", "inputs": [] }, { "type": "error", "name": "NothingBought", "inputs": [] }, { "type": "error", "name": "PoolNotAllowed", "inputs": [{ "name": "id", "type": "bytes32", "internalType": "bytes32" }] }, { "type": "error", "name": "TokenIsVoxel", "inputs": [] }, { "type": "error", "name": "TransferFailed", "inputs": [] }, { "type": "error", "name": "ZeroAddress", "inputs": [] }, { "type": "error", "name": "ZeroAmount", "inputs": [] }];
@@ -3,6 +3,18 @@ export declare const ROUTER: "0x87cD7EbE8c213455e5e5a8554657D5f294a82e64";
3
3
  export declare const QUOTER: "0x9616627E871c96e38cb21b9551F62Ed93366bE1B";
4
4
  export declare const ROUTER_V4: "0x290b9b46308f7a3B80A5F62214B426d3bfAfaab5";
5
5
  export declare const QUOTER_V4: "0x5858F06894623eF4862103A747074E5AA3436d4F";
6
- export declare const UNISWAP_V4_SINGLETON: "0xc851aDa1e4Fa2A9dd5483284d6b30e2950Cc4F04";
7
- /** Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его. */
8
- export declare const TREASURY: "0xDfC6004E2a56de0e59007BFC4F3E3890a889af67";
6
+ export declare const ROUTER_SPLIT: "0xda61673A51d6EA2c02C335185399Ddb818bdBC6f";
7
+ export declare const UNISWAP_V4_SINGLETON: "0x8366a39CC670B4001A1121B8F6A443A643e40951";
8
+ /** Выкупаемый и сжигаемый токен. Торгуется только в пулах четвёртой версии. */
9
+ export declare const VOXEL: "0xA01Bc586CD5F4f253BfAB4e44400c52dbC18bC50";
10
+ /** Адрес сжигания. Приватного ключа к нему не существует. */
11
+ export declare const BURN_SINK: "0x000000000000000000000000000000000000dEaD";
12
+ /**
13
+ * Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его.
14
+ *
15
+ * Заменяет казну по адресу 0xDfC6004E…, которая ходила роутером третьей версии.
16
+ * Пул третьей версии с VOXEL на цепи один и пустой, поэтому та казна не могла
17
+ * исполнить свою единственную функцию. Эта покупает роутером v4 и сплит-роутером.
18
+ * Старый контракт остаётся в чейне, но комиссию больше не получает.
19
+ */
20
+ export declare const TREASURY: "0x25A99c317f3125Fc6cd245197028f49CfF56612E";
package/dist/addresses.js CHANGED
@@ -3,6 +3,22 @@ export const ROUTER = '0x87cD7EbE8c213455e5e5a8554657D5f294a82e64';
3
3
  export const QUOTER = '0x9616627E871c96e38cb21b9551F62Ed93366bE1B';
4
4
  export const ROUTER_V4 = '0x290b9b46308f7a3B80A5F62214B426d3bfAfaab5';
5
5
  export const QUOTER_V4 = '0x5858F06894623eF4862103A747074E5AA3436d4F';
6
- export const UNISWAP_V4_SINGLETON = '0xc851aDa1e4Fa2A9dd5483284d6b30e2950Cc4F04';
7
- /** Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его. */
8
- export const TREASURY = '0xDfC6004E2a56de0e59007BFC4F3E3890a889af67';
6
+ /* Сплит-исполнение: делит один ордер по пулам ОБЕИХ семей и проводит их одной
7
+ транзакцией. Стоит рядом с ROUTER и ROUTER_V4, они не заменены. */
8
+ export const ROUTER_SPLIT = '0xda61673A51d6EA2c02C335185399Ddb818bdBC6f';
9
+ /* Проверено вызовом manager() у обоих наших v4-роутеров. По прежнему адресу
10
+ в этом пакете кода не было вовсе — константа указывала в пустоту. */
11
+ export const UNISWAP_V4_SINGLETON = '0x8366a39CC670B4001A1121B8F6A443A643e40951';
12
+ /** Выкупаемый и сжигаемый токен. Торгуется только в пулах четвёртой версии. */
13
+ export const VOXEL = '0xA01Bc586CD5F4f253BfAB4e44400c52dbC18bC50';
14
+ /** Адрес сжигания. Приватного ключа к нему не существует. */
15
+ export const BURN_SINK = '0x000000000000000000000000000000000000dEaD';
16
+ /**
17
+ * Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его.
18
+ *
19
+ * Заменяет казну по адресу 0xDfC6004E…, которая ходила роутером третьей версии.
20
+ * Пул третьей версии с VOXEL на цепи один и пустой, поэтому та казна не могла
21
+ * исполнить свою единственную функцию. Эта покупает роутером v4 и сплит-роутером.
22
+ * Старый контракт остаётся в чейне, но комиссию больше не получает.
23
+ */
24
+ export const TREASURY = '0x25A99c317f3125Fc6cd245197028f49CfF56612E';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voxelithic-interfaces",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "TypeScript types, contract ABIs and verified addresses for Voxelithic on Robinhood Chain (4663)",
5
5
  "keywords": [
6
6
  "robinhood-chain",
@@ -30,7 +30,8 @@
30
30
  "dist",
31
31
  "src",
32
32
  "README.md",
33
- "LICENSE"
33
+ "LICENSE",
34
+ "tsconfig.json"
34
35
  ],
35
36
  "engines": {
36
37
  "node": ">=18"
@@ -40,8 +41,7 @@
40
41
  "build": "tsc",
41
42
  "test": "node test/smoke.mjs",
42
43
  "test:onchain": "node test/onchain.mjs",
43
- "gen:tokens": "node scripts/gen-tokens.mjs",
44
- "prepublishOnly": "npm run build && npm test"
44
+ "gen:tokens": "node scripts/gen-tokens.mjs"
45
45
  },
46
46
  "devDependencies": {
47
47
  "typescript": "^5.6.0"
package/src/abi.ts CHANGED
@@ -8,3 +8,7 @@ export const VoxQuoterABI = [{"type":"fallback","stateMutability":"nonpayable"},
8
8
  export const VoxRouterV4ABI = [{"type":"constructor","inputs":[{"name":"poolManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_FEE_BPS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MAX_HOPS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManagerV4"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"rescue","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFee","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactIn","inputs":[{"name":"hops","type":"tuple[]","internalType":"struct VoxRouterV4.Hop[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"outToUser","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"event","name":"FeeSet","inputs":[{"name":"feeBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"feeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerSet","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerTransferStarted","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Rescued","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RouteExecuted","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"venueCount","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"AmountTooLarge","inputs":[]},{"type":"error","name":"BadDelta","inputs":[{"name":"delta","type":"int256","internalType":"int256"}]},{"type":"error","name":"CircularPath","inputs":[]},{"type":"error","name":"Expired","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nowTs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FeeTooHigh","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"HooksNotSupported","inputs":[{"name":"hooks","type":"address","internalType":"address"}]},{"type":"error","name":"NativeNotSupported","inputs":[]},{"type":"error","name":"NoHops","inputs":[]},{"type":"error","name":"NotAContract","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"PartialFill","inputs":[{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"wanted","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PathBroken","inputs":[{"name":"hopIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Reentered","inputs":[]},{"type":"error","name":"TooManyHops","inputs":[{"name":"given","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"UnexpectedCallback","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"VoxSlippage","inputs":[{"name":"received","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}] as const
9
9
 
10
10
  export const VoxQuoterV4ABI = [{"type":"constructor","inputs":[{"name":"poolManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManagerV4"}],"stateMutability":"view"},{"type":"function","name":"quoteExactIn","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountPaid","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteMany","inputs":[{"name":"legs","type":"tuple[]","internalType":"struct VoxQuoterV4.Leg[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"outs","type":"uint256[]","internalType":"uint256[]"},{"name":"paids","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"quotePath","inputs":[{"name":"path","type":"tuple[]","internalType":"struct VoxQuoterV4.Leg[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountPaid","type":"uint256","internalType":"uint256"},{"name":"hopsFilled","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"error","name":"BadDelta","inputs":[{"name":"delta","type":"int256","internalType":"int256"}]},{"type":"error","name":"ManagerDidNotRevert","inputs":[]},{"type":"error","name":"QuoteFailed","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"QuoteResult","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountPaid","type":"uint256","internalType":"uint256"},{"name":"hopsFilled","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnexpectedCallback","inputs":[{"name":"caller","type":"address","internalType":"address"}]}] as const
11
+
12
+ export const VoxRouterMixedABI = [{"type":"constructor","inputs":[{"name":"poolManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"MAX_FEE_BPS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MAX_HOPS_PER_LEG","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"MAX_LEGS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"MAX_TOTAL_HOPS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManagerV4"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"rescue","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFee","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactInSplit","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"legs3","type":"tuple[]","internalType":"struct VoxRouterMixed.LegV3[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct VoxRouterMixed.HopV3[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"pool","type":"address","internalType":"address"},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"feePpm","type":"uint24","internalType":"uint24"}]}]},{"name":"legs4","type":"tuple[]","internalType":"struct VoxRouterMixed.LegV4[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct VoxRouterMixed.HopV4[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"outToUser","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"event","name":"FeeSet","inputs":[{"name":"feeBps","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"feeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerSet","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerTransferStarted","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Rescued","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RouteExecuted","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"venueCount","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"SplitExecuted","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"legsV3","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"legsV4","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AmountTooLarge","inputs":[]},{"type":"error","name":"BadDelta","inputs":[{"name":"delta","type":"int256","internalType":"int256"}]},{"type":"error","name":"BadHops","inputs":[]},{"type":"error","name":"BadLegs","inputs":[]},{"type":"error","name":"CallbackOverdraw","inputs":[{"name":"owed","type":"uint256","internalType":"uint256"},{"name":"allowed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Expired","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nowTs","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FeeTooHigh","inputs":[{"name":"bps","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"HooksNotSupported","inputs":[{"name":"hooks","type":"address","internalType":"address"}]},{"type":"error","name":"NativeNotSupported","inputs":[]},{"type":"error","name":"NotAContract","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"PartialFill","inputs":[{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"wanted","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Reentered","inputs":[]},{"type":"error","name":"RouteMismatch","inputs":[{"name":"got","type":"address","internalType":"address"},{"name":"want","type":"address","internalType":"address"}]},{"type":"error","name":"SameToken","inputs":[]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"UnexpectedCallback","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"UnsupportedVenue","inputs":[{"name":"kind","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"VoxSlippage","inputs":[{"name":"received","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}] as const
13
+
14
+ export const VoxTreasuryV2ABI = [{"type":"constructor","inputs":[{"name":"routerV4","type":"address","internalType":"address"},{"name":"routerSplit","type":"address","internalType":"address"},{"name":"voxel","type":"address","internalType":"address"},{"name":"sink","type":"address","internalType":"address"},{"name":"executor_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ROUTER_SPLIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ROUTER_V4","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SINK","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VOXEL","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowedPool","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"burnVoxel","inputs":[],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"buybackSplit","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"legs3","type":"tuple[]","internalType":"struct IVoxRouterMixed.LegV3[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct IVoxRouterMixed.HopV3[]","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"pool","type":"address","internalType":"address"},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"feePpm","type":"uint24","internalType":"uint24"}]}]},{"name":"legs4","type":"tuple[]","internalType":"struct IVoxRouterMixed.LegV4[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct IVoxRouterMixed.HopV4[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"voxelBurned","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"buybackV4","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct IVoxRouterV4.Hop[]","components":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"voxelBurned","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"executor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolIdV3","inputs":[{"name":"pool","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"poolIdV4","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"address"},{"name":"currency1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"setExecutor","inputs":[{"name":"executor_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPoolsAllowed","inputs":[{"name":"ids","type":"bytes32[]","internalType":"bytes32[]"},{"name":"allowed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalBurned","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BoughtBack","inputs":[{"name":"tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"voxelBurned","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"family","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ExecutorSet","inputs":[{"name":"executor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerSet","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnerTransferStarted","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolAllowed","inputs":[{"name":"id","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"allowed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"NoHops","inputs":[]},{"type":"error","name":"NotExecutor","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NothingBought","inputs":[]},{"type":"error","name":"PoolNotAllowed","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"TokenIsVoxel","inputs":[]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}] as const
package/src/addresses.ts CHANGED
@@ -4,7 +4,26 @@ export const ROUTER = '0x87cD7EbE8c213455e5e5a8554657D5f294a82e64' as const
4
4
  export const QUOTER = '0x9616627E871c96e38cb21b9551F62Ed93366bE1B' as const
5
5
  export const ROUTER_V4 = '0x290b9b46308f7a3B80A5F62214B426d3bfAfaab5' as const
6
6
  export const QUOTER_V4 = '0x5858F06894623eF4862103A747074E5AA3436d4F' as const
7
- export const UNISWAP_V4_SINGLETON = '0xc851aDa1e4Fa2A9dd5483284d6b30e2950Cc4F04' as const
8
7
 
9
- /** Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его. */
10
- export const TREASURY = '0xDfC6004E2a56de0e59007BFC4F3E3890a889af67' as const
8
+ /* Сплит-исполнение: делит один ордер по пулам ОБЕИХ семей и проводит их одной
9
+ транзакцией. Стоит рядом с ROUTER и ROUTER_V4, они не заменены. */
10
+ export const ROUTER_SPLIT = '0xda61673A51d6EA2c02C335185399Ddb818bdBC6f' as const
11
+ /* Проверено вызовом manager() у обоих наших v4-роутеров. По прежнему адресу
12
+ в этом пакете кода не было вовсе — константа указывала в пустоту. */
13
+ export const UNISWAP_V4_SINGLETON = '0x8366a39CC670B4001A1121B8F6A443A643e40951' as const
14
+
15
+ /** Выкупаемый и сжигаемый токен. Торгуется только в пулах четвёртой версии. */
16
+ export const VOXEL = '0xA01Bc586CD5F4f253BfAB4e44400c52dbC18bC50' as const
17
+
18
+ /** Адрес сжигания. Приватного ключа к нему не существует. */
19
+ export const BURN_SINK = '0x000000000000000000000000000000000000dEaD' as const
20
+
21
+ /**
22
+ * Получатель комиссии. Всё, что сюда приходит, выкупает VOXEL и сжигает его.
23
+ *
24
+ * Заменяет казну по адресу 0xDfC6004E…, которая ходила роутером третьей версии.
25
+ * Пул третьей версии с VOXEL на цепи один и пустой, поэтому та казна не могла
26
+ * исполнить свою единственную функцию. Эта покупает роутером v4 и сплит-роутером.
27
+ * Старый контракт остаётся в чейне, но комиссию больше не получает.
28
+ */
29
+ export const TREASURY = '0x25A99c317f3125Fc6cd245197028f49CfF56612E' as const
package/tsconfig.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ES2022",
5
+ "moduleResolution": "bundler",
6
+ "declaration": true,
7
+ "strict": true,
8
+ "outDir": "dist",
9
+ "rootDir": "src",
10
+ "skipLibCheck": true
11
+ },
12
+ "include": ["src"]
13
+ }