### Get Paginated Modules (Solidity) Source: https://docs.arrakis.finance/autogenerated/interfaces/ISafe.sol/interface Retrieves a paginated list of modules. It takes a starting address and page size as input and returns an array of module addresses and the next starting address for pagination. ```Solidity function getModulesPaginated( address start, uint256 pageSize ) external view returns (address[] memory array, address next); ``` -------------------------------- ### getInits Source: https://docs.arrakis.finance/autogenerated/abstracts/UniV4StandardModule.sol/abstract This function is used to get the initial amounts needed to open a position. ```APIDOC ## getInits ### Description This function is used to get the initial amounts needed to open a position. ### Method function ### Endpoint getInits() ### Returns #### Returns - **init0** (uint256) - the amount of token0 needed to open a position. - **init1** (uint256) - the amount of token1 needed to open a position. ``` -------------------------------- ### Initialize Vault Management Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/metaVaults/core/contract Initializes the management of a meta vault with provided setup parameters. ```APIDOC ## POST /initManagement ### Description Initializes the management of a meta vault with provided setup parameters. ### Method POST ### Endpoint /initManagement ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **params_** (SetupParams) - Required - A struct containing all the data required to initialize the vault. - **vault** (address) - Required - The address of the vault. - **owner** (address) - Required - The owner of the vault. - **governance** (address) - Required - The governance address. - **management** (address) - Required - The management address. - **strategy** (string) - Optional - The name of the strategy to be used. ### Request Example ```json { "params_": { "vault": "0x123...", "owner": "0xabc...", "governance": "0xdef...", "management": "0xghi...", "strategy": "AaveV2" } } ``` ### Response #### Success Response (200) No specific response body defined, typically indicates successful execution. #### Response Example (Empty or status confirmation) ``` -------------------------------- ### Initialize Vault Management Source: https://docs.arrakis.finance/autogenerated/interfaces/IArrakisStandardManager.sol/interface Initializes the management of a meta vault with setup parameters. ```APIDOC ## POST /initManagement ### Description Initializes the management of a meta vault with setup parameters. ### Method POST ### Endpoint /initManagement ### Parameters #### Request Body - **params_** (SetupParams) - Required - Struct containing all the data for initializing the vault. - **vault_** (address) - Required - **strategy_** (string) - Required - **depositor_** (address) - Required - **asset_** (address) - Required - **fee_** (uint24) - Required - **name_** (string) - Required - **symbol_** (string) - Required ### Request Example ```json { "params_": { "vault_": "0x...", "strategy_": "StrategyName", "depositor_": "0x...", "asset_": "0x...", "fee_": 100, "name_": "Vault Name", "symbol_": "VN" } } ``` ### Response #### Success Response (200) Indicates the vault management has been initialized successfully. #### Response Example ```json {} ``` ``` -------------------------------- ### Get Vault Management Configuration (Solidity) Source: https://docs.arrakis.finance/autogenerated/interfaces/IArrakisStandardManager.sol/interface Retrieves detailed configuration parameters for a specific vault, including rebalance timing, oracle settings, slippage, and fees. This provides a comprehensive view of a vault's operational setup. ```Solidity function vaultInfo(address vault_) external view returns ( uint256 lastRebalance, uint256 cooldownPeriod, IOracleWrapper oracle, uint24 maxDeviation, address executor, address stratAnnouncer, uint24 maxSlippagePIPS, uint24 managerFeePIPS ); ``` -------------------------------- ### Get Initial Amounts Source: https://docs.arrakis.finance/autogenerated/abstracts/PancakeSwapV4StandardModule.sol/abstract Retrieves the initial amounts of token0 and token1 needed to open a position. ```APIDOC ## GET /getInits ### Description Function used to get the initial amounts needed to open a position. ### Method GET ### Endpoint /getInits ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **init0** (uint256) - the amount of token0 needed to open a position. - **init1** (uint256) - the amount of token1 needed to open a position. #### Response Example ```json { "init0": 1000, "init1": 1200 } ``` ``` -------------------------------- ### Get Init Management Selector Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/metaVaults/core/contract Returns the function selector for the `initManagement` function. ```APIDOC ## GET /getInitManagementSelector ### Description Returns the function selector for the `initManagement` function. ### Method GET ### Endpoint /getInitManagementSelector ### Parameters #### Path Parameters None #### Query Parameters None ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **selector** (bytes4) - The function selector for `initManagement`. #### Response Example ```json { "selector": "0x1234abcd" } ``` ``` -------------------------------- ### Get Initial Position Amounts Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/modules/implementations/abstract Retrieves the initial amounts of token0 and token1 required to open a new position. ```APIDOC ## GET /websites/arrakis_finance/getInits ### Description This function is used to get the initial amounts of token0 and token1 needed to open a new position within the module. ### Method GET ### Endpoint /websites/arrakis_finance/getInits ### Parameters #### Path Parameters *None* #### Query Parameters *None* #### Request Body *None* ### Request Example ```bash curl -X GET "/websites/arrakis_finance/getInits" ``` ### Response #### Success Response (200) - **init0** (uint256) - The amount of token0 needed to open a position. - **init1** (uint256) - The amount of token1 needed to open a position. #### Response Example ```json { "init0": "1000000000000000000", "init1": "1500000000000000000" } ``` ``` -------------------------------- ### Arrakis LP Module - Initialization and Configuration Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/modules/implementations/abstract Details on constructor, initialization functions, and core configuration parameters for the Arrakis LP Module. ```APIDOC ## Arrakis LP Module - Initialization and Configuration ### Description This section details the constructor, initialization functions, and key configuration parameters of the Arrakis LP Module, which enables interaction with PancakeSwap V4 liquidity pools. ### Constructor ```solidity constructor( address poolManager_, address guardian_, address vault_, address distributor_, address collector_ ); ``` Initializes the module with essential contract addresses including the pool manager, guardian, vault, distributor, and collector. ### `initialize` Function #### Description Used to delegate call onced the beacon proxy is deployed, for initializing the uniswap v4 standard module. #### Method `initialize` #### Parameters ##### Parameters - **init0_** (uint256) - Initial amount of token0 to provide to uniswap standard module. - **init1_** (uint256) - Initial amount of token1 to provide to uniswap standard module. - **isInversed_** (bool) - Boolean to check if the poolKey's currencies pair are inversed, compared to the module's tokens pair. - **poolKey_** (PoolKey) - Pool key of the uniswap v4 pool that will be used by the module. - **oracle_** (IOracleWrapper) - Address of the oracle used by the uniswap v4 standard module. - **maxSlippage_** (uint24) - Allowed slippage for manager rebalancing using swap. - **metaVault_** (address) - Address of the meta vault. #### Request Example ```json { "init0_": "1000000000000000000", "init1_": "1000000000000000000", "isInversed_": false, "poolKey_": { "token0": "0x...", "token1": "0x...", "fee": 500, "tickSpacing": 10 }, "oracle_": "0x...", "maxSlippage_": 100, "metaVault_": "0x..." } ``` #### Response Example ```json { "status": "success", "message": "Module initialized successfully." } ``` ### `initializePosition` Function #### Description Function used to initialize the module when a module switch happens. Checks if the pool is initialized. #### Method `initializePosition` #### Parameters ##### Path Parameters - **_** (bytes) - Placeholder for calldata #### Request Example ```json { "data": "0x..." } ``` #### Response Example ```json { "status": "success", "message": "Position initialized." } ``` ``` -------------------------------- ### Deposit Liquidity Source: https://docs.arrakis.finance/text/arrakisModular/quickstart/quickstartPublic Provides a step-by-step guide on how to deposit liquidity into an Arrakis Public Vault using the Router V2. ```APIDOC ## Deposit Liquidity into Arrakis Public Vault ### Description This section outlines the process of depositing liquidity into an Arrakis Public Vault using the Router V2. It covers identifying the vault, calculating token amounts, setting authorizations, and the various deposit methods available. ### Method POST (implied by actions like addLiquidity, swapAndAddLiquidity, etc.) ### Endpoint /websites/arrakis_finance/vault_router_v2 ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body (Specific methods like `getMintAmounts`, `addLiquidity`, `wrapAndAddLiquidity`, `swapAndAddLiquidity`, `wrapAndSwapAndAddLiquidity`, and their Permit2 variants will have specific parameters) ### Request Example (Examples would depend on the specific function called, e.g., `getMintAmounts` or `addLiquidity`) ### Response #### Success Response (200) - **shares** (ERC20) - The LP tokens representing the deposited liquidity. #### Response Example (Response examples would depend on the specific function called, e.g., the output of `getMintAmounts` or confirmation of liquidity addition.) ### Key Functions: - `getMintAmounts`: Determine the exact amounts of token0 and token1 to deposit. - `addLiquidity`: Deposit both tokens to the vault using ERC20 approvals. - `wrapAndAddLiquidity`: Deposit ETH and add liquidity to a WETH pool. - `swapAndAddLiquidity`: Swap tokens before adding liquidity. - `wrapAndSwapAndAddLiquidity`: Swap native ETH before adding liquidity. - Permit2 variants for gasless approvals (`addLiquidityPermit2`, etc.) ``` -------------------------------- ### Get List of Managed Vaults Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/metaVaults/core/contract Retrieves a list of vaults currently under management, using start and end indices for pagination. ```APIDOC ## GET /initializedVaults ### Description Retrieves a list of vaults currently under management, using start and end indices for pagination. ### Method GET ### Endpoint /initializedVaults ### Parameters #### Path Parameters None #### Query Parameters - **startIndex_** (uint256) - Required - The starting index from which to read the array of managed vaults. - **endIndex_** (uint256) - Required - The ending index until which to read the array of managed vaults. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **addresses** (address[]) - An array of addresses representing the managed vaults. #### Response Example ```json { "addresses": ["0x111...", "0x222...", "0x333..."] } ``` ``` -------------------------------- ### Arrakis Finance Contract Initialization Source: https://docs.arrakis.finance/autogenerated/abstracts/ValantisHOTModule.sol/abstract Details the initialization process for the Arrakis Finance contract, including setting up the pool, initial amounts, slippage tolerance, and the metaVault. ```APIDOC ## CONSTRUCTOR ### Description Initializes the Arrakis Finance contract. ### Method CONSTRUCTOR ### Endpoint N/A (Contract Constructor) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (N/A) Contract state is initialized. #### Response Example None ``` ```APIDOC ## INITIALIZE ### Description Initializes the module when a module switch happens. This function is called once the beacon proxy is deployed for initializing the Valantis module, allowing users to call deposit and withdraw functions. ### Method EXTERNAL ### Endpoint N/A (Internal Function Call) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **data_** (bytes) - Required - Bytes containing information to initialize the position. ### Request Example ```json { "data_": "0x..." } ``` ### Response #### Success Response (N/A) Position initialized successfully. #### Response Example None ``` -------------------------------- ### Get Private Vaults List (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Retrieves a list of private vaults created by the factory within a specified index range. This function is viewable and takes start and end indices as uint256, returning an array of addresses. ```solidity function privateVaults( uint256 startIndex_, uint256 endIndex_ ) external view returns (address[] memory); ``` -------------------------------- ### Implement Arrakis Finance Constructor and Initialization Source: https://docs.arrakis.finance/autogenerated/abstracts/ValantisHOTModule.sol/abstract Provides the constructor for Arrakis Finance, which initializes the guardian address. It also includes the 'initialize' function, crucial for setting up the contract after deployment via a beacon proxy, configuring essential parameters like the sovereign pool, initial token amounts, slippage tolerance, and the metaVault address. ```solidity constructor(address guardian_); function initialize( address pool_, uint256 init0_, uint256 init1_, uint24 maxSlippage_, address metaVault_ ) external initializer; ``` -------------------------------- ### Initialize Meta Vault Management Source: https://docs.arrakis.finance/autogenerated/interfaces/IArrakisStandardManager.sol/interface Initializes the management of a meta vault using a SetupParams struct, which contains all necessary data for setting up the vault. ```Solidity function initManagement(SetupParams calldata params_) external; ``` -------------------------------- ### Arrakis Finance: Get Latest Round Data Source: https://docs.arrakis.finance/autogenerated/interfaces/AggregatorV3Interface.sol/interface Fetches the data for the most recent round. The returned information includes the round ID, the answer, timestamps for the start and update of the round, and the round in which it was answered. This is a view function for external, gas-free access. ```solidity function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); ``` -------------------------------- ### Initialize Valantis Module Source: https://docs.arrakis.finance/autogenerated/interfaces/IValantisHOTModule.sol/interface Initializes the Valantis module for the beacon proxy, enabling deposit and withdrawal functions. It requires addresses for the sovereign pool and meta vault, initial token amounts, and maximum slippage tolerance. ```Solidity function initialize( address pool_, uint256 init0_, uint256 init1_, uint24 maxSlippage_, address metaVault_ ) external; ``` -------------------------------- ### Get Public Vaults List (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Retrieves a list of public vaults created by the factory within a specified index range. This function is viewable and does not modify the contract's state. It takes start and end indices as uint256 and returns an array of addresses. ```solidity function publicVaults( uint256 startIndex_, uint256 endIndex_ ) external view returns (address[] memory); ``` -------------------------------- ### Arrakis Finance: Get Round Data Source: https://docs.arrakis.finance/autogenerated/interfaces/AggregatorV3Interface.sol/interface Retrieves detailed data for a specific round, identified by its round ID. This includes the round ID, the answer, timestamps for when the round started and was updated, and the round in which it was answered. It's a view function for external, gas-free queries. ```solidity function getRoundData( uint80 _roundId ) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); ``` -------------------------------- ### Internal Initialize Management (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisStandardManager.sol/contract Internal function to initialize management for a vault, taking `SetupParams` as input. This function is intended for use within the contract itself. ```Solidity function _initManagement(SetupParams memory params_) internal; ``` -------------------------------- ### Get Owner Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultPrivate.sol/contract Retrieves the owner of the contract. ```APIDOC ## GET /owner ### Description Function used to get the owner of this contract. ### Method GET ### Endpoint /owner #### Returns - **owner** (address) - The address of the contract owner. ``` -------------------------------- ### initialize Source: https://docs.arrakis.finance/autogenerated/abstracts/PancakeSwapV4StandardModule.sol/abstract Initializes the Uniswap V4 standard module with specified parameters. This function sets up the module for interaction with a given Uniswap V4 pool, including initial token amounts, pool key, oracle, and slippage tolerance. ```APIDOC ## initialize ### Description Initializes the Uniswap V4 standard module with specified parameters. ### Method EXTERNAL ### Endpoint `initialize` ### Parameters #### Request Body - `init0_` (uint256) - Required - initial amount of token0 to provide to uniswap standard module. - `init1_` (uint256) - Required - initial amount of token1 to provide to uniswap standard module. - `isInversed_` (bool) - Required - boolean to check if the poolKey's currencies pair are inversed, compared to the module's tokens pair. - `poolKey_` (PoolKey) - Required - pool key of the uniswap v4 pool that will be used by the module. - `oracle_` (IOracleWrapper) - Required - address of the oracle used by the uniswap v4 standard module. - `maxSlippage_` (uint24) - Required - allowed to manager for rebalancing the inventory using swap. - `metaVault_` (address) - Required - address of the meta vault. ### Request Example ```json { "init0_": "1000000000000000000", "init1_": "500000000000000000", "isInversed_": false, "poolKey_": { "token0": "0xToken0Address", "token1": "0xToken1Address", "fee": 3000, "tickSpacing": 60 }, "oracle_": "0xOracleAddress", "maxSlippage_": 50, "metaVault_": "0xMetaVaultAddress" } ``` ### Response #### Success Response (200) - No direct return values; successful execution implies correct initialization. #### Response Example ```json {} ``` ``` -------------------------------- ### Get WETH Address Source: https://docs.arrakis.finance/autogenerated/interfaces/IMigrationHelper.sol/interface Retrieves the address of the WETH contract. ```APIDOC ## GET /weth ### Description Get the address of the WETH. ### Method GET ### Endpoint /weth ### Response #### Success Response (200) - **address** (address) - The address of the WETH contract. ### Response Example ```json { "address": "0x..." } ``` ``` -------------------------------- ### Get Vault Address Source: https://docs.arrakis.finance/autogenerated/interfaces/IPancakeSwapV4StandardModule.sol/interface Retrieves the address of the associated vault. ```APIDOC ## GET /vault ### Description Returns the address of the vault associated with the module. ### Method GET ### Endpoint /vault ### Parameters None ### Response #### Success Response (200) - **vault** (IVault) - The address of the vault. #### Response Example ```json { "vault": "0x..." } ``` ``` -------------------------------- ### Position Initialization and Underlying Amounts Source: https://docs.arrakis.finance/autogenerated/abstracts/ValantisHOTModule.sol/abstract Provides endpoints to get the initial token amounts required to open a position, the total underlying amounts of token0 and token1 currently in a position, and the amounts at a specific price. ```APIDOC ## GET /websites/arrakis_finance/getInits ### Description Returns the initial amounts of token0 and token1 needed to open a new liquidity position. ### Method GET ### Endpoint /websites/arrakis_finance/getInits ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **init0** (uint256) - The amount of token0 required to open a position. - **init1** (uint256) - The amount of token1 required to open a position. #### Response Example ```json { "init0": "1000000000000000000", "init1": "2000000000000000000" } ``` ## GET /websites/arrakis_finance/totalUnderlying ### Description Returns the current total amounts of token0 and token1 held within the active liquidity position. ### Method GET ### Endpoint /websites/arrakis_finance/totalUnderlying ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **amount0** (uint256) - The current amount of token0 in the position. - **amount1** (uint256) - The current amount of token1 in the position. #### Response Example ```json { "amount0": "1200000000000000000", "amount1": "2400000000000000000" } ``` ## POST /websites/arrakis_finance/totalUnderlyingAtPrice ### Description Calculates and returns the amounts of token0 and token1 that would be present in the position if the price were at a specific given value. ### Method POST ### Endpoint /websites/arrakis_finance/totalUnderlyingAtPrice ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **priceX96_** (uint160) - Required - The price (in X96 format) at which to simulate the token composition. ### Request Example ```json { "priceX96_": "0x1234567890abcdef1234567890abcdef1234" } ``` ### Response #### Success Response (200) - **amount0** (uint256) - The simulated amount of token0 at the specified price. - **amount1** (uint256) - The simulated amount of token1 at the specified price. #### Response Example ```json { "amount0": "1100000000000000000", "amount1": "2300000000000000000" } ``` ``` -------------------------------- ### Get Initial Amounts Needed for Position Source: https://docs.arrakis.finance/autogenerated/modules/AerodromeStandardModulePrivate.sol/contract Returns the initial amounts of token0 and token1 required to open a new position. ```APIDOC ## GET /websites/arrakis_finance/getInits ### Description Function used to get the initial amounts needed to open a position. ### Method GET ### Endpoint /websites/arrakis_finance/getInits ### Response #### Success Response (200) - **init0** (uint256) - The amount of token0 needed to open a position. - **init1** (uint256) - The amount of token1 needed to open a position. #### Response Example ```json { "init0": "1000000000000000000", "init1": "1000000000000000000" } ``` ``` -------------------------------- ### GET /guardian Source: https://docs.arrakis.finance/autogenerated/interfaces/IModuleRegistry.sol/interface Retrieves the guardian address of the Arrakis protocol. ```APIDOC ## GET /guardian ### Description Retrieves the guardian address of the Arrakis protocol. ### Method GET ### Endpoint /guardian ### Response #### Success Response (200) - **guardianAddress** (address) - guardian address of the pauser. #### Response Example ```json { "guardianAddress": "0x..." } ``` ``` -------------------------------- ### getRanges Source: https://docs.arrakis.finance/autogenerated/abstracts/UniV4StandardModule.sol/abstract This function is used to get the list of active ranges. ```APIDOC ## getRanges ### Description This function is used to get the list of active ranges. ### Method function ### Endpoint getRanges() ### Returns #### Returns - **ranges** (Range[]) - active ranges ``` -------------------------------- ### Arrakis Finance Constructor Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultPrivate.sol/contract Initializes the Arrakis Finance contract, setting up essential parameters like the module registry, manager, token addresses, and NFT address. It inherits from ArrakisMetaVault and sets up the core dependencies for the contract's functionality. ```solidity constructor( address moduleRegistry_, address manager_, address token0_, address token1_, address nft_ ) ArrakisMetaVault(moduleRegistry_, manager_, token0_, token1_); ``` -------------------------------- ### Arrakis LP Module Initialization Function Source: https://docs.arrakis.finance/autogenerated/abstracts/UniV4StandardModule.sol/abstract The primary initialization function for the Arrakis LP Module, intended to be called after the beacon proxy is deployed. It sets up the Uniswap V4 standard module with crucial parameters including initial token amounts, pool key, oracle, slippage, and meta vault address. ```solidity function initialize( uint256 init0_, uint256 init1_, bool isInversed_, PoolKey calldata poolKey_, IOracleWrapper oracle_, uint24 maxSlippage_, address metaVault_ ) external initializer; ``` -------------------------------- ### guardian Source: https://docs.arrakis.finance/autogenerated/abstracts/UniV4StandardModule.sol/abstract This function is used to get the address that can pause the module. ```APIDOC ## guardian ### Description This function is used to get the address that can pause the module. ### Method function ### Endpoint guardian() ### Returns #### Returns - **** (address) - guardian address of the pauser. ``` -------------------------------- ### GET /moduleRegistryPrivate Source: https://docs.arrakis.finance/autogenerated/interfaces/IArrakisMetaVaultFactory.sol/interface Retrieves the address of the private module registry. ```APIDOC ## GET /moduleRegistryPrivate ### Description Retrieves the address of the private module registry. ### Method GET ### Endpoint `/websites/arrakis_finance/moduleRegistryPrivate ### Response #### Success Response (200) - **moduleRegistryPrivate** (address) - The address of the private module registry. ``` -------------------------------- ### Arrakis Constructor (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisPrivateVaultRouter.sol/contract Initializes the Arrakis contract by setting essential addresses including the native token, Permit2, the owner, the factory, and WETH during deployment. ```Solidity constructor( address nativeToken_, address permit2_, address owner_, address factory_, address weth_ ); ``` -------------------------------- ### GET /moduleRegistryPublic Source: https://docs.arrakis.finance/autogenerated/interfaces/IArrakisMetaVaultFactory.sol/interface Retrieves the address of the public module registry. ```APIDOC ## GET /moduleRegistryPublic ### Description Retrieves the address of the public module registry. ### Method GET ### Endpoint `/websites/arrakis_finance/moduleRegistryPublic ### Response #### Success Response (200) - **moduleRegistryPublic** (address) - The address of the public module registry. ``` -------------------------------- ### Get Manager Address Source: https://docs.arrakis.finance/autogenerated/interfaces/IHOTExecutor.sol/interface Retrieves the address of the contract manager. ```APIDOC ## GET /manager ### Description Retrieves the address of the contract manager. ### Method GET ### Endpoint /manager ### Response #### Success Response (200) - **managerAddress** (address) - The address of the contract manager. #### Response Example ```json { "managerAddress": "0x1111111111111111111111111111111111111111" } ``` ``` -------------------------------- ### POST /initialize Source: https://docs.arrakis.finance/autogenerated/interfaces/IModuleRegistry.sol/interface Initializes the module registry with the provided factory address. ```APIDOC ## POST /initialize ### Description Initializes the module registry with the provided factory address. Only the ArrakisMetaVaultFactory can call this function. ### Method POST ### Endpoint /initialize ### Parameters #### Request Body - **factory_** (address) - Required - address of ArrakisMetaVaultFactory. ### Request Example ```json { "factory_": "0x..." } ``` ``` -------------------------------- ### Initialize Vault Management Source: https://docs.arrakis.finance/autogenerated/ArrakisStandardManager.sol/contract Initializes the management of a meta vault. This function requires a SetupParams struct containing all necessary data for vault initialization. ```APIDOC ## POST /initManagement ### Description Initializes the management of a meta vault. This function requires a SetupParams struct containing all necessary data for vault initialization. ### Method POST ### Endpoint /initManagement ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **params_** (SetupParams) - Required - A struct containing all the data for initializing the vault. The exact fields of SetupParams are not detailed here but would typically include vault address, initial configuration, etc. ### Request Example ```json { "params_": { "vault": "0xVaultAddress", "initialConfig": "0xInitialConfigData" // ... other fields of SetupParams } } ``` ### Response #### Success Response (200) This endpoint does not specify a success response body in the provided documentation. #### Response Example None ``` -------------------------------- ### Get NonFungiblePositionManager Source: https://docs.arrakis.finance/autogenerated/interfaces/IAerodromeStandardModulePrivate.sol/interface Retrieves the NonFungiblePositionManager contract address for Aerodrome. ```APIDOC ## GET /nftPositionManager ### Description Fetches the address of the NonFungiblePositionManager contract used by Aerodrome. ### Method GET ### Endpoint /nftPositionManager ### Parameters #### Path Parameters None #### Query Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **nftPositionManager** (INonfungiblePositionManager) - The address of the NonFungiblePositionManager contract. #### Response Example ```json { "nftPositionManager": "0xAerodromeNFTManagerAddress" } ``` ``` -------------------------------- ### Get ETH Withdrawers Allowances Source: https://docs.arrakis.finance/autogenerated/interfaces/IUniV4StandardModule.sol/interface Retrieves the allowances for ETH withdrawals. ```APIDOC ## GET /ethWithdrawers ### Description Gets ETH withdrawers allowances. ### Method GET ### Endpoint /ethWithdrawers ### Parameters #### Path Parameters None #### Query Parameters - **address** (address) - Required - The address to check allowances for. ### Request Example ``` GET /ethWithdrawers?address=0x... ``` ### Response #### Success Response (200) - **uint256** - The allowance amount for the specified address. #### Response Example ```json { "allowance": "1000000000000000000" } ``` ``` -------------------------------- ### Solidity: Arrakis Finance Data Retrieval Functions Source: https://docs.arrakis.finance/autogenerated/abstracts/ArrakisMetaVault.sol/abstract These view functions provide information about the Arrakis Finance protocol. `whitelistedModules` returns a list of addresses for modules that have been whitelisted. `getInits` returns the initial token amounts required to open a position, and `totalUnderlying` retrieves the current total amounts of token0 and token1 held in the positions. ```solidity function whitelistedModules() external view returns (address[] memory modules); function getInits() external view returns (uint256 init0, uint256 init1); function totalUnderlying() public view returns (uint256 amount0, uint256 amount1); ``` -------------------------------- ### Initialize Arrakis Pool Source: https://docs.arrakis.finance/autogenerated/interfaces/ICLGauge.sol/interface Initializes a new Arrakis Finance pool with specified parameters. This function sets up the core configurations for a trading pair. ```Solc function initialize( address _pool, address _feesVotingReward, address _rewardToken, address _voter, address _nft, address _token0, address _token1, int24 _tickSpacing, bool _isPool ) external; ``` -------------------------------- ### Get Price1 API Source: https://docs.arrakis.finance/autogenerated/interfaces/IOracleWrapper.sol/interface Retrieves the price of token1 relative to token0. ```APIDOC ## GET /websites/arrakis_finance/getPrice1 ### Description This function is used to get the price of token1 relative to token0. ### Method GET ### Endpoint /websites/arrakis_finance/getPrice1 ### Response #### Success Response (200) - **price1** (uint256) - price of token1/token0. #### Response Example ```json { "price1": "9876543210987654321" } ``` ``` -------------------------------- ### Get Initial Position Amounts (Solidity) Source: https://docs.arrakis.finance/autogenerated/modules/AerodromeStandardModulePrivate.sol/contract The `getInits` function returns the initial amounts of token0 and token1 required to open a new position. This is an external view function, useful for understanding the capital requirements for new positions. ```Solidity function getInits( ) external view returns (uint256 init0, uint256 init1); ``` -------------------------------- ### Get Price0 API Source: https://docs.arrakis.finance/autogenerated/interfaces/IOracleWrapper.sol/interface Retrieves the price of token0 relative to token1. ```APIDOC ## GET /websites/arrakis_finance/getPrice0 ### Description This function is used to get the price of token0 relative to token1. ### Method GET ### Endpoint /websites/arrakis_finance/getPrice0 ### Response #### Success Response (200) - **price0** (uint256) - price of token0/token1. #### Response Example ```json { "price0": "1234567890123456789" } ``` ``` -------------------------------- ### Arrakis Module Initialization (Solidity) Source: https://docs.arrakis.finance/autogenerated/modules/BunkerModule.sol/contract Initializes the Arrakis module using an `initializer` function. This function is intended to be called once after the beacon proxy is deployed to set up the bunker module's metaVault address. ```solidity function initialize(address metaVault_) external initializer; // Parameters // Name| Type| Description // ---|---|--- // `metaVault_`| `address`| address of the meta vault. ``` -------------------------------- ### withdrawManagerBalance Source: https://docs.arrakis.finance/autogenerated/abstracts/UniV4StandardModule.sol/abstract This function is used by metaVault or manager to get manager fees. ```APIDOC ## withdrawManagerBalance ### Description This function is used by metaVault or manager to get manager fees. ### Method function ### Endpoint withdrawManagerBalance() ### Returns #### Returns - **amount0** (uint256) - amount of token0 sent to manager. - **amount1** (uint256) - amount of token1 sent to manager. ``` -------------------------------- ### Arrakis Module Constructor Source: https://docs.arrakis.finance/autogenerated/abstracts/PancakeSwapV4StandardModule.sol/abstract The constructor function initializes the Arrakis Finance module by setting up essential contract references such as the pool manager, guardian, vault, distributor, and collector. This is a critical setup step for the module's operation. ```solidity constructor( address poolManager_, address guardian_, address vault_, address distributor_, address collector_ ); ``` -------------------------------- ### Get Aerodrome Voter Source: https://docs.arrakis.finance/autogenerated/interfaces/IAerodromeStandardModulePrivate.sol/interface Retrieves the voter contract address for Aerodrome. ```APIDOC ## GET /voter ### Description Fetches the address of the voter contract associated with Aerodrome. ### Method GET ### Endpoint /voter ### Parameters #### Path Parameters None #### Query Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **voter** (IVoter) - The address of the Aerodrome voter contract. #### Response Example ```json { "voter": "0xAerodromeVoterAddress" } ``` ``` -------------------------------- ### Get Aerodrome Factory Source: https://docs.arrakis.finance/autogenerated/interfaces/IAerodromeStandardModulePrivate.sol/interface Retrieves the factory contract address for Aerodrome. ```APIDOC ## GET /factory ### Description Fetches the address of the factory contract utilized by Aerodrome. ### Method GET ### Endpoint /factory ### Parameters #### Path Parameters None #### Query Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **factory** (IUniswapV3Factory) - The address of the Aerodrome factory contract. #### Response Example ```json { "factory": "0xAerodromeFactoryAddress" } ``` ``` -------------------------------- ### Initialize Uniswap V4 Standard Module Source: https://docs.arrakis.finance/autogenerated/interfaces/IPancakeSwapV4StandardModule.sol/interface Initializes the Uniswap V4 standard module by delegating a call to the beacon proxy. This function deposits funds into the poolManager and sets up the module with initial parameters, pool configurations, and an oracle. ```Solidity function initialize( uint256 init0_, uint256 init1_, bool isInversed_, PoolKey calldata poolKey_, IOracleWrapper oracle_, uint24 maxSlippage_, address metaVault_ ) external; ``` -------------------------------- ### Initialize Arrakis LP Module Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/metaVaults/core/abstract Initializes the Arrakis LP module by setting its address. This function is marked with the 'initializer' modifier, ensuring it can only be called once during the contract's setup. ```solidity function initialize(address module_) external initializer; ``` -------------------------------- ### GET /deployers Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Retrieves a list of addresses authorized to deploy public vaults. ```APIDOC ## GET /deployers ### Description Retrieves a list of addresses that are authorized to deploy public vaults. ### Method GET ### Endpoint /deployers ### Response #### Success Response (200) - **deployers** (address[]) - A list of addresses authorized to deploy public vaults. ``` -------------------------------- ### Build Arrakis Contracts (Forge) Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/overview Installs required submodules and compiles the Arrakis modular smart contracts using the Forge build tool. This command is essential for preparing the contracts for testing or deployment. ```bash forge build ``` -------------------------------- ### GET /isPrivateVault Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Checks if a given vault address belongs to a private vault. ```APIDOC ## GET /isPrivateVault ### Description Checks if the inputed vault is a private vault. ### Method GET ### Endpoint /isPrivateVault ### Parameters #### Query Parameters - **vault** (address) - Required - The address of the vault to check. ### Response #### Success Response (200) - **isPrivateVault** (bool) - Returns `true` if the vault is private, `false` otherwise. ``` -------------------------------- ### GET /numOfPrivateVaults Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Counts the total number of private vaults currently deployed. ```APIDOC ## GET /numOfPrivateVaults ### Description Counts the total number of private vaults in existence. ### Method GET ### Endpoint /numOfPrivateVaults ### Response #### Success Response (200) - **result** (uint256) - The total count of deployed private vaults. ``` -------------------------------- ### Clone Arrakis Repository (Git) Source: https://docs.arrakis.finance/text/arrakisModular/technicalReference/overview Clones the Arrakis Finance smart contract repository from GitHub. This is the first step in setting up the development environment. ```git git clone https://github.com/ArrakisFinance/arrakis-modular.git ``` -------------------------------- ### GET /privateVaults Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Retrieves a paginated list of private vaults created by the factory. ```APIDOC ## GET /privateVaults ### Description Retrieves a paginated list of private vaults created by this factory. ### Method GET ### Endpoint /privateVaults ### Parameters #### Query Parameters - **startIndex** (uint256) - Required - The starting index for the list. - **endIndex** (uint256) - Required - The ending index for the list. ### Response #### Success Response (200) - **vaults** (address[]) - A list of addresses representing the private vaults. ``` -------------------------------- ### Event LogInitializePosition Source: https://docs.arrakis.finance/autogenerated/interfaces/IValantisHOTModule.sol/interface Logs the amounts of token0 and token1 used to initialize a position. This event is emitted during the initial setup of a liquidity position. ```Solidity event LogInitializePosition(uint256 amount0, uint256 amount1); ``` -------------------------------- ### GET /isPublicVault Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Checks if a given vault address belongs to a public vault. ```APIDOC ## GET /isPublicVault ### Description Checks if the inputed vault is a public vault. ### Method GET ### Endpoint /isPublicVault ### Parameters #### Query Parameters - **vault** (address) - Required - The address of the vault to check. ### Response #### Success Response (200) - **isPublicVault** (bool) - Returns `true` if the vault is public, `false` otherwise. ``` -------------------------------- ### GET /numOfPublicVaults Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Counts the total number of public vaults currently deployed. ```APIDOC ## GET /numOfPublicVaults ### Description Counts the total number of public vaults in existence. ### Method GET ### Endpoint /numOfPublicVaults ### Response #### Success Response (200) - **result** (uint256) - The total count of deployed public vaults. ``` -------------------------------- ### Initialize Aerodrome Module - Solidity Source: https://docs.arrakis.finance/autogenerated/modules/AerodromeStandardModulePrivate.sol/contract Initializes the Aerodrome module after the beacon proxy deployment. It sets up critical parameters such as the oracle, max slippage, aero receiver, tick spacing, and metaVault address. ```Solidity function initialize( IOracleWrapper oracle_, uint24 maxSlippage_, address aeroReceiver_, int24 tickSpacing_, address metaVault_ ) external initializer; ``` -------------------------------- ### GET /publicVaults Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Retrieves a paginated list of public vaults created by the factory. ```APIDOC ## GET /publicVaults ### Description Retrieves a paginated list of public vaults created by this factory. ### Method GET ### Endpoint /publicVaults ### Parameters #### Query Parameters - **startIndex** (uint256) - Required - The starting index for the list. - **endIndex** (uint256) - Required - The ending index for the list. ### Response #### Success Response (200) - **vaults** (address[]) - A list of addresses representing the public vaults. ``` -------------------------------- ### Initialize Meta Vault Management (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisStandardManager.sol/contract Initializes the management of a meta vault. This function is called externally and requires a `SetupParams` struct containing all necessary data for vault initialization. It is protected by a `whenNotPaused` modifier. ```Solidity function initManagement(SetupParams calldata params_) external whenNotPaused; ``` -------------------------------- ### Arrakis Constructor (Solidity) Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultFactory.sol/contract Initializes the Arrakis contract with owner, manager, module registry addresses, and vault creation code addresses. ```Solidity constructor( address owner_, address manager_, address moduleRegistryPublic_, address moduleRegistryPrivate_, address creationCodePublicVault_, address creationCodePrivateVault_ ); ``` -------------------------------- ### Get Depositors Source: https://docs.arrakis.finance/autogenerated/ArrakisMetaVaultPrivate.sol/contract Retrieves the list of addresses that have been granted depositor roles. ```APIDOC ## GET /depositors ### Description Function used to get the list of depositors. ### Method GET ### Endpoint /depositors #### Returns - **depositors** (address[]) - A list of addresses granted the depositor role. ``` -------------------------------- ### Arrakis Finance: Pool Initialization Source: https://docs.arrakis.finance/autogenerated/interfaces/IValantisHOTModule.sol/interface Initializes the Valantis module with specified parameters after the beacon proxy is deployed, enabling deposit and withdrawal functions. ```APIDOC ## initialize ### Description Initializes the Valantis module with specified parameters after the beacon proxy is deployed, enabling deposit and withdrawal functions. ### Method EXTERNAL ### Endpoint N/A (Contract Function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```solidity function initialize( address pool_, uint256 init0_, uint256 init1_, uint24 maxSlippage_, address metaVault_ ) external; ``` ### Response #### Success Response (200) N/A (Contract Function) #### Response Example None ### Parameters Details - **pool_** (address) - Required - address of the valantis sovereign pool. - **init0_** (uint256) - Required - initial amount of token0 to provide to valantis module. - **init1_** (uint256) - Required - initial amount of token1 to provide to valantis module. - **maxSlippage_** (uint24) - Required - allowed to manager for rebalancing the inventory using swap. - **metaVault_** (address) - Required - address of the meta vault ``` -------------------------------- ### Define Vault Setup Parameters - Solidity Source: https://docs.arrakis.finance/text/arrakisPro/modify Defines the structure for setting up and updating vault parameters. Includes fields for vault address, oracle, deviation limits, cooldown periods, executor, announcer, and slippage. ```solidity struct SetupParams { address vault; IOracleWrapper oracle; uint24 maxDeviation; uint256 cooldownPeriod; address executor; address stratAnnouncer; uint24 maxSlippagePIPS; } ```