UNPKG

@lifi/composer-sdk

Version:

Public Composer SDK for building and submitting flows

1 lines 46.1 kB
{"version":3,"sources":["../../src/generated/operations.generated.ts"],"sourcesContent":["// AUTO-GENERATED from manifest.json — do not edit by hand.\n// Regenerate with: yarn workspace @lifi/composer-sdk generate\n\nimport type {\n AnyBindable,\n FlowBuilderInternal,\n} from '../authoring/FlowBuilderCore.js';\nimport type { Bindable, OutputHandle } from '../authoring/handles.js';\nimport type {\n CoreCallResult,\n SignatureBind,\n StaticCallResult,\n} from '../authoring/signatureArgs.js';\nimport {\n buildCallWireFormat,\n buildStaticCallWireFormat,\n} from '../authoring/signatureArgs.js';\nimport type { TypedGuard } from '../types.js';\n\nimport type {\n AaveBorrowConfig,\n AaveClaimRewardsConfig,\n AaveRepayConfig,\n AaveRepayWithATokensConfig,\n AaveSetEModeConfig,\n CoreApproveConfig,\n CoreAsResourceConfig,\n CoreBalanceOfConfig,\n CoreBpsDownConfig,\n CoreBpsUpConfig,\n CoreCallConfig,\n CoreEmitEvent1Config,\n CoreEmitEvent2Config,\n CoreEmitEvent3Config,\n CoreEmitEvent4Config,\n CorePeekConfig,\n CoreRawCallConfig,\n CoreSplitConfig,\n CoreStaticCallConfig,\n CoreTransferConfig,\n InvariantNumericConfig,\n InvariantNumericInRangeConfig,\n LifiSwapConfig,\n LifiZapConfig,\n MorphoBlueSupplyCollateralConfig,\n MorphoBlueWithdrawCollateralConfig,\n ParaswapBuyConfig,\n} from './config.generated.js';\n\n/** Split a resource into two outputs by basis-point ratio */\nexport interface CoreSplitArgs {\n readonly bind: {\n readonly source: Bindable<'resource'>;\n };\n readonly config: CoreSplitConfig;\n readonly guards?: readonly TypedGuard<'a' | 'b'>[];\n}\n\n/** Merge two same-token resources into one by addition */\nexport interface CoreMergeArgs {\n readonly bind: {\n readonly a: Bindable<'resource'>;\n readonly b: Bindable<'resource'>;\n };\n readonly guards?: readonly TypedGuard<'merged'>[];\n}\n\n/** Swap tokens via the LI.FI aggregator API */\nexport interface LifiSwapArgs {\n readonly bind: {\n readonly amountIn: Bindable<'resource'>;\n };\n readonly config: LifiSwapConfig;\n readonly guards?: readonly TypedGuard<'unspentIn'>[];\n}\n\n/** Assert that an account holds at least a minimum token balance */\nexport interface InvariantBalanceAtLeastArgs {\n readonly bind: {\n readonly minimumAmount: Bindable<'resource'>;\n readonly account: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that an account holds exactly an expected token balance */\nexport interface InvariantBalanceEqualsArgs {\n readonly bind: {\n readonly expectedAmount: Bindable<'resource'>;\n readonly account: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that an account holds at most a maximum token balance */\nexport interface InvariantBalanceAtMostArgs {\n readonly bind: {\n readonly maximumAmount: Bindable<'resource'>;\n readonly account: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that an account's token balance is between a minimum and a maximum (inclusive) */\nexport interface InvariantBalanceInRangeArgs {\n readonly bind: {\n readonly minimumAmount: Bindable<'resource'>;\n readonly maximumAmount: Bindable<'uint256'>;\n readonly account: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that a spender is permitted to move at least a minimum allowance on behalf of an owner */\nexport interface InvariantAllowanceAtLeastArgs {\n readonly bind: {\n readonly minimumAmount: Bindable<'resource'>;\n readonly owner: Bindable<'address'>;\n readonly spender: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that a spender's allowance on behalf of an owner exactly equals an expected amount */\nexport interface InvariantAllowanceEqualsArgs {\n readonly bind: {\n readonly expectedAmount: Bindable<'resource'>;\n readonly owner: Bindable<'address'>;\n readonly spender: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that a spender is permitted to move at most a maximum allowance on behalf of an owner */\nexport interface InvariantAllowanceAtMostArgs {\n readonly bind: {\n readonly maximumAmount: Bindable<'resource'>;\n readonly owner: Bindable<'address'>;\n readonly spender: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert that a spender's allowance on behalf of an owner is between a minimum and a maximum (inclusive) */\nexport interface InvariantAllowanceInRangeArgs {\n readonly bind: {\n readonly minimumAmount: Bindable<'resource'>;\n readonly maximumAmount: Bindable<'uint256'>;\n readonly owner: Bindable<'address'>;\n readonly spender: Bindable<'address'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a uint256 value satisfies a comparison against a constant threshold; reverts on violation */\nexport interface InvariantNumericArgs {\n readonly bind: {\n readonly value: Bindable<'uint256'>;\n };\n readonly config: InvariantNumericConfig;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert min <= value <= max against constant bounds; reverts if outside the range */\nexport interface InvariantNumericInRangeArgs {\n readonly bind: {\n readonly value: Bindable<'uint256'>;\n };\n readonly config: InvariantNumericInRangeConfig;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Add two unsigned integers (a + b) */\nexport interface CoreAddArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Subtract b from a (a - b); reverts on underflow */\nexport interface CoreSubtractArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Multiply two unsigned integers (a * b) */\nexport interface CoreMultiplyArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Divide a by b, rounding toward zero */\nexport interface CoreDivideDownArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Divide a by b, rounding away from zero */\nexport interface CoreDivideUpArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Multiply value by basis points and divide by 10000, rounding down */\nexport interface CoreBpsDownArgs {\n readonly bind: {\n readonly value: Bindable<'uint256'>;\n };\n readonly config: CoreBpsDownConfig;\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Multiply value by basis points and divide by 10000, rounding up */\nexport interface CoreBpsUpArgs {\n readonly bind: {\n readonly value: Bindable<'uint256'>;\n };\n readonly config: CoreBpsUpConfig;\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Assert a == b; reverts if not equal */\nexport interface CoreAssertEqualArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a != b; reverts if equal */\nexport interface CoreAssertNotEqualArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a > b; reverts if a <= b */\nexport interface CoreAssertGtArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a >= b; reverts if a < b */\nexport interface CoreAssertGteArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a < b; reverts if a >= b */\nexport interface CoreAssertLtArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert a <= b; reverts if a > b */\nexport interface CoreAssertLteArgs {\n readonly bind: {\n readonly a: Bindable<'uint256'>;\n readonly b: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Assert min <= value <= max; reverts if value is outside the range */\nexport interface CoreAssertInRangeArgs {\n readonly bind: {\n readonly value: Bindable<'uint256'>;\n readonly min: Bindable<'uint256'>;\n readonly max: Bindable<'uint256'>;\n };\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Approve an ERC20 spender for the given token and amount */\nexport interface CoreApproveArgs {\n readonly bind: {\n readonly amount: Bindable<'resource'>;\n };\n readonly config: CoreApproveConfig;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Read an ERC20 balance, producing a resource */\nexport interface CoreBalanceOfArgs {\n readonly bind: Record<string, never>;\n readonly config: CoreBalanceOfConfig;\n readonly guards?: readonly TypedGuard<'balance'>[];\n}\n\n/** Transfer tokens to a recipient address, optionally specifying a partial amount */\nexport interface CoreTransferArgs {\n readonly bind: {\n readonly amount: Bindable<'resource'>;\n readonly recipient: Bindable<'address'>;\n };\n readonly config: CoreTransferConfig;\n readonly guards?: readonly TypedGuard<'transferred' | 'remainder'>[];\n}\n\n/** Emit a custom on-chain event carrying 1 32-byte payload value. The value becomes a non-indexed data word in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). */\nexport interface CoreEmitEvent1Args {\n readonly bind: {\n readonly value0: Bindable<'bytes32'>;\n };\n readonly config: CoreEmitEvent1Config;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Emit a custom on-chain event carrying 2 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). */\nexport interface CoreEmitEvent2Args {\n readonly bind: {\n readonly value0: Bindable<'bytes32'>;\n readonly value1: Bindable<'bytes32'>;\n };\n readonly config: CoreEmitEvent2Config;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Emit a custom on-chain event carrying 3 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). */\nexport interface CoreEmitEvent3Args {\n readonly bind: {\n readonly value0: Bindable<'bytes32'>;\n readonly value1: Bindable<'bytes32'>;\n readonly value2: Bindable<'bytes32'>;\n };\n readonly config: CoreEmitEvent3Config;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Emit a custom on-chain event carrying 4 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). */\nexport interface CoreEmitEvent4Args {\n readonly bind: {\n readonly value0: Bindable<'bytes32'>;\n readonly value1: Bindable<'bytes32'>;\n readonly value2: Bindable<'bytes32'>;\n readonly value3: Bindable<'bytes32'>;\n };\n readonly config: CoreEmitEvent4Config;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Invoke a smart contract function, optionally spending a token resource */\nexport interface CoreCallArgs<TSig extends string = string> {\n readonly resource?: Bindable<'resource'>;\n readonly bind: SignatureBind<TSig>;\n readonly config: Omit<CoreCallConfig, 'args' | 'functionSignature'> & {\n readonly functionSignature: TSig;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Read from a smart contract at runtime (StaticCall); result is fresh at execution time */\nexport interface CoreStaticCallArgs<TSig extends string = string> {\n readonly bind: SignatureBind<TSig>;\n readonly config: Omit<CoreStaticCallConfig, 'args' | 'functionSignature'> & {\n readonly functionSignature: TSig;\n };\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Invoke a contract with pre-encoded calldata */\nexport interface CoreRawCallArgs {\n readonly bind: Record<string, never>;\n readonly config: CoreRawCallConfig;\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\n/** Graduate a raw handle to a resource, enabling slippage surfacing and linearity tracking */\nexport interface CoreAsResourceArgs {\n readonly bind: {\n readonly handle: Bindable<'uint256'>;\n };\n readonly config: CoreAsResourceConfig;\n readonly guards?: readonly TypedGuard<'resource'>[];\n}\n\n/** Borrow an asset from an Aave v3 pool against existing collateral, exposing the borrowed asset as a Resource */\nexport interface AaveBorrowArgs {\n readonly bind: Record<string, never>;\n readonly config: AaveBorrowConfig;\n readonly guards?: readonly TypedGuard<'debtBalance'>[];\n}\n\n/** Repay an Aave v3 variable-rate debt position with the supplied asset. mode: 'exact' passes the input handle amount; mode: 'max' passes type(uint256).max so Aave's Pool clamps paybackAmount to userVariableDebt exactly. Any unspent input is returned through the residual port. */\nexport interface AaveRepayArgs {\n readonly bind: {\n readonly assetIn: Bindable<'resource'>;\n readonly onBehalfOf: Bindable<'address'>;\n };\n readonly config: AaveRepayConfig;\n readonly guards?: readonly TypedGuard<'actualRepaid' | 'residual'>[];\n}\n\n/** Repay an Aave v3 variable-rate debt by burning the caller's aToken balance, returning any unspent residual */\nexport interface AaveRepayWithATokensArgs {\n readonly bind: {\n readonly aTokenIn: Bindable<'resource'>;\n };\n readonly config: AaveRepayWithATokensConfig;\n readonly guards?: readonly TypedGuard<'actualRepaid' | 'residual'>[];\n}\n\n/** Claim a specific Aave v3 incentives reward token against a set of receipt-token positions, exposing the claimed amount as a Resource */\nexport interface AaveClaimRewardsArgs {\n readonly bind: Record<string, never>;\n readonly config: AaveClaimRewardsConfig;\n readonly guards?: readonly TypedGuard<'claimedAmount'>[];\n}\n\n/** Switch the executionAddress's Aave v3 eMode category. 0 disables eMode. The pool reverts if the switch would make the position unhealthy or if any open borrow is for an asset outside the target category. */\nexport interface AaveSetEModeArgs {\n readonly bind: Record<string, never>;\n readonly config: AaveSetEModeConfig;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Deposit the collateral asset of a Morpho Blue market on behalf of the execution proxy. mode: 'exact' pulls the input handle's amount. mode: 'all' reads the proxy's current ERC20 balance of the market's collateral token and pulls that amount, ignoring the input handle's literal value — note this pulls the proxy's total balance (including unrelated upstream residuals), not just the input port's delivery. Credits Position.collateral on the Morpho singleton; emits no return value and exposes no resource output (the collateral is non-transferable accounting state). */\nexport interface MorphoBlueSupplyCollateralArgs {\n readonly bind: {\n readonly assetIn: Bindable<'resource'>;\n };\n readonly config: MorphoBlueSupplyCollateralConfig;\n readonly guards?: readonly TypedGuard<never>[];\n}\n\n/** Withdraw collateral from a Morpho Blue market position to the receiver address. Exposes the withdrawn ERC20 amount as a Resource output. */\nexport interface MorphoBlueWithdrawCollateralArgs {\n readonly bind: Record<string, never>;\n readonly config: MorphoBlueWithdrawCollateralConfig;\n readonly guards?: readonly TypedGuard<'collateralWithdrawn'>[];\n}\n\n/** Route tokens into a DeFi protocol position via the edge catalog */\nexport interface LifiZapArgs {\n readonly bind: {\n readonly amountIn: Bindable<'resource'>;\n };\n readonly config: LifiZapConfig;\n readonly guards?: readonly TypedGuard<'amountOut'>[];\n}\n\n/** Exact-output (BUY) swap via the Paraswap/Velora Market API: produce exactly `exactAmountOut` of the destination token, pulling only the source needed and exposing the genuinely-unspent source as `unspentIn`. */\nexport interface ParaswapBuyArgs {\n readonly bind: {\n readonly amountIn: Bindable<'resource'>;\n };\n readonly config: ParaswapBuyConfig;\n readonly guards?: readonly TypedGuard<'unspentIn'>[];\n}\n\n/** Read a smart contract value at compile time (off-chain eth_call); result is baked as a literal */\nexport interface CorePeekArgs {\n readonly bind: Record<string, never>;\n readonly config: CorePeekConfig;\n readonly guards?: readonly TypedGuard<'result'>[];\n}\n\nexport interface CoreSplitOutputs {\n readonly a: OutputHandle<'resource'>;\n readonly b: OutputHandle<'resource'>;\n}\n\nexport interface CoreMergeOutputs {\n readonly merged: OutputHandle<'resource'>;\n}\n\nexport interface LifiSwapOutputs {\n readonly amountOut: OutputHandle<'resource'>;\n readonly unspentIn: OutputHandle<'resource'>;\n}\n\nexport interface CoreAddOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreSubtractOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreMultiplyOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreDivideDownOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreDivideUpOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreBpsDownOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreBpsUpOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreBalanceOfOutputs {\n readonly balance: OutputHandle<'resource'>;\n}\n\nexport interface CoreTransferOutputs {\n readonly transferred: OutputHandle<'resource'>;\n readonly remainder: OutputHandle<'resource'>;\n}\n\nexport interface CoreRawCallOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport interface CoreAsResourceOutputs {\n readonly resource: OutputHandle<'resource'>;\n}\n\nexport interface AaveBorrowOutputs {\n readonly borrowed: OutputHandle<'resource'>;\n readonly debtBalance: OutputHandle<'uint256'>;\n}\n\nexport interface AaveRepayOutputs {\n readonly actualRepaid: OutputHandle<'uint256'>;\n readonly residual: OutputHandle<'resource'>;\n}\n\nexport interface AaveRepayWithATokensOutputs {\n readonly actualRepaid: OutputHandle<'uint256'>;\n readonly residual: OutputHandle<'resource'>;\n}\n\nexport interface AaveClaimRewardsOutputs {\n readonly claimed: OutputHandle<'resource'>;\n readonly claimedAmount: OutputHandle<'uint256'>;\n}\n\nexport interface MorphoBlueWithdrawCollateralOutputs {\n readonly withdrawn: OutputHandle<'resource'>;\n readonly collateralWithdrawn: OutputHandle<'uint256'>;\n}\n\nexport interface LifiZapOutputs {\n readonly amountOut: OutputHandle<'resource'>;\n}\n\nexport interface ParaswapBuyOutputs {\n readonly amountOut: OutputHandle<'resource'>;\n readonly unspentIn: OutputHandle<'resource'>;\n}\n\nexport interface CorePeekOutputs {\n readonly result: OutputHandle<'uint256'>;\n}\n\nexport type GeneratedOps = {\n readonly core: {\n /** Split a resource into two outputs by basis-point ratio — original id: \"core.split\" */\n readonly split: (nodeId: string, args: CoreSplitArgs) => CoreSplitOutputs;\n /** Merge two same-token resources into one by addition — original id: \"core.merge\" */\n readonly merge: (nodeId: string, args: CoreMergeArgs) => CoreMergeOutputs;\n /** Add two unsigned integers (a + b) — original id: \"core.add\" */\n readonly add: (nodeId: string, args: CoreAddArgs) => CoreAddOutputs;\n /** Subtract b from a (a - b); reverts on underflow — original id: \"core.subtract\" */\n readonly subtract: (\n nodeId: string,\n args: CoreSubtractArgs,\n ) => CoreSubtractOutputs;\n /** Multiply two unsigned integers (a * b) — original id: \"core.multiply\" */\n readonly multiply: (\n nodeId: string,\n args: CoreMultiplyArgs,\n ) => CoreMultiplyOutputs;\n /** Divide a by b, rounding toward zero — original id: \"core.divideDown\" */\n readonly divideDown: (\n nodeId: string,\n args: CoreDivideDownArgs,\n ) => CoreDivideDownOutputs;\n /** Divide a by b, rounding away from zero — original id: \"core.divideUp\" */\n readonly divideUp: (\n nodeId: string,\n args: CoreDivideUpArgs,\n ) => CoreDivideUpOutputs;\n /** Multiply value by basis points and divide by 10000, rounding down — original id: \"core.bpsDown\" */\n readonly bpsDown: (\n nodeId: string,\n args: CoreBpsDownArgs,\n ) => CoreBpsDownOutputs;\n /** Multiply value by basis points and divide by 10000, rounding up — original id: \"core.bpsUp\" */\n readonly bpsUp: (nodeId: string, args: CoreBpsUpArgs) => CoreBpsUpOutputs;\n /** Assert a == b; reverts if not equal — original id: \"core.assertEqual\" */\n readonly assertEqual: (nodeId: string, args: CoreAssertEqualArgs) => void;\n /** Assert a != b; reverts if equal — original id: \"core.assertNotEqual\" */\n readonly assertNotEqual: (\n nodeId: string,\n args: CoreAssertNotEqualArgs,\n ) => void;\n /** Assert a > b; reverts if a <= b — original id: \"core.assertGt\" */\n readonly assertGt: (nodeId: string, args: CoreAssertGtArgs) => void;\n /** Assert a >= b; reverts if a < b — original id: \"core.assertGte\" */\n readonly assertGte: (nodeId: string, args: CoreAssertGteArgs) => void;\n /** Assert a < b; reverts if a >= b — original id: \"core.assertLt\" */\n readonly assertLt: (nodeId: string, args: CoreAssertLtArgs) => void;\n /** Assert a <= b; reverts if a > b — original id: \"core.assertLte\" */\n readonly assertLte: (nodeId: string, args: CoreAssertLteArgs) => void;\n /** Assert min <= value <= max; reverts if value is outside the range — original id: \"core.assertInRange\" */\n readonly assertInRange: (\n nodeId: string,\n args: CoreAssertInRangeArgs,\n ) => void;\n /** Approve an ERC20 spender for the given token and amount — original id: \"core.approve\" */\n readonly approve: (nodeId: string, args: CoreApproveArgs) => void;\n /** Read an ERC20 balance, producing a resource — original id: \"core.balanceOf\" */\n readonly balanceOf: (\n nodeId: string,\n args: CoreBalanceOfArgs,\n ) => CoreBalanceOfOutputs;\n /** Transfer tokens to a recipient address, optionally specifying a partial amount — original id: \"core.transfer\" */\n readonly transfer: (\n nodeId: string,\n args: CoreTransferArgs,\n ) => CoreTransferOutputs;\n /** Emit a custom on-chain event carrying 1 32-byte payload value. The value becomes a non-indexed data word in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). — original id: \"core.emitEvent1\" */\n readonly emitEvent1: (nodeId: string, args: CoreEmitEvent1Args) => void;\n /** Emit a custom on-chain event carrying 2 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). — original id: \"core.emitEvent2\" */\n readonly emitEvent2: (nodeId: string, args: CoreEmitEvent2Args) => void;\n /** Emit a custom on-chain event carrying 3 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). — original id: \"core.emitEvent3\" */\n readonly emitEvent3: (nodeId: string, args: CoreEmitEvent3Args) => void;\n /** Emit a custom on-chain event carrying 4 32-byte payload values. The values become non-indexed data words in a fixed VM log event; the signature is hashed into a discriminator word (it is NOT an indexed EVM topic). — original id: \"core.emitEvent4\" */\n readonly emitEvent4: (nodeId: string, args: CoreEmitEvent4Args) => void;\n /** Invoke a smart contract function, optionally spending a token resource — original id: \"core.call\" */\n readonly call: <TSig extends string>(\n nodeId: string,\n args: CoreCallArgs<TSig>,\n ) => CoreCallResult<TSig>;\n /** Read from a smart contract at runtime (StaticCall); result is fresh at execution time — original id: \"core.staticCall\" */\n readonly staticCall: <TSig extends string>(\n nodeId: string,\n args: CoreStaticCallArgs<TSig>,\n ) => StaticCallResult<TSig>;\n /** Invoke a contract with pre-encoded calldata — original id: \"core.rawCall\" */\n readonly rawCall: (\n nodeId: string,\n args: CoreRawCallArgs,\n ) => CoreRawCallOutputs;\n /** Graduate a raw handle to a resource, enabling slippage surfacing and linearity tracking — original id: \"core.asResource\" */\n readonly asResource: (\n nodeId: string,\n args: CoreAsResourceArgs,\n ) => CoreAsResourceOutputs;\n /** Read a smart contract value at compile time (off-chain eth_call); result is baked as a literal — original id: \"core.peek\" */\n readonly peek: (nodeId: string, args: CorePeekArgs) => CorePeekOutputs;\n };\n readonly lifi: {\n /** Swap tokens via the LI.FI aggregator API — original id: \"lifi.swap\" */\n readonly swap: (nodeId: string, args: LifiSwapArgs) => LifiSwapOutputs;\n /** Route tokens into a DeFi protocol position via the edge catalog — original id: \"lifi.zap\" */\n readonly zap: (nodeId: string, args: LifiZapArgs) => LifiZapOutputs;\n };\n readonly invariant: {\n /** Assert that an account holds at least a minimum token balance — original id: \"invariant.balanceAtLeast\" */\n readonly balanceAtLeast: (\n nodeId: string,\n args: InvariantBalanceAtLeastArgs,\n ) => void;\n /** Assert that an account holds exactly an expected token balance — original id: \"invariant.balanceEquals\" */\n readonly balanceEquals: (\n nodeId: string,\n args: InvariantBalanceEqualsArgs,\n ) => void;\n /** Assert that an account holds at most a maximum token balance — original id: \"invariant.balanceAtMost\" */\n readonly balanceAtMost: (\n nodeId: string,\n args: InvariantBalanceAtMostArgs,\n ) => void;\n /** Assert that an account's token balance is between a minimum and a maximum (inclusive) — original id: \"invariant.balanceInRange\" */\n readonly balanceInRange: (\n nodeId: string,\n args: InvariantBalanceInRangeArgs,\n ) => void;\n /** Assert that a spender is permitted to move at least a minimum allowance on behalf of an owner — original id: \"invariant.allowanceAtLeast\" */\n readonly allowanceAtLeast: (\n nodeId: string,\n args: InvariantAllowanceAtLeastArgs,\n ) => void;\n /** Assert that a spender's allowance on behalf of an owner exactly equals an expected amount — original id: \"invariant.allowanceEquals\" */\n readonly allowanceEquals: (\n nodeId: string,\n args: InvariantAllowanceEqualsArgs,\n ) => void;\n /** Assert that a spender is permitted to move at most a maximum allowance on behalf of an owner — original id: \"invariant.allowanceAtMost\" */\n readonly allowanceAtMost: (\n nodeId: string,\n args: InvariantAllowanceAtMostArgs,\n ) => void;\n /** Assert that a spender's allowance on behalf of an owner is between a minimum and a maximum (inclusive) — original id: \"invariant.allowanceInRange\" */\n readonly allowanceInRange: (\n nodeId: string,\n args: InvariantAllowanceInRangeArgs,\n ) => void;\n /** Assert a uint256 value satisfies a comparison against a constant threshold; reverts on violation — original id: \"invariant.numeric\" */\n readonly numeric: (nodeId: string, args: InvariantNumericArgs) => void;\n /** Assert min <= value <= max against constant bounds; reverts if outside the range — original id: \"invariant.numericInRange\" */\n readonly numericInRange: (\n nodeId: string,\n args: InvariantNumericInRangeArgs,\n ) => void;\n };\n readonly aave: {\n /** Borrow an asset from an Aave v3 pool against existing collateral, exposing the borrowed asset as a Resource — original id: \"aave.borrow\" */\n readonly borrow: (\n nodeId: string,\n args: AaveBorrowArgs,\n ) => AaveBorrowOutputs;\n /** Repay an Aave v3 variable-rate debt position with the supplied asset. mode: 'exact' passes the input handle amount; mode: 'max' passes type(uint256).max so Aave's Pool clamps paybackAmount to userVariableDebt exactly. Any unspent input is returned through the residual port. — original id: \"aave.repay\" */\n readonly repay: (nodeId: string, args: AaveRepayArgs) => AaveRepayOutputs;\n /** Repay an Aave v3 variable-rate debt by burning the caller's aToken balance, returning any unspent residual — original id: \"aave.repayWithATokens\" */\n readonly repayWithATokens: (\n nodeId: string,\n args: AaveRepayWithATokensArgs,\n ) => AaveRepayWithATokensOutputs;\n /** Claim a specific Aave v3 incentives reward token against a set of receipt-token positions, exposing the claimed amount as a Resource — original id: \"aave.claimRewards\" */\n readonly claimRewards: (\n nodeId: string,\n args: AaveClaimRewardsArgs,\n ) => AaveClaimRewardsOutputs;\n /** Switch the executionAddress's Aave v3 eMode category. 0 disables eMode. The pool reverts if the switch would make the position unhealthy or if any open borrow is for an asset outside the target category. — original id: \"aave.setEMode\" */\n readonly setEMode: (nodeId: string, args: AaveSetEModeArgs) => void;\n };\n readonly morphoBlue: {\n /** Deposit the collateral asset of a Morpho Blue market on behalf of the execution proxy. mode: 'exact' pulls the input handle's amount. mode: 'all' reads the proxy's current ERC20 balance of the market's collateral token and pulls that amount, ignoring the input handle's literal value — note this pulls the proxy's total balance (including unrelated upstream residuals), not just the input port's delivery. Credits Position.collateral on the Morpho singleton; emits no return value and exposes no resource output (the collateral is non-transferable accounting state). — original id: \"morphoBlue.supplyCollateral\" */\n readonly supplyCollateral: (\n nodeId: string,\n args: MorphoBlueSupplyCollateralArgs,\n ) => void;\n /** Withdraw collateral from a Morpho Blue market position to the receiver address. Exposes the withdrawn ERC20 amount as a Resource output. — original id: \"morphoBlue.withdrawCollateral\" */\n readonly withdrawCollateral: (\n nodeId: string,\n args: MorphoBlueWithdrawCollateralArgs,\n ) => MorphoBlueWithdrawCollateralOutputs;\n };\n readonly paraswap: {\n /** Exact-output (BUY) swap via the Paraswap/Velora Market API: produce exactly `exactAmountOut` of the destination token, pulling only the source needed and exposing the genuinely-unspent source as `unspentIn`. — original id: \"paraswap.buy\" */\n readonly buy: (nodeId: string, args: ParaswapBuyArgs) => ParaswapBuyOutputs;\n };\n};\n\nexport const bindGeneratedOps = (\n builder: FlowBuilderInternal,\n): GeneratedOps => ({\n core: {\n split: (nodeId: string, args: CoreSplitArgs) =>\n builder.call(nodeId, 'core.split', args, {\n a: 'resource',\n b: 'resource',\n } as const),\n merge: (nodeId: string, args: CoreMergeArgs) =>\n builder.call(nodeId, 'core.merge', { ...args, config: {} }, {\n merged: 'resource',\n } as const),\n add: (nodeId: string, args: CoreAddArgs) =>\n builder.call(nodeId, 'core.add', { ...args, config: {} }, {\n result: 'uint256',\n } as const),\n subtract: (nodeId: string, args: CoreSubtractArgs) =>\n builder.call(nodeId, 'core.subtract', { ...args, config: {} }, {\n result: 'uint256',\n } as const),\n multiply: (nodeId: string, args: CoreMultiplyArgs) =>\n builder.call(nodeId, 'core.multiply', { ...args, config: {} }, {\n result: 'uint256',\n } as const),\n divideDown: (nodeId: string, args: CoreDivideDownArgs) =>\n builder.call(nodeId, 'core.divideDown', { ...args, config: {} }, {\n result: 'uint256',\n } as const),\n divideUp: (nodeId: string, args: CoreDivideUpArgs) =>\n builder.call(nodeId, 'core.divideUp', { ...args, config: {} }, {\n result: 'uint256',\n } as const),\n bpsDown: (nodeId: string, args: CoreBpsDownArgs) =>\n builder.call(nodeId, 'core.bpsDown', args, {\n result: 'uint256',\n } as const),\n bpsUp: (nodeId: string, args: CoreBpsUpArgs) =>\n builder.call(nodeId, 'core.bpsUp', args, { result: 'uint256' } as const),\n assertEqual: (nodeId: string, args: CoreAssertEqualArgs) =>\n builder.call(nodeId, 'core.assertEqual', { ...args, config: {} }, {}),\n assertNotEqual: (nodeId: string, args: CoreAssertNotEqualArgs) =>\n builder.call(nodeId, 'core.assertNotEqual', { ...args, config: {} }, {}),\n assertGt: (nodeId: string, args: CoreAssertGtArgs) =>\n builder.call(nodeId, 'core.assertGt', { ...args, config: {} }, {}),\n assertGte: (nodeId: string, args: CoreAssertGteArgs) =>\n builder.call(nodeId, 'core.assertGte', { ...args, config: {} }, {}),\n assertLt: (nodeId: string, args: CoreAssertLtArgs) =>\n builder.call(nodeId, 'core.assertLt', { ...args, config: {} }, {}),\n assertLte: (nodeId: string, args: CoreAssertLteArgs) =>\n builder.call(nodeId, 'core.assertLte', { ...args, config: {} }, {}),\n assertInRange: (nodeId: string, args: CoreAssertInRangeArgs) =>\n builder.call(nodeId, 'core.assertInRange', { ...args, config: {} }, {}),\n approve: (nodeId: string, args: CoreApproveArgs) =>\n builder.call(nodeId, 'core.approve', args, {}),\n balanceOf: (nodeId: string, args: CoreBalanceOfArgs) =>\n builder.call(nodeId, 'core.balanceOf', args, {\n balance: 'resource',\n } as const),\n transfer: (nodeId: string, args: CoreTransferArgs) =>\n builder.call(nodeId, 'core.transfer', args, {\n transferred: 'resource',\n remainder: 'resource',\n } as const),\n emitEvent1: (nodeId: string, args: CoreEmitEvent1Args) =>\n builder.call(nodeId, 'core.emitEvent1', args, {}),\n emitEvent2: (nodeId: string, args: CoreEmitEvent2Args) =>\n builder.call(nodeId, 'core.emitEvent2', args, {}),\n emitEvent3: (nodeId: string, args: CoreEmitEvent3Args) =>\n builder.call(nodeId, 'core.emitEvent3', args, {}),\n emitEvent4: (nodeId: string, args: CoreEmitEvent4Args) =>\n builder.call(nodeId, 'core.emitEvent4', args, {}),\n call: <TSig extends string>(nodeId: string, args: CoreCallArgs<TSig>) => {\n const wire = buildCallWireFormat({\n resource: args.resource,\n bind: args.bind as Record<string, AnyBindable>,\n config: args.config as Record<string, unknown>,\n guards: args.guards,\n });\n return builder.call(nodeId, wire.op, wire, {\n result: 'uint256',\n } as const) as unknown as CoreCallResult<TSig>;\n },\n staticCall: <TSig extends string>(\n nodeId: string,\n args: CoreStaticCallArgs<TSig>,\n ) =>\n builder.call(\n nodeId,\n 'core.staticCall',\n buildStaticCallWireFormat({\n bind: args.bind as Record<string, AnyBindable>,\n config: args.config as Record<string, unknown>,\n guards: args.guards,\n }),\n { result: 'uint256' } as const,\n ) as unknown as StaticCallResult<TSig>,\n rawCall: (nodeId: string, args: CoreRawCallArgs) =>\n builder.call(nodeId, 'core.rawCall', args, {\n result: 'uint256',\n } as const),\n asResource: (nodeId: string, args: CoreAsResourceArgs) =>\n builder.call(nodeId, 'core.asResource', args, {\n resource: 'resource',\n } as const),\n peek: (nodeId: string, args: CorePeekArgs) =>\n builder.call(nodeId, 'core.peek', args, { result: 'uint256' } as const),\n },\n lifi: {\n swap: (nodeId: string, args: LifiSwapArgs) =>\n builder.call(nodeId, 'lifi.swap', args, {\n amountOut: 'resource',\n unspentIn: 'resource',\n } as const),\n zap: (nodeId: string, args: LifiZapArgs) =>\n builder.call(nodeId, 'lifi.zap', args, {\n amountOut: 'resource',\n } as const),\n },\n invariant: {\n balanceAtLeast: (nodeId: string, args: InvariantBalanceAtLeastArgs) =>\n builder.call(\n nodeId,\n 'invariant.balanceAtLeast',\n { ...args, config: {} },\n {},\n ),\n balanceEquals: (nodeId: string, args: InvariantBalanceEqualsArgs) =>\n builder.call(\n nodeId,\n 'invariant.balanceEquals',\n { ...args, config: {} },\n {},\n ),\n balanceAtMost: (nodeId: string, args: InvariantBalanceAtMostArgs) =>\n builder.call(\n nodeId,\n 'invariant.balanceAtMost',\n { ...args, config: {} },\n {},\n ),\n balanceInRange: (nodeId: string, args: InvariantBalanceInRangeArgs) =>\n builder.call(\n nodeId,\n 'invariant.balanceInRange',\n { ...args, config: {} },\n {},\n ),\n allowanceAtLeast: (nodeId: string, args: InvariantAllowanceAtLeastArgs) =>\n builder.call(\n nodeId,\n 'invariant.allowanceAtLeast',\n { ...args, config: {} },\n {},\n ),\n allowanceEquals: (nodeId: string, args: InvariantAllowanceEqualsArgs) =>\n builder.call(\n nodeId,\n 'invariant.allowanceEquals',\n { ...args, config: {} },\n {},\n ),\n allowanceAtMost: (nodeId: string, args: InvariantAllowanceAtMostArgs) =>\n builder.call(\n nodeId,\n 'invariant.allowanceAtMost',\n { ...args, config: {} },\n {},\n ),\n allowanceInRange: (nodeId: string, args: InvariantAllowanceInRangeArgs) =>\n builder.call(\n nodeId,\n 'invariant.allowanceInRange',\n { ...args, config: {} },\n {},\n ),\n numeric: (nodeId: string, args: InvariantNumericArgs) =>\n builder.call(nodeId, 'invariant.numeric', args, {}),\n numericInRange: (nodeId: string, args: InvariantNumericInRangeArgs) =>\n builder.call(nodeId, 'invariant.numericInRange', args, {}),\n },\n aave: {\n borrow: (nodeId: string, args: AaveBorrowArgs) =>\n builder.call(nodeId, 'aave.borrow', args, {\n borrowed: 'resource',\n debtBalance: 'uint256',\n } as const),\n repay: (nodeId: string, args: AaveRepayArgs) =>\n builder.call(nodeId, 'aave.repay', args, {\n actualRepaid: 'uint256',\n residual: 'resource',\n } as const),\n repayWithATokens: (nodeId: string, args: AaveRepayWithATokensArgs) =>\n builder.call(nodeId, 'aave.repayWithATokens', args, {\n actualRepaid: 'uint256',\n residual: 'resource',\n } as const),\n claimRewards: (nodeId: string, args: AaveClaimRewardsArgs) =>\n builder.call(nodeId, 'aave.claimRewards', args, {\n claimed: 'resource',\n claimedAmount: 'uint256',\n } as const),\n setEMode: (nodeId: string, args: AaveSetEModeArgs) =>\n builder.call(nodeId, 'aave.setEMode', args, {}),\n },\n morphoBlue: {\n supplyCollateral: (nodeId: string, args: MorphoBlueSupplyCollateralArgs) =>\n builder.call(nodeId, 'morphoBlue.supplyCollateral', args, {}),\n withdrawCollateral: (\n nodeId: string,\n args: MorphoBlueWithdrawCollateralArgs,\n ) =>\n builder.call(nodeId, 'morphoBlue.withdrawCollateral', args, {\n withdrawn: 'resource',\n collateralWithdrawn: 'uint256',\n } as const),\n },\n paraswap: {\n buy: (nodeId: string, args: ParaswapBuyArgs) =>\n builder.call(nodeId, 'paraswap.buy', args, {\n amountOut: 'resource',\n unspentIn: 'resource',\n } as const),\n },\n});\n"],"mappings":"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","names":[]}