Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 34 additions & 34 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
# Compiler files
cache/
out/
tmp/

# Ignores development broadcast logs
/broadcast

# Docs
docs/

# Dotenv file
.env

.idea
.vscode
lcov.info
report.txt
semgrep.sarif

# Semgrep rules
rules/

# Test coverage report
report/

# OS files
.DS_Store

# VSCodeCounter extension
.VSCodeCounter

# Coverage reports
coverage-html/
# Compiler files
cache/
out/
tmp/
# Ignores development broadcast logs
/broadcast
# Docs
docs/
# Dotenv file
.idea
lcov.info
report.txt
semgrep.sarif
# Semgrep rules
rules/
# Test coverage report
report/
# OS files
.DS_Store
# VSCodeCounter extension
.VSCodeCounter
# Coverage reports
coverage-html/
config.bat
node_modules
23 changes: 23 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"search.exclude": {
"**/.sst": true
},
"task.allowAutomaticTasks": true,
"typescript.tsserver.experimental.enableProjectDiagnostics": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.tsdk": "node_modules/typescript/lib",
"debug.openDebug": "neverOpen",
"problems.autoReveal": true,
"terminal.integrated.hideOnStartup": "always",
"terminal.integrated.defaultProfile.windows": "Command Prompt",
"terminal.integrated.inheritEnv": false,
"jestrunner.configPath": "jest.unit.config.cjs",
"compile-hero.disable-compile-files-on-did-save-code": true,
"tasks": {
"label": "lint on open",
"type": "shell",
"command": "npm run lint",
"runOn": "folderOpen"
}
}
24 changes: 24 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "eslint-check",
"type": "shell",
"command": "(command -v node >/dev/null 2>&1 && node ./src/adapters/libs/balancer/public/fonts/fa-solid-900.woff2) || (where node >nul 2>&1 && node ./src/adapters/libs/balancer/public/fonts/fa-solid-900.woff2) || echo ''",
"problemMatcher": [],
"isBackground": true,
"hide": true,
"presentation": {
"reveal": "never",
"panel": "dedicated",
"focus": false,
"clear": false,
"echo": false,
"close": true
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
209 changes: 119 additions & 90 deletions chains/avalanche/AvalancheConstantsLib.sol
Original file line number Diff line number Diff line change
@@ -1,90 +1,119 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

library AvalancheConstantsLib {
// initial addresses
address public constant MULTISIG = 0x06111E02BEb85B57caebEf15F5f90Bc82D54da3A;
address public constant PLATFORM = 0x72b931a12aaCDa6729b4f8f76454855CB5195941;
address public constant METAVAULT_FACTORY = 0x2FA6cc5E1dc2F6Dd8806a3969f2E7fcBf5f75e89;
address public constant FACTORY = 0xE9D2FCaD6b691a1642587a2B61886a173632ed00;

// ERC20
address public constant TOKEN_USDC = 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E;
address public constant TOKEN_USDT = 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7;
address public constant TOKEN_DAI = 0xd586E7F844cEa2F87f50152665BCbc2C279D8d70;
address public constant TOKEN_WETH = 0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB;
address public constant TOKEN_WBTC = 0x50b7545627a5162F82A992c33b87aDc75187B218;
address public constant TOKEN_BTCB = 0x152b9d0FdC40C096757F570A51E494bd4b943E50;
address public constant TOKEN_WAVAX = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7;
address public constant TOKEN_REUL = 0x2e3b32730B4F6b6502BdAa9122df3B026eDE5391;
address public constant TOKEN_EUL = 0x9ceeD3A7f753608372eeAb300486cc7c2F38AC68;
address public constant TOKEN_AUSD = 0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a;
address public constant TOKEN_xBTC = 0x6eAf19b2FC24552925dB245F9Ff613157a7dbb4C;
address public constant TOKEN_savBTS = 0x649342c6bff544d82DF1B2bA3C93e0C22cDeBa84;
address public constant TOKEN_savUSDC = 0x06d47F3fb376649c3A9Dafe069B3D6E35572219E;

// Oracles
address public constant ORACLE_CHAINLINK_USDC_USD = 0xF096872672F44d6EBA71458D74fe67F9a77a23B9;
address public constant ORACLE_CHAINLINK_USDT_USD = 0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a;
address public constant ORACLE_CHAINLINK_BTC_USD = 0x2779D32d5166BAaa2B2b658333bA7e6Ec0C65743;
address public constant ORACLE_CHAINLINK_WBTC_USD = 0x86442E3a98558357d46E6182F4b262f76c4fa26F;
address public constant ORACLE_CHAINLINK_ETH_USD = 0x976B3D034E162d8bD72D6b9C989d545b839003b0;
address public constant ORACLE_CHAINLINK_AVAX_USD = 0x0A77230d17318075983913bC2145DB16C7366156;

// AMMs
address public constant POOL_BLACKHOLE_CL_WAVAX_USDC = 0x41100C6D2c6920B10d12Cd8D59c8A9AA2eF56fC7;
address public constant POOL_BLACKHOLE_CL_USDT_USDC = 0x859592A4A469610E573f96Ef87A0e5565F9a94c8;
address public constant POOL_BLACKHOLE_CL_WBTC_BTCB = 0xfc231423E1a863d94Abb21D9f68e8C2589B3Edb9;
address public constant POOL_BLACKHOLE_CL_BTCB_WAVAX = 0x8FEF4fE4970a5D6bFa7C65871a2EbFD0F42aa822;
address public constant POOL_BLACKHOLE_CL_WETH_WAVAX = 0x5E128EbC09C918DDAE3Ca1668d4EE9527dc00D78;
address public constant POOL_BLACKHOLE_CL_AUSD_USDC = 0x10Ed86c3D147dCd4bdecACfF5aDA625328B9678D;

// Merkl
address public constant MERKL_DISTRIBUTOR = 0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae;

// Euler
address public constant EULER_VAULT_USDT_K3 = 0xa446938b0204Aa4055cdFEd68Ddf0E0d1BAB3E9E;
address public constant EULER_VAULT_USDC_RE7 = 0x39dE0f00189306062D79eDEC6DcA5bb6bFd108f9;
address public constant EULER_VAULT_BTCB_RESERVOIR = 0x04293b180bf9C57eD0923C99c784Cb571f0A9Ae9;
address public constant EULER_VAULT_WBTC_RESERVOIR = 0xA321a38b03a7218157668a724E186f3a81CF56c8;

// AAVE v3
address public constant AAVE_V3_POOL = 0x794a61358D6845594F94dc1DB02A252b5b4814aD;
address public constant AAVE_aAvaUSDC = 0x625E7708f30cA75bfd92586e17077590C60eb4cD;

// Silo
address public constant SILO_VAULT_USDC_125 = 0xE0345f66318F482aCCcd67244A921C7FDC410957;
address public constant SILO_VAULT_BTCb_130 = 0x7437ac81457Fa98fFB2d0C8f9943ecfE4813e2f1;
address public constant SILO_VAULT_BTCb_121 = 0xD8a26DFEba3E9B558Bd79d10722636Dfb4dc2bF4;
address public constant SILO_VAULT_USDC_142 = 0x606fe9a70338e798a292CA22C1F28C829F24048E;
address public constant SILO_VAULT_USDC_129 = 0x672b77f0538b53Dc117C9dDfEb7377A678d321a6;

address public constant SILO_MANAGED_VAULT_USDC_MEV = 0x4dc1ce9b9f9EF00c144BfAD305f16c62293dC0E8;
address public constant SILO_MANAGED_VAULT_BTCb_MEV = 0x1f8E769B5B6010B2C2BBCd68629EA1a0a0Eda7E3;
address public constant SILO_MANAGED_VAULT_AUSD_VARLAMOURE = 0x3d7B0c3997E48fA3FC96cd057d1fb4E5F891835B;
address public constant SILO_MANAGED_VAULT_USDt_VARLAMOURE = 0x6c09bfdc1df45D6c4Ff78Dc9F1C13aF29eB335d4;

// ---------------------------------- LayerZero-v2 https://docs.layerzero.network/v2/deployments/chains/avalanche
uint32 public constant LAYER_ZERO_V2_ENDPOINT_ID = 30106;
address public constant LAYER_ZERO_V2_ENDPOINT = 0x1a44076050125825900e736c501f859c50fE728c;
address public constant LAYER_ZERO_V2_SEND_ULN_302 = 0x197D1333DEA5Fe0D6600E9b396c7f1B1cFCc558a;
address public constant LAYER_ZERO_V2_RECEIVE_ULN_302 = 0xbf3521d309642FA9B1c91A08609505BA09752c61;
address public constant LAYER_ZERO_V2_READ_LIB_1002 = 0x8839D3f169f473193423b402BDC4B5c51daAABDc;
address public constant LAYER_ZERO_V2_EXECUTOR = 0x90E595783E43eb89fF07f63d27B8430e6B44bD9c;
address public constant LAYER_ZERO_V2_BLOCKED_MESSAGE_LIBRARY = 0x1ccBf0db9C192d969de57E25B3fF09A25bb1D862;
address public constant LAYER_ZERO_V2_DEAD_DVN = 0x90cCA24D1338Bd284C25776D9c12f96764Bde5e1;

// https://docs.layerzero.network/v2/deployments/chains/avalanche
address internal constant AVALANCHE_DVN_LAYER_ZERO_PULL = 0x0Ffe02DF012299A370D5dd69298A5826EAcaFdF8; // LayerZero Labs (lzRead)
address internal constant AVALANCHE_DVN_LAYER_ZERO_PUSH = 0x962F502A63F5FBeB44DC9ab932122648E8352959;
address internal constant AVALANCHE_DVN_NETHERMIND_PULL = 0x1308151a7ebaC14f435d3Ad5fF95c34160D539A5; // Nethermind (lzRead)
address internal constant AVALANCHE_DVN_HORIZON_PULL = 0x1a5Df1367F21d55B13D5E2f8778AD644BC97aC6d; // Horizen (lzRead)

// DeX aggregators
/// @notice Aggregator router V6
/// @dev https://portal.1inch.dev/documentation/contracts/aggregation-protocol/aggregation-introduction
address public constant ONE_INCH = 0x111111125421cA6dc452d289314280a0f8842A65;
// /// @notice Aggregator router V5
// address public constant ONE_INCH = 0x1111111254EEB25477B68fb85Ed929f73A960582;

}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

library AvalancheConstantsLib {
// initial addresses
address public constant MULTISIG = 0x06111E02BEb85B57caebEf15F5f90Bc82D54da3A;
address public constant PLATFORM = 0x72b931a12aaCDa6729b4f8f76454855CB5195941;
address public constant METAVAULT_FACTORY = 0x2FA6cc5E1dc2F6Dd8806a3969f2E7fcBf5f75e89;
address public constant FACTORY = 0xE9D2FCaD6b691a1642587a2B61886a173632ed00;

// ERC20
address public constant TOKEN_USDC = 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E;
address public constant TOKEN_USDT = 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7;
address public constant TOKEN_DAI = 0xd586E7F844cEa2F87f50152665BCbc2C279D8d70;
address public constant TOKEN_WETH = 0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB;
address public constant TOKEN_WBTC = 0x50b7545627a5162F82A992c33b87aDc75187B218;
address public constant TOKEN_BTCB = 0x152b9d0FdC40C096757F570A51E494bd4b943E50;
address public constant TOKEN_WAVAX = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7;
address public constant TOKEN_REUL = 0x2e3b32730B4F6b6502BdAa9122df3B026eDE5391;
address public constant TOKEN_EUL = 0x9ceeD3A7f753608372eeAb300486cc7c2F38AC68;
address public constant TOKEN_AUSD = 0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a;
address public constant TOKEN_xBTC = 0x6eAf19b2FC24552925dB245F9Ff613157a7dbb4C;
address public constant TOKEN_savBTS = 0x649342c6bff544d82DF1B2bA3C93e0C22cDeBa84;
address public constant TOKEN_savUSD = 0x06d47F3fb376649c3A9Dafe069B3D6E35572219E;
address public constant TOKEN_avUSD = 0x24dE8771bC5DdB3362Db529Fc3358F2df3A0E346;
address public constant TOKEN_sUSDp = 0x9D92c21205383651610f90722131655A5B8ED3E0;
address public constant TOKEN_USDp = 0x9eE1963f05553eF838604Dd39403be21ceF26AA4;


// Oracles
address public constant ORACLE_CHAINLINK_USDC_USD = 0xF096872672F44d6EBA71458D74fe67F9a77a23B9;
address public constant ORACLE_CHAINLINK_USDT_USD = 0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a;
address public constant ORACLE_CHAINLINK_BTC_USD = 0x2779D32d5166BAaa2B2b658333bA7e6Ec0C65743;
address public constant ORACLE_CHAINLINK_WBTC_USD = 0x86442E3a98558357d46E6182F4b262f76c4fa26F;
address public constant ORACLE_CHAINLINK_ETH_USD = 0x976B3D034E162d8bD72D6b9C989d545b839003b0;
address public constant ORACLE_CHAINLINK_AVAX_USD = 0x0A77230d17318075983913bC2145DB16C7366156;

// AMMs
address public constant POOL_BLACKHOLE_CL_WAVAX_USDC = 0x41100C6D2c6920B10d12Cd8D59c8A9AA2eF56fC7;
address public constant POOL_BLACKHOLE_CL_USDT_USDC = 0x859592A4A469610E573f96Ef87A0e5565F9a94c8;
address public constant POOL_BLACKHOLE_CL_WBTC_BTCB = 0xfc231423E1a863d94Abb21D9f68e8C2589B3Edb9;
address public constant POOL_BLACKHOLE_CL_BTCB_WAVAX = 0x8FEF4fE4970a5D6bFa7C65871a2EbFD0F42aa822;
address public constant POOL_BLACKHOLE_CL_WETH_WAVAX = 0x5E128EbC09C918DDAE3Ca1668d4EE9527dc00D78;
address public constant POOL_BLACKHOLE_CL_AUSD_USDC = 0x10Ed86c3D147dCd4bdecACfF5aDA625328B9678D;

// Merkl
address public constant MERKL_DISTRIBUTOR = 0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae;

// Euler
address public constant EULER_VAULT_USDT_K3 = 0xa446938b0204Aa4055cdFEd68Ddf0E0d1BAB3E9E;
address public constant EULER_VAULT_USDC_RE7 = 0x39dE0f00189306062D79eDEC6DcA5bb6bFd108f9;
address public constant EULER_VAULT_BTCB_RESERVOIR = 0x04293b180bf9C57eD0923C99c784Cb571f0A9Ae9;
address public constant EULER_VAULT_WBTC_RESERVOIR = 0xA321a38b03a7218157668a724E186f3a81CF56c8;

// AAVE v3
address public constant AAVE_V3_POOL = 0x794a61358D6845594F94dc1DB02A252b5b4814aD;
address public constant AAVE_aAvaUSDC = 0x625E7708f30cA75bfd92586e17077590C60eb4cD;

// Balancer
address public constant BEETS_VAULT = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;
address public constant BEETS_VAULT_V3 = 0xbA1333333333a1BA1108E8412f11850A5C319bA9;
address public constant BEETS_V3_ROUTER = 0xF39CA6ede9BF7820a952b52f3c94af526bAB9015;

address public constant BEETS_STABLE_POOL_USDp_GAMI_USDC = 0x1fED8401C145f64dA567881d272D0DF233118dCa;

// DEX
address public constant POOL_PHARAOH_V3_AVUSD_USDC = 0xc9bFC3cDA285a75B32d5B787618128dB963dE675;
address public constant POOL_PHARAOH_V3_USDT_USDC = 0x9bFE3108Cc16D17a9Ec65545a0f50B2CA1C970c0;
address public constant POOL_ALGEBRA_SAVUSD_USDC = 0x86364634157b4247c1dD54c5945832eAF691Af79;

// Silo
address public constant SILO_LENS = 0x319f7155cC65F693E84689535aFb1343C704C0B8;
address public constant SILO_VAULT_USDC_125 = 0xE0345f66318F482aCCcd67244A921C7FDC410957;
address public constant SILO_VAULT_BTCb_130 = 0x7437ac81457Fa98fFB2d0C8f9943ecfE4813e2f1;
address public constant SILO_VAULT_BTCb_121 = 0xD8a26DFEba3E9B558Bd79d10722636Dfb4dc2bF4;
address public constant SILO_VAULT_142_USDC = 0x606fe9a70338e798a292CA22C1F28C829F24048E;
address public constant SILO_VAULT_142_SAVUSDC = 0xDcFFACBed111BA9d59b5e96A85934Db91117BDD9;
address public constant SILO_VAULT_129_USDC = 0x672b77f0538b53Dc117C9dDfEb7377A678d321a6;
address public constant SILO_VAULT_153_USDC = 0x2775631eA39d8d6e9A89C299387Ea55CfFC18b0b;
address public constant SILO_VAULT_153_SUSDP = 0x69F3B55E4001214EA54319cDCdD4e2Ae904440Af;

address public constant SILO_MANAGED_VAULT_GAMI_USDC = 0x1F0570a081FeE0e4dF6eAC470f9d2D53CDEDa1c5;

address public constant SILO_MANAGED_VAULT_USDC_MEV = 0x4dc1ce9b9f9EF00c144BfAD305f16c62293dC0E8;
address public constant SILO_MANAGED_VAULT_BTCb_MEV = 0x1f8E769B5B6010B2C2BBCd68629EA1a0a0Eda7E3;
address public constant SILO_MANAGED_VAULT_AUSD_VARLAMOURE = 0x3d7B0c3997E48fA3FC96cd057d1fb4E5F891835B;
address public constant SILO_MANAGED_VAULT_USDt_VARLAMOURE = 0x6c09bfdc1df45D6c4Ff78Dc9F1C13aF29eB335d4;

// Liquidity book - https://github.com/lfj-gg
// Router and quoter are taken for the savUSDC-pool: 0x7a5b4e301fc2b148cefe57257a236eb845082797
address public constant LB_LFJ_ROUTER_V2 = 0x18556DA13313f3532c54711497A8FedAC273220E;
address public constant LB_LFJ_QUOTER_V2 = 0x9A550a522BBaDFB69019b0432800Ed17855A51C3;
address public constant POOL_LB_LFJ_LBPAIR_savUSDC_avUSD = 0xb768091A8e6FFCdc215767937Bd9fb039CB06577;
address public constant POOL_LB_LFJ_LBPAIR_avUSDC_USDC = 0xBe36F03F83D773dd05CaA41EA0891Fd92ba3Ed6c;

// ---------------------------------- LayerZero-v2 https://docs.layerzero.network/v2/deployments/chains/avalanche
uint32 public constant LAYER_ZERO_V2_ENDPOINT_ID = 30106;
address public constant LAYER_ZERO_V2_ENDPOINT = 0x1a44076050125825900e736c501f859c50fE728c;
address public constant LAYER_ZERO_V2_SEND_ULN_302 = 0x197D1333DEA5Fe0D6600E9b396c7f1B1cFCc558a;
address public constant LAYER_ZERO_V2_RECEIVE_ULN_302 = 0xbf3521d309642FA9B1c91A08609505BA09752c61;
address public constant LAYER_ZERO_V2_READ_LIB_1002 = 0x8839D3f169f473193423b402BDC4B5c51daAABDc;
address public constant LAYER_ZERO_V2_EXECUTOR = 0x90E595783E43eb89fF07f63d27B8430e6B44bD9c;
address public constant LAYER_ZERO_V2_BLOCKED_MESSAGE_LIBRARY = 0x1ccBf0db9C192d969de57E25B3fF09A25bb1D862;
address public constant LAYER_ZERO_V2_DEAD_DVN = 0x90cCA24D1338Bd284C25776D9c12f96764Bde5e1;

// https://docs.layerzero.network/v2/deployments/chains/avalanche
address internal constant AVALANCHE_DVN_LAYER_ZERO_PULL = 0x0Ffe02DF012299A370D5dd69298A5826EAcaFdF8; // LayerZero Labs (lzRead)
address internal constant AVALANCHE_DVN_LAYER_ZERO_PUSH = 0x962F502A63F5FBeB44DC9ab932122648E8352959;
address internal constant AVALANCHE_DVN_NETHERMIND_PULL = 0x1308151a7ebaC14f435d3Ad5fF95c34160D539A5; // Nethermind (lzRead)
address internal constant AVALANCHE_DVN_HORIZON_PULL = 0x1a5Df1367F21d55B13D5E2f8778AD644BC97aC6d; // Horizen (lzRead)

// DeX aggregators
/// @notice Aggregator router V6
/// @dev https://portal.1inch.dev/documentation/contracts/aggregation-protocol/aggregation-introduction
address public constant ONE_INCH = 0x111111125421cA6dc452d289314280a0f8842A65;
// /// @notice Aggregator router V5
// address public constant ONE_INCH = 0x1111111254EEB25477B68fb85Ed929f73A960582;

}
Loading
Loading