// NEAR constants const ASSET_ACCOUNT_ID = "intents.near"; const BASE_TOKEN_ID = "nep141:arb-0xaf88d065e77c8cc2239327c5edb3a432268e5831.omft.near"; const ETH_USDC_TOKEN_ID = "nep141:eth-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.omft.near"; const NEAR_USDC_TOKEN_ID = "nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1"; // Ethereum Mainnet USDC Contract Address const USDC_ADDRESS = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" as `0x${string}`; const USDC_ARB_ADDRESS = "0xaf88d065e77c8cC2239327C5EDb3A432268e5831" as `0x${string}`; // ERC20 ABI for approve and transfer functions const erc20Abi = [ { inputs: [ { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "approve", outputs: [{ internalType: "bool", name: "", type: "bool" }], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "transfer", outputs: [{ internalType: "bool", name: "", type: "bool" }], stateMutability: "nonpayable", type: "function", }, ]; // ERC-4626 Vault ABI for deposit and redeem functions const vaultAbi = [ { inputs: [ { internalType: "uint256", name: "assets", type: "uint256", }, { internalType: "address", name: "receiver", type: "address", }, ], name: "deposit", outputs: [{ internalType: "uint256", name: "shares", type: "uint256" }], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "shares", type: "uint256", }, { internalType: "address", name: "receiver", type: "address", }, { internalType: "address", name: "owner", type: "address", }, ], name: "redeem", outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }], stateMutability: "nonpayable", type: "function", }, ]; // Policy constants const MAX_USDC_AMOUNT = "1000000000000"; // 1M USDC (6 decimals) const ETHEREUM_DERIVATION_PATH = "ethereum,1"; const ARBITRUM_DERIVATION_PATH = "arbitrum,1"; const MORPHO_BLUE_VAULT_ADDRESS = "0xd63070114470f685b75B74D60EEc7c1113d33a3D" as `0x${string}`; const EULER_PRIME_VAULT_ADDRESS = "0x3b028b4b6c567eF5f8Ca1144Da4FbaA0D973F228" as `0x${string}`; const EULER_VAULT_ARBITRUM_ADDRESS = "0x0a1ecc5fe8c9be3c809844fcbe615b46a869b899" as `0x${string}`; const MORPHO_BLUE_ARB_VAULT_ADDRESS = "0xa60643c90A542A95026C0F1dbdB0615fF42019Cf" as `0x${string}`; // Chain Sig Derived addresses const ETHEREUM_CHAINSIG_DERIVED_ADDRESS = "0x64aff91dc6f7be29c46cbc35be24a18b5b2e92e6" as `0x${string}`; const ARBITRUM_CHAINSIG_DERIVED_ADDRESS = "0x24db64a117db9af57bb33a0f51018b67a529b831" as `0x${string}`; const NEAR_CHAINSIG_DERIVED_ACCOUNT = "15e5746714ca3912c5f5cccf532f76702464b04beaf17e56f119718cadbc27ba"; // const ETHEREUM_CHAINSIG_DERIVED_ADDRESS = "0xc84E9a87A1aDBa546b7C739aBf2f8629065ae251" as `0x${string}`; // const ARBITRUM_CHAINSIG_DERIVED_ADDRESS = "0x7493dCeB8ecE426c6D31F7Ab7AB11a033Ff79Fb6" as `0x${string}`; // const NEAR_CHAINSIG_DERIVED_ACCOUNT = "bdf06e415e0b0f89438713be80ac87a0dd6a6ee9456a8e5b12ce018d8c9a1bf1"; // near intent deposit address const ETHEREUM_NEAR_INTENT_DEPOSIT_ADDRESS_VAULT = ""; const ARBITRUM_NEAR_INTENT_DEPOSIT_ADDRESS_VAULT = "0xb25c324c95652cff239a0d13db03080af618263a"; const ETHEREUM_NEAR_INTENT_DEPOSIT_ADDRESS_PROXY = ""; const ARBITRUM_NEAR_INTENT_DEPOSIT_ADDRESS_PROXY = ""; export const stablecoinVaultConstants = { ASSET_ACCOUNT_ID, BASE_TOKEN_ID, ETH_USDC_TOKEN_ID, NEAR_USDC_TOKEN_ID, USDC_ADDRESS, USDC_ARB_ADDRESS, MAX_USDC_AMOUNT, ETHEREUM_DERIVATION_PATH, ARBITRUM_DERIVATION_PATH, MORPHO_BLUE_VAULT_ADDRESS, EULER_PRIME_VAULT_ADDRESS, EULER_VAULT_ARBITRUM_ADDRESS, MORPHO_BLUE_ARB_VAULT_ADDRESS, erc20Abi, vaultAbi, ETHEREUM_CHAINSIG_DERIVED_ADDRESS, ARBITRUM_CHAINSIG_DERIVED_ADDRESS, NEAR_CHAINSIG_DERIVED_ACCOUNT, ETHEREUM_NEAR_INTENT_DEPOSIT_ADDRESS_PROXY, ETHEREUM_NEAR_INTENT_DEPOSIT_ADDRESS_VAULT, ARBITRUM_NEAR_INTENT_DEPOSIT_ADDRESS_PROXY, ARBITRUM_NEAR_INTENT_DEPOSIT_ADDRESS_VAULT, };