diff --git a/package-lock.json b/package-lock.json index eb289b04d4..b0b26cee43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@blend-capital/blend-sdk": "^2.2.0", + "@blend-capital/blend-sdk": "3.0.1", "@defillama/sdk": "^5.0.112", "@stacks/network": "^6.13.0", "@stacks/transactions": "^6.15.0", @@ -1903,12 +1903,11 @@ "dev": true }, "node_modules/@blend-capital/blend-sdk": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@blend-capital/blend-sdk/-/blend-sdk-2.2.0.tgz", - "integrity": "sha512-S2P7D1Y45IKBk381gvPWt7rv587B2FUY9Vd8KyXpxkpcB8/IgFeCItoVBidqIW5vbsAG3T1fwHJbcI3bUfFlpw==", - "license": "MIT", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@blend-capital/blend-sdk/-/blend-sdk-3.0.1.tgz", + "integrity": "sha512-jqIcvVof0MY3x9+M8FJU9xcYRDeASRGSXrrS2OrSBvmfFvJ5DJ/tkHr0o19pn9Z0aWO98WrriscRQFy2NKmSBg==", "dependencies": { - "@stellar/stellar-sdk": "13.0.0", + "@stellar/stellar-sdk": "13.2.0", "buffer": "6.0.3", "follow-redirects": ">=1.15.6" } @@ -5545,14 +5544,12 @@ "node_modules/@stellar/js-xdr": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@stellar/js-xdr/-/js-xdr-3.1.2.tgz", - "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==", - "license": "Apache-2.0" + "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==" }, "node_modules/@stellar/stellar-base": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.0.1.tgz", - "integrity": "sha512-Xbd12mc9Oj/130Tv0URmm3wXG77XMshZtZ2yNCjqX5ZbMD5IYpbBs3DVCteLU/4SLj/Fnmhh1dzhrQXnk4r+pQ==", - "license": "Apache-2.0", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.1.0.tgz", + "integrity": "sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==", "dependencies": { "@stellar/js-xdr": "^3.1.2", "base32.js": "^0.1.0", @@ -5561,8 +5558,11 @@ "sha.js": "^2.3.6", "tweetnacl": "^1.0.3" }, + "engines": { + "node": ">=18.0.0" + }, "optionalDependencies": { - "sodium-native": "^4.3.0" + "sodium-native": "^4.3.3" } }, "node_modules/@stellar/stellar-base/node_modules/buffer": { @@ -5583,7 +5583,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5606,23 +5605,24 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/@stellar/stellar-sdk": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.0.0.tgz", - "integrity": "sha512-+wvmKi+XWwu27nLYTM17EgBdpbKohEkOfCIK4XKfsI4WpMXAqvnqSm98i9h5dAblNB+w8BJqzGs1JY0PtTGm4A==", - "license": "Apache-2.0", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.2.0.tgz", + "integrity": "sha512-azxeh1+mS28h96Q+vl41ffytQvWdudRl1KtjYO0TRZb/9u0/lH57oYBeJ+gvcQr+T7s02wTayFdHbKru5V5/XA==", "dependencies": { - "@stellar/stellar-base": "^13.0.1", - "axios": "^1.7.7", + "@stellar/stellar-base": "^13.1.0", + "axios": "^1.8.4", "bignumber.js": "^9.1.2", "eventsource": "^2.0.2", - "feaxios": "^0.0.20", + "feaxios": "^0.0.23", "randombytes": "^2.1.0", "toml": "^3.0.0", "urijs": "^1.19.1" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@supercharge/promise-pool": { @@ -6907,10 +6907,9 @@ } }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "license": "MIT", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -7156,6 +7155,24 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-addon-resolve": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.9.4.tgz", + "integrity": "sha512-unn6Vy/Yke6F99vg/7tcrvM2KUvIhTNniaSqDbam4AWkd4NhvDVSrQiRYVlNzUV2P7SPobkCK7JFVxrJk9btCg==", + "optional": true, + "dependencies": { + "bare-module-resolve": "^1.10.0", + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, "node_modules/bare-events": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", @@ -7163,6 +7180,56 @@ "dev": true, "optional": true }, + "node_modules/bare-module-resolve": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.10.2.tgz", + "integrity": "sha512-C9COe/GhWfVXKytW3DElTkiBU+Gb2OXeaVkdGdRB/lp26TVLESHkTGS876iceAGdvtPgohfp9nX8vXHGvN3++Q==", + "optional": true, + "dependencies": { + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", + "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-semver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.1.tgz", + "integrity": "sha512-UtggzHLiTrmFOC/ogQ+Hy7VfoKoIwrP1UFcYtTxoCUdLtsIErT8+SWtOC2DH/snT9h+xDrcBEPcwKei1mzemgg==", + "optional": true + }, + "node_modules/bare-url": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.1.6.tgz", + "integrity": "sha512-FgjDeR+/yDH34By4I0qB5NxAoWv7dOTYcOXwn73kr+c93HyC2lU6tnjifqUe33LKMJcDyCYPQjEAqgOQiXkE2Q==", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -7176,7 +7243,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", "integrity": "sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==", - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -10260,7 +10326,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", - "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -10588,10 +10653,9 @@ } }, "node_modules/feaxios": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.20.tgz", - "integrity": "sha512-g3hm2YDNffNxA3Re3Hd8ahbpmDee9Fv1Pb1C/NoWsjY7mtD8nyNeJytUzn+DK0Hyl9o6HppeWOrtnqgmhOYfWA==", - "license": "MIT", + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.23.tgz", + "integrity": "sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==", "dependencies": { "is-retry-allowed": "^3.0.0" } @@ -12299,7 +12363,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-3.0.0.tgz", "integrity": "sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -15568,6 +15631,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "peer": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -17367,6 +17431,19 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/require-addon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/require-addon/-/require-addon-1.1.0.tgz", + "integrity": "sha512-KbXAD5q2+v1GJnkzd8zzbOxchTkStSyJZ9QwoCq3QwEXAaIlG3wDYRZGzVD357jmwaGY7hr5VaoEAL0BkF0Kvg==", + "optional": true, + "dependencies": { + "bare-addon-resolve": "^1.3.0", + "bare-url": "^2.1.0" + }, + "engines": { + "bare": ">=1.10.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -18707,13 +18784,12 @@ "dev": true }, "node_modules/sodium-native": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.3.1.tgz", - "integrity": "sha512-YdP64gAdpIKHfL4ttuX4aIfjeunh9f+hNeQJpE9C8UMndB3zkgZ7YmmGT4J2+v6Ibyp6Wem8D1TcSrtdW0bqtg==", - "license": "MIT", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.3.3.tgz", + "integrity": "sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==", "optional": true, "dependencies": { - "node-gyp-build": "^4.8.0" + "require-addon": "^1.1.0" } }, "node_modules/solc": { @@ -19762,8 +19838,7 @@ "node_modules/toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "license": "MIT" + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, "node_modules/touch": { "version": "3.1.1", @@ -20243,8 +20318,7 @@ "node_modules/urijs": { "version": "1.19.11", "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" }, "node_modules/url": { "version": "0.10.3", diff --git a/package.json b/package.json index e4d1955baf..b3d2290e00 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "author": "", "license": "ISC", "dependencies": { - "@blend-capital/blend-sdk": "^2.2.0", + "@blend-capital/blend-sdk": "3.0.1", "@defillama/sdk": "^5.0.112", "@stacks/network": "^6.13.0", "@stacks/transactions": "^6.15.0", diff --git a/src/adaptors/blend-pools/index.js b/src/adaptors/blend-pools/index.js index a326df91f9..356c0e5586 100644 --- a/src/adaptors/blend-pools/index.js +++ b/src/adaptors/blend-pools/index.js @@ -1,72 +1,79 @@ const { - Pool, + PoolV1, BackstopToken, Backstop, FixedMath, + TokenMetadata, } = require('@blend-capital/blend-sdk'); -const { getPrices, keepFinite, formatChain } = require('../utils'); +const { getPrices, keepFinite, formatChain, getData } = require('../utils'); const BACKSTOP_ID = 'CAO3AGAMZVRMHITL36EJ2VZQWKYRPWMQAPDQD5YEOF3GIF7T44U4JAL3'; const BLND_ID = 'CD25MNVTZDL4Y3XBCPCJXGXATV5WUHHOWMYFF4YBEGU5FCPGMYTVG5JY'; const BLEND_POOLS = [ 'CDVQVKOY2YSXS2IC7KN6MNASSHPAO7UN2UR2ON4OI2SKMFJNVAMDX6DP', 'CBP7NO6F7FRDHSOFQBT2L2UWYIZ2PU76JKVRYAQTG3KZSQLYAOKIF2WB', + 'CDE65QK2ROZ32V2LVLBOKYPX47TYMYO37Z6ASQTBRTBNK53C7C6QF4Y7', + 'CAQF5KNOFIGRI24NQRRGUPD46Q45MGMXZMRTQFXS25Y4NZVNPT34GM6S', ]; const NETWORK = { rpc: 'https://soroban-rpc.creit.tech/', passphrase: 'Public Global Stellar Network ; September 2015', }; -const getApy = async (poolId, backstop) => { - const pool = await Pool.load(NETWORK, poolId); +const getApy = async (poolId, backstop, blndPrice) => { + const pool = await PoolV1.load(NETWORK, poolId); // Skip pools that have been admin frozen - Pool is very likely to be broken - if (pool.config.status === 4) return []; - const prices = await getPrices(pool.config.reserveList, 'stellar'); + if (pool.metadata.status === 4) return []; + + const prices = await getPrices(pool.metadata.reserveList, 'stellar'); let pools = []; - for (const reserve of pool.reserves.values()) { + + for (const reserve of Array.from(pool.reserves.values())) { const price = prices.pricesByAddress[reserve.assetId.toLowerCase()]; + if (price) { - let supplyEmissionsPerAsset = reserve.emissionsPerYearPerSuppliedAsset(); - let borrowEmissionsPerAsset = reserve.emissionsPerYearPerBorrowedAsset(); + let tokenMetadata = await TokenMetadata.load(NETWORK, reserve.assetId); let supplyEmissionsAPR = undefined; let borrowEmissionsAPR = undefined; - // The backstop token is an 80/20 weighted lp token of blnd and usdc respectively - // (Calculated using balancer spot equation) - // @TODO replace with coingecko price after listing - const usdcPerBlnd = - FixedMath.toFloat(backstop.backstopToken.usdc, 7) / - 0.2 / - (FixedMath.toFloat(backstop.backstopToken.blnd, 7) / 0.8); - if (supplyEmissionsPerAsset > 0) { - supplyEmissionsAPR = (supplyEmissionsPerAsset * usdcPerBlnd) / price; + if (reserve.supplyEmissions) { + const supplyEmissionsPerAsset = + reserve.supplyEmissions.emissionsPerYearPerToken( + reserve.totalSupply(), + reserve.config.decimals + ); + + supplyEmissionsAPR = (supplyEmissionsPerAsset * blndPrice) / price; } - if (borrowEmissionsPerAsset > 0) { - borrowEmissionsAPR = (borrowEmissionsPerAsset * usdcPerBlnd) / price; + if (reserve.borrowEmissions) { + const borrowEmissionsPerAsset = + reserve.borrowEmissions.emissionsPerYearPerToken( + reserve.totalLiabilities(), + reserve.config.decimals + ); + borrowEmissionsAPR = (borrowEmissionsPerAsset * blndPrice) / price; } - // Estimate borrow APY compounded daily - const borrowApy = (1 + reserve.borrowApr / 365) ** 365 - 1; + let totalSupply = reserve.totalSupplyFloat() * price; let totalBorrow = reserve.totalLiabilitiesFloat() * price; - const url = `https://mainnet.blend.capital/dashboard/?poolId=${poolId}`; pools.push({ pool: `${pool.id}-${reserve.assetId}-stellar`.toLowerCase(), chain: formatChain('stellar'), project: 'blend-pools', - symbol: reserve.tokenMetadata.symbol, + symbol: tokenMetadata.symbol, tvlUsd: totalSupply - totalBorrow, - // Supply is kept as APR to prevent overestimation of APY apyBase: reserve.supplyApr * 100, apyReward: supplyEmissionsAPR * 100, underlyingTokens: [reserve.assetId], rewardTokens: borrowEmissionsAPR || supplyEmissionsAPR ? [BLND_ID] : [], totalSupplyUsd: totalSupply, totalBorrowUsd: totalBorrow, - apyBaseBorrow: borrowApy * 100, + // Estimated daily compounding + apyBaseBorrow: reserve.estBorrowApy * 100, apyRewardBorrow: borrowEmissionsAPR * 100, ltv: totalBorrow / totalSupply, - poolMeta: `${pool.config.name} Pool`, + poolMeta: `${pool.metadata.name} Pool`, url, }); } @@ -77,10 +84,16 @@ const getApy = async (poolId, backstop) => { const apy = async () => { let backstop = await Backstop.load(NETWORK, BACKSTOP_ID); let pools = []; - + const data = await getData( + 'https://coins.llama.fi/prices/current/coingecko:blend' + ); for (const poolId of BLEND_POOLS) { - let poolApys = await getApy(poolId, backstop); - pools.push(...poolApys) + let poolApys = await getApy( + poolId, + backstop, + data.coins['coingecko:blend'].price + ); + pools.push(...poolApys); } return pools; }; diff --git a/src/adaptors/package-lock.json b/src/adaptors/package-lock.json index 827912ef2f..7433cb69fa 100644 --- a/src/adaptors/package-lock.json +++ b/src/adaptors/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@blend-capital/blend-sdk": "^2.1.1", + "@blend-capital/blend-sdk": "3.0.1", "@defillama/sdk": "^5.0.112", "@stacks/network": "^6.13.0", "@stacks/transactions": "^6.15.0", @@ -1345,11 +1345,11 @@ "dev": true }, "node_modules/@blend-capital/blend-sdk": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@blend-capital/blend-sdk/-/blend-sdk-2.1.1.tgz", - "integrity": "sha512-cEP6rwXKl79rrjNb8jTYHhsL2gxHqBoVtHjj3oBo0+jEa0BnMUqDqd6vAr+eNBaydtRUqi+r6YCPE+kOfRn3UQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@blend-capital/blend-sdk/-/blend-sdk-3.0.1.tgz", + "integrity": "sha512-jqIcvVof0MY3x9+M8FJU9xcYRDeASRGSXrrS2OrSBvmfFvJ5DJ/tkHr0o19pn9Z0aWO98WrriscRQFy2NKmSBg==", "dependencies": { - "@stellar/stellar-sdk": "12.3.0", + "@stellar/stellar-sdk": "13.2.0", "buffer": "6.0.3", "follow-redirects": ">=1.15.6" } @@ -4202,9 +4202,9 @@ "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==" }, "node_modules/@stellar/stellar-base": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-12.1.1.tgz", - "integrity": "sha512-gOBSOFDepihslcInlqnxKZdIW9dMUO1tpOm3AtJR33K2OvpXG6SaVHCzAmCFArcCqI9zXTEiSoh70T48TmiHJA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.1.0.tgz", + "integrity": "sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==", "dependencies": { "@stellar/js-xdr": "^3.1.2", "base32.js": "^0.1.0", @@ -4213,22 +4213,29 @@ "sha.js": "^2.3.6", "tweetnacl": "^1.0.3" }, + "engines": { + "node": ">=18.0.0" + }, "optionalDependencies": { - "sodium-native": "^4.1.1" + "sodium-native": "^4.3.3" } }, "node_modules/@stellar/stellar-sdk": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-12.3.0.tgz", - "integrity": "sha512-F2DYFop/M5ffXF0lvV5Ezjk+VWNKg0QDX8gNhwehVU3y5LYA3WAY6VcCarMGPaG9Wdgoeh1IXXzOautpqpsltw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.2.0.tgz", + "integrity": "sha512-azxeh1+mS28h96Q+vl41ffytQvWdudRl1KtjYO0TRZb/9u0/lH57oYBeJ+gvcQr+T7s02wTayFdHbKru5V5/XA==", "dependencies": { - "@stellar/stellar-base": "^12.1.1", - "axios": "^1.7.7", + "@stellar/stellar-base": "^13.1.0", + "axios": "^1.8.4", "bignumber.js": "^9.1.2", "eventsource": "^2.0.2", + "feaxios": "^0.0.23", "randombytes": "^2.1.0", "toml": "^3.0.0", "urijs": "^1.19.1" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@supercharge/promise-pool": { @@ -4770,9 +4777,9 @@ } }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -4945,6 +4952,74 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-addon-resolve": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.9.4.tgz", + "integrity": "sha512-unn6Vy/Yke6F99vg/7tcrvM2KUvIhTNniaSqDbam4AWkd4NhvDVSrQiRYVlNzUV2P7SPobkCK7JFVxrJk9btCg==", + "optional": true, + "dependencies": { + "bare-module-resolve": "^1.10.0", + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-module-resolve": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.10.2.tgz", + "integrity": "sha512-C9COe/GhWfVXKytW3DElTkiBU+Gb2OXeaVkdGdRB/lp26TVLESHkTGS876iceAGdvtPgohfp9nX8vXHGvN3++Q==", + "optional": true, + "dependencies": { + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", + "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-semver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.1.tgz", + "integrity": "sha512-UtggzHLiTrmFOC/ogQ+Hy7VfoKoIwrP1UFcYtTxoCUdLtsIErT8+SWtOC2DH/snT9h+xDrcBEPcwKei1mzemgg==", + "optional": true + }, + "node_modules/bare-url": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.1.5.tgz", + "integrity": "sha512-lNImB5KLN+ggw+SYDYvqf/yCizXIyq8U/nWBlx7m4pc4TKS24SB/1WWskzGacon5cVVAC6qUzCYzI/aMYCf4Ng==", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -6157,6 +6232,14 @@ "bser": "2.1.1" } }, + "node_modules/feaxios": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.23.tgz", + "integrity": "sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==", + "dependencies": { + "is-retry-allowed": "^3.0.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6927,6 +7010,17 @@ "node": ">=8" } }, + "node_modules/is-retry-allowed": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-3.0.0.tgz", + "integrity": "sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -9368,6 +9462,7 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "peer": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -9823,6 +9918,19 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, + "node_modules/require-addon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/require-addon/-/require-addon-1.1.0.tgz", + "integrity": "sha512-KbXAD5q2+v1GJnkzd8zzbOxchTkStSyJZ9QwoCq3QwEXAaIlG3wDYRZGzVD357jmwaGY7hr5VaoEAL0BkF0Kvg==", + "optional": true, + "dependencies": { + "bare-addon-resolve": "^1.3.0", + "bare-url": "^2.1.0" + }, + "engines": { + "bare": ">=1.10.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10093,12 +10201,12 @@ } }, "node_modules/sodium-native": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.2.1.tgz", - "integrity": "sha512-48X3PfRLW+f0fgb3J7f7mkZ9eBKcGR/bD5mdXXLAx4RWwKUe3095yPQgiUUQTfh8Q29JzwhSQATitQDBIozN/w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.3.3.tgz", + "integrity": "sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==", "optional": true, "dependencies": { - "node-gyp-build": "^4.8.0" + "require-addon": "^1.1.0" } }, "node_modules/solc": { diff --git a/src/adaptors/package.json b/src/adaptors/package.json index 1242df429c..67e2a0d097 100644 --- a/src/adaptors/package.json +++ b/src/adaptors/package.json @@ -7,7 +7,7 @@ "author": "", "license": "ISC", "dependencies": { - "@blend-capital/blend-sdk": "^2.1.1", + "@blend-capital/blend-sdk": "3.0.1", "@defillama/sdk": "^5.0.112", "@stacks/network": "^6.13.0", "@stacks/transactions": "^6.15.0",