From dc9b58744074eca8a2f4d05b54993a64769efd63 Mon Sep 17 00:00:00 2001 From: 0xalexbai <84605710+0xalexbai@users.noreply.github.com> Date: Thu, 23 Sep 2021 18:08:16 +0800 Subject: [PATCH 01/81] Fix bug in example. The first parameter for pool.getQuote() should be . (#42) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bae6f0d..beec5b1 100644 --- a/README.md +++ b/README.md @@ -52,9 +52,9 @@ try { // Get a quote of exchanging 1.1 ETH to USDC with a slippage tolerance of 0.1% // From the quote, you can get the current rate, fees, expected output amount and minimum output amount - let usdcToken = pool.getTokenB(); + let ethToken = pool.getTokenA(); let tradeValue = new Decimal(1.1); - let quote = await pool.getQuote(usdcToken, tradeValue, new Decimal(0.1)); + let quote = await pool.getQuote(ethToken, tradeValue, new Decimal(0.1)); // Perform a swap for 1USDC to the quoted minimum amount of ETH // If the user does not have the Associated Token Address(ATA) to receive the output token, the ATA From db535ee5fdb59ae448460c3019897b8886cb9163 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 25 Sep 2021 09:43:20 -0700 Subject: [PATCH 02/81] Aquafarm withdraw/deposit support (#41) * Aquafarm withdraw/deposit support * ignore when user farm is not initialized * @orca-so/aquafarm version bump to ^0.0.12 * extract aquafarm as a separate api * comment todos * variable name changes --- package.json | 1 + src/constants/farms.ts | 391 +++++++++++++++++ src/constants/index.ts | 1 + src/model/orca-factory.ts | 9 +- src/model/orca/farm/farm-types.ts | 17 + src/model/orca/farm/orca-farm.ts | 227 ++++++++++ src/model/orca/orca-impl.ts | 6 +- src/model/orca/pool/orca-pool.ts | 2 +- src/public/farms/config.ts | 51 +++ src/public/farms/index.ts | 2 + src/public/farms/types.ts | 55 +++ src/public/index.ts | 1 + src/public/main/types.ts | 8 +- src/public/utils/constants.ts | 4 + src/public/utils/numbers/u64-utils.ts | 14 + .../web3/instructions/farm-instructions.ts | 93 ++++ yarn.lock | 402 +++++++++++++++++- 17 files changed, 1258 insertions(+), 26 deletions(-) create mode 100644 src/constants/farms.ts create mode 100644 src/model/orca/farm/farm-types.ts create mode 100644 src/model/orca/farm/orca-farm.ts create mode 100644 src/public/farms/config.ts create mode 100644 src/public/farms/index.ts create mode 100644 src/public/farms/types.ts create mode 100644 src/public/utils/web3/instructions/farm-instructions.ts diff --git a/package.json b/package.json index a565f56..bf4fca2 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "types": "dist/index.d.ts", "license": "MIT", "dependencies": { + "@orca-so/aquafarm": "^0.0.12", "@orca-so/stablecurve": "^1.0.5", "@solana/spl-token": "^0.1.5", "@solana/spl-token-swap": "^0.1.2", diff --git a/src/constants/farms.ts b/src/constants/farms.ts new file mode 100644 index 0000000..28e118d --- /dev/null +++ b/src/constants/farms.ts @@ -0,0 +1,391 @@ +import { PublicKey } from "@solana/web3.js"; +import { OrcaFarmParams } from "../model/orca/farm/farm-types"; + +/** + * The following content is auto-generated. + */ + +export const solUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("85HrPbJtrN82aeB74WTwoFxcNgmf5aDNP2ENngbDpd5G"), + farmTokenMint: new PublicKey("FFdjrSvNALfdgxANNpt3x85WpeVMdQSH5SEP2poM8fcK"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9"), + baseTokenDecimals: 6, +}); + +export const solUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4RRRJkscV2DmwJUxTQgRdYock75GfwYJn7LTxy9rGTmY"), + farmTokenMint: new PublicKey("71vZ7Jvu8fTyFzpX399dmoSovoz24rVbipLrRn2wBNzW"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("FZthQCuYHhcfiDma7QrX7buDHwrZEd7vL8SjS6LQa3Tx"), + baseTokenDecimals: 6, +}); + +export const ethSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3ARgavt1NhqLmJWj3wAJy6XBarG6pJbEKRv1wzzRbbaN"), + farmTokenMint: new PublicKey("CGFTRh4jKLPbS9r4hZtbDfaRuC7qcA8rZpbLnVTzJBer"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("71FymgN2ZUf7VvVTLE8jYEnjP3jSK1Frp2XT1nHs8Hob"), + baseTokenDecimals: 6, +}); + +export const ethUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FpezTR76RRjgpBb9HhR6ap8BgQfkHyNMQSqJDcoXpjAb"), + farmTokenMint: new PublicKey("HDP2AYFmvLz6sWpoSuNS62JjvW4HjMKp7doXucqpWN56"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("3e1W6Aqcbuk2DfHUwRiRcyzpyYRRjg6yhZZcyEARydUX"), + baseTokenDecimals: 6, +}); + +export const raySolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("B1aByG1fU5yUgQT2EtJrp96SC4tJhnipzdXqHx2CXRgj"), + farmTokenMint: new PublicKey("AUkn5f4N4TqPA5BiWirTDHWnG3SePfmeDpDqrFmhSgKb"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("5kimD5W6yJpHRHCyPtnEyDsQRdiiJKivu5AqN3si82Jc"), + baseTokenDecimals: 6, +}); + +export const ropeSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("NFsHa28zxuLnncHme7iLx8TXWV8ypyxPvEPaQh29zDh"), + farmTokenMint: new PublicKey("xpPyQwQ1HXHyEpvFGyTQRLY6rmj6jtAdEgLMV5uoz4m"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("ADrvfPBsRcJfGsN6Bs385zYddH52nuM5FA8UaAkX9o2V"), + baseTokenDecimals: 6, +}); + +export const stepSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DGtiR1LWNPGV9A5byh7EjAoh9NC2cW5YDcmxCpUJosD2"), + farmTokenMint: new PublicKey("GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("8nTzqDXHriG2CXKbybeuEh1EqDQMtrbYMFWcP7AkiDaP"), + baseTokenDecimals: 6, +}); + +export const srmSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5CQVdPpaW95X1atyfqunZf7eBE1rhQBXMfgJ1wRVF1p1"), + farmTokenMint: new PublicKey("D659zwnbeTgquChbaWC3KDHrkYoqMuz1doGLHTFaqTtD"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("9tf8rBSEQYG7AqL896fN2nZi1iYPqpWaLEdpbeQaC1Vy"), + baseTokenDecimals: 6, +}); + +export const fttSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GzZE2CEemaTGNtRSYs9sArAJFuJi5kwsPJFyz5puYhsj"), + farmTokenMint: new PublicKey("9r9BcPwCon96P5Y6JSdRAog7Uknz9p9GrnuHm4VzuB9k"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("EsYaDKJCmcJtJHFuJYwQZwqohvVMCrFzcg8yo3i328No"), + baseTokenDecimals: 6, +}); + +export const copeSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CXYEVaqtDs4R9Bpeu4xYf8KT8S6nYis6VWkDEh9Mu1FS"), + farmTokenMint: new PublicKey("7CT19h7n2YBKiCFCaxXqMM79jNM4cmUvjXhNMjJNRYa"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("CzieDbGRdN1QGaGDNpSqzEA18bi881ccvkkGZi51pe1k"), + baseTokenDecimals: 6, +}); + +export const oxySolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("ALmRst1DksKXVfY64KXq7pJUUG5PP56kwY18ijVDGAsz"), + farmTokenMint: new PublicKey("G48RkwsNYd3A4rBfuQhCswr9YUE63fFmZGyhgH95dq3S"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("7tYCdLN84EnTMkxM7HNamWJx7F4xgKe9KiiWvLyWjbgT"), + baseTokenDecimals: 6, +}); + +export const btcSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EeG5AAnFS56AveUrKexzivQeUdWhm6zYq6ubn6fLMCQa"), + farmTokenMint: new PublicKey("GxmjQZvgwNCh3QSRNB8CPED81hzySem62PDDuMp4B379"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("Acxs19v6eUMTEfdvkvWkRB4bwFCHm3XV9jABCy7c1mXe"), + baseTokenDecimals: 6, +}); + +export const merSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8gJggSfM35JpfvXmEsuJoHPLB8D6br15MEWEWdQF81d6"), + farmTokenMint: new PublicKey("CrKVRnH6iGbFXxEnXMn3Emwv3Fe7VwxEqpA8zNbwsgkH"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("HiwRobjfHZ4zsPtqCC4oBS24pSmy4t8GGkXRbQj4yU6L"), + baseTokenDecimals: 6, +}); + +export const fidaSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4X3U1tpfiwQ5zPPd4oQSPcu3UK7nMSUWyAXxCmcSA6qP"), + farmTokenMint: new PublicKey("4geGcEfgVjzJGZAaT8iTicPm1XLDPjdSpVhtA99sZ7jX"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("EYsNdtyu4gGTaGz8N5m5iQ3G1N6rDyMbR72B3CqbWW4W"), + baseTokenDecimals: 6, +}); + +export const mapsSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Gobr8FhZDtn8yxkFQDND3KmfuwZseWEuyZ3xpD56hk1i"), + farmTokenMint: new PublicKey("7Dy84zJNHzEM9335BrtFjCuunt2VgxJ7KBT6PJarxKMq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("99pfC8fWymXgbq3CvrExhx3UxQDC1fMWEWLbNT83F45e"), + baseTokenDecimals: 6, +}); + +export const usdcUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5psKJrxWnPmoAbCxk3An2CGh7wHAX2cWddf5vZuYbbVw"), + farmTokenMint: new PublicKey("GjpXgKwn4VW4J2pZdS3dovM58hiXWLJtopTfqG83zY2f"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("H2uzgruPvonVpCRhwwdukcpXK8TG17swFNzYFr2rtPxy"), + baseTokenDecimals: 6, +}); + +export const orcaSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("F6pi7SyXWx56fP96mYQ4Yfh4yZ7oGNtDjwSYHT5Mz7Ld"), + farmTokenMint: new PublicKey("B5waaKnsmtqFawPspUwcuy1cRjAC7u2LrHSwxPSxK4sZ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("2uVjAuRXavpM6h1scGQaxqb6HVaNRn6T2X7HHXTabz25"), + baseTokenDecimals: 6, +}); + +export const orcaUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9S1BsxbDNQXQccjFamVEGgxiYQHTeudvhEYwFr4oWeaf"), + farmTokenMint: new PublicKey("Gc7W5U66iuHQcC1cQyeX9hxkPF2QUVJPTf1NWbW8fNrt"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("n8Mpu28RjeYD7oUX3LG1tPxzhRZh3YYLRSHcHRdS3Zx"), + baseTokenDecimals: 6, +}); + +export const kinSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9XTA3t3X8KaeLgkv7XuDWATo4oDwBnTZqjnSPcE5ijYK"), + farmTokenMint: new PublicKey("7Ho3ht7krdFELBcPAsGXFfQMyG4PUvYSfpz4aNBRP3Ek"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("HEvnD66WcBfTajS9adUYnGRBMDehFtLySiFHSD6kEBWs"), + baseTokenDecimals: 6, +}); + +export const samoSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("98EDd1L47pdW1F7ne82dyFXpfhVdEcrCqUF1dYrWLFZi"), + farmTokenMint: new PublicKey("CNf8gZtLahBWxKe3YwsqywLHMTewGqvq6pJ5ecg3cTYU"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("D6N9j8F2DhtzDtrdpT74y3u2YmYAzcggiLc3nTjqux9M"), + baseTokenDecimals: 6, +}); + +export const liqUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("z2WHNcBJTZqbK5wCuBPtswEq2614T6si1cJmog7vFAL"), + farmTokenMint: new PublicKey("57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("3PD9SZFwXKkXr4akLf4ofo37ZUMycwML89R2P3qxcbZG"), + baseTokenDecimals: 6, +}); + +export const snyUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7qAQZxYQRcmHmz3Wi9NeieujwLSd3N41M4dJipgSCNsB"), + farmTokenMint: new PublicKey("6Qw5Gzf1TkM3YRe7Dh6yMVMo2wnJxRiCUBP8abTTn9Yg"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("AZpo4BJHHRetF96v6SGinFZBMXM4yWMo4RA8C4PriDLk"), + baseTokenDecimals: 6, +}); + +export const msolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EvtMzreDMq1U8ytV5fEmfoWNfPhrjZ87za835GuRvZCc"), + farmTokenMint: new PublicKey("5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("8PSfyiTVwPb6Rr2iZ8F3kNpbg65BCfJM9v8LfB916r44"), + baseTokenDecimals: 6, +}); + +export const slrsUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5XXw91d4HoLjqhUhXmUcdkCDtQyXvQkLJMUcYJkKn5Dx"), + farmTokenMint: new PublicKey("66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w"), + baseTokenDecimals: 6, +}); + +export const portUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FpEb4eEqhnPBAA2RNvsSe8baCoev4mSNQjxKPGvx5Gjv"), + farmTokenMint: new PublicKey("4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w"), + baseTokenDecimals: 6, +}); + +export const sbrUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EWRNKpLc4Y8r6Aur9mo8GtBYatqfoML9A7bfEmDv2JD4"), + farmTokenMint: new PublicKey("Cum6sRPGpWYQHZapekDtMhbZ1BQ2QkYv9PAwQjypxMVo"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo"), + baseTokenDecimals: 6, +}); + +export const socnUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5MzBKRo6YqK1BKBz67sXd42jrb6gYzBuX6R5F8ywC33e"), + farmTokenMint: new PublicKey("7YFfqZGTxkj3Zeq3Et23kMznCaEYZ1WBZDt6CVrxwfqd"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB"), + baseTokenDecimals: 6, +}); + +export const psolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4TK569s8SLgzmEcihyhrH8GmqFsufjZqsvHs8zrPEZYP"), + farmTokenMint: new PublicKey("8kWk6CuCAfaxhWQZvQva6qkB1DkWNHq9LRKKN6n9joUG"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1"), + baseTokenDecimals: 6, +}); + +export const msolSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("JADWjBW1Xs8WhW8kj3GTCRQn3LR4gwvbFTEMwv9ZNxQh"), + farmTokenMint: new PublicKey("3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R"), + baseTokenDecimals: 6, +}); + +export const orcaPaiAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8KBSXu7zFjvbVXiwf1opGNBx3evVwdpaYHWR3uc4HVR6"), + farmTokenMint: new PublicKey("4aEi4A91hRbERJVDYxRWbbSrBrsxoM1Hm33KRoRzWMht"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb"), + baseTokenDecimals: 6, +}); + +export const orcaMsolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7EVKT4iqfjiyzeVrafs23JrfhSoLd6XTanVuENNvisq7"), + farmTokenMint: new PublicKey("3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA"), + baseTokenDecimals: 6, +}); + +export const socnSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5cE7V9D13k1P1qC23g5vcQEMsvrDzL5yFHhiesVUyn93"), + farmTokenMint: new PublicKey("CNqmEKGjZUUARVFHcz4w9CvX5pR8Ae2c6imHDNqsbxgj"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc"), + baseTokenDecimals: 6, +}); + +export const atlasUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("G92aJeZBCFiECwrKSQsbobfykh6cNLCf5Pd3zkiLjGLe"), + farmTokenMint: new PublicKey("HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ"), + baseTokenDecimals: 6, +}); + +export const polisUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5NkDw3LcFscf5WSxUiquNregP6RaP79Y2pN1jyUYepzc"), + farmTokenMint: new PublicKey("63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy"), + baseTokenDecimals: 6, +}); + +export const bopUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4bmbPAxrf5NLAD6A5fkhKhmuffdGScpu9Ei39YEaPATQ"), + farmTokenMint: new PublicKey("A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu"), + baseTokenDecimals: 6, +}); + +export const samoUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("F5ZvDWRVpQP5A17RFogL4dE7gZ2Uda7ZqKUy3DWJDEFx"), + farmTokenMint: new PublicKey("9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc"), + baseTokenDecimals: 6, +}); + +export const ninjaSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("B8Q8e1hdCw6fhnSKmsMCrsDbvSNLZyzHjnPpwZKBkcSB"), + farmTokenMint: new PublicKey("7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML"), + baseTokenDecimals: 6, +}); + +export const slimUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3muHEhQLmt7jmaicMHqe6LqXrrfFtqEuAfBog2fAXhRm"), + farmTokenMint: new PublicKey("3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo"), + baseTokenDecimals: 6, +}); + +export const whapiUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("r2MxTnFdnP7ECMxH7F4mcg1p3CowwhPmDmYoZ1syKZh"), + farmTokenMint: new PublicKey("Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW"), + baseTokenDecimals: 6, +}); + +export const copeUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("xigyMM8txxzpvjRw3Z1tX9euUshtqeHucW6K3f81KNQ"), + farmTokenMint: new PublicKey("9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK"), + baseTokenDecimals: 6, +}); + +export const sunnyUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Nw3caGfeqM8xQZ45iAf5zWmPMQux5wMWMjxsKEfnNk4"), + farmTokenMint: new PublicKey("9HPn1oREyNA7CEK7B1xwmBmVH6qtQaSfLBXc1JyRsdUE"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n"), + baseTokenDecimals: 6, +}); + +export const grapeUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6eeK7PHkUXJ9t2qgdrHfbZfmU5S7zWZwpDw6i46Rf1jU"), + farmTokenMint: new PublicKey("97q89hnoKwqcynvwXcj83YqfqUBuCm4A8f2zHeV6bfZg"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd"), + baseTokenDecimals: 6, +}); + +/** + * Mapping for OrcaFarm parameters + * Key: baseTokenMint : OrcaFarmParams + */ +export const orcaFarmConfigs: Record = { + APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9: solUsdcAqFarm, + FZthQCuYHhcfiDma7QrX7buDHwrZEd7vL8SjS6LQa3Tx: solUsdtAqFarm, + "71FymgN2ZUf7VvVTLE8jYEnjP3jSK1Frp2XT1nHs8Hob": ethSolAqFarm, + "3e1W6Aqcbuk2DfHUwRiRcyzpyYRRjg6yhZZcyEARydUX": ethUsdcAqFarm, + "5kimD5W6yJpHRHCyPtnEyDsQRdiiJKivu5AqN3si82Jc": raySolAqFarm, + ADrvfPBsRcJfGsN6Bs385zYddH52nuM5FA8UaAkX9o2V: ropeSolAqFarm, + "8nTzqDXHriG2CXKbybeuEh1EqDQMtrbYMFWcP7AkiDaP": stepSolAqFarm, + "9tf8rBSEQYG7AqL896fN2nZi1iYPqpWaLEdpbeQaC1Vy": srmSolAqFarm, + EsYaDKJCmcJtJHFuJYwQZwqohvVMCrFzcg8yo3i328No: fttSolAqFarm, + CzieDbGRdN1QGaGDNpSqzEA18bi881ccvkkGZi51pe1k: copeSolAqFarm, + "7tYCdLN84EnTMkxM7HNamWJx7F4xgKe9KiiWvLyWjbgT": oxySolAqFarm, + Acxs19v6eUMTEfdvkvWkRB4bwFCHm3XV9jABCy7c1mXe: btcSolAqFarm, + HiwRobjfHZ4zsPtqCC4oBS24pSmy4t8GGkXRbQj4yU6L: merSolAqFarm, + EYsNdtyu4gGTaGz8N5m5iQ3G1N6rDyMbR72B3CqbWW4W: fidaSolAqFarm, + "99pfC8fWymXgbq3CvrExhx3UxQDC1fMWEWLbNT83F45e": mapsSolAqFarm, + H2uzgruPvonVpCRhwwdukcpXK8TG17swFNzYFr2rtPxy: usdcUsdtAqFarm, + "2uVjAuRXavpM6h1scGQaxqb6HVaNRn6T2X7HHXTabz25": orcaSolAqFarm, + n8Mpu28RjeYD7oUX3LG1tPxzhRZh3YYLRSHcHRdS3Zx: orcaUsdcAqFarm, + HEvnD66WcBfTajS9adUYnGRBMDehFtLySiFHSD6kEBWs: kinSolAqFarm, + D6N9j8F2DhtzDtrdpT74y3u2YmYAzcggiLc3nTjqux9M: samoSolAqFarm, + "3PD9SZFwXKkXr4akLf4ofo37ZUMycwML89R2P3qxcbZG": liqUsdcAqFarm, + AZpo4BJHHRetF96v6SGinFZBMXM4yWMo4RA8C4PriDLk: snyUsdcAqFarm, + "8PSfyiTVwPb6Rr2iZ8F3kNpbg65BCfJM9v8LfB916r44": msolUsdcAqFarm, + AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w: slrsUsdcAqFarm, + F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w: portUsdcAqFarm, + CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo: sbrUsdcAqFarm, + Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB: socnUsdcAqFarm, + C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1: psolUsdcAqFarm, + "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R": msolSolAqFarm, + C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb: orcaPaiAqFarm, + CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA: orcaMsolAqFarm, + APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: socnSolAqFarm, + FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ: atlasUsdcAqFarm, + GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy: polisUsdcAqFarm, + "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu": bopUsdcAqFarm, + "6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc": samoUsdcAqFarm, + "4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML": ninjaSolAqFarm, + BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo: slimUsdcAqFarm, + ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW: whapiUsdcAqFarm, + HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK: copeUsdcAqFarm, + GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n: sunnyUsdcAqFarm, + EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd: grapeUsdcAqFarm, +}; diff --git a/src/constants/index.ts b/src/constants/index.ts index ebf66ac..9badb39 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,2 +1,3 @@ export * from "./orca-defaults"; export * from "./pools"; +export * from "./farms"; diff --git a/src/model/orca-factory.ts b/src/model/orca-factory.ts index f43054e..313a12f 100644 --- a/src/model/orca-factory.ts +++ b/src/model/orca-factory.ts @@ -1,10 +1,15 @@ import { Connection } from "@solana/web3.js"; -import { OrcaPoolConfig, OrcaPool } from ".."; -import { orcaPoolConfigs } from "../constants/pools"; +import { OrcaPoolConfig, OrcaPool, OrcaFarmConfig, OrcaFarm } from ".."; +import { orcaPoolConfigs, orcaFarmConfigs } from "../constants"; +import { OrcaFarmImpl } from "./orca/farm/orca-farm"; import { OrcaPoolImpl } from "./orca/pool/orca-pool"; export class OrcaFactory { getPool(connection: Connection, config: OrcaPoolConfig): OrcaPool { return new OrcaPoolImpl(connection, orcaPoolConfigs[config]); } + + getFarm(connection: Connection, config: OrcaFarmConfig): OrcaFarm { + return new OrcaFarmImpl(connection, orcaFarmConfigs[config]); + } } diff --git a/src/model/orca/farm/farm-types.ts b/src/model/orca/farm/farm-types.ts new file mode 100644 index 0000000..eecf976 --- /dev/null +++ b/src/model/orca/farm/farm-types.ts @@ -0,0 +1,17 @@ +import { PublicKey } from "@solana/web3.js"; + +/** + * An Orca aquafarm token + * @param address The farm account address + * @param farmTokenMint Mint address for the farm token + * @param rewardTokenMint Mint address for the farm reward token + * @param baseTokenMint Mint address for the base token + * @param baseTokenDecimals Number of decimal places for the base token + */ +export type OrcaFarmParams = { + address: PublicKey; + farmTokenMint: PublicKey; + rewardTokenMint: PublicKey; + baseTokenMint: PublicKey; + baseTokenDecimals: number; +}; diff --git a/src/model/orca/farm/orca-farm.ts b/src/model/orca/farm/orca-farm.ts new file mode 100644 index 0000000..2fa803c --- /dev/null +++ b/src/model/orca/farm/orca-farm.ts @@ -0,0 +1,227 @@ +import { Aquafarm, fetchGlobalFarms, fetchUserFarms, getUserFarmAddress } from "@orca-so/aquafarm"; +import { TOKEN_PROGRAM_ID, u64 } from "@solana/spl-token"; +import { Connection, Keypair, PublicKey } from "@solana/web3.js"; +import Decimal from "decimal.js"; +import { + deriveAssociatedTokenAddress, + deserializeAccount, + OrcaU64, + ORCA_FARM_ID, + resolveOrCreateAssociatedTokenAddress, + TransactionBuilder, + TransactionPayload, + U64Utils, +} from "../../.."; +import { OrcaFarm } from "../../../public/"; +import { + createFarmConvertTokensInstruction, + createFarmRevertTokensInstruction, + createInitUserFarmInstruction, +} from "../../../public/utils/web3/instructions/farm-instructions"; +import { createApprovalInstruction } from "../../../public/utils/web3/instructions/pool-instructions"; +import { Owner } from "../../../public/utils/web3/key-utils"; +import { OrcaFarmParams } from "./farm-types"; + +export class OrcaFarmImpl implements OrcaFarm { + private connection: Connection; + private farmParams: OrcaFarmParams; + + constructor(connection: Connection, config: OrcaFarmParams) { + this.connection = connection; + this.farmParams = config; + } + + public async getFarmBalance(owner: PublicKey): Promise { + const address = await deriveAssociatedTokenAddress(owner, this.farmParams.farmTokenMint); + + const accountInfo = await this.connection.getAccountInfo(address); + + // User does not have a balance for this account + if (accountInfo == undefined) { + return OrcaU64.fromNumber(0, this.farmParams.baseTokenDecimals); + } + const result = deserializeAccount(accountInfo?.data); + if (result == undefined) { + throw new Error("Failed to parse user account for LP token."); + } + + return OrcaU64.fromU64(result.amount, this.farmParams.baseTokenDecimals); + } + + public async getFarmSupply(): Promise { + const context = await this.connection.getTokenSupply(this.farmParams.farmTokenMint); + + const amt = new u64(context.value.amount); + + return OrcaU64.fromU64(amt, this.farmParams.baseTokenDecimals); + } + + public async deposit( + owner: Keypair | PublicKey, + baseTokenAmount: Decimal | OrcaU64 + ): Promise { + const _owner = new Owner(owner); + const ownerAddress = _owner.publicKey; + + const baseTokenAmount_U64 = U64Utils.toFarmU64( + baseTokenAmount, + this.farmParams, + "baseTokenAmount" + ); + + const { address: farmAddress, rewardTokenMint } = this.farmParams; + const userFarmPublicKey = ( + await getUserFarmAddress(farmAddress, ownerAddress, TOKEN_PROGRAM_ID, ORCA_FARM_ID) + )[0]; + + const globalFarms = await fetchGlobalFarms(this.connection, [farmAddress], ORCA_FARM_ID); + const userFarms = await fetchUserFarms( + this.connection, + ownerAddress, + [farmAddress], + ORCA_FARM_ID + ); + + if (!globalFarms) { + throw new Error("Failed to get globalFarms information"); + } + const farm = new Aquafarm(globalFarms[0], ORCA_FARM_ID, userFarms && userFarms[0]); + + // If the user lacks the user farm, create it + const initUserFarmInstruction = await createInitUserFarmInstruction( + farm, + userFarmPublicKey, + _owner + ); + + // If the user lacks the farm token account, create it + const { address: userFarmTokenPublicKey, ...resolveFarmTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress( + this.connection, + _owner, + farm.globalFarm.farmTokenMint + ); + + // If the user lacks the reward token account, create it + const { address: userRewardTokenPublicKey, ...resolveRewardTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress(this.connection, _owner, rewardTokenMint); + + // If the user lacks the base token account, create it + const { address: userBaseTokenPublicKey, ...resolveBaseTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress( + this.connection, + _owner, + this.farmParams.baseTokenMint + ); + + // Approve transfer of base token to be converted to farm tokens + const { userTransferAuthority, ...transferBaseTokenInstruction } = createApprovalInstruction( + ownerAddress, + baseTokenAmount_U64, + userBaseTokenPublicKey + ); + + // Convert base tokens to farm tokens + const convertToFarmTokens = await createFarmConvertTokensInstruction( + farm, + userTransferAuthority.publicKey, + userBaseTokenPublicKey, + userFarmTokenPublicKey, + userRewardTokenPublicKey, + baseTokenAmount_U64, + userFarmPublicKey, + _owner + ); + + return await new TransactionBuilder(this.connection, ownerAddress, _owner) + .addInstruction(initUserFarmInstruction) + .addInstruction(resolveFarmTokenInstructions) + .addInstruction(resolveBaseTokenInstructions) + .addInstruction(resolveRewardTokenInstructions) + .addInstruction(transferBaseTokenInstruction) + .addInstruction(convertToFarmTokens) + .build(); + } + + public async withdraw( + owner: Keypair | PublicKey, + baseTokenAmount: Decimal | OrcaU64 + ): Promise { + const _owner = new Owner(owner); + const ownerAddress = _owner.publicKey; + + const baseTokenAmount_U64 = U64Utils.toFarmU64( + baseTokenAmount, + this.farmParams, + "baseTokenAmount" + ); + + const { address: farmAddress, rewardTokenMint } = this.farmParams; + const userFarmPublicKey = ( + await getUserFarmAddress(farmAddress, ownerAddress, TOKEN_PROGRAM_ID, ORCA_FARM_ID) + )[0]; + + const globalFarms = await fetchGlobalFarms(this.connection, [farmAddress], ORCA_FARM_ID); + const userFarms = await fetchUserFarms( + this.connection, + ownerAddress, + [farmAddress], + ORCA_FARM_ID + ); + + if (!globalFarms) { + throw new Error("Failed to get globalFarms information"); + } + const farm = new Aquafarm(globalFarms[0], ORCA_FARM_ID, userFarms && userFarms[0]); + + if (!farm.isUserFarmInitialized()) { + throw new Error("Failed to get userFarm information. Warning: withdraw from deposit address"); + } + + // If the user lacks the farm token account, create it + const { address: userFarmTokenPublicKey, ...resolveFarmTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress( + this.connection, + _owner, + farm.globalFarm.farmTokenMint + ); + + // If the user lacks the reward token account, create it + const { address: userRewardTokenPublicKey, ...resolveRewardTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress(this.connection, _owner, rewardTokenMint); + + // Get user's baseToken token account + const { address: userBaseTokenPublicKey, ...resolveBaseTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress( + this.connection, + _owner, + this.farmParams.baseTokenMint + ); + + // Approve transfer of farm tokens to be reverted to base tokens + const { userTransferAuthority, ...transferFarmTokenInstruction } = createApprovalInstruction( + ownerAddress, + baseTokenAmount_U64, + userFarmTokenPublicKey + ); + + // Revert farm tokens to base tokens + const revertFromFarmTokens = await createFarmRevertTokensInstruction( + farm, + userTransferAuthority.publicKey, + userBaseTokenPublicKey, + userFarmTokenPublicKey, + userRewardTokenPublicKey, + baseTokenAmount_U64, + _owner + ); + + return await new TransactionBuilder(this.connection, ownerAddress, _owner) + .addInstruction(resolveFarmTokenInstructions) + .addInstruction(resolveRewardTokenInstructions) + .addInstruction(resolveBaseTokenInstructions) + .addInstruction(transferFarmTokenInstruction) + .addInstruction(revertFromFarmTokens) + .build(); + } +} diff --git a/src/model/orca/orca-impl.ts b/src/model/orca/orca-impl.ts index b7eccd5..a4d3c22 100644 --- a/src/model/orca/orca-impl.ts +++ b/src/model/orca/orca-impl.ts @@ -1,5 +1,5 @@ import { Connection } from "@solana/web3.js"; -import { Orca, OrcaPool, OrcaPoolConfig } from "../../public"; +import { Orca, OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig } from "../../public"; import { OrcaFactory } from "../orca-factory"; export class OrcaImpl implements Orca { @@ -14,4 +14,8 @@ export class OrcaImpl implements Orca { getPool(pool: OrcaPoolConfig): OrcaPool { return this.factory.getPool(this.connection, pool); } + + getFarm(farm: OrcaFarmConfig): OrcaFarm { + return this.factory.getFarm(this.connection, farm); + } } diff --git a/src/model/orca/pool/orca-pool.ts b/src/model/orca/pool/orca-pool.ts index d413d03..22f942b 100644 --- a/src/model/orca/pool/orca-pool.ts +++ b/src/model/orca/pool/orca-pool.ts @@ -287,7 +287,7 @@ export class OrcaPoolImpl implements OrcaPool { const poolTokenAmountIn_U64 = U64Utils.toPoolU64( poolTokenAmountIn, this.poolParams, - "poolTokenAmount" + "poolTokenAmountIn" ); // Create a token account for tokenA, if necessary diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts new file mode 100644 index 0000000..27e2dbe --- /dev/null +++ b/src/public/farms/config.ts @@ -0,0 +1,51 @@ +/** + * The following content is auto-generated. + */ + +/** + * A list of supported Orca farms in this SDK. + */ +export enum OrcaFarmConfig { + SOL_USDC_AQ = "APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9", + SOL_USDT_AQ = "FZthQCuYHhcfiDma7QrX7buDHwrZEd7vL8SjS6LQa3Tx", + ETH_SOL_AQ = "71FymgN2ZUf7VvVTLE8jYEnjP3jSK1Frp2XT1nHs8Hob", + ETH_USDC_AQ = "3e1W6Aqcbuk2DfHUwRiRcyzpyYRRjg6yhZZcyEARydUX", + RAY_SOL_AQ = "5kimD5W6yJpHRHCyPtnEyDsQRdiiJKivu5AqN3si82Jc", + ROPE_SOL_AQ = "ADrvfPBsRcJfGsN6Bs385zYddH52nuM5FA8UaAkX9o2V", + STEP_SOL_AQ = "8nTzqDXHriG2CXKbybeuEh1EqDQMtrbYMFWcP7AkiDaP", + SRM_SOL_AQ = "9tf8rBSEQYG7AqL896fN2nZi1iYPqpWaLEdpbeQaC1Vy", + FTT_SOL_AQ = "EsYaDKJCmcJtJHFuJYwQZwqohvVMCrFzcg8yo3i328No", + COPE_SOL_AQ = "CzieDbGRdN1QGaGDNpSqzEA18bi881ccvkkGZi51pe1k", + OXY_SOL_AQ = "7tYCdLN84EnTMkxM7HNamWJx7F4xgKe9KiiWvLyWjbgT", + BTC_SOL_AQ = "Acxs19v6eUMTEfdvkvWkRB4bwFCHm3XV9jABCy7c1mXe", + MER_SOL_AQ = "HiwRobjfHZ4zsPtqCC4oBS24pSmy4t8GGkXRbQj4yU6L", + FIDA_SOL_AQ = "EYsNdtyu4gGTaGz8N5m5iQ3G1N6rDyMbR72B3CqbWW4W", + MAPS_SOL_AQ = "99pfC8fWymXgbq3CvrExhx3UxQDC1fMWEWLbNT83F45e", + USDC_USDT_AQ = "H2uzgruPvonVpCRhwwdukcpXK8TG17swFNzYFr2rtPxy", + ORCA_SOL_AQ = "2uVjAuRXavpM6h1scGQaxqb6HVaNRn6T2X7HHXTabz25", + ORCA_USDC_AQ = "n8Mpu28RjeYD7oUX3LG1tPxzhRZh3YYLRSHcHRdS3Zx", + KIN_SOL_AQ = "HEvnD66WcBfTajS9adUYnGRBMDehFtLySiFHSD6kEBWs", + SAMO_SOL_AQ = "D6N9j8F2DhtzDtrdpT74y3u2YmYAzcggiLc3nTjqux9M", + LIQ_USDC_AQ = "3PD9SZFwXKkXr4akLf4ofo37ZUMycwML89R2P3qxcbZG", + SNY_USDC_AQ = "AZpo4BJHHRetF96v6SGinFZBMXM4yWMo4RA8C4PriDLk", + mSOL_USDC_AQ = "8PSfyiTVwPb6Rr2iZ8F3kNpbg65BCfJM9v8LfB916r44", + SLRS_USDC_AQ = "AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w", + PORT_USDC_AQ = "F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w", + SBR_USDC_AQ = "CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo", + SOCN_USDC_AQ = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", + pSOL_USDC_AQ = "C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1", + mSOL_SOL_AQ = "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R", + ORCA_PAI_AQ = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", + ORCA_mSOL_AQ = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", + SOCN_SOL_AQ = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", + ATLAS_USDC_AQ = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", + POLIS_USDC_AQ = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", + BOP_USDC_AQ = "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu", + SAMO_USDC_AQ = "6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc", + NINJA_SOL_AQ = "4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML", + SLIM_USDC_AQ = "BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo", + wHAPI_USDC_AQ = "ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW", + COPE_USDC_AQ = "HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK", + SUNNY_USDC_AQ = "GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n", + GRAPE_USDC_AQ = "EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd", +} diff --git a/src/public/farms/index.ts b/src/public/farms/index.ts new file mode 100644 index 0000000..b4fb84a --- /dev/null +++ b/src/public/farms/index.ts @@ -0,0 +1,2 @@ +export * from "./config"; +export * from "./types"; diff --git a/src/public/farms/types.ts b/src/public/farms/types.ts new file mode 100644 index 0000000..ae8c5a6 --- /dev/null +++ b/src/public/farms/types.ts @@ -0,0 +1,55 @@ +import { Keypair, PublicKey } from "@solana/web3.js"; +import Decimal from "decimal.js"; +import { OrcaU64, TransactionPayload } from ".."; + +export type OrcaFarm = { + /** + * Query the balance for an user address + * @param wallet The public key for the user. + * @return Returns the amount of farm token the user owns for this pool. + */ + getFarmBalance: (owner: PublicKey) => Promise; + + /** + * Query the supply of farm tokens for this pool. + * @return Returns the supply of farm tokens for this pool. + */ + getFarmSupply: () => Promise; + + /** + * Perfrom a deposit: send baseToken, and receive farmToken in return. + * Fee for the transaction will be paid by the owner's wallet. + * + * NOTE: + * 1. Associated Token Address initialization instructions will be appended if the ATA of the specified token does not exist in the user's wallet + * 2. OrcaU64 must have the same scale as the corresponding token scale value + * + * @param owner The keypair for the user's wallet or just the user's public key + * @param baseTokenAmount The amount of baseToken to deposit + * @return The transaction signature of the deposit instruction + */ + deposit: ( + owner: Keypair | PublicKey, + baseTokenAmount: Decimal | OrcaU64 + ) => Promise; + + /** + * Perfrom a withdraw: send farmToken, and receive baseToken in return. + * Fee for the transaction will be paid by the owner's wallet. + * + * WARNING: + * 1. Withdraw is only supported from the public key that initiated the deposit. + * + * NOTE: + * 1. Associated Token Address initialization instructions will be appended if the ATA of the specified token does not exist in the user's wallet + * 2. OrcaU64 must have the same scale as the corresponding token scale value + * + * @param owner The keypair for the user's wallet or just the user's public key + * @param baseTokenAmount The amount of baseToken to receive + * @return The transaction signature of the deposit instruction + */ + withdraw: ( + owner: Keypair | PublicKey, + baseTokenAmount: Decimal | OrcaU64 + ) => Promise; +}; diff --git a/src/public/index.ts b/src/public/index.ts index 6217bee..eb82dce 100644 --- a/src/public/index.ts +++ b/src/public/index.ts @@ -1,3 +1,4 @@ export * from "./utils"; export * from "./pools"; export * from "./main"; +export * from "./farms"; diff --git a/src/public/main/types.ts b/src/public/main/types.ts index 66f37fd..4581eca 100644 --- a/src/public/main/types.ts +++ b/src/public/main/types.ts @@ -1,4 +1,4 @@ -import { OrcaPool, OrcaPoolConfig } from ".."; +import { OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig } from ".."; export type Orca = { /** @@ -6,4 +6,10 @@ export type Orca = { * @param pool a pool config targeting an Orca pool */ getPool: (pool: OrcaPoolConfig) => OrcaPool; + + /** + * Get an instance of an Orca farm. + * @param farm a farm config targeting an Orca farm + */ + getFarm: (farm: OrcaFarmConfig) => OrcaFarm; }; diff --git a/src/public/utils/constants.ts b/src/public/utils/constants.ts index ec55b75..516bee2 100644 --- a/src/public/utils/constants.ts +++ b/src/public/utils/constants.ts @@ -7,3 +7,7 @@ export const ORCA_TOKEN_SWAP_ID: PublicKey = new PublicKey( export const SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID: PublicKey = new PublicKey( "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" ); + +export const ORCA_FARM_ID: PublicKey = new PublicKey( + "82yxjeMsvaURa4MbZZ7WZZHfobirZYkH1zF8fmeGtyaQ" +); diff --git a/src/public/utils/numbers/u64-utils.ts b/src/public/utils/numbers/u64-utils.ts index 4225c3f..e9db206 100644 --- a/src/public/utils/numbers/u64-utils.ts +++ b/src/public/utils/numbers/u64-utils.ts @@ -1,6 +1,7 @@ import { u64 } from "@solana/spl-token"; import Decimal from "decimal.js"; import { OrcaToken, OrcaU64 } from "../.."; +import { OrcaFarmParams } from "../../../model/orca/farm/farm-types"; import { OrcaPoolParams } from "../../../model/orca/pool/pool-types"; import { DecimalUtil } from "./decimal-utils"; @@ -34,6 +35,19 @@ export class U64Utils { return DecimalUtil.toU64(input, pool.poolTokenDecimals); } + public static toFarmU64(input: Decimal | OrcaU64, farm: OrcaFarmParams, varName: string) { + if (input instanceof OrcaU64) { + if (input.scale !== farm.baseTokenDecimals) { + throw new Error( + `${varName}'s scale of ${input.scale} does not match baseToken's decimal of ${farm.baseTokenDecimals}` + ); + } + return input.toU64(); + } + + return DecimalUtil.toU64(input, farm.baseTokenDecimals); + } + // Note: divisor input variable modified in place // https://github.com/solana-labs/solana-program-library/blob/master/libraries/math/src/checked_ceil_div.rs#L5-L22 public static ceilingDivision(dividend: u64, divisor: u64): [u64, u64] { diff --git a/src/public/utils/web3/instructions/farm-instructions.ts b/src/public/utils/web3/instructions/farm-instructions.ts new file mode 100644 index 0000000..16d134c --- /dev/null +++ b/src/public/utils/web3/instructions/farm-instructions.ts @@ -0,0 +1,93 @@ +import { Aquafarm } from "@orca-so/aquafarm"; +import { u64 } from "@solana/spl-token"; +import { PublicKey } from "@solana/web3.js"; +import { Instruction, emptyInstruction } from "../.."; +import { Owner } from "../key-utils"; + +export const createInitUserFarmInstruction = async ( + farm: Aquafarm, + userFarmPublicKey: PublicKey, + owner: Owner +): Promise => { + if (farm.isUserFarmInitialized()) { + return emptyInstruction; + } + + const initUserFarmIx = farm.constructInitUserFarmIx(owner.publicKey, userFarmPublicKey); + + return { + instructions: [initUserFarmIx], + cleanupInstructions: [], + signers: owner.signer ? [owner.signer] : [], + }; +}; + +export const createFarmConvertTokensInstruction = async ( + farm: Aquafarm, + userTransferAuthorityPublicKey: PublicKey, + userBaseTokenPublicKey: PublicKey, + userFarmTokenPublicKey: PublicKey, + userRewardTokenPublicKey: PublicKey, + baseTokenAmount: u64, + userFarmPublicKey: PublicKey, + owner: Owner +): Promise => { + let convertIx; + if (!farm.userFarm) { + convertIx = farm.constructConvertTokensIx( + userTransferAuthorityPublicKey, + userBaseTokenPublicKey, + userFarmTokenPublicKey, + userRewardTokenPublicKey, + baseTokenAmount, + userFarmPublicKey, + owner.publicKey + ); + } else { + convertIx = farm.constructConvertTokensIx( + userTransferAuthorityPublicKey, + userBaseTokenPublicKey, + userFarmTokenPublicKey, + userRewardTokenPublicKey, + baseTokenAmount + ); + } + + if (!convertIx) { + throw new Error("constructConvertTokensIx returned null"); + } + + return { + instructions: [convertIx], + cleanupInstructions: [], + signers: owner.signer ? [owner.signer] : [], + }; +}; + +export const createFarmRevertTokensInstruction = async ( + farm: Aquafarm, + userBurnAuthorityPublicKey: PublicKey, + userBaseTokenPublicKey: PublicKey, + userFarmTokenPublicKey: PublicKey, + userRewardTokenPublicKey: PublicKey, + baseTokenAmount: u64, + owner: Owner +): Promise => { + const revertIx = farm.constructRevertTokensIx( + userBurnAuthorityPublicKey, + userBaseTokenPublicKey, + userFarmTokenPublicKey, + userRewardTokenPublicKey, + baseTokenAmount + ); + + if (!revertIx) { + throw new Error("constructRevertTokensIx returned null"); + } + + return { + instructions: [revertIx], + cleanupInstructions: [], + signers: owner.signer ? [owner.signer] : [], + }; +}; diff --git a/yarn.lock b/yarn.lock index f75393c..03a5122 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -160,7 +167,7 @@ "@babel/traverse" "^7.15.0" "@babel/types" "^7.15.0" -"@babel/highlight@^7.14.5": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -309,6 +316,35 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -526,6 +562,24 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@orca-so/aquafarm@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@orca-so/aquafarm/-/aquafarm-0.0.12.tgz#255df50e9d8a408cebf600ee3507ff650484e94c" + integrity sha512-4vEkxeI5A5NHR9wre7Dtp9MYPCnke4v2PkaIv7933S490PErCYeqrlDPIEBTAKYWJpHFz5jR+h0bPFbmdMs3kw== + dependencies: + "@solana/spl-token" "^0.1.6" + "@solana/web3.js" "^1.20.0" + "@types/bn.js" "^5.1.0" + bn.js "^5.2.0" + buffer-layout "^1.2.1" + decimal.js "^10.3.0" + dotenv "^10.0.0" + eslint "^7.28.0" + mz "^2.7.0" + prompts "^2.4.1" + typescript "^4.3.2" + yargs "^17.0.1" + "@orca-so/stablecurve@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@orca-so/stablecurve/-/stablecurve-1.0.5.tgz#a32b538d5298aa56f3fbb3d5123290915cc903b2" @@ -580,7 +634,7 @@ dotenv "8.2.0" mkdirp "1.0.4" -"@solana/spl-token@^0.1.5": +"@solana/spl-token@^0.1.5", "@solana/spl-token@^0.1.6": version "0.1.8" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.1.8.tgz#f06e746341ef8d04165e21fc7f555492a2a0faa6" integrity sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ== @@ -635,6 +689,26 @@ superstruct "^0.14.2" tweetnacl "^1.0.0" +"@solana/web3.js@^1.20.0": + version "1.27.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.27.0.tgz#e8db617455a03e6cfc087fa692cdb03e722b71aa" + integrity sha512-1vz503S39CgVwT3b8Y8HhDl4u7NpyoG/UtJKwlPZCYx+11q/qqcfpdbHXNSq2cu7FQma3MHa5wHILd8k1Vz2wQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@solana/buffer-layout" "^3.0.0" + bn.js "^5.0.0" + borsh "^0.4.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + crypto-hash "^1.2.2" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -680,6 +754,13 @@ dependencies: "@types/node" "*" +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + "@types/connect@^3.4.33": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -898,12 +979,17 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.1.1: +acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -928,6 +1014,26 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -1082,7 +1188,7 @@ bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.0, bn.js@^5.1.3: +bn.js@^5.0.0, bn.js@^5.1.0, bn.js@^5.1.3, bn.js@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== @@ -1164,7 +1270,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-layout@^1.2.0: +buffer-layout@^1.2.0, buffer-layout@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== @@ -1405,6 +1511,13 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cross-fetch@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== + dependencies: + node-fetch "2.6.1" + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1416,7 +1529,7 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1471,14 +1584,14 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -decimal.js@*, decimal.js@^10.2.1, decimal.js@^10.3.1: +decimal.js@*, decimal.js@^10.2.1, decimal.js@^10.3.0, decimal.js@^10.3.1: version "10.3.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== @@ -1488,6 +1601,11 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -1537,6 +1655,13 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -1593,7 +1718,7 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" -dotenv@10.0.0: +dotenv@10.0.0, dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== @@ -1631,7 +1756,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enquirer@^2.3.6: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -1714,6 +1839,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -1754,6 +1884,13 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-utils@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" @@ -1761,16 +1898,83 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + eslint-visitor-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint@^7.28.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -1783,7 +1987,7 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== @@ -1835,6 +2039,11 @@ eyes@^0.1.8: resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -1851,7 +2060,7 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -1870,6 +2079,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1885,6 +2101,19 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -1981,6 +2210,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + dependencies: + type-fest "^0.20.2" + globby@^11.0.3: version "11.0.4" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" @@ -2117,12 +2353,17 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2231,7 +2472,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -2871,6 +3112,21 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2934,6 +3190,14 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -3007,6 +3271,11 @@ lodash.bind@^4.1.4: resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -3032,7 +3301,7 @@ lodash.map@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= -lodash.merge@^4.4.0: +lodash.merge@^4.4.0, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -3057,6 +3326,11 @@ lodash.some@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + lodash@4.x, lodash@^4.17.20, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -3202,7 +3476,7 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@^2.2.0, node-fetch@^2.6.1: +node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== @@ -3327,6 +3601,18 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -3461,6 +3747,11 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -3491,7 +3782,12 @@ pretty-format@^27.1.0: ansi-styles "^5.0.0" react-is "^17.0.1" -prompts@^2.0.1: +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1, prompts@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== @@ -3504,7 +3800,7 @@ psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -punycode@^2.1.1: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -3562,6 +3858,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -3600,7 +3901,7 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3676,7 +3977,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.x, semver@^7.3.2, semver@^7.3.5: +semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -3905,6 +4206,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + superstruct@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" @@ -3952,6 +4258,18 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -3974,6 +4292,11 @@ text-encoding-utf-8@^1.0.2: resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -4067,6 +4390,13 @@ tweetnacl@^1.0.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -4079,6 +4409,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -4111,6 +4446,13 @@ universalify@^0.1.2: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + utf-8-validate@^5.0.2: version "5.0.5" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" @@ -4133,6 +4475,11 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + v8-to-istanbul@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" @@ -4227,7 +4574,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -4312,3 +4659,16 @@ yargs@^16.0.3: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +yargs@^17.0.1: + version "17.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" From 4ab426f077cd7fe7cb762fc019f8d451adbd573d Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 27 Sep 2021 11:37:10 -0700 Subject: [PATCH 03/81] Bump 1.1.5, update README with aquafarm (#45) * update README with farm info * Bump to 1.1.5 --- README.md | 19 ++++++++++++++++--- package.json | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index beec5b1..3812739 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,23 @@ Learn more Orca [here](https://docs.orca.so). - The SDK supports all pools currently listed on [Orca](https://www.orca.so/pools) +### Provide Liquidity to Orca Pools + +- Deposit liquidity to supported Orca Pools + - Deposit a trading pair, and receive LP token +- Withdraw liquidity from supported Orca Pools + - Withdraw a trading pair in exchange for LP token + +**Aquafarm Support** + +- After depositing liquidtiy to a pool, the LP token can be deposited into + the corresponding farm to receive an equivalent amount of farm token +- Remember to withdraw the LP token in exchange for farm token before + withdrawing liquidity from Orca Pool + **Features Coming Soon** -- More trader information (APY, Volume) -- Deposit/Withdraw from OrcaPools +- More trader information (APY, Volume) # Installation @@ -57,7 +70,7 @@ try { let quote = await pool.getQuote(ethToken, tradeValue, new Decimal(0.1)); // Perform a swap for 1USDC to the quoted minimum amount of ETH - // If the user does not have the Associated Token Address(ATA) to receive the output token, the ATA + // If the user does not have the Associated Token Address(ATA) to receive the output token, the ATA // instructions will be appended in the transaction. const txId = await pool.swap(owner, usdcToken, tradeValue, quote.getMinOutputAmount()).execute(); } catch (err) { diff --git a/package.json b/package.json index bf4fca2..dfd75c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.4", + "version": "1.1.5", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 7e8895b180c391199f3ba4265510a3b5264784e5 Mon Sep 17 00:00:00 2001 From: 0xalexbai <84605710+0xalexbai@users.noreply.github.com> Date: Wed, 29 Sep 2021 09:06:34 +0800 Subject: [PATCH 04/81] Enhance readability. (#44) Co-authored-by: meep <33380758+odcheung@users.noreply.github.com> --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3812739..741322e 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,8 @@ try { // Perform a swap for 1USDC to the quoted minimum amount of ETH // If the user does not have the Associated Token Address(ATA) to receive the output token, the ATA // instructions will be appended in the transaction. - const txId = await pool.swap(owner, usdcToken, tradeValue, quote.getMinOutputAmount()).execute(); + const txPayload = await pool.swap(owner, usdcToken, tradeValue, quote.getMinOutputAmount()); + const txId = await txPayload.execute(); } catch (err) { // Handle errors } From 4ed2f68454e135df1b8f0d5c2620a17df01368b4 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 1 Oct 2021 08:11:16 -0700 Subject: [PATCH 05/81] Add DoubleDip farms; Update pools, tokens (#46) * Add DoubleDip, SingleStake farms; Update pools, tokens * double-dips-only --- src/constants/farms.ts | 108 +++++++++++++++ src/constants/pools.ts | 260 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 56 ++++++++ src/public/farms/config.ts | 12 ++ src/public/pools/config.ts | 10 ++ 5 files changed, 446 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 28e118d..dcada18 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -341,6 +341,102 @@ export const grapeUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), + farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), + rewardTokenMint: new PublicKey("4wjPQJ6PrkC4dHhYghwJzGBVP78DkBzA2U3kHoFNBuhj"), + baseTokenMint: new PublicKey("57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT"), + baseTokenDecimals: 6, +}); + +export const stepSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FmHGpt2scyJ8NuDuknnzQ7jectLyRRQmTyXxu5tRoD2j"), + farmTokenMint: new PublicKey("Gs1fM7EFS1rXkxhqs4mwu9uvSkupNzZgRbHGxG2NGRh7"), + rewardTokenMint: new PublicKey("StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT"), + baseTokenMint: new PublicKey("GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL"), + baseTokenDecimals: 6, +}); + +export const slrsUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8JkTAVHXChDPzsNkcJYRJ69mXN5nCcyb1qVBmbVhCH1n"), + farmTokenMint: new PublicKey("F3rWkGAtdjWcU1rr16Wq4YPTgFdsyb1oS1xdy5tr9K1r"), + rewardTokenMint: new PublicKey("SLRSSpSLUTP7okbCUBYStWCo1vUgyt775faPqz8HUMr"), + baseTokenMint: new PublicKey("66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7"), + baseTokenDecimals: 6, +}); + +export const portUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("C8k63XU8xzzvBpSraYWjHCNzvprjYKDadAML3MWSFbxW"), + farmTokenMint: new PublicKey("Zm2dmUuuBicmvHxGAnAzaohZR2Y86gXEV2WMfo8AoCa"), + rewardTokenMint: new PublicKey("PoRTjZMPXb9T7dyU7tpLEZRQj7e6ssfAE62j2oQuc6y"), + baseTokenMint: new PublicKey("4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE"), + baseTokenDecimals: 6, +}); + +export const copeUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HW21NT7v6ViM2Cs3S2tVgUnawACF8JRRwd2AA41a8HUh"), + farmTokenMint: new PublicKey("AtcMEt9caZxpunQV99pxED2rhpQmaDykBreEqBsYU11v"), + rewardTokenMint: new PublicKey("8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh"), + baseTokenMint: new PublicKey("9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s"), + baseTokenDecimals: 6, +}); + +export const bopUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GYipJSPD7zcDoEABRCZfDSqh7zqYMmjyP8dNKEUnW1iC"), + farmTokenMint: new PublicKey("CjGUbKiH1QmFFjMqhAbJn4DrbjgBWUhQHV4LuzrgpFqi"), + rewardTokenMint: new PublicKey("BLwTnYKqf7u4qjgZrrsKeNs2EzWkMLqVCu6j8iHyrNA3"), + baseTokenMint: new PublicKey("A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa"), + baseTokenDecimals: 6, +}); + +export const samoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8VJT2SYGXgvQ8jYvh1Cq6mg83gkAVuTY3cHiULUy6Cit"), + farmTokenMint: new PublicKey("EdfAy8jwnvU1z61UaFUjwoRPFgD3UkkPvnhEBZjzwhv8"), + rewardTokenMint: new PublicKey("7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU"), + baseTokenMint: new PublicKey("9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud"), + baseTokenDecimals: 6, +}); + +export const whapiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GFFQdLWvbWzrZBQrPQVyzGQfd6SWuZaiRwmkKA2bJPeY"), + farmTokenMint: new PublicKey("41VBoy8SGJzQnWGcxiBL4yM6H68FiPp74aMvsZGNGCbt"), + rewardTokenMint: new PublicKey("6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm"), + baseTokenMint: new PublicKey("Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE"), + baseTokenDecimals: 6, +}); + +export const slimUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3RsBqqz9MiXa1uhFFd6tpGVQ66ptkFPCBAUyqLAXeCTE"), + farmTokenMint: new PublicKey("HhDk3ySWkVbMZjgBsFSnLtAeudDCrfZ6DNSRgxh2oRUp"), + rewardTokenMint: new PublicKey("xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW"), + baseTokenMint: new PublicKey("3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC"), + baseTokenDecimals: 6, +}); + +export const ninjaSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HPeAGzDEhYUNm4z4aV2PTjVjbESnNg6jBy6LtFjFJzQj"), + farmTokenMint: new PublicKey("Db7mPGrZbswvFmJ7MgZsM6CFhnXHMnrUDqr2hrzmi7Re"), + rewardTokenMint: new PublicKey("FgX1WD9WzMU3yLwXaFSarPfkgzjLb2DZCqmkx9ExpuvJ"), + baseTokenMint: new PublicKey("7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd"), + baseTokenDecimals: 6, +}); + +export const atlasUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DTP1xr4EzFf1YDu4CeWTtWVsCBzFPk4HDEsL3AzoR3kB"), + farmTokenMint: new PublicKey("894ptAFT7d3inPsWTniCGL2NZpJDiXGvFZFfuHXA1w8F"), + rewardTokenMint: new PublicKey("ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx"), + baseTokenMint: new PublicKey("HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t"), + baseTokenDecimals: 6, +}); + +export const polisUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7h1zAHj2xzEw3eKfprYqG36aN5XwcZXBsYwM2haWQVzR"), + farmTokenMint: new PublicKey("FE1QJzi5RA5aKnTfSV3DAMN3z4uHUzSR5Z4drs9S5vB"), + rewardTokenMint: new PublicKey("poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk"), + baseTokenMint: new PublicKey("63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -388,4 +484,16 @@ export const orcaFarmConfigs: Record = { HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK: copeUsdcAqFarm, GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n: sunnyUsdcAqFarm, EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd: grapeUsdcAqFarm, + "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, + GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, + "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, + "4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE": portUsdcDoubleDip, + "9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s": copeUsdcDoubleDip, + A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa: bopUsdcDoubleDip, + "9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud": samoUsdcDoubleDip, + Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE: whapiUsdcDoubleDip, + "3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC": slimUsdcDoubleDip, + "7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd": ninjaSolDoubleDip, + HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t: atlasUsdcDoubleDip, + "63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU": polisUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index f44c371..ab16e5e 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -810,6 +810,256 @@ export const socnSolPool: OrcaPoolParams = Object.freeze({ }, }); +export const atlasUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3V5sjXj1mrWjjB1Xt6Xwp554QwHE5fppGSxbk4GzAtEW"), + nonce: 254, + authority: new PublicKey("8UYN675AJn5htWydDs724xqintBZ4XzsCWqMozUSDU8m"), + poolTokenMint: new PublicKey("FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("CFN4DQ2p3qroX92pPNy3mov3Dw1aCNGLrU5AXHpHxbko"), + tokenIds: [Tokens.atlasToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.atlasToken.mint.toString()]: { + ...Tokens.atlasToken, + addr: new PublicKey("xotXsNCx4tBhnwhrajGTaVgKq1sfuMkeYHc77ZegCqE"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("8YswVYsTi66umBF2Bnkh4LB2VWMKPssDpe54VAgiuJZQ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const polisUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CdKPtCb5fBRaGFS4bJgytfReeHuFyhpe9YUyWHPnEWZG"), + nonce: 251, + authority: new PublicKey("8XB9V3VuHtPBzHqvxzcmpkpaoXNXjZMD8VBHC79SxcEL"), + poolTokenMint: new PublicKey("GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3gZQ2YnrXbnRwJj5poffLirF7CwacatvtfGCNRFrbJdr"), + tokenIds: [Tokens.polisToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.polisToken.mint.toString()]: { + ...Tokens.polisToken, + addr: new PublicKey("EbXNEUiKxSU1vwwhrbVNVk3qX4o1yU3p75SQUUMfc1zH"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("CLCj9b1vdPutrkvZS8ACTM5q42SXB2Q7khnMLVxDMGEK"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const bopUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9pheQ8EX2wDKHZYm75G9haEbTyAcg8F2gFWybw2w6Vyc"), + nonce: 253, + authority: new PublicKey("3rxJPYuiRijipJbciewUDacab2Wo3yAe1yWBGzmqn5f1"), + poolTokenMint: new PublicKey("2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2bei4349W8FUcu5gvP5Zt8yhkpwqcCngZxUkb3xRMJZJ"), + tokenIds: [Tokens.bopToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.bopToken.mint.toString()]: { + ...Tokens.bopToken, + addr: new PublicKey("HkHjLSaP9yyWTzMGD1DKyoc1Dfvhvw4vakRhyjcVUCKs"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("CqRoKMF4kh2o568nFdDNHs7cszBjrkQME4RtCuTqcjCe"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const samoUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Epvp7qMYAF21VVjacdB3VfKn6nnXQSF4rGYu8sD6Bkow"), + nonce: 252, + authority: new PublicKey("AB4rTE2JiKFhnfynUQCovbW75CUxT9LxcJX2SDTbY9gy"), + poolTokenMint: new PublicKey("6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9U8UF7d8kBvsS25XoZnjmVQ9vGkP4BUnHJgfc615BvG1"), + tokenIds: [Tokens.samoToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.samoToken.mint.toString()]: { + ...Tokens.samoToken, + addr: new PublicKey("7jwHW4Lw3nVaSJXskN5pUoKU6YB9RBVfZtGBp3VbR43U"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("G7Gqjxk9EaJMeFfoFTSy9WfH8uurgQkbNQCREWAc56DZ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const ninjaSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3ECUtPokme1nimJfuAkMtcm7QYjDEfXRQzmGC16LuYnz"), + nonce: 255, + authority: new PublicKey("H8f9n2PfehUc73gRWSRTPXvqUhUHVywdAxcfEtYmmyAo"), + poolTokenMint: new PublicKey("4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("43ViAbUVujnYtJyzGP4AhabMYCbLsExenT3WKsZjqJ7N"), + tokenIds: [Tokens.ninjaToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.ninjaToken.mint.toString()]: { + ...Tokens.ninjaToken, + addr: new PublicKey("6Y9VyEYHgxVahiixzphNh4HAywpab9zVoD4S8q1sfuL8"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("9SxzphwrrDVDkwkyvmtag9NLgpjSkTw35cRwg9rLMYWk"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const slimUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8JPid6GtND2tU3A7x7GDfPPEWwS36rMtzF7YoHU44UoA"), + nonce: 255, + authority: new PublicKey("749y4fXb9SzqmrLEetQdui5iDucnNiMgCJ2uzc3y7cou"), + poolTokenMint: new PublicKey("BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("E6aTzkZKdCECgpDtBZtVpqiGjxRDSAFh1SC9CdSoVK7a"), + tokenIds: [Tokens.slimToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.slimToken.mint.toString()]: { + ...Tokens.slimToken, + addr: new PublicKey("ErcxwkPgLdyoVL6j2SsekZ5iysPZEDRGfAggh282kQb8"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("EFYW6YEiCGpavuMPS1zoXhgfNkPisWkQ3bQz1b4UfKek"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const whapiUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2Y1Jmpkf5wt1X5zcFHNBDoHxqjTXbMJfj1UFtrYQwUbG"), + nonce: 254, + authority: new PublicKey("8K4eRHeyPhBGB9zCjKtyBHoPPZ75zLN64oxBF6GyF4Qg"), + poolTokenMint: new PublicKey("ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("Bx3ZhEBFedDqCBzuzKVS4eMKTtW1MmHkcMGU45FcyxRT"), + tokenIds: [Tokens.whapiToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.whapiToken.mint.toString()]: { + ...Tokens.whapiToken, + addr: new PublicKey("DRYADMQevoJHDFCYbDQeS4p551MpsDN2d7CJU3LxfNHa"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HzsECCX6RZ2ccbR3FarRSEfc5rkuETfywXJnRZut5JzU"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const copeUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("DhGTKyT6RVkpvPxXAJodi4Z41RSvQZxV1f5eRvJ5bE4r"), + nonce: 254, + authority: new PublicKey("Hu8AWoRBa7ZaYQFdHQyRHeEZGB16Me86fA5vAZzjVUmv"), + poolTokenMint: new PublicKey("HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("JEGcxfGxWJpRkGtvA6J6kEgTBebDz6kxURoeB3SX8vaW"), + tokenIds: [Tokens.copeToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.copeToken.mint.toString()]: { + ...Tokens.copeToken, + addr: new PublicKey("6N3P3etaUYGeBs2C67ZQTDRqHsExNsfj85dDWPwHtQBS"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("36VVz3eY8YmWBGskQVjvGGBfyUKHHCEDBgkFtzMpFqeU"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const sunnyUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3Ukqqshh3kZ8UPbcYYFSRaeJcsgttcmShtNNn12F1rj2"), + nonce: 255, + authority: new PublicKey("7NP8DTzPdpbQofhNyhLW3j2khutmfy1kuFp2AjaD8rrp"), + poolTokenMint: new PublicKey("GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("CCuSVbnnq8SUj7cpPe7BbHLuKanyxfvfrwypzCBnaDdf"), + tokenIds: [Tokens.sunnyToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.sunnyToken.mint.toString()]: { + ...Tokens.sunnyToken, + addr: new PublicKey("F6nCAMYEFxsyRDVonQXLNufXgAHsgAa1Br8DhBoX3KAV"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HWCTHmQppFSsKQEk1bHUqPC2WLaidgnfTG9MQGD4XKEt"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const grapeUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("6MxUhBLXHCqpdYaFPTmw1D9fQ7zYnm9grZyJvpGiqr15"), + nonce: 255, + authority: new PublicKey("SvWmpVVUkv8cwoRnBQ5Gqt2FFYjdpWLS665gE2ZLNQp"), + poolTokenMint: new PublicKey("EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("6vWYnRDEHu7kRLbA2dnBgEfbdba72iDMDD9k3munyPaP"), + tokenIds: [Tokens.grapeToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.grapeToken.mint.toString()]: { + ...Tokens.grapeToken, + addr: new PublicKey("686KiYDMMkbredNoWx8yqvAdKSiHuWSG3dnbL6yWYmZp"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("9i14ZKzaDmzKCAQb8hCv4h5GCo2Xiq83JcL7bofk4Ddj"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -847,4 +1097,14 @@ export const orcaPoolConfigs: Record = { C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb: orcaPaiPool, CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA: orcaMsolPool, APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: socnSolPool, + FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ: atlasUsdcPool, + GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy: polisUsdcPool, + "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu": bopUsdcPool, + "6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc": samoUsdcPool, + "4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML": ninjaSolPool, + BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo: slimUsdcPool, + ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW: whapiUsdcPool, + HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK: copeUsdcPool, + GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n: sunnyUsdcPool, + EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd: grapeUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 4078311..e841ef9 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -5,6 +5,20 @@ import { OrcaToken } from ".."; * The following content is auto-generated. */ +export const atlasToken: OrcaToken = Object.freeze({ + tag: "ATLAS", + name: "Star Atlas", + mint: new PublicKey("ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx"), + scale: 8, +}); + +export const bopToken: OrcaToken = Object.freeze({ + tag: "BOP", + name: "Boring Protocol", + mint: new PublicKey("BLwTnYKqf7u4qjgZrrsKeNs2EzWkMLqVCu6j8iHyrNA3"), + scale: 8, +}); + export const btcToken: OrcaToken = Object.freeze({ tag: "BTC", name: "Bitcoin", @@ -40,6 +54,13 @@ export const fttToken: OrcaToken = Object.freeze({ scale: 6, }); +export const grapeToken: OrcaToken = Object.freeze({ + tag: "GRAPE", + name: "Grape", + mint: new PublicKey("8upjSpvjcdpuzhfR1zriwg5NXkwDruejqNE9WNbPRtyA"), + scale: 6, +}); + export const kinToken: OrcaToken = Object.freeze({ tag: "KIN", name: "Kin", @@ -68,6 +89,13 @@ export const merToken: OrcaToken = Object.freeze({ scale: 6, }); +export const ninjaToken: OrcaToken = Object.freeze({ + tag: "NINJA", + name: "NINJA", + mint: new PublicKey("FgX1WD9WzMU3yLwXaFSarPfkgzjLb2DZCqmkx9ExpuvJ"), + scale: 6, +}); + export const orcaToken: OrcaToken = Object.freeze({ tag: "ORCA", name: "Orca", @@ -89,6 +117,13 @@ export const paiToken: OrcaToken = Object.freeze({ scale: 6, }); +export const polisToken: OrcaToken = Object.freeze({ + tag: "POLIS", + name: "Star Atlas DAO", + mint: new PublicKey("poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk"), + scale: 8, +}); + export const portToken: OrcaToken = Object.freeze({ tag: "PORT", name: "Port Finance", @@ -124,6 +159,13 @@ export const sbrToken: OrcaToken = Object.freeze({ scale: 6, }); +export const slimToken: OrcaToken = Object.freeze({ + tag: "SLIM", + name: "Solanium", + mint: new PublicKey("xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW"), + scale: 6, +}); + export const slrsToken: OrcaToken = Object.freeze({ tag: "SLRS", name: "Solrise Finance", @@ -166,6 +208,13 @@ export const stepToken: OrcaToken = Object.freeze({ scale: 9, }); +export const sunnyToken: OrcaToken = Object.freeze({ + tag: "SUNNY", + name: "Sunny Aggregator", + mint: new PublicKey("SUNNYWgPQmFxe9wTZzNK7iPnJ3vYDrkgnxJRJm1s3ag"), + scale: 6, +}); + export const usdcToken: OrcaToken = Object.freeze({ tag: "USDC", name: "USD Coin", @@ -193,3 +242,10 @@ export const psolToken: OrcaToken = Object.freeze({ mint: new PublicKey("9EaLkQrbjmbbuZG9Wdpo8qfNUEjHATJFSycEmw6f1rGX"), scale: 9, }); + +export const whapiToken: OrcaToken = Object.freeze({ + tag: "wHAPI", + name: "HAPI", + mint: new PublicKey("6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm"), + scale: 9, +}); diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 27e2dbe..1ba503c 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -48,4 +48,16 @@ export enum OrcaFarmConfig { COPE_USDC_AQ = "HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK", SUNNY_USDC_AQ = "GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n", GRAPE_USDC_AQ = "EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd", + LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", + STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", + SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", + PORT_USDC_DD = "4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE", + COPE_USDC_DD = "9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s", + BOP_USDC_DD = "A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa", + SAMO_USDC_DD = "9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud", + wHAPI_USDC_DD = "Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE", + SLIM_USDC_DD = "3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC", + NINJA_SOL_DD = "7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd", + ATLAS_USDC_DD = "HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t", + POLIS_USDC_DD = "63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 87b83ba..bac7edc 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -38,4 +38,14 @@ export enum OrcaPoolConfig { ORCA_PAI = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", ORCA_mSOL = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", SOCN_SOL = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", + ATLAS_USDC = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", + POLIS_USDC = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", + BOP_USDC = "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu", + SAMO_USDC = "6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc", + NINJA_SOL = "4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML", + SLIM_USDC = "BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo", + wHAPI_USDC = "ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW", + COPE_USDC = "HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK", + SUNNY_USDC = "GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n", + GRAPE_USDC = "EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd", } From 8e4c38cbd2aeb002c06386e967ee0d58acec6eba Mon Sep 17 00:00:00 2001 From: 0xscuba Date: Fri, 1 Oct 2021 08:15:54 -0700 Subject: [PATCH 06/81] 1.1.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dfd75c1..1415fea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.5", + "version": "1.1.6", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 503c24434028d58a83e60cc1f35ed56e5cf4fc2b Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 7 Oct 2021 01:36:19 -0700 Subject: [PATCH 07/81] Farm harvest, getHarvestableAmount api (#49) * Farm getHarvestableAmount and harvest api's * Farm harvest, getHarvestableAmount api * add comments * use getCurrentHarvestableAmount --- src/model/orca/farm/orca-farm.ts | 69 ++++++++++++++++++- src/public/farms/types.ts | 22 ++++++ .../web3/instructions/farm-instructions.ts | 14 ++++ 3 files changed, 104 insertions(+), 1 deletion(-) diff --git a/src/model/orca/farm/orca-farm.ts b/src/model/orca/farm/orca-farm.ts index 2fa803c..0fb3860 100644 --- a/src/model/orca/farm/orca-farm.ts +++ b/src/model/orca/farm/orca-farm.ts @@ -12,9 +12,10 @@ import { TransactionPayload, U64Utils, } from "../../.."; -import { OrcaFarm } from "../../../public/"; +import { OrcaFarm, ZERO } from "../../../public/"; import { createFarmConvertTokensInstruction, + createFarmHarvestRewardInstruction, createFarmRevertTokensInstruction, createInitUserFarmInstruction, } from "../../../public/utils/web3/instructions/farm-instructions"; @@ -224,4 +225,70 @@ export class OrcaFarmImpl implements OrcaFarm { .addInstruction(revertFromFarmTokens) .build(); } + + public async getHarvestableAmount(ownerPublicKey: PublicKey): Promise { + const { address: farmAddress, baseTokenDecimals } = this.farmParams; + + const globalFarms = await fetchGlobalFarms(this.connection, [farmAddress], ORCA_FARM_ID); + const userFarms = await fetchUserFarms( + this.connection, + ownerPublicKey, + [farmAddress], + ORCA_FARM_ID + ); + + if (!globalFarms) { + throw new Error("Failed to get globalFarms information"); + } + + const farm = new Aquafarm(globalFarms[0], ORCA_FARM_ID, userFarms && userFarms[0]); + + if (!farm.isUserFarmInitialized()) { + return OrcaU64.fromU64(ZERO, baseTokenDecimals); + } + + const farmSupply = await this.getFarmSupply(); + const harvestableAmount = farm.getCurrentHarvestableAmount(farmSupply.toU64()) ?? ZERO; + return OrcaU64.fromU64(harvestableAmount, baseTokenDecimals); + } + + public async harvest(owner: Keypair | PublicKey): Promise { + const _owner = new Owner(owner); + const ownerAddress = _owner.publicKey; + + const { address: farmAddress, rewardTokenMint } = this.farmParams; + + const globalFarms = await fetchGlobalFarms(this.connection, [farmAddress], ORCA_FARM_ID); + const userFarms = await fetchUserFarms( + this.connection, + ownerAddress, + [farmAddress], + ORCA_FARM_ID + ); + + if (!globalFarms) { + throw new Error("Failed to get globalFarms information"); + } + + const farm = new Aquafarm(globalFarms[0], ORCA_FARM_ID, userFarms && userFarms[0]); + + if (!farm.isUserFarmInitialized()) { + throw new Error("Failed to get userFarm information"); + } + + // If the user lacks the reward token account, create it + const { address: userRewardTokenPublicKey, ...resolveRewardTokenInstructions } = + await resolveOrCreateAssociatedTokenAddress(this.connection, _owner, rewardTokenMint); + + const harvestRewardInstruction = await createFarmHarvestRewardInstruction( + farm, + userRewardTokenPublicKey, + _owner + ); + + return await new TransactionBuilder(this.connection, ownerAddress, _owner) + .addInstruction(resolveRewardTokenInstructions) + .addInstruction(harvestRewardInstruction) + .build(); + } } diff --git a/src/public/farms/types.ts b/src/public/farms/types.ts index ae8c5a6..028f3a7 100644 --- a/src/public/farms/types.ts +++ b/src/public/farms/types.ts @@ -52,4 +52,26 @@ export type OrcaFarm = { owner: Keypair | PublicKey, baseTokenAmount: Decimal | OrcaU64 ) => Promise; + + /** + * Get the total amount of rewards that has accumulated in the user's farm. + * + * Returns 0 if: + * 1. the user does not have a farm initialized (by calling deposit) + * 2. the user's farm balance is empty + * + * @param ownerPublicKey The public key of the user + * @return The amount of reward that can be harvestable by the user + */ + getHarvestableAmount: (ownerPublicKey: PublicKey) => Promise; + + /** + * Harvest all of the rewards that has accumulated in the user's farm. + * + * Throws error if the user does not have a farm initialized (by calling deposit) + * + * @param owner The keypair for the user's wallet or just the user's public key + * @returnThe transaction signature of the harvest instruction + */ + harvest: (owner: Keypair | PublicKey) => Promise; }; diff --git a/src/public/utils/web3/instructions/farm-instructions.ts b/src/public/utils/web3/instructions/farm-instructions.ts index 16d134c..40e3667 100644 --- a/src/public/utils/web3/instructions/farm-instructions.ts +++ b/src/public/utils/web3/instructions/farm-instructions.ts @@ -91,3 +91,17 @@ export const createFarmRevertTokensInstruction = async ( signers: owner.signer ? [owner.signer] : [], }; }; + +export const createFarmHarvestRewardInstruction = async ( + farm: Aquafarm, + userRewardTokenPublicKey: PublicKey, + owner: Owner +): Promise => { + const harvestIx = farm.constructHarvestIx(userRewardTokenPublicKey); + + return { + instructions: [harvestIx], + cleanupInstructions: [], + signers: owner.signer ? [owner.signer] : [], + }; +}; From f3de5c2b94e9f13a4c41922cf5bfed1875f111ff Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:29:03 -0700 Subject: [PATCH 08/81] Pool add getDepositQuote, getWithdrawQuote api's (#47) * Pool add getDepositQuote, getWithdrawQuote api's * remove unused functions * getQuote slippage should be optional * percentage input, constraint token * comments update * change types * special case: handle SOL in getUserTokenCount * decimal bug fix * address comments * comment update --- src/model/orca/pool/orca-pool.ts | 139 +++++++++++++++++++++++++++++++ src/public/pools/types.ts | 52 +++++++++++- 2 files changed, 189 insertions(+), 2 deletions(-) diff --git a/src/model/orca/pool/orca-pool.ts b/src/model/orca/pool/orca-pool.ts index 22f942b..1ef0052 100644 --- a/src/model/orca/pool/orca-pool.ts +++ b/src/model/orca/pool/orca-pool.ts @@ -19,6 +19,10 @@ import { TransactionPayload, Percentage, resolveOrCreateAssociatedTokenAddress, + ZERO, + DepositQuote, + WithdrawQuote, + DecimalUtil, } from "../../../public"; import { createApprovalInstruction, @@ -49,6 +53,10 @@ export class OrcaPoolImpl implements OrcaPool { return this.poolParams.tokens[tokenId]; } + public getPoolTokenMint(): PublicKey { + return this.poolParams.poolTokenMint; + } + public async getLPBalance(owner: PublicKey): Promise { const address = await deriveAssociatedTokenAddress(owner, this.poolParams.poolTokenMint); @@ -184,6 +192,57 @@ export class OrcaPoolImpl implements OrcaPool { .build(); } + public async getDepositQuote( + maxTokenAIn: Decimal | OrcaU64, + maxTokenBIn: Decimal | OrcaU64, + slippage?: Decimal + ): Promise { + const slippageTolerance = + slippage === undefined ? defaultSlippagePercentage : Percentage.fromDecimal(slippage); + + const maxTokenAIn_U64 = U64Utils.toTokenU64(maxTokenAIn, this.getTokenA(), "maxTokenAIn"); + const maxTokenBIn_U64 = U64Utils.toTokenU64(maxTokenBIn, this.getTokenB(), "maxTokenBIn"); + + const { inputTokenCount: tokenAAmount, outputTokenCount: tokenBAmount } = await getTokenCount( + this.connection, + this.poolParams, + this.getTokenA(), + this.getTokenB() + ); + const lpSupply = await this.getLPSupply(); + + if (tokenAAmount.eq(ZERO) || tokenBAmount.eq(ZERO)) { + return { + minPoolTokenAmountOut: OrcaU64.fromU64(ZERO, lpSupply.scale), + maxTokenAIn: OrcaU64.fromU64(maxTokenAIn_U64, this.getTokenA().scale), + maxTokenBIn: OrcaU64.fromU64(maxTokenBIn_U64, this.getTokenB().scale), + }; + } + + const poolTokenAmountWithA = maxTokenAIn_U64 + .mul(slippageTolerance.denominator) + .mul(lpSupply.toU64()) + .div(tokenAAmount) + .div(slippageTolerance.numerator.add(slippageTolerance.denominator)); + + const poolTokenAmountWithB = maxTokenBIn_U64 + .mul(slippageTolerance.denominator) + .mul(lpSupply.toU64()) + .div(tokenBAmount) + .div(slippageTolerance.numerator.add(slippageTolerance.denominator)); + + // Pick the smaller value of the two to calculate the minimum poolTokenAmount out + const minPoolTokenAmountOut_U64 = poolTokenAmountWithA.gt(poolTokenAmountWithB) + ? poolTokenAmountWithB + : poolTokenAmountWithA; + + return { + minPoolTokenAmountOut: OrcaU64.fromU64(minPoolTokenAmountOut_U64, lpSupply.scale), + maxTokenAIn: OrcaU64.fromU64(maxTokenAIn_U64, this.getTokenA().scale), + maxTokenBIn: OrcaU64.fromU64(maxTokenBIn_U64, this.getTokenB().scale), + }; + } + public async deposit( owner: Keypair | PublicKey, maxTokenAIn: Decimal | OrcaU64, @@ -270,6 +329,86 @@ export class OrcaPoolImpl implements OrcaPool { .build(); } + public async getWithdrawQuote( + withdrawTokenAmount: Decimal | OrcaU64, + withdrawTokenMint: PublicKey, + slippage?: Decimal + ): Promise { + const slippageTolerance = + slippage === undefined ? defaultSlippagePercentage : Percentage.fromDecimal(slippage); + + const lpSupply = await this.getLPSupply(); + const { inputTokenCount: tokenAAmount, outputTokenCount: tokenBAmount } = await getTokenCount( + this.connection, + this.poolParams, + this.getTokenA(), + this.getTokenB() + ); + + // withdrawTokenAmount needs represent amounts for one of the following: poolTokenAmount, tokenAAmount, or tokenBAmount + // determine which token this amount represents, then calculate poolTokenIn_U64 + let poolTokenIn_U64 = ZERO; + if (withdrawTokenMint.equals(this.getPoolTokenMint())) { + poolTokenIn_U64 = U64Utils.toPoolU64( + withdrawTokenAmount, + this.poolParams, + "withdrawTokenAmount" + ); + } else if ( + withdrawTokenMint.equals(this.getTokenA().mint) || + withdrawTokenMint.equals(this.getTokenB().mint) + ) { + const token = withdrawTokenMint.equals(this.getTokenA().mint) + ? this.getTokenA() + : this.getTokenB(); + const totalAmount = token.mint.equals(this.getTokenA().mint) ? tokenAAmount : tokenBAmount; + + const numerator = + withdrawTokenAmount instanceof OrcaU64 + ? withdrawTokenAmount.toDecimal() + : withdrawTokenAmount; + const denominator = DecimalUtil.fromU64(totalAmount, token.scale); + const poolTokenIn = lpSupply.toDecimal().div(denominator).mul(numerator); + poolTokenIn_U64 = U64Utils.toPoolU64(poolTokenIn, this.poolParams, "poolTokenIn"); + } else { + throw new Error( + `Unable to get withdraw quote with an invalid withdrawTokenMint ${withdrawTokenMint}` + ); + } + + if (poolTokenIn_U64.eq(ZERO)) { + return { + maxPoolTokenAmountIn: OrcaU64.fromU64(ZERO, lpSupply.scale), + minTokenAOut: OrcaU64.fromU64(ZERO, this.getTokenA().scale), + minTokenBOut: OrcaU64.fromU64(ZERO, this.getTokenB().scale), + }; + } + + const minTokenAOut = new OrcaU64( + poolTokenIn_U64 + .mul(slippageTolerance.denominator) + .mul(tokenAAmount) + .div(lpSupply.toU64()) + .div(slippageTolerance.numerator.add(slippageTolerance.denominator)), + this.getTokenA().scale + ); + + const minTokenBOut = new OrcaU64( + poolTokenIn_U64 + .mul(slippageTolerance.denominator) + .mul(tokenBAmount) + .div(lpSupply.toU64()) + .div(slippageTolerance.numerator.add(slippageTolerance.denominator)), + this.getTokenB().scale + ); + + return { + maxPoolTokenAmountIn: OrcaU64.fromU64(poolTokenIn_U64, lpSupply.scale), + minTokenAOut, + minTokenBOut, + }; + } + public async withdraw( owner: Keypair | PublicKey, poolTokenAmountIn: Decimal | OrcaU64, diff --git a/src/public/pools/types.ts b/src/public/pools/types.ts index b6e521f..224f143 100644 --- a/src/public/pools/types.ts +++ b/src/public/pools/types.ts @@ -3,6 +3,18 @@ import Decimal from "decimal.js"; import { OrcaU64 } from ".."; import { TransactionPayload } from "../utils"; +export type DepositQuote = { + minPoolTokenAmountOut: OrcaU64; + maxTokenAIn: OrcaU64; + maxTokenBIn: OrcaU64; +}; + +export type WithdrawQuote = { + minTokenAOut: OrcaU64; + minTokenBOut: OrcaU64; + maxPoolTokenAmountIn: OrcaU64; +}; + /** * Allows interactions with an Orca liquidity pool. */ @@ -19,6 +31,12 @@ export type OrcaPool = { */ getTokenB: () => OrcaPoolToken; + /** + * Query the mint public key for the pool token of this pool. + * @returns Returns the tokenMint public key of this pool + */ + getPoolTokenMint: () => PublicKey; + /** * Query the balance for an user address * @param wallet The public key for the user. @@ -39,13 +57,13 @@ export type OrcaPool = { * * @param inputTokenId The token you want to trade from * @param inputAmount The amount of token you would to trade - * @param slippage The slippage in percentage you are willing to take in this trade + * @param slippage An optional slippage in percentage you are willing to take in this trade (default: 0.1%) * @return Returns a quote on the exchanged token based on the input token amount */ getQuote: ( inputToken: OrcaToken, inputAmount: Decimal | OrcaU64, - slippage: Decimal + slippage?: Decimal ) => Promise; /** @@ -69,6 +87,20 @@ export type OrcaPool = { minimumAmountOut: Decimal | OrcaU64 ) => Promise; + /** + * Get suggested pool token deposit amount based on required constraints on maximum tokenA amount and maximum tokenB amount + * + * @param maxTokenAIn The maximum amount of tokenA to deposit in exchange for pool token + * @param maxTokenBIn The maximum amount of tokenB to deposit in exchange for pool token + * @param slippage An optional slippage in percentage you are willing to take in deposit (default: 0.1%) + * @return Returns the input for deposit + */ + getDepositQuote: ( + maxTokenAIn: Decimal | OrcaU64, + maxTokenBIn: Decimal | OrcaU64, + slippage?: Decimal + ) => Promise; + /** * Perform a deposit: send tokenA and tokenB, and receive a poolToken in return. * Fee for the transaction will be paid by the owner's wallet. @@ -90,6 +122,22 @@ export type OrcaPool = { minPoolTokenAmountOut: Decimal | OrcaU64 ) => Promise; + /** + * Get suggested withdraw token amounts based on required withdraw amount of the pool token / one of the paired tokens + * + * Throws error if withdrawTokenMint does not equal tokenMint of tokenA, tokenB, or poolToken of this pool + * + * @param withdrawTokenAmount The amount of tokens to withdraw in terms of tokenA amount, tokenB amount, or poolToken amount + * @param withdrawTokenMint The token mint public key of tied to withdrawTokenAmount. It should be the mint of tokenA, tokenB, or poolToken + * @param slippage An optional slippage in percentage you are willing to take in withdraw (default: 0.1%) + * @return Returns the input for withdraw + */ + getWithdrawQuote: ( + withdrawTokenAmount: Decimal | OrcaU64, + withdrawTokenMint: PublicKey, + slippage?: Decimal + ) => Promise; + /** * Perform a withdraw: send poolToken, and receive tokenA and tokenB in return. * Fee for the transaction will be paid by the owner's wallet. From e7264c756711ef46fe8987be4c60fab8f5fff29d Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:29:16 -0700 Subject: [PATCH 09/81] Update Usage section of readme (#48) * Update Usage section of readme * update with new api --- README.md | 133 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 104 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 741322e..cfea099 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,11 @@ Learn more Orca [here](https://docs.orca.so). - Remember to withdraw the LP token in exchange for farm token before withdrawing liquidity from Orca Pool +**DoubleDip Support** + +- For farms with double-dip, the aquafarm tokens can be deposited into + double-dip farm to receive double-dip rewards + **Features Coming Soon** - More trader information (APY, Volume) @@ -46,37 +51,107 @@ npm install @orca-so/sdk @solana/web3.js decimal.js # Usage ```typescript +import { readFile } from "mz/fs"; import { Connection, Keypair } from "@solana/web3.js"; -import { getOrca, OrcaPoolConfig, OrcaU64 } from "@orca-so/sdk"; - -try { - const connection = new Connection(url, "singleGossip"); +import { getOrca, OrcaFarmConfig, OrcaPoolConfig } from "@orca-so/sdk"; +import Decimal from "decimal.js"; + +const main = async () => { + /*** Setup ***/ + // 1. Read secret key file to get owner keypair + const secretKeyString = await readFile("/Users/scuba/my-wallet/my-keypair.json", { + encoding: "utf8", + }); + const secretKey = Uint8Array.from(JSON.parse(secretKeyString)); + const owner = Keypair.fromSecretKey(secretKey); + + // 2. Initialzie Orca object with mainnet connection + const connection = new Connection("https://api.mainnet-beta.solana.com", "singleGossip"); const orca = getOrca(connection); - const owner: Keypair = getKeyPair(); - - // Get an instance of the ETH-USDC orca pool - let pool = orca.getPool(OrcaPoolConfig.ETH_USDC); - - // Get the number of ETH-USDC LP tokens in your wallet - let ethUsdcLPBalance = await pool.getLPBalance(owner.publicKey); - - // Get the total supply of ETH-USDC LP tokens - let ethUsdcLPSupply = await pool.getLPSupply(); - - // Get a quote of exchanging 1.1 ETH to USDC with a slippage tolerance of 0.1% - // From the quote, you can get the current rate, fees, expected output amount and minimum output amount - let ethToken = pool.getTokenA(); - let tradeValue = new Decimal(1.1); - let quote = await pool.getQuote(ethToken, tradeValue, new Decimal(0.1)); - - // Perform a swap for 1USDC to the quoted minimum amount of ETH - // If the user does not have the Associated Token Address(ATA) to receive the output token, the ATA - // instructions will be appended in the transaction. - const txPayload = await pool.swap(owner, usdcToken, tradeValue, quote.getMinOutputAmount()); - const txId = await txPayload.execute(); -} catch (err) { - // Handle errors -} + + try { + /*** Swap ***/ + // 3. We will be swapping 0.1 SOL for some ORCA + const orcaSolPool = orca.getPool(OrcaPoolConfig.ORCA_SOL); + const solToken = orcaSolPool.getTokenB(); + const solAmount = new Decimal(0.1); + const quote = await orcaSolPool.getQuote(solToken, solAmount); + const orcaAmount = quote.getMinOutputAmount(); + + console.log(`Swap ${solAmount.toString()} SOL for at least ${orcaAmount.toNumber()} ORCA`); + const swapPayload = await orcaSolPool.swap(owner, solToken, solAmount, orcaAmount); + const swapTxId = await swapPayload.execute(); + console.log("Swapped:", swapTxId, "\n"); + + /*** Pool Deposit ***/ + // 4. Deposit SOL and ORCA for LP token + const { maxTokenAIn, maxTokenBIn, minPoolTokenAmountOut } = await orcaSolPool.getDepositQuote( + orcaAmount, + solAmount + ); + + console.log( + `Deposit at most ${maxTokenBIn.toNumber()} SOL and ${maxTokenAIn.toNumber()} ORCA, for at least ${minPoolTokenAmountOut.toNumber()} LP tokens` + ); + const poolDepositPayload = await orcaSolPool.deposit( + owner, + maxTokenAIn, + maxTokenBIn, + minPoolTokenAmountOut + ); + const poolDepositTxId = await poolDepositPayload.execute(); + console.log("Pool deposited:", poolDepositTxId, "\n"); + + /*** Farm Deposit ***/ + // 5. Deposit some ORCA_SOL LP token for farm token + const lpBalance = await orcaSolPool.getLPBalance(owner.publicKey); + const orcaSolFarm = orca.getFarm(OrcaFarmConfig.ORCA_SOL_AQ); + const farmDepositPayload = await orcaSolFarm.deposit(owner, lpBalance); + const farmDepositTxId = await farmDepositPayload.execute(); + console.log("Farm deposited:", farmDepositTxId, "\n"); + // Note 1: for double dip, repeat step 5 but with the double dip farm + // Note 2: to harvest reward, orcaSolFarm.harvest(owner) + // Note 3: to get harvestable reward amount, orcaSolFarm.getHarvestableAmount(owner.publicKey) + + /*** Farm Withdraw ***/ + // 6. Withdraw ORCA_SOL LP token, in exchange for farm token + const farmBalance = await orcaSolFarm.getFarmBalance(owner.publicKey); // withdraw the entire balance + const farmWithdrawPayload = await orcaSolFarm.withdraw(owner, farmBalance); + const farmWithdrawTxId = await farmWithdrawPayload.execute(); + console.log("Farm withdrawn:", farmWithdrawTxId, "\n"); + + /*** Pool Withdraw ***/ + // 6. Withdraw SOL and ORCA, in exchange for ORCA_SOL LP token + const withdrawTokenAmount = await orcaSolPool.getLPBalance(owner.publicKey); + const withdrawTokenMint = orcaSolPool.getPoolTokenMint(); + const { maxPoolTokenAmountIn, minTokenAOut, minTokenBOut } = await orcaSolPool.getWithdrawQuote( + withdrawTokenAmount, + withdrawTokenMint + ); + + console.log( + `Withdraw at most ${maxPoolTokenAmountIn.toNumber()} ORCA_SOL LP token for at least ${minTokenAOut.toNumber()} ORCA and ${minTokenBOut.toNumber()} SOL` + ); + const poolWithdrawPayload = await orcaSolPool.withdraw( + owner, + maxPoolTokenAmountIn, + minTokenAOut, + minTokenBOut + ); + const poolWithdrawTxId = await poolWithdrawPayload.execute(); + console.log("Pool withdrawn:", poolWithdrawTxId, "\n"); + } catch (err) { + console.warn(err); + } +}; + +main() + .then(() => { + console.log("Done"); + }) + .catch((e) => { + console.error(e); + }); ``` # Technical Notes From d3a95a7dba2d7d5b4ad2a5c0dc27f2e7b5a50476 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:33:49 -0700 Subject: [PATCH 10/81] Bump to 1.1.7 (#50) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1415fea..5569259 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.6", + "version": "1.1.7", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 87956e69b40e20aa104591719c8e83f3e09ca3bd Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 11 Oct 2021 02:31:58 -0700 Subject: [PATCH 11/81] Update with new tokens, pools, farms (#51) --- src/constants/farms.ts | 171 ++++++++++++++++++++ src/constants/pools.ts | 312 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 84 ++++++++++ src/public/farms/config.ts | 19 +++ src/public/pools/config.ts | 12 ++ 5 files changed, 598 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index dcada18..b7fa1b9 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -341,6 +341,102 @@ export const grapeUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const abrUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("PyzV3qSzbj98ArVpASj2LQg6zCq6zfAixqUtYDafnRU"), + farmTokenMint: new PublicKey("5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5"), + baseTokenDecimals: 6, +}); + +export const kuroUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6bHkoSxnK3aKW3PyG34dUz1naD6T3Pc7143s41nSuuzN"), + farmTokenMint: new PublicKey("6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi"), + baseTokenDecimals: 6, +}); + +export const mediaUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("jCGam3ptTrFKhCwBGYUcqtrvt8pY4uWXaPoqC9E7uXB"), + farmTokenMint: new PublicKey("3pMYToENTB7jKrJiUPq19FCZCWE35Ph7bkRRMN6kxDXK"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx"), + baseTokenDecimals: 6, +}); + +export const tulipUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AEemiZ28JTnz3xmj6LSfXruK1et317ZAGY5KCrKdXNCX"), + farmTokenMint: new PublicKey("2KYUwdRbVtaMUgHp1a6NuTomyCb33FxoZ4fkeVdwjaJA"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5"), + baseTokenDecimals: 6, +}); + +export const mngoUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2LM1Y428kPtLAsxcdxv2iKWaPxobt9poD2DAjeGpN6TC"), + farmTokenMint: new PublicKey("CxhcLZtbhfkwjAZ956SEkGxkAvMVQH3hfKTjKpgTV9Q5"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib"), + baseTokenDecimals: 6, +}); + +export const stsolWstethAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6eW2skHuzMxxPZjzE7x5fxtn3ZZ1Ak2SawrMH9T5KANp"), + farmTokenMint: new PublicKey("3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa"), + baseTokenDecimals: 6, +}); + +export const sypUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7GDHcUdLhHxCHeQccpbJr3eNGzQvnoMdLBzkVNYvQgkh"), + farmTokenMint: new PublicKey("Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB"), + baseTokenDecimals: 6, +}); + +export const stsolWldoAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DMECkFUnVp1esox6Yyyfc7vJeN7spUHd5JypAWqEqCRC"), + farmTokenMint: new PublicKey("DQsbebdNDy8yQrwLTpieckhzi7Ewx9LoCPVf7G9KvY2U"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF"), + baseTokenDecimals: 6, +}); + +export const whethSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BerS3SE5G6FqZER7L7G3BhUJBrZ7BpizmuQRH9LMEYQw"), + farmTokenMint: new PublicKey("FkHQBBZGh5GS4GcXpcVksKYUUkLTNn6Yk1PCMxucR2AK"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U"), + baseTokenDecimals: 6, +}); + +export const whethUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GdQyNtN9rQWzpcm7mQMNBiXyeKRjjQoobh2waVQq5QyP"), + farmTokenMint: new PublicKey("B11Xp26xU2gzjToJEuGswvr6Jtidfh4GRUyCWzWMNdQZ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia"), + baseTokenDecimals: 6, +}); + +export const mndeMsolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5wr7m4YrJB38vuz3xyLqvq2DwLCcDkEDH5X97chKpH4T"), + farmTokenMint: new PublicKey("2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs"), + baseTokenDecimals: 6, +}); + +export const wagUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4GWmnvMg7EGQZ6LeQtK6rbJrtTTVsQHj2ivwm4vm8mnR"), + farmTokenMint: new PublicKey("8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -437,6 +533,62 @@ export const polisUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const abrUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("98htZRc2QNd8BS9GGHoxkySZ9BiL9MAgHLEQfxzXYKk6"), + farmTokenMint: new PublicKey("7bp7psdaC3DVc86Hmdz5tAMEjgPjmCzgFEVALfqBwMmz"), + rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), + baseTokenMint: new PublicKey("5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6"), + baseTokenDecimals: 6, +}); + +export const kuroUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BK3VXXDA4KxVurHbP3yPytGWp1HifbBtB4ugpzfDeq4v"), + farmTokenMint: new PublicKey("88RCQs9VFvqPjsRe3PKNzBeMtzCS9oS1a1CJuAnGnLZJ"), + rewardTokenMint: new PublicKey("2Kc38rfQ49DFaKHQaWbijkE7fcymUMLY5guUiUsDmFfn"), + baseTokenMint: new PublicKey("6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2"), + baseTokenDecimals: 6, +}); + +export const msolUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5fhDMuGKRDPWVWXf7BBEwifRFrp6XwXctDQoG7UHGVt6"), + farmTokenMint: new PublicKey("9y3QYM5mcaB8tU7oXRzAQnzHVa75P8riDuPievLp64cY"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev"), + baseTokenDecimals: 6, +}); + +export const orcaMsolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("41ZYSekqDNtJ1BdGkTZVR1CJfBiFrud6HcT3HVUdSyWN"), + farmTokenMint: new PublicKey("876yhw4J4GHyynNJUtARYEnWGaejhrWC7Hy3DAm1pZxi"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE"), + baseTokenDecimals: 6, +}); + +export const msolSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2SciNw7cEsKJc1PMRDzWCcEzvuScmEaUgmrJXCi9UFxY"), + farmTokenMint: new PublicKey("576ABEdvLG1iFU3bLC8AMJ3mo5LhfgPPhMtTeVAGG6u7"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG"), + baseTokenDecimals: 6, +}); + +export const stsolWstethDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EmWtmApj1PtJMgMfzbYMmnmtuwfcBy7es3Tg2AR8xfW6"), + farmTokenMint: new PublicKey("5WXyG6zL1HmESPCSHHKBtqLuRPZCNgd9mTB25op87FkU"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + baseTokenMint: new PublicKey("3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj"), + baseTokenDecimals: 6, +}); + +export const sypUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("gpy1dZRbPbLZ2KNr4wd2r9zoxERbWV8gWTqTL47KNnh"), + farmTokenMint: new PublicKey("BpHfwFwJwkZKWY5xVMC3oifMvWRy42R4VE1vPeBzg2G1"), + rewardTokenMint: new PublicKey("FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ"), + baseTokenMint: new PublicKey("Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -484,6 +636,18 @@ export const orcaFarmConfigs: Record = { HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK: copeUsdcAqFarm, GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n: sunnyUsdcAqFarm, EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd: grapeUsdcAqFarm, + GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5: abrUsdcAqFarm, + DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi: kuroUsdcAqFarm, + "2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx": mediaUsdcAqFarm, + "4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5": tulipUsdcAqFarm, + H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib: mngoUsdcAqFarm, + Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa: stsolWstethAqFarm, + qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB: sypUsdcAqFarm, + "74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF": stsolWldoAqFarm, + "7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U": whethSolAqFarm, + "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia": whethUsdcAqFarm, + "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs": mndeMsolAqFarm, + Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6: wagUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -496,4 +660,11 @@ export const orcaFarmConfigs: Record = { "7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd": ninjaSolDoubleDip, HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t: atlasUsdcDoubleDip, "63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU": polisUsdcDoubleDip, + "5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6": abrUsdcDoubleDip, + "6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2": kuroUsdcDoubleDip, + "5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev": msolUsdcDoubleDip, + "3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE": orcaMsolDoubleDip, + "3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG": msolSolDoubleDip, + "3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj": stsolWstethDoubleDip, + Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ: sypUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index ab16e5e..69bcd52 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1060,6 +1060,306 @@ export const grapeUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const abrUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("rxwsjytcEBvXpXrXBL1rpsjhoh78imBn8WbxjKmLRge"), + nonce: 252, + authority: new PublicKey("AcaxutE6Rh9vRxipTLdqinEdRK6R4ayUAAv2bZPh6UU9"), + poolTokenMint: new PublicKey("GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7pPJGwd8Vq7aYmHaocQpQSfTn3UWYGKUgFkFhpMmRdDF"), + tokenIds: [Tokens.abrToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.abrToken.mint.toString()]: { + ...Tokens.abrToken, + addr: new PublicKey("6FRxhbY7bvSiDojPiqoidjTyDjxaUyCoPQk3ifEdfFbm"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("8aTapFecZRZmC2bTeKr2voHFW2twNvbrh8nWYdXYQWkZ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const kuroUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("HdeYs4bpJKN2oTb7PHxbqq4kzKiLr772A5N2gWjY57ZT"), + nonce: 250, + authority: new PublicKey("2KRcBDQJWEPygxcMMFMvR6dMTVtMkJV6kbxr5e9Kdj5Q"), + poolTokenMint: new PublicKey("DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("5XuLrZqpX9gW3pJw7274EYwAft1ciTXndU4on96ERi9J"), + tokenIds: [Tokens.kuroToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.kuroToken.mint.toString()]: { + ...Tokens.kuroToken, + addr: new PublicKey("DBckbD9CoRBFE8WdbbnFLDz6WdDDSZ7ReEeqdjL62fpG"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("B252w7ZkUX4WyLUJKLEymEpRkYMqJhgv2PSj2Z2LWH34"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const mediaUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("5L2aVMnNsmrnkxU4B25ajb2pR5AJWBRfUa73wjasjyaB"), + nonce: 255, + authority: new PublicKey("HX3JKg5HtboRw9nQRWm47rSJkBHczdcXwBgWASyHi3Wk"), + poolTokenMint: new PublicKey("2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("5BkyYnBWnzBWQKnU9AcUaDrmyhjLpAcFxCvVTTnRGyYk"), + tokenIds: [Tokens.mediaToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.mediaToken.mint.toString()]: { + ...Tokens.mediaToken, + addr: new PublicKey("BFAyLvCbMhgF7CQ9fsWWK46jD9mPXfBMDWvXgk5LTgsT"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("7CvBsWsfEif4sAo9dnsf1JKVAfBGcZUVTktqtxBSkgwB"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const tulipUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("BNwrRN23RCoq5MAneJ6Cot7iN2FLtyt9rtcjaVfAXTLt"), + nonce: 253, + authority: new PublicKey("EFZs7veYVdWBHt7RcAPvXQc46gDzccpZTxAcEm6NyXFg"), + poolTokenMint: new PublicKey("4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("8BiqDTCBQ77qjGpED2was7C4iHJrQx9bXhzRt3Wz9xJG"), + tokenIds: [Tokens.tulipToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.tulipToken.mint.toString()]: { + ...Tokens.tulipToken, + addr: new PublicKey("5CKd5M2nXdPM1TMXxqK6Up6GZehKL5uU9Z9Ytm2sFCiz"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HjMQnuxjVRodoaAg9WcNXb9TAssDaFNpgwcUUKNjWdh5"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const mngoUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Hk9ZCvmqVT1FHNkWJMrtMkkVnH1WqssWPAvmio5Vs3se"), + nonce: 254, + authority: new PublicKey("5RyiYaHFDVupwnwxzKCRk7JY1CKhsczZXefMs3UUmx4Z"), + poolTokenMint: new PublicKey("H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("FWKcKaMfaVezLRFr946MdgmpTZHG4A2GgqehAxjTyDAB"), + tokenIds: [Tokens.mngoToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.mngoToken.mint.toString()]: { + ...Tokens.mngoToken, + addr: new PublicKey("J8bQnhcNyixFGBskQoJ2aSPXPWjvSzaaxF4YPs96XHDJ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("5yMoAhjfFaCPwEwKM2VeFFh2iBs5mHWLTJ4LuqZifsgN"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolWstethPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("B32UuhPSp6srSBbRTh4qZNjkegsehY9qXTwQgnPWYMZy"), + nonce: 255, + authority: new PublicKey("EtwQJxu8wih29vMpdTa74K9W9tgtL4LT6hbWBkhHwvU5"), + poolTokenMint: new PublicKey("Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("74b9j23njRpt3PYPxoze2XS29ZgGmucziLB7WrsDpBdD"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.wstethToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("CeSEpgqc3zV8xDr7Q6PiwJju6a6e92wpAv7Kg6QyFfQB"), + }, + [Tokens.wstethToken.mint.toString()]: { + ...Tokens.wstethToken, + addr: new PublicKey("Fb3XpEJgghTURUGd1wphWr93ruX5egnesfdZtjWCxJFy"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const sypUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("5DnwMqYAGEKekYXJdN8Bue6vN1p5zrEnBpmd53jEK61S"), + nonce: 255, + authority: new PublicKey("4NfadURWeSDPJBGcKQRt39mPhbG9M7EJx6FZDwwcFB9f"), + poolTokenMint: new PublicKey("qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("57L2bEFecsAv4jnaM2PBaeAVyPZEYtTmXBi7eaG2xWXw"), + tokenIds: [Tokens.sypToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.sypToken.mint.toString()]: { + ...Tokens.sypToken, + addr: new PublicKey("6d19CQA1FP2MLLAzA7XoZEc9Agc32FaKUS175UVWLGtv"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HpPnUHyo19VjmXbP6FbbKXu7WQCUEn6h7be76fZdHVmf"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolWldoPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CqwyVxWeaiikQ3VhvEZSEmupmG1Wmc2FeaUjsCV492Sx"), + nonce: 255, + authority: new PublicKey("213QoNt5dR56Ye2sx9cwPwpR3NpJUEStQXn8EbbWKkfJ"), + poolTokenMint: new PublicKey("74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("D4kH4fcwwDtGMj4LpcynB977YVnmvDUcuDQoo5sqAgRz"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.wldoToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("GDprNAcXeR5GVGnCtkS5UqyPGMm2Sy5Lk15qqN36faMT"), + }, + [Tokens.wldoToken.mint.toString()]: { + ...Tokens.wldoToken, + addr: new PublicKey("VCgdcsExfmxUDQwusLP2xqZ3ap7VuYyQMMHDPSva2hx"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const whethSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("FcEro2uFpHcb7Z785CBs6q12KMJqUJKa8VTXPi4TTBMf"), + nonce: 252, + authority: new PublicKey("HMxZz8fv2uR9suzAPRbJGNB3wZL1eT3eKL3cpYWUbM8K"), + poolTokenMint: new PublicKey("7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("YCVJDKdHNi1mhJtWz7QGbBRreMmw1soeipz7wZbQKEK"), + tokenIds: [Tokens.whethToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.whethToken.mint.toString()]: { + ...Tokens.whethToken, + addr: new PublicKey("3uQytDKNd5H6XK8FhTei4wCUmj2eTbLTbiLAtWk2SmbA"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("GR3g8Wej3jmv92hYM1t22kaXog2xjkGjQ7V1XzLd1efT"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const whethUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4reGGLbesqpAeAZdAJv9hhgA2tgj45oGcyRuEvhATdMm"), + nonce: 252, + authority: new PublicKey("8uLtzZ1iTLTCPsm3b4QttRmDXcFjhVHRuMS9VTVEwo7E"), + poolTokenMint: new PublicKey("7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AVw52spXtzFh4bb5ghhpJaDbLx3XWuY85eQNDEo3X1yN"), + tokenIds: [Tokens.whethToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.whethToken.mint.toString()]: { + ...Tokens.whethToken, + addr: new PublicKey("9KpjcpKwhoFPbixvKDfcAhBQcVXk1CSBTGsJdzojDPRv"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("5HaG31FQS4McBVcHxVfwaKaWXE3VCGqvJ1ZDkTxs94cQ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const mndeMsolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("vjHagYsgZwG9icyFLHu2xWHWdtiS5gfeNzRhDcPt5xq"), + nonce: 255, + authority: new PublicKey("3HWcojnC1ruEMmsE92Ez1BoebdDXzYQa4USaeWX7eTuM"), + poolTokenMint: new PublicKey("5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("46mdANZ2DCA2sTFchvD7WwbffbLQa4jCFkkRL23WuYG8"), + tokenIds: [Tokens.mndeToken.mint.toString(), Tokens.msolToken.mint.toString()], + tokens: { + [Tokens.mndeToken.mint.toString()]: { + ...Tokens.mndeToken, + addr: new PublicKey("2LferrWvYWtHFfdkmixzt9g3aKa3yBNfgbRrP1CcWMMp"), + }, + [Tokens.msolToken.mint.toString()]: { + ...Tokens.msolToken, + addr: new PublicKey("GimsuZjYqMXM6xK6S3e9JpGvX6jaMPuNeR6s2piDESmy"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const wagUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("B76e3wtCDTKBgKQjvx87EBkDLPGcCY9w1SGiwjD5kaK7"), + nonce: 254, + authority: new PublicKey("FRUmMZDiZrDrwioiUYi3tdqF7SEBeT219bBu54PGxoCo"), + poolTokenMint: new PublicKey("Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("BCuRKfsM99LJFCchKUBLBZ26UuziDewJDRkkKMwx2qnd"), + tokenIds: [Tokens.wagToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.wagToken.mint.toString()]: { + ...Tokens.wagToken, + addr: new PublicKey("8voSogytL9jLgE73GS3WuujBinKFRQJjvUFsVGYexWZd"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HEP7mACuN13cT95eDAYTNjgwriqJnMQVhnyRctqnBRe4"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1107,4 +1407,16 @@ export const orcaPoolConfigs: Record = { HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK: copeUsdcPool, GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n: sunnyUsdcPool, EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd: grapeUsdcPool, + GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5: abrUsdcPool, + DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi: kuroUsdcPool, + "2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx": mediaUsdcPool, + "4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5": tulipUsdcPool, + H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib: mngoUsdcPool, + Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa: stsolWstethPool, + qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB: sypUsdcPool, + "74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF": stsolWldoPool, + "7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U": whethSolPool, + "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia": whethUsdcPool, + "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs": mndeMsolPool, + Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6: wagUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index e841ef9..87aac3b 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -5,6 +5,13 @@ import { OrcaToken } from ".."; * The following content is auto-generated. */ +export const abrToken: OrcaToken = Object.freeze({ + tag: "ABR", + name: "Allbridge", + mint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), + scale: 9, +}); + export const atlasToken: OrcaToken = Object.freeze({ tag: "ATLAS", name: "Star Atlas", @@ -68,6 +75,13 @@ export const kinToken: OrcaToken = Object.freeze({ scale: 5, }); +export const kuroToken: OrcaToken = Object.freeze({ + tag: "KURO", + name: "Kurobi", + mint: new PublicKey("2Kc38rfQ49DFaKHQaWbijkE7fcymUMLY5guUiUsDmFfn"), + scale: 6, +}); + export const liqToken: OrcaToken = Object.freeze({ tag: "LIQ", name: "LIQ Protocol", @@ -82,6 +96,13 @@ export const mapsToken: OrcaToken = Object.freeze({ scale: 6, }); +export const mediaToken: OrcaToken = Object.freeze({ + tag: "MEDIA", + name: "Media Network", + mint: new PublicKey("ETAtLmCmsoiEEKfNrHKJ2kYy3MoABhU6NQvpSfij5tDs"), + scale: 6, +}); + export const merToken: OrcaToken = Object.freeze({ tag: "MER", name: "Mercurial", @@ -89,6 +110,20 @@ export const merToken: OrcaToken = Object.freeze({ scale: 6, }); +export const mndeToken: OrcaToken = Object.freeze({ + tag: "MNDE", + name: "Marinade Governance", + mint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + scale: 9, +}); + +export const mngoToken: OrcaToken = Object.freeze({ + tag: "MNGO", + name: "Mango Markets", + mint: new PublicKey("MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac"), + scale: 6, +}); + export const ninjaToken: OrcaToken = Object.freeze({ tag: "NINJA", name: "NINJA", @@ -215,6 +250,20 @@ export const sunnyToken: OrcaToken = Object.freeze({ scale: 6, }); +export const sypToken: OrcaToken = Object.freeze({ + tag: "SYP", + name: "Sypool", + mint: new PublicKey("FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ"), + scale: 9, +}); + +export const tulipToken: OrcaToken = Object.freeze({ + tag: "TULIP", + name: "SolFarm", + mint: new PublicKey("TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs"), + scale: 6, +}); + export const usdcToken: OrcaToken = Object.freeze({ tag: "USDC", name: "USD Coin", @@ -229,6 +278,13 @@ export const usdtToken: OrcaToken = Object.freeze({ scale: 6, }); +export const wagToken: OrcaToken = Object.freeze({ + tag: "WAG", + name: "Waggle", + mint: new PublicKey("5tN42n9vMi6ubp67Uy4NnmM5DMZYN8aS8GeB3bEDHr6E"), + scale: 9, +}); + export const msolToken: OrcaToken = Object.freeze({ tag: "mSOL", name: "Marinade.finance", @@ -243,9 +299,37 @@ export const psolToken: OrcaToken = Object.freeze({ scale: 9, }); +export const stsolToken: OrcaToken = Object.freeze({ + tag: "stSOL", + name: "Lido Staked SOL", + mint: new PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"), + scale: 9, +}); + export const whapiToken: OrcaToken = Object.freeze({ tag: "wHAPI", name: "HAPI", mint: new PublicKey("6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm"), scale: 9, }); + +export const wldoToken: OrcaToken = Object.freeze({ + tag: "wLDO", + name: "Lido DAO", + mint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + scale: 8, +}); + +export const whethToken: OrcaToken = Object.freeze({ + tag: "whETH", + name: "Ethereum", + mint: new PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"), + scale: 8, +}); + +export const wstethToken: OrcaToken = Object.freeze({ + tag: "wstETH", + name: "Lido Staked Ether", + mint: new PublicKey("ZScHuTtqZukUrtZS43teTKGs2VqkKL8k4QCouR2n6Uo"), + scale: 8, +}); diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 1ba503c..75741ec 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -48,6 +48,18 @@ export enum OrcaFarmConfig { COPE_USDC_AQ = "HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK", SUNNY_USDC_AQ = "GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n", GRAPE_USDC_AQ = "EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd", + ABR_USDC_AQ = "GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5", + KURO_USDC_AQ = "DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi", + MEDIA_USDC_AQ = "2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx", + TULIP_USDC_AQ = "4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5", + MNGO_USDC_AQ = "H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib", + stSOL_wstETH_AQ = "Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa", + SYP_USDC_AQ = "qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB", + stSOL_wLDO_AQ = "74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF", + whETH_SOL_AQ = "7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U", + whETH_USDC_AQ = "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia", + MNDE_mSOL_AQ = "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs", + WAG_USDC_AQ = "Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -60,4 +72,11 @@ export enum OrcaFarmConfig { NINJA_SOL_DD = "7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd", ATLAS_USDC_DD = "HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t", POLIS_USDC_DD = "63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU", + ABR_USDC_DD = "5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6", + KURO_USDC_DD = "6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2", + mSOL_USDC_DD = "5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev", + ORCA_mSOL_DD = "3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE", + mSOL_SOL_DD = "3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG", + stSOL_wstETH_DD = "3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj", + SYP_USDC_DD = "Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index bac7edc..1520345 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -48,4 +48,16 @@ export enum OrcaPoolConfig { COPE_USDC = "HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK", SUNNY_USDC = "GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n", GRAPE_USDC = "EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd", + ABR_USDC = "GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5", + KURO_USDC = "DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi", + MEDIA_USDC = "2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx", + TULIP_USDC = "4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5", + MNGO_USDC = "H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib", + stSOL_wstETH = "Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa", + SYP_USDC = "qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB", + stSOL_wLDO = "74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF", + whETH_SOL = "7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U", + whETH_USDC = "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia", + MNDE_mSOL = "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs", + WAG_USDC = "Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6", } From 887e53fede92b9fb36399a722f4dda5873f71c65 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 11 Oct 2021 02:35:12 -0700 Subject: [PATCH 12/81] Bump to 1.1.8 (#52) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5569259..2075ee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.7", + "version": "1.1.8", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 020b73893a58e3dcfedac268d8497dd940373283 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 11 Oct 2021 09:32:47 -0700 Subject: [PATCH 13/81] Bump to 1.1.9; add prepublishOnly script; typo (#53) --- package.json | 3 ++- src/public/farms/types.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2075ee7..b53a9d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.8", + "version": "1.1.9", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -35,6 +35,7 @@ "watch": "tsc -w -p src", "prettier-format": "prettier --config .prettierrc 'src/**/*.ts' --write", "prepare": "husky install", + "prepublishOnly": "tsc -p src", "test": "jest" }, "lint-staged": { diff --git a/src/public/farms/types.ts b/src/public/farms/types.ts index 028f3a7..25fdb36 100644 --- a/src/public/farms/types.ts +++ b/src/public/farms/types.ts @@ -71,7 +71,7 @@ export type OrcaFarm = { * Throws error if the user does not have a farm initialized (by calling deposit) * * @param owner The keypair for the user's wallet or just the user's public key - * @returnThe transaction signature of the harvest instruction + * @return The transaction signature of the harvest instruction */ harvest: (owner: Keypair | PublicKey) => Promise; }; From 9ec0ef773bfdfb12c0f07c39c1d3c869bc89ad12 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 3 Nov 2021 11:13:04 +0000 Subject: [PATCH 14/81] Add new pools (#54) * Add new pools * add SOCN --- src/constants/farms.ts | 161 ++++++++++++++++++- src/constants/pools.ts | 306 +++++++++++++++++++++++++++++++++++-- src/constants/tokens.ts | 58 ++++++- src/public/farms/config.ts | 19 +++ src/public/pools/config.ts | 13 ++ 5 files changed, 535 insertions(+), 22 deletions(-) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index b7fa1b9..2abb09d 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -213,7 +213,7 @@ export const sbrUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const socnUsdcAqFarm: OrcaFarmParams = Object.freeze({ +export const scnsolUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5MzBKRo6YqK1BKBz67sXd42jrb6gYzBuX6R5F8ywC33e"), farmTokenMint: new PublicKey("7YFfqZGTxkj3Zeq3Et23kMznCaEYZ1WBZDt6CVrxwfqd"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), @@ -253,7 +253,7 @@ export const orcaMsolAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const socnSolAqFarm: OrcaFarmParams = Object.freeze({ +export const scnsolSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5cE7V9D13k1P1qC23g5vcQEMsvrDzL5yFHhiesVUyn93"), farmTokenMint: new PublicKey("CNqmEKGjZUUARVFHcz4w9CvX5pR8Ae2c6imHDNqsbxgj"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), @@ -437,6 +437,94 @@ export const wagUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const msolUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HULY26UFdfVkc2STTt1KREd57BwFV2md1tqdk253QyiK"), + farmTokenMint: new PublicKey("Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV"), + baseTokenDecimals: 6, +}); + +export const msolWhethAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("D4Pmc82b9W1UDAqYNNNMGG7UYxBaZckf97AYExGbUK95"), + farmTokenMint: new PublicKey("58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV"), + baseTokenDecimals: 6, +}); + +export const btcMsolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GBrpFtiTabs14mc4Hi1RX9YiQY7res6JxrVfMTADfcQV"), + farmTokenMint: new PublicKey("DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB"), + baseTokenDecimals: 6, +}); + +export const ivnSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FwzqbJZQiL3qzMx88r2o3CNKFxztuW3JC45YYk6ghMLR"), + farmTokenMint: new PublicKey("HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf"), + baseTokenDecimals: 6, +}); + +export const larixUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HeAQxAGBQdGURFFcLpdPagQ2vb66kXFTVxDfTjme8eGo"), + farmTokenMint: new PublicKey("DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE"), + baseTokenDecimals: 6, +}); + +export const prtUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9dCsoLdfkpYw1s7TMNE1HZPNmVSNDZrUkUHfxn2p8675"), + farmTokenMint: new PublicKey("2cYMt26745oFc7PadaQn8Vv3xFUxWBfbip2NyJeVG35F"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS"), + baseTokenDecimals: 6, +}); + +export const jetUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BKdPQziyuKmXwZeVuo8Uj7usfUYpwSfnGBDbG96y266V"), + farmTokenMint: new PublicKey("4DjiLEKADWjYmiY9gzFnu5xews5oCTMRByWHWEzDa3bj"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc"), + baseTokenDecimals: 6, +}); + +export const stsolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2P7FGV8XNXUkEAG6q5LbhfoBFkHJ7PDAjYqmAbwnVHBF"), + farmTokenMint: new PublicKey("3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq"), + baseTokenDecimals: 6, +}); + +export const wstethUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2FAzkAgm8EpE7WpWUsEcNyj4kcVeCX2L8SR1BicGWEx9"), + farmTokenMint: new PublicKey("ojpWEdNYa5nGviUc8k8M2XLjHuaCL2EgHFdvTtdkXA1"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5"), + baseTokenDecimals: 6, +}); + +export const auryUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FvkyNXLizY4FCNkgbGpr1WA3z4A8iTRU4rPnnNJC3q2V"), + farmTokenMint: new PublicKey("7s7Veo1P8ZRy6z5MCvoAmg2kPFcQnq2Grt6yewWS8LbQ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh"), + baseTokenDecimals: 6, +}); + +export const avaxUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GkmPgsKU9uYaZtKfzjWeJjBSvX8mkK8gNqoWMYBdcvUx"), + farmTokenMint: new PublicKey("5mZydNG1fBPTXzgp9SoS7Jny6EmSzBPTPrFbB1ttGnvx"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + baseTokenMint: new PublicKey("Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -589,6 +677,54 @@ export const sypUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const mndeMsolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("C9AfeUkti1ykMTebw9N1WoiEhNqwNiXinfXBwuLUv1BT"), + farmTokenMint: new PublicKey("2FMpVEhvxiFxhfideFUMNxCoUZK3TfhezzajoHGTQKP2"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ"), + baseTokenDecimals: 6, +}); + +export const msolUsdtDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FNV9pGMWTYSMq5dRhmjpRwHpDJKV6JD4HTKsqZndKvuY"), + farmTokenMint: new PublicKey("7iKG16aukdXXw43MowbfrGqXhAoYe51iVR9u2Nf2dCEY"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8"), + baseTokenDecimals: 6, +}); + +export const msolWhethDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("D6oqo3F2KkJcePDoNZfbb8F7SPnRhP7WCC9FNktzVCDT"), + farmTokenMint: new PublicKey("3kFeVJUxhQS7PE7vV8pt9bhTCQrUDqeGf6AU4sjkLzVt"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j"), + baseTokenDecimals: 6, +}); + +export const btcMsolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Cn7QNyosNQ8DyKEeMDPmtg66R7vKMXigcQ561kTkFD8E"), + farmTokenMint: new PublicKey("6uA1ADUJbvwYJZpzUn9z9LuyKoRVngBKcQTKdXsSivA8"), + rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + baseTokenMint: new PublicKey("DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r"), + baseTokenDecimals: 6, +}); + +export const ivnSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9DNgTpphCRXhkf8ySiSnf1L2CHwACZybgPNwsnLUdzfA"), + farmTokenMint: new PublicKey("5X71f6zUnVYWSxWM8wf942pzWLv1ZtCDhGCYqZipYutD"), + rewardTokenMint: new PublicKey("iVNcrNE9BRZBC9Aqf753iZiZfbszeAVUoikgT9yvr2a"), + baseTokenMint: new PublicKey("HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy"), + baseTokenDecimals: 6, +}); + +export const larixUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GnFV3S7H6eM9V12EJwptv111VmV7W3AnEEfzdHJL25n7"), + farmTokenMint: new PublicKey("Huy453KXTaWaA3AiJeqLrAWWSMwoGjFU8nsEi7GiPY7n"), + rewardTokenMint: new PublicKey("Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC"), + baseTokenMint: new PublicKey("DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -620,12 +756,12 @@ export const orcaFarmConfigs: Record = { AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w: slrsUsdcAqFarm, F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w: portUsdcAqFarm, CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo: sbrUsdcAqFarm, - Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB: socnUsdcAqFarm, + Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB: scnsolUsdcAqFarm, C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1: psolUsdcAqFarm, "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R": msolSolAqFarm, C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb: orcaPaiAqFarm, CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA: orcaMsolAqFarm, - APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: socnSolAqFarm, + APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: scnsolSolAqFarm, FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ: atlasUsdcAqFarm, GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy: polisUsdcAqFarm, "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu": bopUsdcAqFarm, @@ -648,6 +784,17 @@ export const orcaFarmConfigs: Record = { "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia": whethUsdcAqFarm, "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs": mndeMsolAqFarm, Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6: wagUsdcAqFarm, + "9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV": msolUsdtAqFarm, + "5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV": msolWhethAqFarm, + "8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB": btcMsolAqFarm, + DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf: ivnSolAqFarm, + "8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE": larixUsdcAqFarm, + "6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS": prtUsdcAqFarm, + GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc: jetUsdcAqFarm, + GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq: stsolUsdcAqFarm, + "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5": wstethUsdcAqFarm, + "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh": auryUsdcAqFarm, + Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz: avaxUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -667,4 +814,10 @@ export const orcaFarmConfigs: Record = { "3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG": msolSolDoubleDip, "3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj": stsolWstethDoubleDip, Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ: sypUsdcDoubleDip, + "2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ": mndeMsolDoubleDip, + Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8: msolUsdtDoubleDip, + "58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j": msolWhethDoubleDip, + DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r: btcMsolDoubleDip, + HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy: ivnSolDoubleDip, + DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs: larixUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 69bcd52..c1432f3 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -658,17 +658,17 @@ export const sbrUsdcPool: OrcaPoolParams = Object.freeze({ }, }); -export const socnUsdcPool: OrcaPoolParams = Object.freeze({ +export const scnsolUsdcPool: OrcaPoolParams = Object.freeze({ address: new PublicKey("6Gh36sNXrGWYiWr999d9iZtqgnipJbWuBohyHBN1cJpS"), nonce: 255, authority: new PublicKey("GXWEpRURaQZ9E62Q23EreTUfBy4hfemXgWFUWcg7YFgv"), poolTokenMint: new PublicKey("Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB"), poolTokenDecimals: 6, feeAccount: new PublicKey("HsC1Jo38jK3EpoNAkxfoUJhQVPa28anewZpLfeouUNk7"), - tokenIds: [Tokens.socnToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokenIds: [Tokens.scnsolToken.mint.toString(), Tokens.usdcToken.mint.toString()], tokens: { - [Tokens.socnToken.mint.toString()]: { - ...Tokens.socnToken, + [Tokens.scnsolToken.mint.toString()]: { + ...Tokens.scnsolToken, addr: new PublicKey("7xs9QsrxQDVoWQ8LQ8VsVjfPKBrPGjvg8ZhaLnU1i2VR"), }, [Tokens.usdcToken.mint.toString()]: { @@ -784,17 +784,17 @@ export const orcaMsolPool: OrcaPoolParams = Object.freeze({ }, }); -export const socnSolPool: OrcaPoolParams = Object.freeze({ +export const scnsolSolPool: OrcaPoolParams = Object.freeze({ address: new PublicKey("2q6UMko5kTnv866W9MTeAFau94pLpsdeNjDdSYSgZUXr"), nonce: 255, authority: new PublicKey("Gyd77CwV23qq937x9UDa4TDkxEeQF9tp8ifotYxqW3Kd"), poolTokenMint: new PublicKey("APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc"), poolTokenDecimals: 6, feeAccount: new PublicKey("42Xzazs9EvjtidvEDrj3JXbDtf6fpTq5XHh96mPctvBV"), - tokenIds: [Tokens.socnToken.mint.toString(), Tokens.solToken.mint.toString()], + tokenIds: [Tokens.scnsolToken.mint.toString(), Tokens.solToken.mint.toString()], tokens: { - [Tokens.socnToken.mint.toString()]: { - ...Tokens.socnToken, + [Tokens.scnsolToken.mint.toString()]: { + ...Tokens.scnsolToken, addr: new PublicKey("C8DRXUqxXtUgvgBR7BPAmy6tnRJYgVjG27VU44wWDMNV"), }, [Tokens.solToken.mint.toString()]: { @@ -1360,6 +1360,281 @@ export const wagUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const msolUsdtPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Afofkb7JTc32rdpqiyc3RDmGF5s9N6W1ujcdYVfGZ5Je"), + nonce: 251, + authority: new PublicKey("8vrC1FAnW6hQMwJuU5waZdRrBbDJTULqjpdc4GjDtKR6"), + poolTokenMint: new PublicKey("9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7GPvi21QbwMyBoXU5Zqf8VhnuEh7VH4A1SRPgHJ36eE7"), + tokenIds: [Tokens.msolToken.mint.toString(), Tokens.usdtToken.mint.toString()], + tokens: { + [Tokens.msolToken.mint.toString()]: { + ...Tokens.msolToken, + addr: new PublicKey("RTXKRxghfWJpE344UG7UhKnCwN2Gyv6KnNSTFDnaASF"), + }, + [Tokens.usdtToken.mint.toString()]: { + ...Tokens.usdtToken, + addr: new PublicKey("J15KntYr6iout4ce2kcD2QEdkVbLN4EHHFLfCtke3f6Y"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const msolWhethPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("A71DQffTzgxBSzXjPL3tmf8XXTNtS5mR2D78Y8rmV2hk"), + nonce: 250, + authority: new PublicKey("FPWpe7QEQnDMivnHksQW2uvcw9tvX1oxejKBX136WRkr"), + poolTokenMint: new PublicKey("5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("FSqUYVzF3XZzLcnj132eT6ed3bK95G1yG4MazcHZi99Q"), + tokenIds: [Tokens.msolToken.mint.toString(), Tokens.whethToken.mint.toString()], + tokens: { + [Tokens.msolToken.mint.toString()]: { + ...Tokens.msolToken, + addr: new PublicKey("Fcp5u8bL3V24MXjA4noSfMpcEAP2vSj1WTaA1ZNxACZL"), + }, + [Tokens.whethToken.mint.toString()]: { + ...Tokens.whethToken, + addr: new PublicKey("DuBCBX3y2FjDWUn2ncK5EKQh229JiJ7HTCjYJhNC87K8"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const btcMsolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8DRw5wQE1pyg6RB1UwypGNFgb2Pzp2hpyDDNwo76Lcc8"), + nonce: 255, + authority: new PublicKey("3X1aLdyvcQNc8TvBMPiucMsRCnGMBnGsjJHpZEyCf3pn"), + poolTokenMint: new PublicKey("8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AqiLHbUAy4UWWKGVVgbHsaUVCMg1zemNkgsYBPSirT92"), + tokenIds: [Tokens.btcToken.mint.toString(), Tokens.msolToken.mint.toString()], + tokens: { + [Tokens.btcToken.mint.toString()]: { + ...Tokens.btcToken, + addr: new PublicKey("6D3sxC6yEe84FUnF5Kpbgx6gN57N9poJCKAtrCeCWdJo"), + }, + [Tokens.msolToken.mint.toString()]: { + ...Tokens.msolToken, + addr: new PublicKey("EPoVJLhi9QtVPVo8n31M5k5Knvb48j8zbYyRrUbrHwC5"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const ivnSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CFCivUWXBuULVNfJezj1fAhX6hdwVFi2BsCtpu6m96bR"), + nonce: 255, + authority: new PublicKey("JGhNs5r7YNnJokzzXZWE3REKV8x4GiUvn2xSg7XGg59"), + poolTokenMint: new PublicKey("DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HwwgrSjJGFBtRN8h2daWnVLBciwoo79wNeKi6b5SZmE2"), + tokenIds: [Tokens.ivnToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.ivnToken.mint.toString()]: { + ...Tokens.ivnToken, + addr: new PublicKey("C5yDeB3jBz5yZPa6FgP6b7HNoFxLP63Pyzpaosnkikis"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("CCm846T6xj9VAhSAifuUJAXYCR3kaGp5KqhXFHCaeWUh"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const larixUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("DaNULZAv2VyLk75pW3QD5szVzx5dT6iNvoih94Bttqf5"), + nonce: 255, + authority: new PublicKey("FUVkG7fM3i8T49qV7WsJd68rBaYKvqTkAQCdftqTWWNj"), + poolTokenMint: new PublicKey("8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AVb9Bvu4rjFYNCHygEnAYCjwnkgtC8C6UmJ7at3dsfdz"), + tokenIds: [Tokens.larixToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.larixToken.mint.toString()]: { + ...Tokens.larixToken, + addr: new PublicKey("AAjjSJsZM3AKK4h9cbGTHkquEZ2fWjgo9A9Pmrj2ynTH"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("82Fs8dSpMxPPfN1ULsXGFREHWz3JizREpTxwz2MaZ1n1"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const prtUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CRm5uRBsVmUVHVqKfCCvCUX1RLUkjfcBWAeMQ5D9VuCM"), + nonce: 255, + authority: new PublicKey("A9eqdCXYys7jeoroMFEnkGLoYLa2q5gGbg8RSKHkR2ne"), + poolTokenMint: new PublicKey("6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("FHVidN2ZdGnVaCjYwLjLXrimPbVsaqsUEEiGcVZ6WAPq"), + tokenIds: [Tokens.prtToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.prtToken.mint.toString()]: { + ...Tokens.prtToken, + addr: new PublicKey("3oL2GjsUnQLjHw77p78CsRr7t94AVrtsCnW5uf6NYQ3g"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("2EiVwvsH5cvyk4W243zKoywkaEQb9Bwe9WGphRgBSqaP"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const jetUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("ErWwp9HKjk5ZPLDt8SrHKH5PvSKTwFDdFo5E3zDuE5Be"), + nonce: 253, + authority: new PublicKey("GYY1t5d4pZnJC4rMXGY9yKMyCzLqxRqbtSguD2KkxghH"), + poolTokenMint: new PublicKey("GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("6NhybmW42rdWj5TcobNKQT6JaZispgngcfTDrCsgVq4Q"), + tokenIds: [Tokens.jetToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.jetToken.mint.toString()]: { + ...Tokens.jetToken, + addr: new PublicKey("GEtZSc8188t2cCAv21UGCyjvxCeyU5Co99GtRtyTkpdh"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("Bi95f8H7o7zHWuYysxDHEubPv4c3NhsHWhaesXJu91NC"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("EfK84vYEKT1PoTJr6fBVKFbyA7ZoftfPo2LQPAJG1exL"), + nonce: 252, + authority: new PublicKey("8PSN1CQxfyZ7T4sM3HM3RAgF2Y6VCf4tKSc8xY73Tnq5"), + poolTokenMint: new PublicKey("GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("CJhL3UGesECFt6fvLB3csrGMuHf3M3G78pUzTopUiV8T"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("9SEBxqhP8sTAzmfiQfCPim1MqQXuDPb6fkGzJF7Z339i"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("G45yhM5mZ5RXZpLxGWLk3PVzdAp33z8aH6F9mLW8fQj3"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const wstethUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("v51xWrRwmFVH6EKe8eZTjgK5E4uC2tzY5sVt5cHbrkG"), + nonce: 254, + authority: new PublicKey("3Kk8rpjxpc9qv2pJPr1CbmyQqrTDPntpryXActLogQeD"), + poolTokenMint: new PublicKey("5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("ACKiRmbiMaPEc73pz4dVMuJGPaa74Vx9sfYADjnHuzvo"), + tokenIds: [Tokens.wstethToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.wstethToken.mint.toString()]: { + ...Tokens.wstethToken, + addr: new PublicKey("5c4tzhRVaCxpmu8o3HrEZ8PWBDKSR6QNkBdQrUo9oe3e"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("AFNaWHH7ZGFjB7y7jmPM7jVs7QBAciffu7Z5tZidRHPR"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const auryUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("6HSguUukDH9zqJBm6oAAmFkg1WK9dJ5iLgnppTCM6jHm"), + nonce: 255, + authority: new PublicKey("9T1koZp2PNJgspcx3G22yLiChBUfYzAjs2dhj2kgw2LZ"), + poolTokenMint: new PublicKey("6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("JCqbv7r3mtYhzruNFjc21X14fndDVBLMiaNQrsHVpWui"), + tokenIds: [Tokens.auryToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.auryToken.mint.toString()]: { + ...Tokens.auryToken, + addr: new PublicKey("413s6jiRbayD9didA4VnY8kQVgVBgkYNpYB2tyNf8sbh"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GdPeogNxRWAZtUj7ZHc7fUpBuGHJosdbukiT2krFtXm8"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const avaxUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("7c2CLgatf2TU36PgpS65WLmvWk94rmaHVf1Z1peZ7mcA"), + nonce: 251, + authority: new PublicKey("Mq46N9EknnxHL9fRkJhS4Eg9YXRifHiWzFJTD11ePWC"), + poolTokenMint: new PublicKey("Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7JH76Kw4dHyC5szRXkx6MFkJ3BEViodfNy15uFJst1cX"), + tokenIds: [Tokens.avaxToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.avaxToken.mint.toString()]: { + ...Tokens.avaxToken, + addr: new PublicKey("5rU6M2jAXQMSmgrsn14BPoVVhoBdCU6y5cP7XMjN4ZYy"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("D28rzq246bcXBrYiCeALY86y8NwvCUmuJGNggvKsh4WR"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1391,12 +1666,12 @@ export const orcaPoolConfigs: Record = { AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w: slrsUsdcPool, F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w: portUsdcPool, CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo: sbrUsdcPool, - Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB: socnUsdcPool, + Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB: scnsolUsdcPool, C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1: psolUsdcPool, "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R": msolSolPool, C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb: orcaPaiPool, CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA: orcaMsolPool, - APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: socnSolPool, + APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc: scnsolSolPool, FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ: atlasUsdcPool, GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy: polisUsdcPool, "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu": bopUsdcPool, @@ -1419,4 +1694,15 @@ export const orcaPoolConfigs: Record = { "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia": whethUsdcPool, "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs": mndeMsolPool, Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6: wagUsdcPool, + "9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV": msolUsdtPool, + "5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV": msolWhethPool, + "8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB": btcMsolPool, + DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf: ivnSolPool, + "8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE": larixUsdcPool, + "6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS": prtUsdcPool, + GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc: jetUsdcPool, + GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq: stsolUsdcPool, + "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5": wstethUsdcPool, + "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh": auryUsdcPool, + Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz: avaxUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 87aac3b..89df4df 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -19,6 +19,20 @@ export const atlasToken: OrcaToken = Object.freeze({ scale: 8, }); +export const auryToken: OrcaToken = Object.freeze({ + tag: "AURY", + name: "Aurory", + mint: new PublicKey("AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP"), + scale: 9, +}); + +export const avaxToken: OrcaToken = Object.freeze({ + tag: "AVAX", + name: "Avalanche", + mint: new PublicKey("AUrMpCDYYcPuHhyNX8gEEqbmDPFUpBpHrNW3vPeCFn5Z"), + scale: 9, +}); + export const bopToken: OrcaToken = Object.freeze({ tag: "BOP", name: "Boring Protocol", @@ -68,6 +82,20 @@ export const grapeToken: OrcaToken = Object.freeze({ scale: 6, }); +export const ivnToken: OrcaToken = Object.freeze({ + tag: "IVN", + name: "Investin", + mint: new PublicKey("iVNcrNE9BRZBC9Aqf753iZiZfbszeAVUoikgT9yvr2a"), + scale: 6, +}); + +export const jetToken: OrcaToken = Object.freeze({ + tag: "JET", + name: "JET", + mint: new PublicKey("JET6zMJWkCN9tpRT2v2jfAmm5VnQFDpUBCyaKojmGtz"), + scale: 9, +}); + export const kinToken: OrcaToken = Object.freeze({ tag: "KIN", name: "Kin", @@ -82,6 +110,13 @@ export const kuroToken: OrcaToken = Object.freeze({ scale: 6, }); +export const larixToken: OrcaToken = Object.freeze({ + tag: "LARIX", + name: "Larix", + mint: new PublicKey("Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC"), + scale: 6, +}); + export const liqToken: OrcaToken = Object.freeze({ tag: "LIQ", name: "LIQ Protocol", @@ -166,6 +201,13 @@ export const portToken: OrcaToken = Object.freeze({ scale: 6, }); +export const prtToken: OrcaToken = Object.freeze({ + tag: "PRT", + name: "Parrot Protocol", + mint: new PublicKey("PRT88RkA4Kg5z7pKnezeNH4mafTvtQdfFgpQTGRjz44"), + scale: 6, +}); + export const rayToken: OrcaToken = Object.freeze({ tag: "RAY", name: "Raydium", @@ -215,13 +257,6 @@ export const snyToken: OrcaToken = Object.freeze({ scale: 6, }); -export const socnToken: OrcaToken = Object.freeze({ - tag: "SOCN", - name: "Socean", - mint: new PublicKey("5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm"), - scale: 9, -}); - export const solToken: OrcaToken = Object.freeze({ tag: "SOL", name: "Solana", @@ -259,7 +294,7 @@ export const sypToken: OrcaToken = Object.freeze({ export const tulipToken: OrcaToken = Object.freeze({ tag: "TULIP", - name: "SolFarm", + name: "Tulip Protocol", mint: new PublicKey("TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs"), scale: 6, }); @@ -299,6 +334,13 @@ export const psolToken: OrcaToken = Object.freeze({ scale: 9, }); +export const scnsolToken: OrcaToken = Object.freeze({ + tag: "scnSOL", + name: "Socean Staked Sol", + mint: new PublicKey("5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm"), + scale: 9, +}); + export const stsolToken: OrcaToken = Object.freeze({ tag: "stSOL", name: "Lido Staked SOL", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 75741ec..ba6bbfe 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -32,11 +32,13 @@ export enum OrcaFarmConfig { SLRS_USDC_AQ = "AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w", PORT_USDC_AQ = "F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w", SBR_USDC_AQ = "CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo", + scnSOL_USDC_AQ = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", SOCN_USDC_AQ = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", pSOL_USDC_AQ = "C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1", mSOL_SOL_AQ = "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R", ORCA_PAI_AQ = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", ORCA_mSOL_AQ = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", + scnSOL_SOL_AQ = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", SOCN_SOL_AQ = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", ATLAS_USDC_AQ = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", POLIS_USDC_AQ = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", @@ -60,6 +62,17 @@ export enum OrcaFarmConfig { whETH_USDC_AQ = "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia", MNDE_mSOL_AQ = "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs", WAG_USDC_AQ = "Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6", + mSOL_USDT_AQ = "9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV", + mSOL_whETH_AQ = "5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV", + BTC_mSOL_AQ = "8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB", + IVN_SOL_AQ = "DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf", + LARIX_USDC_AQ = "8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE", + PRT_USDC_AQ = "6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS", + JET_USDC_AQ = "GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc", + stSOL_USDC_AQ = "GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq", + wstETH_USDC_AQ = "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5", + AURY_USDC_AQ = "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh", + AVAX_USDC_AQ = "Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -79,4 +92,10 @@ export enum OrcaFarmConfig { mSOL_SOL_DD = "3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG", stSOL_wstETH_DD = "3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj", SYP_USDC_DD = "Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ", + MNDE_mSOL_DD = "2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ", + mSOL_USDT_DD = "Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8", + mSOL_whETH_DD = "58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j", + BTC_mSOL_DD = "DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r", + IVN_SOL_DD = "HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy", + LARIX_USDC_DD = "DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 1520345..2d6a9e8 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -32,11 +32,13 @@ export enum OrcaPoolConfig { SLRS_USDC = "AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w", PORT_USDC = "F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w", SBR_USDC = "CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo", + scnSOL_USDC = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", SOCN_USDC = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", pSOL_USDC = "C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1", mSOL_SOL = "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R", ORCA_PAI = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", ORCA_mSOL = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", + scnSOL_SOL = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", SOCN_SOL = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", ATLAS_USDC = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", POLIS_USDC = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", @@ -60,4 +62,15 @@ export enum OrcaPoolConfig { whETH_USDC = "7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia", MNDE_mSOL = "5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs", WAG_USDC = "Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6", + mSOL_USDT = "9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV", + mSOL_whETH = "5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV", + BTC_mSOL = "8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB", + IVN_SOL = "DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf", + LARIX_USDC = "8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE", + PRT_USDC = "6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS", + JET_USDC = "GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc", + stSOL_USDC = "GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq", + wstETH_USDC = "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5", + AURY_USDC = "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh", + AVAX_USDC = "Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz", } From 8168fd229d2ef1c817adaec017608646a7f97141 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 3 Nov 2021 11:15:20 +0000 Subject: [PATCH 15/81] Bump to 1.1.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b53a9d0..966b20d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.9", + "version": "1.1.10", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 19b8dd343e33d18d3c5d10bb3bbff81b0c722f92 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 4 Nov 2021 10:02:18 +0000 Subject: [PATCH 16/81] Add getDailyEmissions api to farm (#55) * Farm getWeeklyEmissions api * add rewardTokenDecimals field * getDailyEmissions * comment update * rewardTokenDecimals for new pools --- src/constants/farms.ts | 90 +++++++++++++++++++++++++++++++ src/model/orca/farm/farm-types.ts | 2 + src/model/orca/farm/orca-farm.ts | 17 ++++++ src/public/farms/types.ts | 5 ++ 4 files changed, 114 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 2abb09d..72d11dd 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -9,6 +9,7 @@ export const solUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("85HrPbJtrN82aeB74WTwoFxcNgmf5aDNP2ENngbDpd5G"), farmTokenMint: new PublicKey("FFdjrSvNALfdgxANNpt3x85WpeVMdQSH5SEP2poM8fcK"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9"), baseTokenDecimals: 6, }); @@ -17,6 +18,7 @@ export const solUsdtAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("4RRRJkscV2DmwJUxTQgRdYock75GfwYJn7LTxy9rGTmY"), farmTokenMint: new PublicKey("71vZ7Jvu8fTyFzpX399dmoSovoz24rVbipLrRn2wBNzW"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("FZthQCuYHhcfiDma7QrX7buDHwrZEd7vL8SjS6LQa3Tx"), baseTokenDecimals: 6, }); @@ -25,6 +27,7 @@ export const ethSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("3ARgavt1NhqLmJWj3wAJy6XBarG6pJbEKRv1wzzRbbaN"), farmTokenMint: new PublicKey("CGFTRh4jKLPbS9r4hZtbDfaRuC7qcA8rZpbLnVTzJBer"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("71FymgN2ZUf7VvVTLE8jYEnjP3jSK1Frp2XT1nHs8Hob"), baseTokenDecimals: 6, }); @@ -33,6 +36,7 @@ export const ethUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("FpezTR76RRjgpBb9HhR6ap8BgQfkHyNMQSqJDcoXpjAb"), farmTokenMint: new PublicKey("HDP2AYFmvLz6sWpoSuNS62JjvW4HjMKp7doXucqpWN56"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("3e1W6Aqcbuk2DfHUwRiRcyzpyYRRjg6yhZZcyEARydUX"), baseTokenDecimals: 6, }); @@ -41,6 +45,7 @@ export const raySolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("B1aByG1fU5yUgQT2EtJrp96SC4tJhnipzdXqHx2CXRgj"), farmTokenMint: new PublicKey("AUkn5f4N4TqPA5BiWirTDHWnG3SePfmeDpDqrFmhSgKb"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("5kimD5W6yJpHRHCyPtnEyDsQRdiiJKivu5AqN3si82Jc"), baseTokenDecimals: 6, }); @@ -49,6 +54,7 @@ export const ropeSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("NFsHa28zxuLnncHme7iLx8TXWV8ypyxPvEPaQh29zDh"), farmTokenMint: new PublicKey("xpPyQwQ1HXHyEpvFGyTQRLY6rmj6jtAdEgLMV5uoz4m"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("ADrvfPBsRcJfGsN6Bs385zYddH52nuM5FA8UaAkX9o2V"), baseTokenDecimals: 6, }); @@ -57,6 +63,7 @@ export const stepSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("DGtiR1LWNPGV9A5byh7EjAoh9NC2cW5YDcmxCpUJosD2"), farmTokenMint: new PublicKey("GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("8nTzqDXHriG2CXKbybeuEh1EqDQMtrbYMFWcP7AkiDaP"), baseTokenDecimals: 6, }); @@ -65,6 +72,7 @@ export const srmSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5CQVdPpaW95X1atyfqunZf7eBE1rhQBXMfgJ1wRVF1p1"), farmTokenMint: new PublicKey("D659zwnbeTgquChbaWC3KDHrkYoqMuz1doGLHTFaqTtD"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("9tf8rBSEQYG7AqL896fN2nZi1iYPqpWaLEdpbeQaC1Vy"), baseTokenDecimals: 6, }); @@ -73,6 +81,7 @@ export const fttSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("GzZE2CEemaTGNtRSYs9sArAJFuJi5kwsPJFyz5puYhsj"), farmTokenMint: new PublicKey("9r9BcPwCon96P5Y6JSdRAog7Uknz9p9GrnuHm4VzuB9k"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("EsYaDKJCmcJtJHFuJYwQZwqohvVMCrFzcg8yo3i328No"), baseTokenDecimals: 6, }); @@ -81,6 +90,7 @@ export const copeSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("CXYEVaqtDs4R9Bpeu4xYf8KT8S6nYis6VWkDEh9Mu1FS"), farmTokenMint: new PublicKey("7CT19h7n2YBKiCFCaxXqMM79jNM4cmUvjXhNMjJNRYa"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("CzieDbGRdN1QGaGDNpSqzEA18bi881ccvkkGZi51pe1k"), baseTokenDecimals: 6, }); @@ -89,6 +99,7 @@ export const oxySolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("ALmRst1DksKXVfY64KXq7pJUUG5PP56kwY18ijVDGAsz"), farmTokenMint: new PublicKey("G48RkwsNYd3A4rBfuQhCswr9YUE63fFmZGyhgH95dq3S"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("7tYCdLN84EnTMkxM7HNamWJx7F4xgKe9KiiWvLyWjbgT"), baseTokenDecimals: 6, }); @@ -97,6 +108,7 @@ export const btcSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("EeG5AAnFS56AveUrKexzivQeUdWhm6zYq6ubn6fLMCQa"), farmTokenMint: new PublicKey("GxmjQZvgwNCh3QSRNB8CPED81hzySem62PDDuMp4B379"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("Acxs19v6eUMTEfdvkvWkRB4bwFCHm3XV9jABCy7c1mXe"), baseTokenDecimals: 6, }); @@ -105,6 +117,7 @@ export const merSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("8gJggSfM35JpfvXmEsuJoHPLB8D6br15MEWEWdQF81d6"), farmTokenMint: new PublicKey("CrKVRnH6iGbFXxEnXMn3Emwv3Fe7VwxEqpA8zNbwsgkH"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("HiwRobjfHZ4zsPtqCC4oBS24pSmy4t8GGkXRbQj4yU6L"), baseTokenDecimals: 6, }); @@ -113,6 +126,7 @@ export const fidaSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("4X3U1tpfiwQ5zPPd4oQSPcu3UK7nMSUWyAXxCmcSA6qP"), farmTokenMint: new PublicKey("4geGcEfgVjzJGZAaT8iTicPm1XLDPjdSpVhtA99sZ7jX"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("EYsNdtyu4gGTaGz8N5m5iQ3G1N6rDyMbR72B3CqbWW4W"), baseTokenDecimals: 6, }); @@ -121,6 +135,7 @@ export const mapsSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("Gobr8FhZDtn8yxkFQDND3KmfuwZseWEuyZ3xpD56hk1i"), farmTokenMint: new PublicKey("7Dy84zJNHzEM9335BrtFjCuunt2VgxJ7KBT6PJarxKMq"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("99pfC8fWymXgbq3CvrExhx3UxQDC1fMWEWLbNT83F45e"), baseTokenDecimals: 6, }); @@ -129,6 +144,7 @@ export const usdcUsdtAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5psKJrxWnPmoAbCxk3An2CGh7wHAX2cWddf5vZuYbbVw"), farmTokenMint: new PublicKey("GjpXgKwn4VW4J2pZdS3dovM58hiXWLJtopTfqG83zY2f"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("H2uzgruPvonVpCRhwwdukcpXK8TG17swFNzYFr2rtPxy"), baseTokenDecimals: 6, }); @@ -137,6 +153,7 @@ export const orcaSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("F6pi7SyXWx56fP96mYQ4Yfh4yZ7oGNtDjwSYHT5Mz7Ld"), farmTokenMint: new PublicKey("B5waaKnsmtqFawPspUwcuy1cRjAC7u2LrHSwxPSxK4sZ"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("2uVjAuRXavpM6h1scGQaxqb6HVaNRn6T2X7HHXTabz25"), baseTokenDecimals: 6, }); @@ -145,6 +162,7 @@ export const orcaUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("9S1BsxbDNQXQccjFamVEGgxiYQHTeudvhEYwFr4oWeaf"), farmTokenMint: new PublicKey("Gc7W5U66iuHQcC1cQyeX9hxkPF2QUVJPTf1NWbW8fNrt"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("n8Mpu28RjeYD7oUX3LG1tPxzhRZh3YYLRSHcHRdS3Zx"), baseTokenDecimals: 6, }); @@ -153,6 +171,7 @@ export const kinSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("9XTA3t3X8KaeLgkv7XuDWATo4oDwBnTZqjnSPcE5ijYK"), farmTokenMint: new PublicKey("7Ho3ht7krdFELBcPAsGXFfQMyG4PUvYSfpz4aNBRP3Ek"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("HEvnD66WcBfTajS9adUYnGRBMDehFtLySiFHSD6kEBWs"), baseTokenDecimals: 6, }); @@ -161,6 +180,7 @@ export const samoSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("98EDd1L47pdW1F7ne82dyFXpfhVdEcrCqUF1dYrWLFZi"), farmTokenMint: new PublicKey("CNf8gZtLahBWxKe3YwsqywLHMTewGqvq6pJ5ecg3cTYU"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("D6N9j8F2DhtzDtrdpT74y3u2YmYAzcggiLc3nTjqux9M"), baseTokenDecimals: 6, }); @@ -169,6 +189,7 @@ export const liqUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("z2WHNcBJTZqbK5wCuBPtswEq2614T6si1cJmog7vFAL"), farmTokenMint: new PublicKey("57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("3PD9SZFwXKkXr4akLf4ofo37ZUMycwML89R2P3qxcbZG"), baseTokenDecimals: 6, }); @@ -177,6 +198,7 @@ export const snyUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("7qAQZxYQRcmHmz3Wi9NeieujwLSd3N41M4dJipgSCNsB"), farmTokenMint: new PublicKey("6Qw5Gzf1TkM3YRe7Dh6yMVMo2wnJxRiCUBP8abTTn9Yg"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("AZpo4BJHHRetF96v6SGinFZBMXM4yWMo4RA8C4PriDLk"), baseTokenDecimals: 6, }); @@ -185,6 +207,7 @@ export const msolUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("EvtMzreDMq1U8ytV5fEmfoWNfPhrjZ87za835GuRvZCc"), farmTokenMint: new PublicKey("5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("8PSfyiTVwPb6Rr2iZ8F3kNpbg65BCfJM9v8LfB916r44"), baseTokenDecimals: 6, }); @@ -193,6 +216,7 @@ export const slrsUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5XXw91d4HoLjqhUhXmUcdkCDtQyXvQkLJMUcYJkKn5Dx"), farmTokenMint: new PublicKey("66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("AtB4nUmdyQfuWWJ9xAHw9xyVnJFfSjSuVWkiYan8y86w"), baseTokenDecimals: 6, }); @@ -201,6 +225,7 @@ export const portUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("FpEb4eEqhnPBAA2RNvsSe8baCoev4mSNQjxKPGvx5Gjv"), farmTokenMint: new PublicKey("4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w"), baseTokenDecimals: 6, }); @@ -209,6 +234,7 @@ export const sbrUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("EWRNKpLc4Y8r6Aur9mo8GtBYatqfoML9A7bfEmDv2JD4"), farmTokenMint: new PublicKey("Cum6sRPGpWYQHZapekDtMhbZ1BQ2QkYv9PAwQjypxMVo"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo"), baseTokenDecimals: 6, }); @@ -217,6 +243,7 @@ export const scnsolUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5MzBKRo6YqK1BKBz67sXd42jrb6gYzBuX6R5F8ywC33e"), farmTokenMint: new PublicKey("7YFfqZGTxkj3Zeq3Et23kMznCaEYZ1WBZDt6CVrxwfqd"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB"), baseTokenDecimals: 6, }); @@ -225,6 +252,7 @@ export const psolUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("4TK569s8SLgzmEcihyhrH8GmqFsufjZqsvHs8zrPEZYP"), farmTokenMint: new PublicKey("8kWk6CuCAfaxhWQZvQva6qkB1DkWNHq9LRKKN6n9joUG"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1"), baseTokenDecimals: 6, }); @@ -233,6 +261,7 @@ export const msolSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("JADWjBW1Xs8WhW8kj3GTCRQn3LR4gwvbFTEMwv9ZNxQh"), farmTokenMint: new PublicKey("3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R"), baseTokenDecimals: 6, }); @@ -241,6 +270,7 @@ export const orcaPaiAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("8KBSXu7zFjvbVXiwf1opGNBx3evVwdpaYHWR3uc4HVR6"), farmTokenMint: new PublicKey("4aEi4A91hRbERJVDYxRWbbSrBrsxoM1Hm33KRoRzWMht"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb"), baseTokenDecimals: 6, }); @@ -249,6 +279,7 @@ export const orcaMsolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("7EVKT4iqfjiyzeVrafs23JrfhSoLd6XTanVuENNvisq7"), farmTokenMint: new PublicKey("3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA"), baseTokenDecimals: 6, }); @@ -257,6 +288,7 @@ export const scnsolSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5cE7V9D13k1P1qC23g5vcQEMsvrDzL5yFHhiesVUyn93"), farmTokenMint: new PublicKey("CNqmEKGjZUUARVFHcz4w9CvX5pR8Ae2c6imHDNqsbxgj"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc"), baseTokenDecimals: 6, }); @@ -265,6 +297,7 @@ export const atlasUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("G92aJeZBCFiECwrKSQsbobfykh6cNLCf5Pd3zkiLjGLe"), farmTokenMint: new PublicKey("HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ"), baseTokenDecimals: 6, }); @@ -273,6 +306,7 @@ export const polisUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5NkDw3LcFscf5WSxUiquNregP6RaP79Y2pN1jyUYepzc"), farmTokenMint: new PublicKey("63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy"), baseTokenDecimals: 6, }); @@ -281,6 +315,7 @@ export const bopUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("4bmbPAxrf5NLAD6A5fkhKhmuffdGScpu9Ei39YEaPATQ"), farmTokenMint: new PublicKey("A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu"), baseTokenDecimals: 6, }); @@ -289,6 +324,7 @@ export const samoUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("F5ZvDWRVpQP5A17RFogL4dE7gZ2Uda7ZqKUy3DWJDEFx"), farmTokenMint: new PublicKey("9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("6VK1ksrmYGMBWUUZfygGF8tHRGpNxQEWv8pfvzQHdyyc"), baseTokenDecimals: 6, }); @@ -297,6 +333,7 @@ export const ninjaSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("B8Q8e1hdCw6fhnSKmsMCrsDbvSNLZyzHjnPpwZKBkcSB"), farmTokenMint: new PublicKey("7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("4X1oYoFWYtLebk51zuh889r1WFLe8Z9qWApj87hQMfML"), baseTokenDecimals: 6, }); @@ -305,6 +342,7 @@ export const slimUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("3muHEhQLmt7jmaicMHqe6LqXrrfFtqEuAfBog2fAXhRm"), farmTokenMint: new PublicKey("3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("BVWwyiHVHZQMPHsiW7dZH7bnBVKmbxdeEjWqVRciHCyo"), baseTokenDecimals: 6, }); @@ -313,6 +351,7 @@ export const whapiUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("r2MxTnFdnP7ECMxH7F4mcg1p3CowwhPmDmYoZ1syKZh"), farmTokenMint: new PublicKey("Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("ELfBngAgvLEHVBuJQhhE7AW6eqLX7id2sfrBngVNVAUW"), baseTokenDecimals: 6, }); @@ -321,6 +360,7 @@ export const copeUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("xigyMM8txxzpvjRw3Z1tX9euUshtqeHucW6K3f81KNQ"), farmTokenMint: new PublicKey("9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("HsauTv9s52Zv12eaDuSp6y7BEm4e4BHEyAsbdjyyWzPK"), baseTokenDecimals: 6, }); @@ -329,6 +369,7 @@ export const sunnyUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("Nw3caGfeqM8xQZ45iAf5zWmPMQux5wMWMjxsKEfnNk4"), farmTokenMint: new PublicKey("9HPn1oREyNA7CEK7B1xwmBmVH6qtQaSfLBXc1JyRsdUE"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("GHuoeq9UnFBsBhMwH43eL3RWX5XVXbSRYJymmyMYpT7n"), baseTokenDecimals: 6, }); @@ -337,6 +378,7 @@ export const grapeUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("6eeK7PHkUXJ9t2qgdrHfbZfmU5S7zWZwpDw6i46Rf1jU"), farmTokenMint: new PublicKey("97q89hnoKwqcynvwXcj83YqfqUBuCm4A8f2zHeV6bfZg"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("EorFh8siFyLF1QTZ7cCXQaPGqyo7eb4SAgKtRH8Jcxjd"), baseTokenDecimals: 6, }); @@ -345,6 +387,7 @@ export const abrUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("PyzV3qSzbj98ArVpASj2LQg6zCq6zfAixqUtYDafnRU"), farmTokenMint: new PublicKey("5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("GMzPbaCuQmeMUm1opH3oSCgKUjVgJUW14myq99RVPGX5"), baseTokenDecimals: 6, }); @@ -353,6 +396,7 @@ export const kuroUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("6bHkoSxnK3aKW3PyG34dUz1naD6T3Pc7143s41nSuuzN"), farmTokenMint: new PublicKey("6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("DRknxb4ZFxXUTG6UJ5HupNHG1SmvBSCPzsZ1o9gAhyBi"), baseTokenDecimals: 6, }); @@ -361,6 +405,7 @@ export const mediaUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("jCGam3ptTrFKhCwBGYUcqtrvt8pY4uWXaPoqC9E7uXB"), farmTokenMint: new PublicKey("3pMYToENTB7jKrJiUPq19FCZCWE35Ph7bkRRMN6kxDXK"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("2toFgkQDoPrTJYGDEVoCasPXuL9uQnjvXJaDwa9LHyTx"), baseTokenDecimals: 6, }); @@ -369,6 +414,7 @@ export const tulipUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("AEemiZ28JTnz3xmj6LSfXruK1et317ZAGY5KCrKdXNCX"), farmTokenMint: new PublicKey("2KYUwdRbVtaMUgHp1a6NuTomyCb33FxoZ4fkeVdwjaJA"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("4SBx8GXu8HhcVHWydQv1vsDdZs3G93XSL9CtMBny6hS5"), baseTokenDecimals: 6, }); @@ -377,6 +423,7 @@ export const mngoUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("2LM1Y428kPtLAsxcdxv2iKWaPxobt9poD2DAjeGpN6TC"), farmTokenMint: new PublicKey("CxhcLZtbhfkwjAZ956SEkGxkAvMVQH3hfKTjKpgTV9Q5"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("H9yC7jDng974WwcU4kTGs7BKf7nBNswpdsP5bzbdXjib"), baseTokenDecimals: 6, }); @@ -385,6 +432,7 @@ export const stsolWstethAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("6eW2skHuzMxxPZjzE7x5fxtn3ZZ1Ak2SawrMH9T5KANp"), farmTokenMint: new PublicKey("3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("Eswigpwm3xsipkTqahGi2PEJsJcULQBwZgxhQpr6yBEa"), baseTokenDecimals: 6, }); @@ -393,6 +441,7 @@ export const sypUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("7GDHcUdLhHxCHeQccpbJr3eNGzQvnoMdLBzkVNYvQgkh"), farmTokenMint: new PublicKey("Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("qJxKN9BhxbYvRNbjfK2uAVWboto6sonj8XC1ZEW5XTB"), baseTokenDecimals: 6, }); @@ -401,6 +450,7 @@ export const stsolWldoAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("DMECkFUnVp1esox6Yyyfc7vJeN7spUHd5JypAWqEqCRC"), farmTokenMint: new PublicKey("DQsbebdNDy8yQrwLTpieckhzi7Ewx9LoCPVf7G9KvY2U"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("74B9aMS7SA832xKngt5VLKmWAP3pa3qkUzWncTmQSsGF"), baseTokenDecimals: 6, }); @@ -409,6 +459,7 @@ export const whethSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("BerS3SE5G6FqZER7L7G3BhUJBrZ7BpizmuQRH9LMEYQw"), farmTokenMint: new PublicKey("FkHQBBZGh5GS4GcXpcVksKYUUkLTNn6Yk1PCMxucR2AK"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("7aYnrdmdCRodDy2Czn6keUquUhjF1jPEmfwZPh488z8U"), baseTokenDecimals: 6, }); @@ -417,6 +468,7 @@ export const whethUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("GdQyNtN9rQWzpcm7mQMNBiXyeKRjjQoobh2waVQq5QyP"), farmTokenMint: new PublicKey("B11Xp26xU2gzjToJEuGswvr6Jtidfh4GRUyCWzWMNdQZ"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("7NPtjjAP7vhp4t5NCLyY4DY5rurvyc8cgZ2a2rYabRia"), baseTokenDecimals: 6, }); @@ -425,6 +477,7 @@ export const mndeMsolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("5wr7m4YrJB38vuz3xyLqvq2DwLCcDkEDH5X97chKpH4T"), farmTokenMint: new PublicKey("2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("5PHS5w6hQwFNnLz1jJFe7TVTxSQ98cDYC3akmiAoFMXs"), baseTokenDecimals: 6, }); @@ -433,6 +486,7 @@ export const wagUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("4GWmnvMg7EGQZ6LeQtK6rbJrtTTVsQHj2ivwm4vm8mnR"), farmTokenMint: new PublicKey("8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("Df6XNHMF3uRVZnz7LCEGiZVax6rXgz76owtVkBHEjSb6"), baseTokenDecimals: 6, }); @@ -441,6 +495,7 @@ export const msolUsdtAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("HULY26UFdfVkc2STTt1KREd57BwFV2md1tqdk253QyiK"), farmTokenMint: new PublicKey("Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("9cMWe4UYRPGAUUsTkjShJWVM7bk8DUBgxtwwH8asFJoV"), baseTokenDecimals: 6, }); @@ -449,6 +504,7 @@ export const msolWhethAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("D4Pmc82b9W1UDAqYNNNMGG7UYxBaZckf97AYExGbUK95"), farmTokenMint: new PublicKey("58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("5qoTq3qC4U7vFxo3iCzbXcaD1UEmDeCD63Dsuoct71oV"), baseTokenDecimals: 6, }); @@ -457,6 +513,7 @@ export const btcMsolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("GBrpFtiTabs14mc4Hi1RX9YiQY7res6JxrVfMTADfcQV"), farmTokenMint: new PublicKey("DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("8nKJ4z9FSw6wrVZKASqBiS9DS1CiNsRnqwCCKVQjqdkB"), baseTokenDecimals: 6, }); @@ -465,6 +522,7 @@ export const ivnSolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("FwzqbJZQiL3qzMx88r2o3CNKFxztuW3JC45YYk6ghMLR"), farmTokenMint: new PublicKey("HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("DfgCnzaiTXfPkAH1C1Z441b5MzjjTCEh134ioxqRZxYf"), baseTokenDecimals: 6, }); @@ -473,6 +531,7 @@ export const larixUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("HeAQxAGBQdGURFFcLpdPagQ2vb66kXFTVxDfTjme8eGo"), farmTokenMint: new PublicKey("DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("8sfThep3io4gvcGeuoAg1Rs8GDwKJjtcdAFHqQSSNAVE"), baseTokenDecimals: 6, }); @@ -481,6 +540,7 @@ export const prtUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("9dCsoLdfkpYw1s7TMNE1HZPNmVSNDZrUkUHfxn2p8675"), farmTokenMint: new PublicKey("2cYMt26745oFc7PadaQn8Vv3xFUxWBfbip2NyJeVG35F"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("6jCERp5hKj37PCXP3VTjCDJeoPuSpnMDMz5A6jWQv3yS"), baseTokenDecimals: 6, }); @@ -489,6 +549,7 @@ export const jetUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("BKdPQziyuKmXwZeVuo8Uj7usfUYpwSfnGBDbG96y266V"), farmTokenMint: new PublicKey("4DjiLEKADWjYmiY9gzFnu5xews5oCTMRByWHWEzDa3bj"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("GBijunwxa4Ni3JmYC6q6zgaVhSUJU6hVX5qTyJDRpNTc"), baseTokenDecimals: 6, }); @@ -497,6 +558,7 @@ export const stsolUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("2P7FGV8XNXUkEAG6q5LbhfoBFkHJ7PDAjYqmAbwnVHBF"), farmTokenMint: new PublicKey("3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("GtQ1NT7R5aaTiST7K6ZWdMhwDdFxsSFvVFhBo8vyHGAq"), baseTokenDecimals: 6, }); @@ -505,6 +567,7 @@ export const wstethUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("2FAzkAgm8EpE7WpWUsEcNyj4kcVeCX2L8SR1BicGWEx9"), farmTokenMint: new PublicKey("ojpWEdNYa5nGviUc8k8M2XLjHuaCL2EgHFdvTtdkXA1"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5"), baseTokenDecimals: 6, }); @@ -513,6 +576,7 @@ export const auryUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("FvkyNXLizY4FCNkgbGpr1WA3z4A8iTRU4rPnnNJC3q2V"), farmTokenMint: new PublicKey("7s7Veo1P8ZRy6z5MCvoAmg2kPFcQnq2Grt6yewWS8LbQ"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh"), baseTokenDecimals: 6, }); @@ -521,6 +585,7 @@ export const avaxUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("GkmPgsKU9uYaZtKfzjWeJjBSvX8mkK8gNqoWMYBdcvUx"), farmTokenMint: new PublicKey("5mZydNG1fBPTXzgp9SoS7Jny6EmSzBPTPrFbB1ttGnvx"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz"), baseTokenDecimals: 6, }); @@ -529,6 +594,7 @@ export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), rewardTokenMint: new PublicKey("4wjPQJ6PrkC4dHhYghwJzGBVP78DkBzA2U3kHoFNBuhj"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT"), baseTokenDecimals: 6, }); @@ -537,6 +603,7 @@ export const stepSolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("FmHGpt2scyJ8NuDuknnzQ7jectLyRRQmTyXxu5tRoD2j"), farmTokenMint: new PublicKey("Gs1fM7EFS1rXkxhqs4mwu9uvSkupNzZgRbHGxG2NGRh7"), rewardTokenMint: new PublicKey("StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL"), baseTokenDecimals: 6, }); @@ -545,6 +612,7 @@ export const slrsUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("8JkTAVHXChDPzsNkcJYRJ69mXN5nCcyb1qVBmbVhCH1n"), farmTokenMint: new PublicKey("F3rWkGAtdjWcU1rr16Wq4YPTgFdsyb1oS1xdy5tr9K1r"), rewardTokenMint: new PublicKey("SLRSSpSLUTP7okbCUBYStWCo1vUgyt775faPqz8HUMr"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7"), baseTokenDecimals: 6, }); @@ -553,6 +621,7 @@ export const portUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("C8k63XU8xzzvBpSraYWjHCNzvprjYKDadAML3MWSFbxW"), farmTokenMint: new PublicKey("Zm2dmUuuBicmvHxGAnAzaohZR2Y86gXEV2WMfo8AoCa"), rewardTokenMint: new PublicKey("PoRTjZMPXb9T7dyU7tpLEZRQj7e6ssfAE62j2oQuc6y"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("4CGxvZdwiZgVMLXiTdJHTkJRUTpTSJCtmtCRbSkAxerE"), baseTokenDecimals: 6, }); @@ -561,6 +630,7 @@ export const copeUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("HW21NT7v6ViM2Cs3S2tVgUnawACF8JRRwd2AA41a8HUh"), farmTokenMint: new PublicKey("AtcMEt9caZxpunQV99pxED2rhpQmaDykBreEqBsYU11v"), rewardTokenMint: new PublicKey("8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("9SDpBrfqNxjXcCzpKWM6yUKdfky975VJBD6xcu5cKf5s"), baseTokenDecimals: 6, }); @@ -569,6 +639,7 @@ export const bopUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("GYipJSPD7zcDoEABRCZfDSqh7zqYMmjyP8dNKEUnW1iC"), farmTokenMint: new PublicKey("CjGUbKiH1QmFFjMqhAbJn4DrbjgBWUhQHV4LuzrgpFqi"), rewardTokenMint: new PublicKey("BLwTnYKqf7u4qjgZrrsKeNs2EzWkMLqVCu6j8iHyrNA3"), + rewardTokenDecimals: 8, baseTokenMint: new PublicKey("A7vvbqENJj8kED3ABjphe8TvwpasQYtoWGKpjpLArMxa"), baseTokenDecimals: 6, }); @@ -577,6 +648,7 @@ export const samoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("8VJT2SYGXgvQ8jYvh1Cq6mg83gkAVuTY3cHiULUy6Cit"), farmTokenMint: new PublicKey("EdfAy8jwnvU1z61UaFUjwoRPFgD3UkkPvnhEBZjzwhv8"), rewardTokenMint: new PublicKey("7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("9voVuTq1S9bFZkF2Jo44HoVG63w2xDRT8eBzB23YbQud"), baseTokenDecimals: 6, }); @@ -585,6 +657,7 @@ export const whapiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("GFFQdLWvbWzrZBQrPQVyzGQfd6SWuZaiRwmkKA2bJPeY"), farmTokenMint: new PublicKey("41VBoy8SGJzQnWGcxiBL4yM6H68FiPp74aMvsZGNGCbt"), rewardTokenMint: new PublicKey("6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("Bfoi3RNnfdP5VeRGqvTA8MRN9ePGJoZgeKfe8WeBHUxE"), baseTokenDecimals: 6, }); @@ -593,6 +666,7 @@ export const slimUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("3RsBqqz9MiXa1uhFFd6tpGVQ66ptkFPCBAUyqLAXeCTE"), farmTokenMint: new PublicKey("HhDk3ySWkVbMZjgBsFSnLtAeudDCrfZ6DNSRgxh2oRUp"), rewardTokenMint: new PublicKey("xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("3K7aZhtwWJ2JS6GnbbgeDVnxd1q2hwhqasmgRsAMZ4yC"), baseTokenDecimals: 6, }); @@ -601,6 +675,7 @@ export const ninjaSolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("HPeAGzDEhYUNm4z4aV2PTjVjbESnNg6jBy6LtFjFJzQj"), farmTokenMint: new PublicKey("Db7mPGrZbswvFmJ7MgZsM6CFhnXHMnrUDqr2hrzmi7Re"), rewardTokenMint: new PublicKey("FgX1WD9WzMU3yLwXaFSarPfkgzjLb2DZCqmkx9ExpuvJ"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("7YyhptkxY81HPzFVfyCzA5UXxWdsNRD41ofLva3TuSpd"), baseTokenDecimals: 6, }); @@ -609,6 +684,7 @@ export const atlasUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("DTP1xr4EzFf1YDu4CeWTtWVsCBzFPk4HDEsL3AzoR3kB"), farmTokenMint: new PublicKey("894ptAFT7d3inPsWTniCGL2NZpJDiXGvFZFfuHXA1w8F"), rewardTokenMint: new PublicKey("ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx"), + rewardTokenDecimals: 8, baseTokenMint: new PublicKey("HFmY1ggCsCky1zJ1sfdkNR4zb3u5n38YNRdf4vsGu17t"), baseTokenDecimals: 6, }); @@ -617,6 +693,7 @@ export const polisUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("7h1zAHj2xzEw3eKfprYqG36aN5XwcZXBsYwM2haWQVzR"), farmTokenMint: new PublicKey("FE1QJzi5RA5aKnTfSV3DAMN3z4uHUzSR5Z4drs9S5vB"), rewardTokenMint: new PublicKey("poLisWXnNRwC6oBu1vHiuKQzFjGL4XDSu4g9qjz9qVk"), + rewardTokenDecimals: 8, baseTokenMint: new PublicKey("63JUKLnCAuNMPSPioEgbjjzp9Qk8qSEEM8eZqEtPqfLU"), baseTokenDecimals: 6, }); @@ -625,6 +702,7 @@ export const abrUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("98htZRc2QNd8BS9GGHoxkySZ9BiL9MAgHLEQfxzXYKk6"), farmTokenMint: new PublicKey("7bp7psdaC3DVc86Hmdz5tAMEjgPjmCzgFEVALfqBwMmz"), rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("5uR5STASUmoGVHzqMeut98t26TfVkQqWU9f9dsv3NfJ6"), baseTokenDecimals: 6, }); @@ -633,6 +711,7 @@ export const kuroUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("BK3VXXDA4KxVurHbP3yPytGWp1HifbBtB4ugpzfDeq4v"), farmTokenMint: new PublicKey("88RCQs9VFvqPjsRe3PKNzBeMtzCS9oS1a1CJuAnGnLZJ"), rewardTokenMint: new PublicKey("2Kc38rfQ49DFaKHQaWbijkE7fcymUMLY5guUiUsDmFfn"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("6PGoaQdL9e463hdaFxHXsuPcjCHRK32CQ9PFKxvM7XY2"), baseTokenDecimals: 6, }); @@ -641,6 +720,7 @@ export const msolUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("5fhDMuGKRDPWVWXf7BBEwifRFrp6XwXctDQoG7UHGVt6"), farmTokenMint: new PublicKey("9y3QYM5mcaB8tU7oXRzAQnzHVa75P8riDuPievLp64cY"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("5r3vDsNTGXXb9cGQfqyNuYD2bjhRPymGJBfDmKosR9Ev"), baseTokenDecimals: 6, }); @@ -649,6 +729,7 @@ export const orcaMsolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("41ZYSekqDNtJ1BdGkTZVR1CJfBiFrud6HcT3HVUdSyWN"), farmTokenMint: new PublicKey("876yhw4J4GHyynNJUtARYEnWGaejhrWC7Hy3DAm1pZxi"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("3Duk5b6fLztPmS4ryV48FM1Q9WXUSMwz9jehAT4UtqpE"), baseTokenDecimals: 6, }); @@ -657,6 +738,7 @@ export const msolSolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("2SciNw7cEsKJc1PMRDzWCcEzvuScmEaUgmrJXCi9UFxY"), farmTokenMint: new PublicKey("576ABEdvLG1iFU3bLC8AMJ3mo5LhfgPPhMtTeVAGG6u7"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("3RTGL7gPF4V1ns1AeGFApT7cBEGVDfmJ77DqQi9AC6uG"), baseTokenDecimals: 6, }); @@ -665,6 +747,7 @@ export const stsolWstethDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("EmWtmApj1PtJMgMfzbYMmnmtuwfcBy7es3Tg2AR8xfW6"), farmTokenMint: new PublicKey("5WXyG6zL1HmESPCSHHKBtqLuRPZCNgd9mTB25op87FkU"), rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, baseTokenMint: new PublicKey("3kT3oYuS1rCfhmqfgy6EKcbZdaJimaVEjoy25QiuEaoj"), baseTokenDecimals: 6, }); @@ -673,6 +756,7 @@ export const sypUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("gpy1dZRbPbLZ2KNr4wd2r9zoxERbWV8gWTqTL47KNnh"), farmTokenMint: new PublicKey("BpHfwFwJwkZKWY5xVMC3oifMvWRy42R4VE1vPeBzg2G1"), rewardTokenMint: new PublicKey("FnKE9n6aGjQoNWRBZXy4RW6LZVao7qwBonUbiD7edUmZ"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("Ds4VGZhZzS2PMFzhzKeC3mwcQjdiCG21R76fTVbsSJyJ"), baseTokenDecimals: 6, }); @@ -681,6 +765,7 @@ export const mndeMsolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("C9AfeUkti1ykMTebw9N1WoiEhNqwNiXinfXBwuLUv1BT"), farmTokenMint: new PublicKey("2FMpVEhvxiFxhfideFUMNxCoUZK3TfhezzajoHGTQKP2"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("2wPsMuzhEsC6GhV3qtFpmJF6atEgLGbnmQ8U43Y6fPxZ"), baseTokenDecimals: 6, }); @@ -689,6 +774,7 @@ export const msolUsdtDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("FNV9pGMWTYSMq5dRhmjpRwHpDJKV6JD4HTKsqZndKvuY"), farmTokenMint: new PublicKey("7iKG16aukdXXw43MowbfrGqXhAoYe51iVR9u2Nf2dCEY"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("Afvh7TWfcT1E9eEEWJk17fPjnqk36hreTJJK5g3s4fm8"), baseTokenDecimals: 6, }); @@ -697,6 +783,7 @@ export const msolWhethDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("D6oqo3F2KkJcePDoNZfbb8F7SPnRhP7WCC9FNktzVCDT"), farmTokenMint: new PublicKey("3kFeVJUxhQS7PE7vV8pt9bhTCQrUDqeGf6AU4sjkLzVt"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("58nifjPjF3CutGz2xMxvAMk7R9YgbVEc8Cstj4rCcs8j"), baseTokenDecimals: 6, }); @@ -705,6 +792,7 @@ export const btcMsolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("Cn7QNyosNQ8DyKEeMDPmtg66R7vKMXigcQ561kTkFD8E"), farmTokenMint: new PublicKey("6uA1ADUJbvwYJZpzUn9z9LuyKoRVngBKcQTKdXsSivA8"), rewardTokenMint: new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey"), + rewardTokenDecimals: 9, baseTokenMint: new PublicKey("DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r"), baseTokenDecimals: 6, }); @@ -713,6 +801,7 @@ export const ivnSolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("9DNgTpphCRXhkf8ySiSnf1L2CHwACZybgPNwsnLUdzfA"), farmTokenMint: new PublicKey("5X71f6zUnVYWSxWM8wf942pzWLv1ZtCDhGCYqZipYutD"), rewardTokenMint: new PublicKey("iVNcrNE9BRZBC9Aqf753iZiZfbszeAVUoikgT9yvr2a"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy"), baseTokenDecimals: 6, }); @@ -721,6 +810,7 @@ export const larixUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("GnFV3S7H6eM9V12EJwptv111VmV7W3AnEEfzdHJL25n7"), farmTokenMint: new PublicKey("Huy453KXTaWaA3AiJeqLrAWWSMwoGjFU8nsEi7GiPY7n"), rewardTokenMint: new PublicKey("Lrxqnh6ZHKbGy3dcrCED43nsoLkM1LTzU2jRfWe8qUC"), + rewardTokenDecimals: 6, baseTokenMint: new PublicKey("DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs"), baseTokenDecimals: 6, }); diff --git a/src/model/orca/farm/farm-types.ts b/src/model/orca/farm/farm-types.ts index eecf976..9c03399 100644 --- a/src/model/orca/farm/farm-types.ts +++ b/src/model/orca/farm/farm-types.ts @@ -5,6 +5,7 @@ import { PublicKey } from "@solana/web3.js"; * @param address The farm account address * @param farmTokenMint Mint address for the farm token * @param rewardTokenMint Mint address for the farm reward token + * @param rewardTokenDecimals Number of decimal places for the reward token * @param baseTokenMint Mint address for the base token * @param baseTokenDecimals Number of decimal places for the base token */ @@ -12,6 +13,7 @@ export type OrcaFarmParams = { address: PublicKey; farmTokenMint: PublicKey; rewardTokenMint: PublicKey; + rewardTokenDecimals: number; baseTokenMint: PublicKey; baseTokenDecimals: number; }; diff --git a/src/model/orca/farm/orca-farm.ts b/src/model/orca/farm/orca-farm.ts index 0fb3860..c738b1e 100644 --- a/src/model/orca/farm/orca-farm.ts +++ b/src/model/orca/farm/orca-farm.ts @@ -291,4 +291,21 @@ export class OrcaFarmImpl implements OrcaFarm { .addInstruction(harvestRewardInstruction) .build(); } + + public async getDailyEmissions(): Promise { + const { address, rewardTokenDecimals } = this.farmParams; + + const globalFarms = await fetchGlobalFarms(this.connection, [address], ORCA_FARM_ID); + + if (!globalFarms) { + throw new Error("Failed to get globalFarms information"); + } + + const value = new Decimal(globalFarms[0].emissionsPerSecondNumerator.toString()) + .mul(60 * 60 * 24) + .div(globalFarms[0].emissionsPerSecondDenominator.toString()) + .div(new Decimal(10).pow(rewardTokenDecimals)); + + return OrcaU64.fromDecimal(value, rewardTokenDecimals); + } } diff --git a/src/public/farms/types.ts b/src/public/farms/types.ts index 25fdb36..df5a8ce 100644 --- a/src/public/farms/types.ts +++ b/src/public/farms/types.ts @@ -74,4 +74,9 @@ export type OrcaFarm = { * @return The transaction signature of the harvest instruction */ harvest: (owner: Keypair | PublicKey) => Promise; + + /** + * Get amount of reward tokens emitted to all liquidity per day. + */ + getDailyEmissions: () => Promise; }; From eeeffd6dcfbf051a47146dd9615146a4be57325e Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 4 Nov 2021 10:41:17 +0000 Subject: [PATCH 17/81] Add new pools (#58) --- src/constants/farms.ts | 30 +++++++++++++++ src/constants/pools.ts | 78 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 7 ++++ src/public/farms/config.ts | 3 ++ src/public/pools/config.ts | 3 ++ 5 files changed, 121 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 72d11dd..f847d84 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -590,6 +590,33 @@ export const avaxUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const fttUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2FtSDVRmYq4x6NeTidpZVuLzgN2APzr3zHxpHx8zdgbr"), + farmTokenMint: new PublicKey("2AAzmhZ9Kh9mFcQtHJVTafu69tc5GCGpi6CTgafYta1S"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc"), + baseTokenDecimals: 6, +}); + +export const rayUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GCcVYpBCPcPjb11LeeoVhLNJQzS5GXEEd6Dmo5eejBTx"), + farmTokenMint: new PublicKey("9MaXcCERB4DzedPNSBwyHM2P6Yo6jCFLjnatuWCtR3WF"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD"), + baseTokenDecimals: 6, +}); + +export const slndUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5NrUSiG134QLY4JkmX82n4hdZQnmqsWMrBapQwfAtpeu"), + farmTokenMint: new PublicKey("GdySZb2nbeEjCLBg65veC5kzfMCfCWgtgqwH9YWDtDXr"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -885,6 +912,9 @@ export const orcaFarmConfigs: Record = { "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5": wstethUsdcAqFarm, "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh": auryUsdcAqFarm, Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz: avaxUsdcAqFarm, + FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc: fttUsdcAqFarm, + "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcAqFarm, + F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index c1432f3..562e5ea 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1635,6 +1635,81 @@ export const avaxUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const fttUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8npdwWX2BR39kcFLtTJABbcjNq7NWQvipfqxgsfk9mTX"), + nonce: 255, + authority: new PublicKey("8zU13KiLb1e87skt4rf8q1LhamEKKecyu6Xxb4Hqnm7e"), + poolTokenMint: new PublicKey("FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("C8D52rGuZcsBENhWtR9aqJVRU62cL7jyyEhxesKwc1k8"), + tokenIds: [Tokens.fttToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.fttToken.mint.toString()]: { + ...Tokens.fttToken, + addr: new PublicKey("SasuKsATA2ATrMfFfSJr86wAGVgdS69PkQT3jFASBB8"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("3wADiuUqoakdoYYYxKqwoA4VN3uWZy5UwvLePox1mEsK"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const rayUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2R2VhohRc5WoNHtRdwnjovAQaZRAmr1DE3QFW5jfgb6v"), + nonce: 252, + authority: new PublicKey("9B9ZcYT8jDQ6XLe6gRLDCFv1zz3uHVKdbZT9DFhsYSQW"), + poolTokenMint: new PublicKey("4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HURhvCRsrwwR5TiG75Hn274WwL76kaKgjgC6n9h4FEHj"), + tokenIds: [Tokens.rayToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.rayToken.mint.toString()]: { + ...Tokens.rayToken, + addr: new PublicKey("9ASj9zDg7cT6wtvn4euSUiZte8yN2U3Tn6cTVZvMHbU7"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HGTxSWbb62nxk4oGkLkHUvrEzR5D4GKYRb8ZDcA2dpki"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const slndUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GhosXH9yZPxqSyTHqJtXQt6w65YfiGjKXcEXciX1P3z8"), + nonce: 255, + authority: new PublicKey("ChmSHndtXRsYnFjYA2F7yRRsnyZ8kCpxSogTsCUgCEsh"), + poolTokenMint: new PublicKey("F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("GMipxN5pu6F6wwUrq6RhpqgcMjcKLTsnDTeNFCuUm5n7"), + tokenIds: [Tokens.slndToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.slndToken.mint.toString()]: { + ...Tokens.slndToken, + addr: new PublicKey("9RcdfprKxbTzp3erTJMwXKznNCLmbCUaKhibaTMXhToi"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("6wEh8r3Czc3nKkN6JXobShnLG7ZqA5Y5DREGzkirYR36"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1705,4 +1780,7 @@ export const orcaPoolConfigs: Record = { "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5": wstethUsdcPool, "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh": auryUsdcPool, Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz: avaxUsdcPool, + FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc: fttUsdcPool, + "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcPool, + F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 89df4df..33a1c75 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -243,6 +243,13 @@ export const slimToken: OrcaToken = Object.freeze({ scale: 6, }); +export const slndToken: OrcaToken = Object.freeze({ + tag: "SLND", + name: "Solend", + mint: new PublicKey("SLNDpmoWTVADgEdndyvWzroNL7zSi1dF9PC3xHGtPwp"), + scale: 6, +}); + export const slrsToken: OrcaToken = Object.freeze({ tag: "SLRS", name: "Solrise Finance", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index ba6bbfe..facf689 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -73,6 +73,9 @@ export enum OrcaFarmConfig { wstETH_USDC_AQ = "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5", AURY_USDC_AQ = "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh", AVAX_USDC_AQ = "Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz", + FTT_USDC_AQ = "FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc", + RAY_USDC_AQ = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", + SLND_USDC_AQ = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 2d6a9e8..fd75da0 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -73,4 +73,7 @@ export enum OrcaPoolConfig { wstETH_USDC = "5a6Y1ephcbKSoyLMQyD1JWbtqawCy8p2FtRL9v3zhaG5", AURY_USDC = "6mJqqT5TMgveDvxzBt3hrjGkPV5VAj7tacxFCT3GebXh", AVAX_USDC = "Hmfrtmo93DpSDmVNLQKcBS5D1ia5JatiRSok9ososubz", + FTT_USDC = "FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc", + RAY_USDC = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", + SLND_USDC = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", } From 018fadaa6aa3f9dc58f4ebc66832c2cd977230cc Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 4 Nov 2021 10:41:59 +0000 Subject: [PATCH 18/81] Bump to 1.1.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 966b20d..4dadeb9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.10", + "version": "1.1.11", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From ad6409a048e821cc60fc4b1391b9cbf8fe76e208 Mon Sep 17 00:00:00 2001 From: Pierre Date: Fri, 5 Nov 2021 19:54:17 +1100 Subject: [PATCH 19/81] Batch get token count (#57) Co-authored-by: Arrowana <8245419+Arrowana@users.noreply.github.com> --- src/public/utils/web3/get-token-count.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/public/utils/web3/get-token-count.ts b/src/public/utils/web3/get-token-count.ts index 4c17e77..c934c75 100644 --- a/src/public/utils/web3/get-token-count.ts +++ b/src/public/utils/web3/get-token-count.ts @@ -23,10 +23,9 @@ export async function getTokenCount( throw new Error("Output token not part of pool"); } - // TODO: Batch request? - const accountInfos = await Promise.all([ - connection.getAccountInfo(inputPoolToken.addr), - connection.getAccountInfo(outputPoolToken.addr), + const accountInfos = await connection.getMultipleAccountsInfo([ + inputPoolToken.addr, + outputPoolToken.addr, ]); const tokens = accountInfos.map((info) => From bcee8c8a1a49f46b4dcc380198d32e439f4b7d12 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 5 Nov 2021 08:55:41 +0000 Subject: [PATCH 20/81] Bump to 1.1.12 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4dadeb9..dcfd777 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.11", + "version": "1.1.12", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 5866056b0b4c762cf24fb39184074a82fe3c958d Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 10 Nov 2021 15:03:33 +0000 Subject: [PATCH 21/81] Update pools (#60) --- src/constants/farms.ts | 20 ++++++++++++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 1 + 5 files changed, 56 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index f847d84..4dc7d91 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -617,6 +617,15 @@ export const slndUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const gofxUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GmyMx4JtRrkjmxNn4WQCmVNuLfwRjkAmCfMv2AXag5se"), + farmTokenMint: new PublicKey("B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -842,6 +851,15 @@ export const larixUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const gofxUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EVDvbsD5f1qz7FpVyknrzB3bLK86FHfqVbcH9WqpWZtK"), + farmTokenMint: new PublicKey("BzZ3mLyXEaGt1Na1zxfZYjRJBFDbDckurc2LDq46irUx"), + rewardTokenMint: new PublicKey("GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -915,6 +933,7 @@ export const orcaFarmConfigs: Record = { FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc: fttUsdcAqFarm, "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcAqFarm, F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcAqFarm, + "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE": gofxUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -940,4 +959,5 @@ export const orcaFarmConfigs: Record = { DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r: btcMsolDoubleDip, HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy: ivnSolDoubleDip, DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs: larixUsdcDoubleDip, + B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4: gofxUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 562e5ea..74ab8ee 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1710,6 +1710,31 @@ export const slndUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const gofxUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("C3b5AWQJiyar5g8EWu75zgDE26F55ZJWpqtFVCCVDQQQ"), + nonce: 253, + authority: new PublicKey("3SphkwoHx3d13Eu9RehVVg4gGMZv7FEaDXvPqWbQF9bm"), + poolTokenMint: new PublicKey("7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("CT95CSNqi4nttNW84dDuA8Um7FLAC52PVUvuVRKeCHVK"), + tokenIds: [Tokens.gofxToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.gofxToken.mint.toString()]: { + ...Tokens.gofxToken, + addr: new PublicKey("5AhPVbtyiTV3SiNRJuq5z9xeaqqwoHQWqohR9HvjJkKS"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("6mtcbtTAadVEdnWJZmsq8woqLea7ef7k5WumVXSHr5KQ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1783,4 +1808,5 @@ export const orcaPoolConfigs: Record = { FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc: fttUsdcPool, "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcPool, F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcPool, + "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE": gofxUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 33a1c75..93189ce 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -75,6 +75,13 @@ export const fttToken: OrcaToken = Object.freeze({ scale: 6, }); +export const gofxToken: OrcaToken = Object.freeze({ + tag: "GOFX", + name: "GooseFX", + mint: new PublicKey("GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD"), + scale: 9, +}); + export const grapeToken: OrcaToken = Object.freeze({ tag: "GRAPE", name: "Grape", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index facf689..589c7fe 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -76,6 +76,7 @@ export enum OrcaFarmConfig { FTT_USDC_AQ = "FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc", RAY_USDC_AQ = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", SLND_USDC_AQ = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", + GOFX_USDC_AQ = "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -101,4 +102,5 @@ export enum OrcaFarmConfig { BTC_mSOL_DD = "DzpLz78wuwyFsQToin8iDv6YK6aBEymRqQq82swiFh7r", IVN_SOL_DD = "HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy", LARIX_USDC_DD = "DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs", + GOFX_USDC_DD = "B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index fd75da0..f8fbcc9 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -76,4 +76,5 @@ export enum OrcaPoolConfig { FTT_USDC = "FwCombynV2fTVizxPCNA2oZKoWXLZgdJThjE4Xv9sjxc", RAY_USDC = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", SLND_USDC = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", + GOFX_USDC = "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE", } From 5f22e788a3b70fe96bf9112c0cf18436a4c0cbe0 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 10 Nov 2021 15:04:14 +0000 Subject: [PATCH 22/81] Bump to 1.1.13 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dcfd777..a497f03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.12", + "version": "1.1.13", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 67bb4bb3b05288f366eb25f366b873e49e4485fc Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 17 Nov 2021 19:05:49 +0000 Subject: [PATCH 23/81] Update pools (#62) --- src/constants/farms.ts | 80 ++++++++++++++++++++++++++++ src/constants/pools.ts | 104 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 28 ++++++++++ src/public/farms/config.ts | 8 +++ src/public/pools/config.ts | 4 ++ 5 files changed, 224 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 4dc7d91..0588868 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -626,6 +626,42 @@ export const gofxUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const woofUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5K7WdUTG2yZjULeNUUiH3eoWhY9YYAnpoWFGiwVj3q2V"), + farmTokenMint: new PublicKey("4HaQXDz9gdLgKUjvNVtnLyNZoWNYKjh3XxH1TpLgiwmi"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6"), + baseTokenDecimals: 6, +}); + +export const sdogeUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("672wPyV8sJdqBfyay6MccLxsCj1sqQyd5WaPXkTbeB8N"), + farmTokenMint: new PublicKey("4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5"), + baseTokenDecimals: 6, +}); + +export const catoUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4EfikjxutL59CXMBYffhSXdPEw28T963idHiwz2qpodQ"), + farmTokenMint: new PublicKey("BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4"), + baseTokenDecimals: 6, +}); + +export const oogiUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CzWsHjE7azpbksPhHxdkvH5gfpBAx4FqohwFnkHgfVpr"), + farmTokenMint: new PublicKey("FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -860,6 +896,42 @@ export const gofxUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const woofUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9M9JKUWatibJKghbDDjHXLGGY18dLPLHgs6a4WiP9EAe"), + farmTokenMint: new PublicKey("G6kaJ4NrCS9VoNgPiMuR5ENFrGJBfMe98PXFgVYkBKts"), + rewardTokenMint: new PublicKey("9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4HaQXDz9gdLgKUjvNVtnLyNZoWNYKjh3XxH1TpLgiwmi"), + baseTokenDecimals: 6, +}); + +export const sdogeUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("J3AmdMedeE1mhwbZzZFysER8CZdMqxL3HoyLxCmub9mc"), + farmTokenMint: new PublicKey("3upLraKWWJ3Tv8JgwygBszT1nQwksYBnx2XWEgaGMTt6"), + rewardTokenMint: new PublicKey("8ymi88q5DtmdNTn2sPRNFkvMkszMHuLJ1e3RVdWjPa3s"), + rewardTokenDecimals: 0, + baseTokenMint: new PublicKey("4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b"), + baseTokenDecimals: 6, +}); + +export const catoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7YMRTqXna5vtCkncV6hxhUd7qCrv621iRq96b7LYySR2"), + farmTokenMint: new PublicKey("2YbEbQD8DP8QyRQnp7CXwdD6BqeJsry4MkWZgxovZPMm"), + rewardTokenMint: new PublicKey("5p2zjqCd1WJzAVgcEnjhb9zWDU7b9XVhFhx4usiyN7jB"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx"), + baseTokenDecimals: 6, +}); + +export const oogiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("F1jqYgps3MsGvWJ9WKq7NYx1eT4xjPDruFtQ9gMD1pLk"), + farmTokenMint: new PublicKey("3CiL5pm15BiLH8PBrhx7uFJr2uYoeBNZk55kuphp48Py"), + rewardTokenMint: new PublicKey("H7Qc9APCWWGDVxGD5fJHmLTmdEgT9GFatAKFNg6sHh8A"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -934,6 +1006,10 @@ export const orcaFarmConfigs: Record = { "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcAqFarm, F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcAqFarm, "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE": gofxUsdcAqFarm, + "9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6": woofUsdcAqFarm, + CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5: sdogeUsdcAqFarm, + "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcAqFarm, + DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -960,4 +1036,8 @@ export const orcaFarmConfigs: Record = { HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy: ivnSolDoubleDip, DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs: larixUsdcDoubleDip, B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4: gofxUsdcDoubleDip, + "4HaQXDz9gdLgKUjvNVtnLyNZoWNYKjh3XxH1TpLgiwmi": woofUsdcDoubleDip, + "4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b": sdogeUsdcDoubleDip, + BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx: catoUsdcDoubleDip, + FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE: oogiUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 74ab8ee..db7f29c 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1735,6 +1735,106 @@ export const gofxUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const woofUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("HY6iq1dp7pHwstfmLFu8m2iEvRQtjX3N751jcN6KrQXU"), + nonce: 255, + authority: new PublicKey("8JuHyxYBpemmryQq4bcA1GTuKaub9JJuLPoNNJpwX9aP"), + poolTokenMint: new PublicKey("9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("886Yu2fd1x8xpb4icdrhxZemdD8PN9RLdrq6Mn89wR4k"), + tokenIds: [Tokens.woofToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.woofToken.mint.toString()]: { + ...Tokens.woofToken, + addr: new PublicKey("8ju56eRfs9wg3GtoSFVoQoR6NnQn6gsWr6FkQyZ1EeBg"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("5WcqVktXr3Rr78MGGfcuwgB6azoN9EDCZLP4werGnfi4"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const sdogeUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8GoFKVkoxPyQKWXhoXs3ycGmp9rXYM8hz7eq1EUM1MJe"), + nonce: 252, + authority: new PublicKey("DSuxdCkHQy6rAjFsL75tRu2UpHVQDoYsYFeZt15sVDYL"), + poolTokenMint: new PublicKey("CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2gCRgQEySFTXA5v99vRUJHAGhQPTPtHx16Rdgipz7Q1y"), + tokenIds: [Tokens.sdogeToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.sdogeToken.mint.toString()]: { + ...Tokens.sdogeToken, + addr: new PublicKey("ABQfmExcxJt2wE9JeLUxvhkpA2VkoQVvWKDvfusjq226"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("EDBXkzwxu6UXqBDnzb9AJ6Eggjyyct7SmYVoR8PYJkHd"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const catoUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GumfURfQvPaJ2E5ueCEKYJmymNQbV34gU9TmiKZYRkiv"), + nonce: 255, + authority: new PublicKey("EjoLNSDggfWWE7BxwoL4tJHBEg1cFpdiyKeYTYCec2o2"), + poolTokenMint: new PublicKey("55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("F6xCTe256cA6HTX5CYBkDtXoruHvjfbxeHNeqR9kR7oJ"), + tokenIds: [Tokens.catoToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.catoToken.mint.toString()]: { + ...Tokens.catoToken, + addr: new PublicKey("AGNHgSQuPd4EqjLTLJrXEVb3KCkjRxGVDTaag4drV1XX"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("FESKk2kj9oqdYR4dcaP4LyqDyWZt3NttgypRVFoyUQNs"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const oogiUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9tK2LaapwjxaUmfcAzY9zgC39M3wnaFX558y2Bb4oxWG"), + nonce: 255, + authority: new PublicKey("EGuBsx6HAgAtf1ogzF1uXTUQgwRex61hnhvuZcMwQKUJ"), + poolTokenMint: new PublicKey("DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("Acom6ebnmbFKQk3XeX5VHPiz8bd7kzfpUMsqHKJDJnry"), + tokenIds: [Tokens.oogiToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.oogiToken.mint.toString()]: { + ...Tokens.oogiToken, + addr: new PublicKey("GgfTGZ5DnAotnXKFM86vqffKQZ9nGgHaX1PDS7RTcKjQ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("A3rzsPGtqowjKXfscYrPo1jvv2EVYpJwXQPGKxgvvStf"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1809,4 +1909,8 @@ export const orcaPoolConfigs: Record = { "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD": rayUsdcPool, F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN: slndUsdcPool, "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE": gofxUsdcPool, + "9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6": woofUsdcPool, + CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5: sdogeUsdcPool, + "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcPool, + DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 93189ce..ec6f1c0 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -47,6 +47,13 @@ export const btcToken: OrcaToken = Object.freeze({ scale: 6, }); +export const catoToken: OrcaToken = Object.freeze({ + tag: "CATO", + name: "CATO", + mint: new PublicKey("5p2zjqCd1WJzAVgcEnjhb9zWDU7b9XVhFhx4usiyN7jB"), + scale: 9, +}); + export const copeToken: OrcaToken = Object.freeze({ tag: "COPE", name: "Cope", @@ -173,6 +180,13 @@ export const ninjaToken: OrcaToken = Object.freeze({ scale: 6, }); +export const oogiToken: OrcaToken = Object.freeze({ + tag: "OOGI", + name: "OOGI", + mint: new PublicKey("H7Qc9APCWWGDVxGD5fJHmLTmdEgT9GFatAKFNg6sHh8A"), + scale: 9, +}); + export const orcaToken: OrcaToken = Object.freeze({ tag: "ORCA", name: "Orca", @@ -243,6 +257,13 @@ export const sbrToken: OrcaToken = Object.freeze({ scale: 6, }); +export const sdogeToken: OrcaToken = Object.freeze({ + tag: "SDOGE", + name: "SolDoge", + mint: new PublicKey("8ymi88q5DtmdNTn2sPRNFkvMkszMHuLJ1e3RVdWjPa3s"), + scale: 0, +}); + export const slimToken: OrcaToken = Object.freeze({ tag: "SLIM", name: "Solanium", @@ -334,6 +355,13 @@ export const wagToken: OrcaToken = Object.freeze({ scale: 9, }); +export const woofToken: OrcaToken = Object.freeze({ + tag: "WOOF", + name: "WOOF Token", + mint: new PublicKey("9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE"), + scale: 6, +}); + export const msolToken: OrcaToken = Object.freeze({ tag: "mSOL", name: "Marinade.finance", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 589c7fe..5c93d3b 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -77,6 +77,10 @@ export enum OrcaFarmConfig { RAY_USDC_AQ = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", SLND_USDC_AQ = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", GOFX_USDC_AQ = "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE", + WOOF_USDC_AQ = "9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6", + SDOGE_USDC_AQ = "CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5", + CATO_USDC_AQ = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", + OOGI_USDC_AQ = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -103,4 +107,8 @@ export enum OrcaFarmConfig { IVN_SOL_DD = "HqajzzbGMST3yCCVBJuXvNVsWkY2DXqiBz9cTRmmyBMy", LARIX_USDC_DD = "DNAGfa7tK8csprRQmiDUwDaFfhw6ueHhVFHTCgTJ8HGs", GOFX_USDC_DD = "B95rdqSY4dqPwmt295XwBZZqZJYLmqDNXU6NvBpT4ep4", + WOOF_USDC_DD = "4HaQXDz9gdLgKUjvNVtnLyNZoWNYKjh3XxH1TpLgiwmi", + SDOGE_USDC_DD = "4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b", + CATO_USDC_DD = "BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx", + OOGI_USDC_DD = "FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index f8fbcc9..4715b08 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -77,4 +77,8 @@ export enum OrcaPoolConfig { RAY_USDC = "4cXw2MYj94TFBXLL73fEpMCr8DPrW68JvrV8mzWgktbD", SLND_USDC = "F59gkD7NnsdJbFKrRZsiBC8PAooN4c56T8QmahfW1iXN", GOFX_USDC = "7vnps4VE5RTGAr5fmPZu7fSrk2VnM4Up838grZfqmxqE", + WOOF_USDC = "9EjcYfHcG8f1mccpHyaAwpoxaUPiheC6KgLQjyD9aTb6", + SDOGE_USDC = "CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5", + CATO_USDC = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", + OOGI_USDC = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", } From 2e19023320d1ecd107f25a75591b69af292417e3 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 17 Nov 2021 11:07:26 -0800 Subject: [PATCH 24/81] Bump to 1.1.14 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a497f03..3e2e09a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.13", + "version": "1.1.14", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From e503a7f7a2b6ca4d5052f4b3d927273ee70259cc Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 18 Nov 2021 09:41:03 -0800 Subject: [PATCH 25/81] Add devnet (#63) * Add devnet * fix sol token equality check --- README.md | 12 ++ src/constants/devnet/farms.ts | 113 ++++++++++ src/constants/devnet/index.ts | 2 + src/constants/devnet/pools.ts | 198 ++++++++++++++++++ src/constants/devnet/tokens.ts | 41 ++++ src/model/orca-factory.ts | 20 +- src/model/orca/orca-impl.ts | 10 +- src/model/orca/pool/orca-pool.ts | 14 +- src/public/devnet/farms/config.ts | 19 ++ src/public/devnet/index.ts | 1 + src/public/devnet/pools/config.ts | 16 ++ src/public/devnet/utils.ts | 41 ++++ src/public/main/orca.ts | 5 +- src/public/utils/constants.ts | 4 + src/public/utils/index.ts | 1 + src/public/utils/types.ts | 4 + src/public/utils/web3/ata-utils.ts | 2 +- .../web3/instructions/pool-instructions.ts | 14 +- 18 files changed, 498 insertions(+), 19 deletions(-) create mode 100644 src/constants/devnet/farms.ts create mode 100644 src/constants/devnet/index.ts create mode 100644 src/constants/devnet/pools.ts create mode 100644 src/constants/devnet/tokens.ts create mode 100644 src/public/devnet/farms/config.ts create mode 100644 src/public/devnet/index.ts create mode 100644 src/public/devnet/pools/config.ts create mode 100644 src/public/devnet/utils.ts create mode 100644 src/public/utils/types.ts diff --git a/README.md b/README.md index cfea099..6589508 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,18 @@ main() }); ``` +# Devnet Testing + +The example code above can be run on devnet by changing two lines of code like so: + +```typescript +const connection = new Connection("https://api.devnet.solana.com", "singleGossip"); +const orca = getOrca(connection, Network.DEVNET); +``` + +One caveat to note is that there are only a few devnet pools avaialble, so if you try to access pools that are only +available on mainnet, the code will throw an error. The example code uses ORCA_SOL, which exists on the devnet. + # Technical Notes **Decimals & OrcaU64** diff --git a/src/constants/devnet/farms.ts b/src/constants/devnet/farms.ts new file mode 100644 index 0000000..af3ae5b --- /dev/null +++ b/src/constants/devnet/farms.ts @@ -0,0 +1,113 @@ +import { PublicKey } from "@solana/web3.js"; +import { OrcaFarmParams } from "../../model/orca/farm/farm-types"; + +/** + * The following content is auto-generated. + */ + +export const solUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CzFnr34cRC1o8yrs5jTHBqDQ1FDckLapkPis6zTfqCF5"), + farmTokenMint: new PublicKey("AtJF9fbQ1pbz76NYo2jtKjHuzzyaFToHLCizYk6UoHHL"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7"), + baseTokenDecimals: 6, +}); + +export const solUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("ER1UZsRhzucvXY8xMmXGfbbxb442iTHk2u1rSKRMPakC"), + farmTokenMint: new PublicKey("E95ABqtqnJRMG6gqEKZ16dVMfSNDUdCbEYqGUVg3tFRX"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2"), + baseTokenDecimals: 6, +}); + +export const usdcUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("D7wWV4nxqEeCAk2UA2nEGWgKw2BgoZYFZFUfwWGBhDF8"), + farmTokenMint: new PublicKey("3dDqVehvEpc5HMcbJUAzwMwF54xqa4nNvYN9qis7HAPe"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv"), + baseTokenDecimals: 6, +}); + +export const ethSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3q4wtMRT2yKHzQGy6gxwD34i9rsafviKd78rpdDLrBfk"), + farmTokenMint: new PublicKey("5NH9rNaoLKbPPP5zwCJTaMPkFACtfJA8wEmqWrXzgCMa"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL"), + baseTokenDecimals: 6, +}); + +export const ethUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3aRTv8TGtZkX4dsM4N9aUHKotcwRr6phWPHXPLN8DEYX"), + farmTokenMint: new PublicKey("EeqPcczEZH2cjYBnQyGXBQx1DGs7KG1pobwdPKcwALhD"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA"), + baseTokenDecimals: 6, +}); + +export const orcaSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6YrLcQs5yFvXkRY5VkMGEfVgo5rwozJf7jXedpZxbKmi"), + farmTokenMint: new PublicKey("3z8o3b4gMBpnRsrDv7ruZPcVtgoULMFyEoEEGwTsw2TR"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi"), + baseTokenDecimals: 6, +}); + +export const orcaUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("44GPPv5XedLXCNCc3Mbay1T18vc6x2bWihmmg7UJanvH"), + farmTokenMint: new PublicKey("52Tv8d6Z7Lb27dqCufZPUqadZBTv3EAKGzoV6hy185As"), + rewardTokenMint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri"), + baseTokenDecimals: 6, +}); + +export const solUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("L3XdTwLLtZRrXqSk5mqcBKaorqgmM2AMDGmzfBuhLMd"), + farmTokenMint: new PublicKey("7AYG2y3je8TqcLsugNkV6aPw14QyqdVFmK5EegeJmRFi"), + rewardTokenMint: new PublicKey("Ff5JqsAYUD4vAfQUtfRprT4nXu9e28tTBZTDFMnJNdvd"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("AtJF9fbQ1pbz76NYo2jtKjHuzzyaFToHLCizYk6UoHHL"), + baseTokenDecimals: 6, +}); + +export const ethSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5jGfcgoRNpZPwfiRTp5zxNpEKP3PTeM3F9EKS9EsvX67"), + farmTokenMint: new PublicKey("5Uv5T1BksJGKGFGVpfxGeGniFFgGLjavNpPWGkfUFNkr"), + rewardTokenMint: new PublicKey("6PE3Mwjzx9h8kCoBp5YPed9TFoG7du8L98yucBP5ps3x"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("5NH9rNaoLKbPPP5zwCJTaMPkFACtfJA8wEmqWrXzgCMa"), + baseTokenDecimals: 6, +}); + +export const ethUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("B4CTmaFpNRtXL3ZLiLrgbMZknQHFdoGu4V9tbzsjFbRT"), + farmTokenMint: new PublicKey("5jdeMPvNrscuw8abZFf99X9kcxDhANcpuBHDNpnx7YPT"), + rewardTokenMint: new PublicKey("EmXq3Ni9gfudTiyNKzzYvpnQqnJEMRw2ttnVXoJXjLo1"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("EeqPcczEZH2cjYBnQyGXBQx1DGs7KG1pobwdPKcwALhD"), + baseTokenDecimals: 6, +}); + +/** + * Mapping for OrcaFarm parameters + * Key: baseTokenMint : OrcaFarmParams + */ +export const orcaDevnetFarmConfigs: Record = { + "4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7": solUsdcAqFarm, + "2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2": solUsdtAqFarm, + EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv: usdcUsdtAqFarm, + "8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL": ethSolAqFarm, + "9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA": ethUsdcAqFarm, + CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi: orcaSolAqFarm, + "2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri": orcaUsdcAqFarm, + AtJF9fbQ1pbz76NYo2jtKjHuzzyaFToHLCizYk6UoHHL: solUsdcDoubleDip, + "5NH9rNaoLKbPPP5zwCJTaMPkFACtfJA8wEmqWrXzgCMa": ethSolDoubleDip, + EeqPcczEZH2cjYBnQyGXBQx1DGs7KG1pobwdPKcwALhD: ethUsdcDoubleDip, +}; diff --git a/src/constants/devnet/index.ts b/src/constants/devnet/index.ts new file mode 100644 index 0000000..579c818 --- /dev/null +++ b/src/constants/devnet/index.ts @@ -0,0 +1,2 @@ +export { orcaDevnetPoolConfigs } from "./pools"; +export { orcaDevnetFarmConfigs } from "./farms"; diff --git a/src/constants/devnet/pools.ts b/src/constants/devnet/pools.ts new file mode 100644 index 0000000..ad34bb5 --- /dev/null +++ b/src/constants/devnet/pools.ts @@ -0,0 +1,198 @@ +import { PublicKey } from "@solana/web3.js"; +import { CurveType, OrcaPoolParams } from "../../model/orca/pool/pool-types"; +import { Percentage } from "../../public/utils/models/percentage"; +import * as Tokens from "./tokens"; + +/** + * The following content is auto-generated. + */ + +export const solUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8DT1oKJPHcdJzdSf3cb2WT7L8eRjLUJeDFSe7M2QDtQE"), + nonce: 255, + authority: new PublicKey("BVSZP6RsqAtjvuJrXYsYN5U4XY7pLwW4PawfgVPkLbjN"), + poolTokenMint: new PublicKey("4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HPzaLqtZGhTbs7WcdGMfLswKze28W75nrYytNSw7qdvi"), + tokenIds: [Tokens.solToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("4ShvTPQ3jYZzwUpxoQFSCDZxLtxQYNPUfeL3sR9mzLjJ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("9eKgmUSfTkQLRBvowV9zjY3BbhAQVaGSw1jfon5UwUJM"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const solUsdtPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("65AsoozQfBedPU3rGCB7CfBbSFhiFGaVQaeoF9mLFM3g"), + nonce: 255, + authority: new PublicKey("59Pu3srqBDSgWrSJKuh7xcb5omJeVkMw41eFswDWKPat"), + poolTokenMint: new PublicKey("2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HmRP17zbgJUPPeueLjT2b1HVKt16CTixSJX6UpGkkZnp"), + tokenIds: [Tokens.solToken.mint.toString(), Tokens.usdtToken.mint.toString()], + tokens: { + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("BhJsBxGoe39HWtwFTCxRZGhPNVZ5x9Rr2gFzNsaA6ES8"), + }, + [Tokens.usdtToken.mint.toString()]: { + ...Tokens.usdtToken, + addr: new PublicKey("Ea2gPV96MQthA5CCS4NincVidxsN8JifWhBoMJVHx8mZ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const usdcUsdtPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4UJqLypzZzDvoAWCLt6qWEoddMYoSLjrJEB13AfRmV68"), + nonce: 255, + authority: new PublicKey("52Sp73fASLtZhBPyZu7rQoejG9sNzpNLaTTF4mJJGZge"), + poolTokenMint: new PublicKey("EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("6RjV63TfeJDL7K6j8cUnaT6mWXKxqsrDFrumvqGRwss6"), + tokenIds: [Tokens.usdcToken.mint.toString(), Tokens.usdtToken.mint.toString()], + tokens: { + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("Fp9PioKwFc6vmQZ5yB2pPSSx5VqkLhgX21dQYug79yUQ"), + }, + [Tokens.usdtToken.mint.toString()]: { + ...Tokens.usdtToken, + addr: new PublicKey("GazSkg8GU4cti8Dm1cYD74CQf9UXQdUzBsP27YhC4SCt"), + }, + }, + curveType: CurveType.Stable, + amp: 100, + feeStructure: { + traderFee: Percentage.fromFraction(9, 10000), + ownerFee: Percentage.fromFraction(1, 10000), + }, +}); + +export const ethSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("F9MgdfFEshXCTGbppcVr2DzpVxqkiVowGqd95S4vpC6D"), + nonce: 251, + authority: new PublicKey("FD1UJqbXtiYnMcKxcDG4MYY1vasupm2sYXAkStQhSpTb"), + poolTokenMint: new PublicKey("8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("8zyAMewVQuHBxJeqn5oRvanDaaEZ9uYxjHxJ9DYCRsgn"), + tokenIds: [Tokens.ethToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.ethToken.mint.toString()]: { + ...Tokens.ethToken, + addr: new PublicKey("FJetz1Du8p2NWmfa9DNvHR8zC42tUCHsY3YfnkZNyZfT"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("37o62xYE1a43Ap8neq6SdrutxQKFsFHicRamkcjHigKs"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const ethUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CVH3UX1fePV3fn4dE2irNgni2uRkPdEWyZeCZS5b63F3"), + nonce: 255, + authority: new PublicKey("3uf9wngmqKdBdrWPM9iKsXQE829sg7gH9oJghcrpePhh"), + poolTokenMint: new PublicKey("9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9AekLW8Dq5T1XnLLC2rQscS4Y5YN2QwrYA7eaGdq7Xje"), + tokenIds: [Tokens.ethToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.ethToken.mint.toString()]: { + ...Tokens.ethToken, + addr: new PublicKey("C7eYGeiroWzuPgqruxRmgj3xw978gRZpPTov2kqxBRpx"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("DRdNFrRqWpqQHhJDymyZvgHBH2vTkUo5jzzTwWy7RT4h"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const orcaSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("B4v9urCKnrdCMWt7rEPyA5xyuEeYQv4aDpCfGFVaCvox"), + nonce: 252, + authority: new PublicKey("38Q2148y3BKU6pDUfv1zpeEeKNuDHBH34WdEwo5EiTfe"), + poolTokenMint: new PublicKey("CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("EEWAuP2d1KbwX14dgHwxXspPMYfxXvgf4CNRYvMakPHg"), + tokenIds: [Tokens.orcaToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.orcaToken.mint.toString()]: { + ...Tokens.orcaToken, + addr: new PublicKey("HsGXFtv1uBTtWuPCEJWpxZS4QkcHwAhdPaMVSvS4fhtv"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("3coXPvurzHQ6sYLrYi8zGWG7SLVv9mHnbqmchjKgPEmz"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const orcaUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GaCKuVZyo6HxUf6bkcWzDETGHqqViF6H77ax7Uxq3LXU"), + nonce: 255, + authority: new PublicKey("3KVqBR9cB4tNHwpNPZtedegXbQ8FbWgjzk5oob7QRnHt"), + poolTokenMint: new PublicKey("2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9yVp1tUHNxorNZgXAs6thPeizCryHTebjKG4P8uUdXuv"), + tokenIds: [Tokens.orcaToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.orcaToken.mint.toString()]: { + ...Tokens.orcaToken, + addr: new PublicKey("7KAqhu58omLjKjg1XNSw28JULED82mnA1vvAMVoAdA6T"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("8E2CH9fPNXbc5pqu1dWWkNsNZWvLcBEXdBnzzXuhvJNL"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +/** + * Mapping for OrcaPool parameters + * Key: poolTokenMint : OrcaPoolParams + */ +export const orcaDevnetPoolConfigs: Record = { + "4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7": solUsdcPool, + "2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2": solUsdtPool, + EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv: usdcUsdtPool, + "8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL": ethSolPool, + "9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA": ethUsdcPool, + CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi: orcaSolPool, + "2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri": orcaUsdcPool, +}; diff --git a/src/constants/devnet/tokens.ts b/src/constants/devnet/tokens.ts new file mode 100644 index 0000000..00f2b42 --- /dev/null +++ b/src/constants/devnet/tokens.ts @@ -0,0 +1,41 @@ +import { PublicKey } from "@solana/web3.js"; +import { OrcaToken } from "../.."; + +/** + * The following content is auto-generated. + */ + +export const ethToken: OrcaToken = Object.freeze({ + tag: "ETH", + name: "Ethereum", + mint: new PublicKey("Ff5JqsAYUD4vAfQUtfRprT4nXu9e28tTBZTDFMnJNdvd"), + scale: 9, +}); + +export const orcaToken: OrcaToken = Object.freeze({ + tag: "ORCA", + name: "Orca", + mint: new PublicKey("orcarKHSqC5CDDsGbho8GKvwExejWHxTqGzXgcewB9L"), + scale: 6, +}); + +export const solToken: OrcaToken = Object.freeze({ + tag: "SOL", + name: "Solana", + mint: new PublicKey("So11111111111111111111111111111111111111112"), + scale: 9, +}); + +export const usdcToken: OrcaToken = Object.freeze({ + tag: "USDC", + name: "USD Coin", + mint: new PublicKey("EmXq3Ni9gfudTiyNKzzYvpnQqnJEMRw2ttnVXoJXjLo1"), + scale: 6, +}); + +export const usdtToken: OrcaToken = Object.freeze({ + tag: "USDT", + name: "Tether USD", + mint: new PublicKey("6PE3Mwjzx9h8kCoBp5YPed9TFoG7du8L98yucBP5ps3x"), + scale: 6, +}); diff --git a/src/model/orca-factory.ts b/src/model/orca-factory.ts index 313a12f..ca15776 100644 --- a/src/model/orca-factory.ts +++ b/src/model/orca-factory.ts @@ -1,15 +1,27 @@ import { Connection } from "@solana/web3.js"; -import { OrcaPoolConfig, OrcaPool, OrcaFarmConfig, OrcaFarm } from ".."; +import { OrcaPoolConfig, OrcaPool, OrcaFarmConfig, OrcaFarm, Network } from ".."; import { orcaPoolConfigs, orcaFarmConfigs } from "../constants"; +import { orcaDevnetFarmConfigs, orcaDevnetPoolConfigs } from "../constants/devnet"; +import { getDevnetFarm, getDevnetPool } from "../public/devnet"; import { OrcaFarmImpl } from "./orca/farm/orca-farm"; import { OrcaPoolImpl } from "./orca/pool/orca-pool"; export class OrcaFactory { - getPool(connection: Connection, config: OrcaPoolConfig): OrcaPool { - return new OrcaPoolImpl(connection, orcaPoolConfigs[config]); + getPool(connection: Connection, network: Network, config: OrcaPoolConfig): OrcaPool { + if (network === Network.DEVNET) { + const devnetConfig = getDevnetPool(config); + return new OrcaPoolImpl(connection, network, orcaDevnetPoolConfigs[devnetConfig]); + } + + return new OrcaPoolImpl(connection, network, orcaPoolConfigs[config]); } - getFarm(connection: Connection, config: OrcaFarmConfig): OrcaFarm { + getFarm(connection: Connection, network: Network, config: OrcaFarmConfig): OrcaFarm { + if (network === Network.DEVNET) { + const devnetConfig = getDevnetFarm(config); + return new OrcaFarmImpl(connection, orcaDevnetFarmConfigs[devnetConfig]); + } + return new OrcaFarmImpl(connection, orcaFarmConfigs[config]); } } diff --git a/src/model/orca/orca-impl.ts b/src/model/orca/orca-impl.ts index a4d3c22..dd9a192 100644 --- a/src/model/orca/orca-impl.ts +++ b/src/model/orca/orca-impl.ts @@ -1,21 +1,23 @@ import { Connection } from "@solana/web3.js"; -import { Orca, OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig } from "../../public"; +import { Orca, OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig, Network } from "../../public"; import { OrcaFactory } from "../orca-factory"; export class OrcaImpl implements Orca { private connection: Connection; + private network: Network; private factory: OrcaFactory; - constructor(connection: Connection) { + constructor(connection: Connection, network: Network) { this.connection = connection; + this.network = network; this.factory = new OrcaFactory(); } getPool(pool: OrcaPoolConfig): OrcaPool { - return this.factory.getPool(this.connection, pool); + return this.factory.getPool(this.connection, this.network, pool); } getFarm(farm: OrcaFarmConfig): OrcaFarm { - return this.factory.getFarm(this.connection, farm); + return this.factory.getFarm(this.connection, this.network, farm); } } diff --git a/src/model/orca/pool/orca-pool.ts b/src/model/orca/pool/orca-pool.ts index 1ef0052..de9b673 100644 --- a/src/model/orca/pool/orca-pool.ts +++ b/src/model/orca/pool/orca-pool.ts @@ -23,6 +23,9 @@ import { DepositQuote, WithdrawQuote, DecimalUtil, + Network, + ORCA_TOKEN_SWAP_ID_DEVNET, + ORCA_TOKEN_SWAP_ID, } from "../../../public"; import { createApprovalInstruction, @@ -37,10 +40,14 @@ import { OrcaPoolParams } from "./pool-types"; export class OrcaPoolImpl implements OrcaPool { private connection: Connection; private poolParams: OrcaPoolParams; + private orcaTokenSwapId: PublicKey; - constructor(connection: Connection, config: OrcaPoolParams) { + constructor(connection: Connection, network: Network, config: OrcaPoolParams) { this.connection = connection; this.poolParams = config; + + this.orcaTokenSwapId = + network === Network.MAINNET ? ORCA_TOKEN_SWAP_ID : ORCA_TOKEN_SWAP_ID_DEVNET; } public getTokenA(): OrcaPoolToken { @@ -181,7 +188,8 @@ export class OrcaPoolImpl implements OrcaPool { outputPoolTokenUserAddress, amountInU64, minimumAmountOutU64, - userTransferAuthority.publicKey + userTransferAuthority.publicKey, + this.orcaTokenSwapId ); return await new TransactionBuilder(this.connection, ownerAddress, _owner) @@ -316,6 +324,7 @@ export class OrcaPoolImpl implements OrcaPool { maxTokenBIn_U64, tokenA.addr, tokenB.addr, + this.orcaTokenSwapId, _owner ); @@ -464,6 +473,7 @@ export class OrcaPoolImpl implements OrcaPool { minTokenBOut_U64, tokenA.addr, tokenB.addr, + this.orcaTokenSwapId, _owner ); diff --git a/src/public/devnet/farms/config.ts b/src/public/devnet/farms/config.ts new file mode 100644 index 0000000..a110df5 --- /dev/null +++ b/src/public/devnet/farms/config.ts @@ -0,0 +1,19 @@ +/** + * The following content is auto-generated. + */ + +/** + * A list of supported Orca farms in this SDK. + */ +export enum OrcaFarmConfig { + SOL_USDC_AQ = "4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7", + SOL_USDT_AQ = "2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2", + USDC_USDT_AQ = "EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv", + ETH_SOL_AQ = "8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL", + ETH_USDC_AQ = "9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA", + ORCA_SOL_AQ = "CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi", + ORCA_USDC_AQ = "2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri", + SOL_USDC_DD = "AtJF9fbQ1pbz76NYo2jtKjHuzzyaFToHLCizYk6UoHHL", + ETH_SOL_DD = "5NH9rNaoLKbPPP5zwCJTaMPkFACtfJA8wEmqWrXzgCMa", + ETH_USDC_DD = "EeqPcczEZH2cjYBnQyGXBQx1DGs7KG1pobwdPKcwALhD", +} diff --git a/src/public/devnet/index.ts b/src/public/devnet/index.ts new file mode 100644 index 0000000..178cd64 --- /dev/null +++ b/src/public/devnet/index.ts @@ -0,0 +1 @@ +export * from "./utils"; diff --git a/src/public/devnet/pools/config.ts b/src/public/devnet/pools/config.ts new file mode 100644 index 0000000..caf2dcc --- /dev/null +++ b/src/public/devnet/pools/config.ts @@ -0,0 +1,16 @@ +/** + * The following content is auto-generated. + */ + +/** + * A list of supported Orca pools in this SDK. + */ +export enum OrcaPoolConfig { + SOL_USDC = "4GpUivZ2jvZqQ3vJRsoq5PwnYv6gdV9fJ9BzHT2JcRr7", + SOL_USDT = "2E4Mp6y2gFRteXiANnwzAJEhHwD3NX1wru3XvxJpGBq2", + USDC_USDT = "EBor1PR5XNGHjRVB6JDJuKVCQbvdr1CVZTaX1hTAdvQv", + ETH_SOL = "8sFnpd7mM1AWxP1LXX2FWbbkaVtAopBPmPNZ9y6172WL", + ETH_USDC = "9pRnvg7ihSJDLi6DGf3PLwr6xRRRrBPXsHYEgGL5hzgA", + ORCA_SOL = "CmDdQhusZWyi9fue27VSktYgkHefm3JXNdzc9kCpyvYi", + ORCA_USDC = "2ZEEntzoUN7XuMs88ukLGv5HRR1byL7wFWChryF5ZHri", +} diff --git a/src/public/devnet/utils.ts b/src/public/devnet/utils.ts new file mode 100644 index 0000000..cfd8e27 --- /dev/null +++ b/src/public/devnet/utils.ts @@ -0,0 +1,41 @@ +import { OrcaPoolConfig, OrcaFarmConfig } from ".."; +import { OrcaFarmConfig as OrcaDevnetFarmConfig } from "./farms/config"; +import { OrcaPoolConfig as OrcaDevnetPoolConfig } from "./pools/config"; + +export function getDevnetPool(config: OrcaPoolConfig): OrcaDevnetPoolConfig { + const entry = Object.entries(OrcaPoolConfig).find((arr) => arr[1] === config); + if (!entry) { + throw new Error("Invalid OrcaPoolConfig"); + } + + const key = entry[0]; + if (!isOrcaDevnetPoolConfig(key)) { + throw new Error(`${key} does not exist in devnet`); + } + + return OrcaDevnetPoolConfig[key]; +} + +export function getDevnetFarm(config: OrcaFarmConfig): OrcaDevnetFarmConfig { + const entry = Object.entries(OrcaFarmConfig).find((arr) => arr[1] === config); + if (!entry) { + throw new Error("Invalid OrcaFarmConfig"); + } + + const key = entry[0]; + if (!isOrcaDevnetFarmConfig(key)) { + throw new Error(`${key} does not exist in devnet`); + } + + return OrcaDevnetFarmConfig[key]; +} + +/*** Type guards ***/ + +function isOrcaDevnetPoolConfig(key: string): key is keyof typeof OrcaDevnetPoolConfig { + return OrcaDevnetPoolConfig[key as keyof typeof OrcaDevnetPoolConfig] !== undefined; +} + +function isOrcaDevnetFarmConfig(key: string): key is keyof typeof OrcaDevnetFarmConfig { + return OrcaDevnetFarmConfig[key as keyof typeof OrcaDevnetFarmConfig] !== undefined; +} diff --git a/src/public/main/orca.ts b/src/public/main/orca.ts index 8b62174..276b247 100644 --- a/src/public/main/orca.ts +++ b/src/public/main/orca.ts @@ -1,4 +1,5 @@ import { Connection } from "@solana/web3.js"; +import { Network } from ".."; import { OrcaImpl } from "../../model/orca/orca-impl"; import { Orca } from "./types"; @@ -7,6 +8,6 @@ import { Orca } from "./types"; * @param connection Solana connection class * @returns An instance of Orca SDK */ -export function getOrca(connection: Connection): Orca { - return new OrcaImpl(connection); +export function getOrca(connection: Connection, network = Network.MAINNET): Orca { + return new OrcaImpl(connection, network); } diff --git a/src/public/utils/constants.ts b/src/public/utils/constants.ts index 516bee2..12e2713 100644 --- a/src/public/utils/constants.ts +++ b/src/public/utils/constants.ts @@ -4,6 +4,10 @@ export const ORCA_TOKEN_SWAP_ID: PublicKey = new PublicKey( "9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP" ); +export const ORCA_TOKEN_SWAP_ID_DEVNET: PublicKey = new PublicKey( + "3xQ8SWv2GaFXXpHZNqkXsdxq5DZciHBz6ZFoPPfbFd7U" +); + export const SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID: PublicKey = new PublicKey( "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" ); diff --git a/src/public/utils/index.ts b/src/public/utils/index.ts index 9a4a890..0541285 100644 --- a/src/public/utils/index.ts +++ b/src/public/utils/index.ts @@ -4,3 +4,4 @@ export * from "./numbers"; export * from "./pool-utils"; export * from "./time-utils"; export * from "./web3"; +export * from "./types"; diff --git a/src/public/utils/types.ts b/src/public/utils/types.ts new file mode 100644 index 0000000..56fdb3d --- /dev/null +++ b/src/public/utils/types.ts @@ -0,0 +1,4 @@ +export enum Network { + MAINNET = "mainnet-beta", + DEVNET = "devnet", +} diff --git a/src/public/utils/web3/ata-utils.ts b/src/public/utils/web3/ata-utils.ts index d272ac8..3c53b7f 100644 --- a/src/public/utils/web3/ata-utils.ts +++ b/src/public/utils/web3/ata-utils.ts @@ -29,7 +29,7 @@ export async function resolveOrCreateAssociatedTokenAddress( tokenMint: PublicKey, wrappedSolAmountIn = new u64(0) ): Promise { - if (tokenMint !== solToken.mint) { + if (!tokenMint.equals(solToken.mint)) { const derivedAddress = await deriveAssociatedTokenAddress(owner.publicKey, tokenMint); // Check if current wallet has an ATA for this spl-token mint. If not, create one. diff --git a/src/public/utils/web3/instructions/pool-instructions.ts b/src/public/utils/web3/instructions/pool-instructions.ts index 7edc50f..a319941 100644 --- a/src/public/utils/web3/instructions/pool-instructions.ts +++ b/src/public/utils/web3/instructions/pool-instructions.ts @@ -3,7 +3,6 @@ import { TokenSwap } from "@solana/spl-token-swap"; import { Keypair, PublicKey } from "@solana/web3.js"; import { OrcaPoolParams } from "../../../../model/orca/pool/pool-types"; import { OrcaPoolToken } from "../../../pools"; -import { ORCA_TOKEN_SWAP_ID } from "../../constants"; import { Instruction } from "../../models"; import { Owner } from "../key-utils"; @@ -48,14 +47,15 @@ export const createSwapInstruction = async ( outputTokenUserAddress: PublicKey, amountIn: u64, minimumAmountOut: u64, - userTransferAuthority: PublicKey + userTransferAuthority: PublicKey, + orcaTokenSwapId: PublicKey ): Promise => { const amountInU64 = amountIn; const minimumAmountOutU64 = minimumAmountOut; const [authorityForPoolAddress] = await PublicKey.findProgramAddress( [poolParams.address.toBuffer()], - ORCA_TOKEN_SWAP_ID + orcaTokenSwapId ); const swapInstruction = TokenSwap.swapInstruction( @@ -69,7 +69,7 @@ export const createSwapInstruction = async ( poolParams.poolTokenMint, poolParams.feeAccount, null, - ORCA_TOKEN_SWAP_ID, + orcaTokenSwapId, TOKEN_PROGRAM_ID, amountInU64, minimumAmountOutU64 @@ -93,6 +93,7 @@ export const createDepositInstruction = async ( maximumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, + orcaTokenSwapId: PublicKey, owner: Owner ): Promise => { const depositInstruction = TokenSwap.depositAllTokenTypesInstruction( @@ -105,7 +106,7 @@ export const createDepositInstruction = async ( tokenBPublicKey, poolParams.poolTokenMint, userPoolTokenPublicKey, - ORCA_TOKEN_SWAP_ID, + orcaTokenSwapId, TOKEN_PROGRAM_ID, poolTokenAmount, maximumTokenA, @@ -130,6 +131,7 @@ export const createWithdrawInstruction = async ( minimumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, + orcaTokenSwapId: PublicKey, owner: Owner ): Promise => { const withdrawInstruction = TokenSwap.withdrawAllTokenTypesInstruction( @@ -143,7 +145,7 @@ export const createWithdrawInstruction = async ( tokenBPublicKey, userTokenAPublicKey, userTokenBPublicKey, - ORCA_TOKEN_SWAP_ID, + orcaTokenSwapId, TOKEN_PROGRAM_ID, poolTokenAmount, minimumTokenA, From 9e72461eed5ab08fa7b62b1e5cabccdd2e1a888c Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 18 Nov 2021 09:43:20 -0800 Subject: [PATCH 26/81] Bump to 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3e2e09a..93ee5ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.1.14", + "version": "1.2.0", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 685597da2493060e0036f29b97f358f943de951a Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 20 Nov 2021 09:17:42 -0800 Subject: [PATCH 27/81] Add pool api for getQuoteWithPoolAmounts (#64) --- src/model/orca/pool/orca-pool.ts | 38 +++++++++++++++++++++++++------- src/model/quote/quote-builder.ts | 2 ++ src/public/pools/types.ts | 21 ++++++++++++++++++ 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/src/model/orca/pool/orca-pool.ts b/src/model/orca/pool/orca-pool.ts index de9b673..fbb2b93 100644 --- a/src/model/orca/pool/orca-pool.ts +++ b/src/model/orca/pool/orca-pool.ts @@ -94,32 +94,54 @@ export class OrcaPoolImpl implements OrcaPool { inputAmount: Decimal | OrcaU64, slippage?: Decimal ): Promise { - const slippageTolerance = - slippage === undefined ? defaultSlippagePercentage : Percentage.fromDecimal(slippage); - - const feeStructure = this.poolParams.feeStructure; - const { inputPoolToken, outputPoolToken } = getTokens( this.poolParams, inputToken.mint.toString() ); - const inputAmountU64 = U64Utils.toTokenU64(inputAmount, inputPoolToken, "inputAmount"); - const poolTokenCount: PoolTokenCount = await getTokenCount( + const { inputTokenCount, outputTokenCount } = await getTokenCount( this.connection, this.poolParams, inputPoolToken, outputPoolToken ); + return this.getQuoteWithPoolAmounts( + inputToken, + inputAmount, + inputTokenCount, + outputTokenCount, + slippage + ); + } + + public async getQuoteWithPoolAmounts( + inputToken: OrcaToken, + inputAmount: Decimal | OrcaU64, + inputTokenPoolAmount: u64, + outputTokenPoolAmount: u64, + slippage?: Decimal + ): Promise { + const slippageTolerance = + slippage === undefined ? defaultSlippagePercentage : Percentage.fromDecimal(slippage); + + const feeStructure = this.poolParams.feeStructure; + + const { inputPoolToken, outputPoolToken } = getTokens( + this.poolParams, + inputToken.mint.toString() + ); + const inputAmountU64 = U64Utils.toTokenU64(inputAmount, inputPoolToken, "inputAmount"); + const { value: { feeCalculator }, } = await this.connection.getRecentBlockhashAndContext("singleGossip"); const quoteParams: QuotePoolParams = { - ...poolTokenCount, inputToken: inputPoolToken, outputToken: outputPoolToken, + inputTokenCount: inputTokenPoolAmount, + outputTokenCount: outputTokenPoolAmount, feeStructure: feeStructure, slippageTolerance: slippageTolerance, lamportsPerSignature: feeCalculator.lamportsPerSignature, diff --git a/src/model/quote/quote-builder.ts b/src/model/quote/quote-builder.ts index 1bb1c20..264c9af 100644 --- a/src/model/quote/quote-builder.ts +++ b/src/model/quote/quote-builder.ts @@ -8,6 +8,8 @@ import { StablePoolQuoteBuilder } from "./stable-quote"; export type QuotePoolParams = PoolTokenCount & { inputToken: OrcaToken; outputToken: OrcaToken; + inputTokenCount: u64; + outputTokenCount: u64; feeStructure: FeeStructure; slippageTolerance: Percentage; lamportsPerSignature: number; diff --git a/src/public/pools/types.ts b/src/public/pools/types.ts index 224f143..d5d5342 100644 --- a/src/public/pools/types.ts +++ b/src/public/pools/types.ts @@ -1,3 +1,4 @@ +import { u64 } from "@solana/spl-token"; import { Keypair, PublicKey } from "@solana/web3.js"; import Decimal from "decimal.js"; import { OrcaU64 } from ".."; @@ -66,6 +67,26 @@ export type OrcaPool = { slippage?: Decimal ) => Promise; + /** + * Get the latest quote to trade on token to another in this pool using user provided pool amounts + * + * Note: slippage supports a maximum scale of 1 (ex. 0.1%). Additional decimal places will be floored. + * + * @param inputTokenId The token you want to trade from + * @param inputAmount The amount of token you would to trade + * @param inputTokenPoolAmount The amount of input tokens in the pool + * @param outputTokenPoolAmount The amount of output tokens in the pool + * @param slippage An optional slippage in percentage you are willing to take in this trade (default: 0.1%) + * @return Returns a quote on the exchanged token based on the input token amount + */ + getQuoteWithPoolAmounts: ( + inputToken: OrcaToken, + inputAmount: Decimal | OrcaU64, + inputTokenPoolAmount: u64, + outputTokenPoolAmount: u64, + slippage?: Decimal + ) => Promise; + /** * Perform a swap from the input type to the other token in the pool. * Fee for the transaction will be paid by the owner's wallet. From 4e9bafb44383c92c26591ccba466148b6441b90d Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 20 Nov 2021 09:23:22 -0800 Subject: [PATCH 28/81] Bump to 1.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 93ee5ea..f73816c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.0", + "version": "1.2.1", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 44f557c3663e7440d69b053481fc1584c99c6a87 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 22 Nov 2021 08:26:57 -0800 Subject: [PATCH 29/81] Update pool (#65) --- src/constants/farms.ts | 20 ++++++++++++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 1 + 5 files changed, 56 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 0588868..410e4ca 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -662,6 +662,15 @@ export const oogiUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const sonarUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2SxKGe1PEKWQC6m5Q1jUnXJuZBVXyUC37ffCPop38iiA"), + farmTokenMint: new PublicKey("GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -932,6 +941,15 @@ export const oogiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const sonarUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("E3hyqjh9R7UWMwkMSxYHws4qdnpMSzXwkuJfVcEfmJwb"), + farmTokenMint: new PublicKey("9tpC9vawMtim6q3MaQHfPPwFnnErh58qXhdqczS2p7sd"), + rewardTokenMint: new PublicKey("sonarX4VtVkQemriJeLm6CKeW3GDMyiBnnAEMw1MRAE"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1010,6 +1028,7 @@ export const orcaFarmConfigs: Record = { CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5: sdogeUsdcAqFarm, "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcAqFarm, DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcAqFarm, + "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1040,4 +1059,5 @@ export const orcaFarmConfigs: Record = { "4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b": sdogeUsdcDoubleDip, BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx: catoUsdcDoubleDip, FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE: oogiUsdcDoubleDip, + GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY: sonarUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index db7f29c..4d3314f 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1835,6 +1835,31 @@ export const oogiUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const sonarUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Dzp3ZWyUZGXZYWfodXdLdXfiW7gwVZBdWBwQ28eB6cTH"), + nonce: 253, + authority: new PublicKey("3HJw5YCXr69DzUcLSif4BicrMrXjC2jrEMpjQhQ3AwmB"), + poolTokenMint: new PublicKey("5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("J8tqP1N2fEgMTGhX2PTgRyj5ZFsFWsXneJpXyRjekKWA"), + tokenIds: [Tokens.sonarToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.sonarToken.mint.toString()]: { + ...Tokens.sonarToken, + addr: new PublicKey("DxGfntMLqAjtB287GkPPcfotUGcWdhtpzR6KukdBo39H"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("EVymxW4gFtxw7qjMYGFq4EupxHc1RteffwETa5MKTDPR"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1913,4 +1938,5 @@ export const orcaPoolConfigs: Record = { CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5: sdogeUsdcPool, "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcPool, DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcPool, + "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index ec6f1c0..4066c7d 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -299,6 +299,13 @@ export const solToken: OrcaToken = Object.freeze({ scale: 9, }); +export const sonarToken: OrcaToken = Object.freeze({ + tag: "SONAR", + name: "SonarWatch", + mint: new PublicKey("sonarX4VtVkQemriJeLm6CKeW3GDMyiBnnAEMw1MRAE"), + scale: 9, +}); + export const srmToken: OrcaToken = Object.freeze({ tag: "SRM", name: "Serum", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 5c93d3b..e4be840 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -81,6 +81,7 @@ export enum OrcaFarmConfig { SDOGE_USDC_AQ = "CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5", CATO_USDC_AQ = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", OOGI_USDC_AQ = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", + SONAR_USDC_AQ = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -111,4 +112,5 @@ export enum OrcaFarmConfig { SDOGE_USDC_DD = "4kXYyZAMBdvgDaBKUGvRWJnHw9af7sCUPvpQ68PEdP8b", CATO_USDC_DD = "BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx", OOGI_USDC_DD = "FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE", + SONAR_USDC_DD = "GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 4715b08..f69cfed 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -81,4 +81,5 @@ export enum OrcaPoolConfig { SDOGE_USDC = "CHTKUJGYRtBDqnxCFjxe5KEkZgxV98udbhuYYyzGxup5", CATO_USDC = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", OOGI_USDC = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", + SONAR_USDC = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", } From 955cc25e109d75e741266ab20d784c18e48b213d Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 22 Nov 2021 08:27:36 -0800 Subject: [PATCH 30/81] Bump to 1.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f73816c..3189ec5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.1", + "version": "1.2.2", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From da474ea6fce9baeaa51129f6f9f51507d42f753e Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 24 Nov 2021 07:33:01 -0800 Subject: [PATCH 31/81] Update pool (#66) --- src/constants/farms.ts | 10 ++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 1 + src/public/pools/config.ts | 1 + 5 files changed, 45 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 410e4ca..33cf8a2 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -671,6 +671,15 @@ export const sonarUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const aptUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3YZ5GYL625vWibn7d8hMdrMBawy9HGUyeTe4AoXoME1Q"), + farmTokenMint: new PublicKey("Dx7DYSuaBufhXyQG7155ePkLmHyn6w7WeKKtQB9zscZV"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1029,6 +1038,7 @@ export const orcaFarmConfigs: Record = { "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcAqFarm, DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcAqFarm, "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcAqFarm, + HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 4d3314f..79a4e8f 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1860,6 +1860,31 @@ export const sonarUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const aptUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Fg3UabVqnfycMtkiTVoaia9eNafehtT9Y4TicH2iBtvK"), + nonce: 255, + authority: new PublicKey("JDEYn1JsacdxoB4v4mbctFSVrSUPttacX3gxWphFHJKZ"), + poolTokenMint: new PublicKey("HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("41H5mWwsZKewJeV4wWiNjQ3U4VYBnwqCpzvAWt86baHd"), + tokenIds: [Tokens.aptToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.aptToken.mint.toString()]: { + ...Tokens.aptToken, + addr: new PublicKey("636crNdZTf46gFUKuedaBCZDBMLahf7KGud2LyTMskU5"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("DGEYFkEHyiuHWtHeCGiQGn1JbkGHqYrNwaP44miRbgxu"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1939,4 +1964,5 @@ export const orcaPoolConfigs: Record = { "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4": catoUsdcPool, DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcPool, "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcPool, + HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 4066c7d..e1512a1 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -12,6 +12,13 @@ export const abrToken: OrcaToken = Object.freeze({ scale: 9, }); +export const aptToken: OrcaToken = Object.freeze({ + tag: "APT", + name: "Apricot", + mint: new PublicKey("APTtJyaRX5yGTsJU522N4VYWg3vCvSb65eam5GrPT5Rt"), + scale: 6, +}); + export const atlasToken: OrcaToken = Object.freeze({ tag: "ATLAS", name: "Star Atlas", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index e4be840..ffc76b5 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -82,6 +82,7 @@ export enum OrcaFarmConfig { CATO_USDC_AQ = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", OOGI_USDC_AQ = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", SONAR_USDC_AQ = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", + APT_USDC_AQ = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index f69cfed..ff9528d 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -82,4 +82,5 @@ export enum OrcaPoolConfig { CATO_USDC = "55r9txzQtmjTykmTXmBYZCVMg5z9squB8b5cSw2AhxA4", OOGI_USDC = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", SONAR_USDC = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", + APT_USDC = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", } From 33870c2446dba9402d16825ceed8ec5d4d16a6c2 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 24 Nov 2021 07:33:42 -0800 Subject: [PATCH 32/81] Bump to 1.2.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3189ec5..11b3fd8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.2", + "version": "1.2.3", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 7875dd165ec021e50bb7b2604ce7de4cb3d53d87 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 25 Nov 2021 09:51:25 -0800 Subject: [PATCH 33/81] Update pool (#67) --- src/constants/farms.ts | 10 ++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 1 + src/public/pools/config.ts | 1 + 5 files changed, 45 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 33cf8a2..3bedc97 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -680,6 +680,15 @@ export const aptUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const dflUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GaKnyw7sYU6raJpZGjFER1eXZ9zHfqih5fAj1T5xxP6J"), + farmTokenMint: new PublicKey("C8jJeUM9s7R7gTw1ybgTW4LPkgrYtogstD6MtBjroGLB"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1039,6 +1048,7 @@ export const orcaFarmConfigs: Record = { DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcAqFarm, "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcAqFarm, HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcAqFarm, + AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 79a4e8f..47a4720 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1885,6 +1885,31 @@ export const aptUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const dflUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("59wJQz25rr38YnD69eXsntbdE4LB7m39KjHqZUUaoyZ3"), + nonce: 255, + authority: new PublicKey("E2kEN96wSW5bYML8qYLgxKM4pvdLjqhCRMyCvqYyVrXt"), + poolTokenMint: new PublicKey("AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("bZxTKZNF5gwnuXQ3xt8huUtsLAyFoh2NnQwmDDgbVxd"), + tokenIds: [Tokens.dflToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.dflToken.mint.toString()]: { + ...Tokens.dflToken, + addr: new PublicKey("EXZdhy56TjvArQRfDakjuQdT7DffwFEYdY5F39vn3Wbr"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("Bhch1NY65RNA8uFaj2s8Fzxu36SFMQiniyZidq4jzsTt"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1965,4 +1990,5 @@ export const orcaPoolConfigs: Record = { DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG: oogiUsdcPool, "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcPool, HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcPool, + AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index e1512a1..dfec6f8 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -68,6 +68,13 @@ export const copeToken: OrcaToken = Object.freeze({ scale: 6, }); +export const dflToken: OrcaToken = Object.freeze({ + tag: "DFL", + name: "DeFi Land", + mint: new PublicKey("DFL1zNkaGPWm1BqAVqRjCZvHmwTFrEaJtbzJWgseoNJh"), + scale: 9, +}); + export const ethToken: OrcaToken = Object.freeze({ tag: "ETH", name: "Ethereum", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index ffc76b5..b7e26cc 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -83,6 +83,7 @@ export enum OrcaFarmConfig { OOGI_USDC_AQ = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", SONAR_USDC_AQ = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", APT_USDC_AQ = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", + DFL_USDC_AQ = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index ff9528d..d48d64f 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -83,4 +83,5 @@ export enum OrcaPoolConfig { OOGI_USDC = "DSiHyHDn96bUQSZtizyCRLcQzrwohZeMpVu8rYJN1HzG", SONAR_USDC = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", APT_USDC = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", + DFL_USDC = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", } From 642be4139545afe57f8cd722d6035a5614930702 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 25 Nov 2021 09:52:41 -0800 Subject: [PATCH 34/81] Bump to 1.2.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 11b3fd8..d399cf9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.3", + "version": "1.2.4", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From a6484421b69314dbccb5ee64c8117829d731ed86 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 3 Dec 2021 09:47:34 -0800 Subject: [PATCH 35/81] Add comments on misnomer properties in DepositQuote and WithdrawQuote (#71) --- src/public/pools/types.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/public/pools/types.ts b/src/public/pools/types.ts index d5d5342..205ccf6 100644 --- a/src/public/pools/types.ts +++ b/src/public/pools/types.ts @@ -5,7 +5,7 @@ import { OrcaU64 } from ".."; import { TransactionPayload } from "../utils"; export type DepositQuote = { - minPoolTokenAmountOut: OrcaU64; + minPoolTokenAmountOut: OrcaU64; // MISNOMER - this value represents the exact poolTokenAmountOut maxTokenAIn: OrcaU64; maxTokenBIn: OrcaU64; }; @@ -13,7 +13,7 @@ export type DepositQuote = { export type WithdrawQuote = { minTokenAOut: OrcaU64; minTokenBOut: OrcaU64; - maxPoolTokenAmountIn: OrcaU64; + maxPoolTokenAmountIn: OrcaU64; // MISNOMER - this value represents the exact poolTokenAmountIn }; /** @@ -111,6 +111,9 @@ export type OrcaPool = { /** * Get suggested pool token deposit amount based on required constraints on maximum tokenA amount and maximum tokenB amount * + * Note: + * 1. minPoolTokenAmountOut in the output type is a misnomer, and it represents the _exact_ poolTokenAmountOut value + * * @param maxTokenAIn The maximum amount of tokenA to deposit in exchange for pool token * @param maxTokenBIn The maximum amount of tokenB to deposit in exchange for pool token * @param slippage An optional slippage in percentage you are willing to take in deposit (default: 0.1%) @@ -148,6 +151,9 @@ export type OrcaPool = { * * Throws error if withdrawTokenMint does not equal tokenMint of tokenA, tokenB, or poolToken of this pool * + * Note: + * 1. maxPoolTokenAmountIn in the output type is a misnomer, and it represents the _exact_ poolTokenAmountIn value + * * @param withdrawTokenAmount The amount of tokens to withdraw in terms of tokenA amount, tokenB amount, or poolToken amount * @param withdrawTokenMint The token mint public key of tied to withdrawTokenAmount. It should be the mint of tokenA, tokenB, or poolToken * @param slippage An optional slippage in percentage you are willing to take in withdraw (default: 0.1%) From 26bb84a73c845a3a3b5c01abdca248e197c4c56e Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 3 Dec 2021 09:48:24 -0800 Subject: [PATCH 36/81] Bump to 1.2.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d399cf9..834c92b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.4", + "version": "1.2.5", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From cfe7855de19107ba0141ac166109ce76c311474f Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sun, 5 Dec 2021 21:24:02 -0800 Subject: [PATCH 37/81] Pool update (#73) --- src/constants/farms.ts | 20 +++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 2 ++ 5 files changed, 83 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 3bedc97..1e4ddc2 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -689,6 +689,24 @@ export const dflUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const dflSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HTEe4r3YDRqDbA2dwQNMnMBAToV7rHvpyMBe6EjZmXyz"), + farmTokenMint: new PublicKey("E3omuGbZSksAdbiyvtpdfGsUGhptA26Enwe5Y5jJKnbK"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M"), + baseTokenDecimals: 6, +}); + +export const frktUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EUgwcVQhm1BDHWeMThNRx143RRay1byP6gmca9dp8HMe"), + farmTokenMint: new PublicKey("Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1049,6 +1067,8 @@ export const orcaFarmConfigs: Record = { "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcAqFarm, HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcAqFarm, AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcAqFarm, + "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolAqFarm, + FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 47a4720..9525592 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1910,6 +1910,56 @@ export const dflUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const dflSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GxkXvW6dJP3KUNWuXi64V99uRsPFEFnuuasNTq6fvZfP"), + nonce: 255, + authority: new PublicKey("H196f95DHGfhNkF3W9h4bjBqpL8g3qesEENHRsDqJshj"), + poolTokenMint: new PublicKey("9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7L7kjeEo5oE9SCZ9vacmyJvfKKmjAevVpdktBGyxBxaF"), + tokenIds: [Tokens.dflToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.dflToken.mint.toString()]: { + ...Tokens.dflToken, + addr: new PublicKey("BpjpdhuMkPPW3HPx4U9tRmNAXdUeb49jxwFGy2PrSNCp"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("HcXqJthqq1UeGHA8xPeDLnWVJFcndoUnKnpULRCjyTzi"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const frktUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("DXNct3MfHDuhKiXHY3AUXPtj5sQVY3feuDxkDRfCw1rL"), + nonce: 254, + authority: new PublicKey("JBCdhgkmW6xHdZUZdKdf56qov9LtHixf47JpoCWm4qcn"), + poolTokenMint: new PublicKey("FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("DRn2F5MsWzLihtqsheuJmugJuHQGDR23cvqCLy7eCucw"), + tokenIds: [Tokens.frktToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.frktToken.mint.toString()]: { + ...Tokens.frktToken, + addr: new PublicKey("AUSeFBvVtLiZRppRu8Uvd8NjzCkQzaCi5Si8WWyko9p"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("C3RzSoNiBfTNbAZMyyuV2aLfwGQRyjvkjL3pf9iuvU3R"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -1991,4 +2041,6 @@ export const orcaPoolConfigs: Record = { "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN": sonarUsdcPool, HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177: aptUsdcPool, AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcPool, + "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolPool, + FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index dfec6f8..e6b6e0d 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -89,6 +89,13 @@ export const fidaToken: OrcaToken = Object.freeze({ scale: 6, }); +export const frktToken: OrcaToken = Object.freeze({ + tag: "FRKT", + name: "FRAKT Token", + mint: new PublicKey("ErGB9xa24Szxbk1M28u2Tx8rKPqzL6BroNkkzk5rG4zj"), + scale: 8, +}); + export const fttToken: OrcaToken = Object.freeze({ tag: "FTT", name: "FTX Token", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index b7e26cc..0f11332 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -84,6 +84,8 @@ export enum OrcaFarmConfig { SONAR_USDC_AQ = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", APT_USDC_AQ = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", DFL_USDC_AQ = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", + DFL_SOL_AQ = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", + FRKT_USDC_AQ = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index d48d64f..eaec7c6 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -84,4 +84,6 @@ export enum OrcaPoolConfig { SONAR_USDC = "5MvQHx8eftU39JTucFsT315JFnQASuDQg3FqxTw7xcvN", APT_USDC = "HNrYngS1eoqkjWro9D3Y5Z9sWBDzPNK2tX4rfV2Up177", DFL_USDC = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", + DFL_SOL = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", + FRKT_USDC = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", } From 4f14831732cb3b72a1035867c37c2076317ea29b Mon Sep 17 00:00:00 2001 From: Braden Keith Date: Mon, 6 Dec 2021 00:25:29 -0500 Subject: [PATCH 38/81] Update README.md (#72) Added the `Network` module to the import statement when utilizing devnet and fixed a minor typo. --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6589508..35316e0 100644 --- a/README.md +++ b/README.md @@ -156,14 +156,19 @@ main() # Devnet Testing -The example code above can be run on devnet by changing two lines of code like so: +The example code above can be run on devnet by updating the import statement: +```typescript +import { getOrca, OrcaFarmConfig, OrcaPoolConfig, Network } from "@orca-so/sdk"; +``` + +And changing two lines of code like so: ```typescript const connection = new Connection("https://api.devnet.solana.com", "singleGossip"); const orca = getOrca(connection, Network.DEVNET); ``` -One caveat to note is that there are only a few devnet pools avaialble, so if you try to access pools that are only +One caveat to note is that there are only a few devnet pools available, so if you try to access pools that are only available on mainnet, the code will throw an error. The example code uses ORCA_SOL, which exists on the devnet. # Technical Notes From 58560ffd00d406bfff3a6508c3ff920e6f1e539d Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Sun, 5 Dec 2021 21:26:02 -0800 Subject: [PATCH 39/81] Bump to 1.2.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 834c92b..0e54ccd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.5", + "version": "1.2.6", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 3091bc02afc090497710948debc30ec7ec5a82ba Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 9 Dec 2021 09:59:37 -0800 Subject: [PATCH 40/81] Pool update (#75) --- src/constants/farms.ts | 10 ++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 1 + src/public/pools/config.ts | 1 + 5 files changed, 45 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 1e4ddc2..9264304 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -707,6 +707,15 @@ export const frktUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const tttUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BPsQWbFEwYRxHims8Yw14BbL8njWEQq4tNWrrJb9sgXD"), + farmTokenMint: new PublicKey("AmrPpJFQj4xtv3yVgPCFqhXEMBPhaKRP6qFyhuCdz66c"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1069,6 +1078,7 @@ export const orcaFarmConfigs: Record = { AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcAqFarm, "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolAqFarm, FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcAqFarm, + FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu: tttUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 9525592..7b1283d 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1960,6 +1960,31 @@ export const frktUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const tttUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("HD6pqxyqj4S7eS3orAyQyan5RpwpMPjKEDWgTyYXcfr1"), + nonce: 254, + authority: new PublicKey("Gh1QqgpKGd6zhicNvBh1VLbycpoq6P7QBCZT8MdhWzN1"), + poolTokenMint: new PublicKey("FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AFjaSrdgNJsFDSQTDbkBoBMLHt2qCt5GuPHWDTUV4nHt"), + tokenIds: [Tokens.tttToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.tttToken.mint.toString()]: { + ...Tokens.tttToken, + addr: new PublicKey("HbrvwSnL11K5EALN21FdjmWvG16VNcq5iyHEKjdHtyJe"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("CQvyngoqxCdgFQYjbT8EKved6hTDzmzdp8Xxxv5FkXmd"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2043,4 +2068,5 @@ export const orcaPoolConfigs: Record = { AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP: dflUsdcPool, "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolPool, FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcPool, + FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu: tttUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index e6b6e0d..a791718 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -355,6 +355,13 @@ export const sypToken: OrcaToken = Object.freeze({ scale: 9, }); +export const tttToken: OrcaToken = Object.freeze({ + tag: "TTT", + name: "TabTrader", + mint: new PublicKey("FNFKRV3V8DtA3gVJN6UshMiLGYA8izxFwkNWmJbFjmRj"), + scale: 6, +}); + export const tulipToken: OrcaToken = Object.freeze({ tag: "TULIP", name: "Tulip Protocol", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 0f11332..2166e34 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -86,6 +86,7 @@ export enum OrcaFarmConfig { DFL_USDC_AQ = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", DFL_SOL_AQ = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", FRKT_USDC_AQ = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", + TTT_USDC_AQ = "FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index eaec7c6..444d2c1 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -86,4 +86,5 @@ export enum OrcaPoolConfig { DFL_USDC = "AWrtTWG4Zgxw8D92bb3L3sQtGLD3zDztMPWsXSph8iBP", DFL_SOL = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", FRKT_USDC = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", + TTT_USDC = "FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu", } From 8ae89191f5325380c4d5766874fa3a1774ded3ed Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 9 Dec 2021 10:00:21 -0800 Subject: [PATCH 41/81] Bump to 1.2.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0e54ccd..73d6873 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.6", + "version": "1.2.7", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From f9568f8cd01dcae756070c895e164498d6ca5918 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 15 Dec 2021 18:47:38 -0800 Subject: [PATCH 42/81] Pool update (#77) --- src/constants/farms.ts | 110 ++++++++++++++++++++ src/constants/pools.ts | 208 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 42 ++++++++ src/public/farms/config.ts | 11 ++ src/public/pools/config.ts | 8 ++ 5 files changed, 379 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 9264304..a9dbe3b 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -716,6 +716,78 @@ export const tttUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const upsUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4TQzMpNP5JdZ3YDi1iz9kYqv4L7sTKQeFtpvnfc6T7aJ"), + farmTokenMint: new PublicKey("9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz"), + baseTokenDecimals: 6, +}); + +export const fantUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BkiSfYmmt8KxrKFhpS4oq6TYf5C4DFnaFWDnn3eDhcfp"), + farmTokenMint: new PublicKey("C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB"), + baseTokenDecimals: 6, +}); + +export const blockUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3QHfuWvAkUfr1QenKaPBDUUUwShvoMLZCmfux5bovz1J"), + farmTokenMint: new PublicKey("CkSfxpcpunHLUQktiFAeTJCYHsT4brYoJE23R3vw5zCF"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf"), + baseTokenDecimals: 6, +}); + +export const runUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2yCL6hAsNQN7R2wrPaUffxVDyK8hhSL1hYf2knhUzLZk"), + farmTokenMint: new PublicKey("Gxh7KubJPEqR1i4oHCxxYayWcSJMzn7h2kpJeCCEAkNC"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n"), + baseTokenDecimals: 6, +}); + +export const uxpUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("G7W1y2Mv2kxu7ht3csCUNdduaUNBkYVcvX6QA47CJKuF"), + farmTokenMint: new PublicKey("8BxKJ3FAFbidm9rPotQEcm6dDqJkTz2PhLtaq6hnZk8L"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv"), + baseTokenDecimals: 6, +}); + +export const btcUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3japFRAWZTq8FLjeTsi4hmNHpeo7RhP9ift4joCjRkga"), + farmTokenMint: new PublicKey("3aDHNJpWPEzXHZNeuak3LgcB8MbAwnDKkB2YftaPyhev"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj"), + baseTokenDecimals: 6, +}); + +export const mndeUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FBSHQPtDZLvv8tmj1S75GW4TKGhxXVqU1zcSK57ZWHGF"), + farmTokenMint: new PublicKey("BtXnDsnidDZnkVFJJnqtAMMCtkoG5uioYF72yC8fhVTn"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N"), + baseTokenDecimals: 6, +}); + +export const chicksUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BQivr16DZwUyzx9Qa5LR7V7eg1ASMiPjBtyj1bsoLXw2"), + farmTokenMint: new PublicKey("GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -995,6 +1067,33 @@ export const sonarUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const upsUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8V2RqGTNmz2xYBdonfvkLstGWV7ibHopoZMQeaV9rykb"), + farmTokenMint: new PublicKey("9Ux3QdsLpLXCNFsACXjp4F2D5ihkWZnVhdDiTDTvw2Ny"), + rewardTokenMint: new PublicKey("EwJN2GqUGXXzYmoAciwuABtorHczTA5LqbukKXV1viH7"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH"), + baseTokenDecimals: 6, +}); + +export const fantUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2J5exwdrNhqK1y1DF5jPQV2JieZ5xBsR3jDrZRh8PfPZ"), + farmTokenMint: new PublicKey("FftGKB7DThU5N96xYQ8BWkRBpFTKDvSzN7hCCNxuypsE"), + rewardTokenMint: new PublicKey("FANTafPFBAt93BNJVpdu25pGPmca3RfwdsDsRrT3LX1r"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6"), + baseTokenDecimals: 6, +}); + +export const stsolUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HhBtZgPaFb5rodxXsZbtZUqxk2vEg6tdzM4AcaG2PjcL"), + farmTokenMint: new PublicKey("CejKA1pePxny3iprRDEyiojfTKNxxX2bjmKToDGZqwvh"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1079,6 +1178,14 @@ export const orcaFarmConfigs: Record = { "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolAqFarm, FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcAqFarm, FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu: tttUsdcAqFarm, + E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz: upsUsdcAqFarm, + GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB: fantUsdcAqFarm, + D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf: blockUsdcAqFarm, + "34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n": runUsdcAqFarm, + HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv: uxpUsdcAqFarm, + J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj: btcUsdcAqFarm, + "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N": mndeUsdcAqFarm, + "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1110,4 +1217,7 @@ export const orcaFarmConfigs: Record = { BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx: catoUsdcDoubleDip, FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE: oogiUsdcDoubleDip, GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY: sonarUsdcDoubleDip, + "9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH": upsUsdcDoubleDip, + C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6: fantUsdcDoubleDip, + "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5": stsolUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 7b1283d..742ba57 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -1985,6 +1985,206 @@ export const tttUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const upsUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("G67ZSkxE5N67x6A1WhcTaHiFHqRtRQUb3QHwjtPge1Xr"), + nonce: 250, + authority: new PublicKey("Hj3vg6P2DBfJ6hhvCoucaGvL9cwsvUgeJWZRzuXTZ6hi"), + poolTokenMint: new PublicKey("E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("Cu8SFyZKsHcUYhxECpt5Wr97CeHSXeDyNjs9kyDWtVJm"), + tokenIds: [Tokens.upsToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.upsToken.mint.toString()]: { + ...Tokens.upsToken, + addr: new PublicKey("CNw37MJdV6gBChtEtUgGrx3zWXz8t3bYxD7u5axPrwdJ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("5iLVx3LwhWiqjaRyLaiVNsLbYBqy48fvs2sTY6q96nNy"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const fantUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("95aDcNzL8tL17jzHAUQXnRwuCmYBWKUr4xfjV6AMVJY1"), + nonce: 255, + authority: new PublicKey("GeTZHdp1sYgX6J73CBeqS5pjb7xfY8D9Rzf4E615oGMt"), + poolTokenMint: new PublicKey("GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AdSQYnzmJ4j2hbqT5aumXAf4a3T2AxmGHbCgHER8rf6K"), + tokenIds: [Tokens.fantToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.fantToken.mint.toString()]: { + ...Tokens.fantToken, + addr: new PublicKey("CyLaJ6Y382czGE75yFDg2fneKni6PjZHH9Jh4GZN2Nyo"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("7wHMKRPVsacb3JcBsUxLKLZkAPbX81VNc6Z6J9uvJ2J8"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const blockUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("ExeW62iy4xEUo5b5XnDru5oQCDRDUmBaFNqE4V4u7uvm"), + nonce: 255, + authority: new PublicKey("2fSbre92FnmkeUP5iT7jdFKNB3nfx5yQ5GEW2mjVigMi"), + poolTokenMint: new PublicKey("D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("BGSDZoQyH8QGJDvQ8toms4Pk4HWHaFEXSUvJ3AAYXxmF"), + tokenIds: [Tokens.blockToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.blockToken.mint.toString()]: { + ...Tokens.blockToken, + addr: new PublicKey("7uJ5SFRGzrnbspUThix8M2wFJNnS8vvSKbCEhKmqMjNm"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("4e5ZVp7u6YWEibveHscZmbmHpujtbJNUHFj14tqtAZKv"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const runUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9j4FdbK68xUDQVynTWHbNzBRAj7Q7Lywiqb82en4JzZs"), + nonce: 253, + authority: new PublicKey("9RUMuXequVtf9UVYHoKJxwWfqyod478nBfX8H3DvSaKV"), + poolTokenMint: new PublicKey("34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("pPH4mFHFu1c3ZR59Zaun5jSCBRn6pU1GWSoVHD4LKUs"), + tokenIds: [Tokens.runToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.runToken.mint.toString()]: { + ...Tokens.runToken, + addr: new PublicKey("tg7YMVac4S2ZpVrbaDqrZgURyTBBrZCQUkQ6Fn6nnrX"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("G2fZDZKa5Y599xzqP1jVQ3EMCfiG6f4dMS6G1f7BKoQe"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const uxpUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("eKuTPdMHmnVzLP63oWwdUH6bBAVcdvBfg4zvH2nWWCj"), + nonce: 255, + authority: new PublicKey("DYwCP16u5pmLMspCb8tdTQaaF2rBvM2qvgzm5uYvPUHT"), + poolTokenMint: new PublicKey("HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HoaPae92LswzSbvnVbdkBAYFNanrvK3kFvWtYyUhpC2o"), + tokenIds: [Tokens.uxpToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.uxpToken.mint.toString()]: { + ...Tokens.uxpToken, + addr: new PublicKey("BWL9ocg8VEBSfrS7zjUBUidE9T8p95J3p5wF6C4Vaqrs"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GQC4fM5E6dr9MsXvtMzAR4Z8iCduhyFvYCLdMAAHGCM2"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const btcUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2dwHmCoAGxCXvTbLTMjqAhvEFAHWUt9kZaroJJJdmoD4"), + nonce: 253, + authority: new PublicKey("BwJ1vMtJiBy7dJaVToR1KUwVbBsGUTNN4QdKVSf8EEh1"), + poolTokenMint: new PublicKey("J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HR7c67SkeLvCpHrVSu7MiiAERQh6iD1NrCJsj3kWiZnK"), + tokenIds: [Tokens.btcToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.btcToken.mint.toString()]: { + ...Tokens.btcToken, + addr: new PublicKey("D3Wv78j9STkfJx3vhzoCzpMZ4RqCg8oaTNGzi1rZpdJg"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("HMFLg2GtbWSSEe92Vuf2LQdUpCacGj2m2PwvMqzwQFNi"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const mndeUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2yNwARmTmc3NzYMETCZQjAE5GGCPgviH6hiBsxaeikTK"), + nonce: 253, + authority: new PublicKey("2ZzxuHxvPQtPU48Tffs8LD8sy17rgjBRQviRVxQ54fR6"), + poolTokenMint: new PublicKey("12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("6AvWhLSuAqTWUdpo4jF84s4gfgAjbRQv5vLf7mYNCgd8"), + tokenIds: [Tokens.mndeToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.mndeToken.mint.toString()]: { + ...Tokens.mndeToken, + addr: new PublicKey("AfF3SJFpyfU7iw9KtrwPyi6corJbyiC24JyVis7oxNVr"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("FT4GQqs5sEvqhsWm845VF1vmHjdQkrB1jdsGPJbzB4oB"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const chicksUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3abwmh8LDUsXMoDgNzZLq9QvKqKbhYND9N5aXh9yz7Dm"), + nonce: 255, + authority: new PublicKey("HmNqp8F5Bp16dUTUihhL3TnyQxfzJ2GtTo9VEQx6bjB3"), + poolTokenMint: new PublicKey("71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("4zRJg9Kod7bd9tR3mxQhxzAQUPqQmUGJbmrWpQ4XDGT4"), + tokenIds: [Tokens.chicksToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.chicksToken.mint.toString()]: { + ...Tokens.chicksToken, + addr: new PublicKey("84Ha1dXH8YAWXt3AC15RstnUCoWT3hg24tUGD1GtqGSm"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GkonWV6urvzsnKwVmPXe89fTX1zBfv4xrAhx9JnxV9Nq"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2069,4 +2269,12 @@ export const orcaPoolConfigs: Record = { "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M": dflSolPool, FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL: frktUsdcPool, FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu: tttUsdcPool, + E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz: upsUsdcPool, + GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB: fantUsdcPool, + D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf: blockUsdcPool, + "34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n": runUsdcPool, + HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv: uxpUsdcPool, + J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj: btcUsdcPool, + "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N": mndeUsdcPool, + "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index a791718..7e973d0 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -40,6 +40,13 @@ export const avaxToken: OrcaToken = Object.freeze({ scale: 9, }); +export const blockToken: OrcaToken = Object.freeze({ + tag: "BLOCK", + name: "Blockasset", + mint: new PublicKey("NFTUkR4u7wKxy9QLaX2TGvd9oZSWoMo4jqSJqdMb7Nk"), + scale: 6, +}); + export const bopToken: OrcaToken = Object.freeze({ tag: "BOP", name: "Boring Protocol", @@ -61,6 +68,13 @@ export const catoToken: OrcaToken = Object.freeze({ scale: 9, }); +export const chicksToken: OrcaToken = Object.freeze({ + tag: "CHICKS", + name: "SolChicks Token", + mint: new PublicKey("cxxShYRVcepDudXhe7U62QHvw8uBJoKFifmzggGKVC2"), + scale: 9, +}); + export const copeToken: OrcaToken = Object.freeze({ tag: "COPE", name: "Cope", @@ -82,6 +96,13 @@ export const ethToken: OrcaToken = Object.freeze({ scale: 6, }); +export const fantToken: OrcaToken = Object.freeze({ + tag: "FANT", + name: "Phantasia", + mint: new PublicKey("FANTafPFBAt93BNJVpdu25pGPmca3RfwdsDsRrT3LX1r"), + scale: 6, +}); + export const fidaToken: OrcaToken = Object.freeze({ tag: "FIDA", name: "Bonfida", @@ -264,6 +285,13 @@ export const ropeToken: OrcaToken = Object.freeze({ scale: 9, }); +export const runToken: OrcaToken = Object.freeze({ + tag: "RUN", + name: "Run", + mint: new PublicKey("6F9XriABHfWhit6zmMUYAQBSy6XK5VF1cHXuW5LDpRtC"), + scale: 9, +}); + export const samoToken: OrcaToken = Object.freeze({ tag: "SAMO", name: "Samoyedcoin", @@ -369,6 +397,13 @@ export const tulipToken: OrcaToken = Object.freeze({ scale: 6, }); +export const upsToken: OrcaToken = Object.freeze({ + tag: "UPS", + name: "UPFI Network", + mint: new PublicKey("EwJN2GqUGXXzYmoAciwuABtorHczTA5LqbukKXV1viH7"), + scale: 6, +}); + export const usdcToken: OrcaToken = Object.freeze({ tag: "USDC", name: "USD Coin", @@ -383,6 +418,13 @@ export const usdtToken: OrcaToken = Object.freeze({ scale: 6, }); +export const uxpToken: OrcaToken = Object.freeze({ + tag: "UXP", + name: "UXD Protocol Token", + mint: new PublicKey("UXPhBoR3qG4UCiGNJfV7MqhHyFqKN68g45GoYvAeL2M"), + scale: 9, +}); + export const wagToken: OrcaToken = Object.freeze({ tag: "WAG", name: "Waggle", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 2166e34..4272a9c 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -87,6 +87,14 @@ export enum OrcaFarmConfig { DFL_SOL_AQ = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", FRKT_USDC_AQ = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", TTT_USDC_AQ = "FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu", + UPS_USDC_AQ = "E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz", + FANT_USDC_AQ = "GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB", + BLOCK_USDC_AQ = "D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf", + RUN_USDC_AQ = "34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n", + UXP_USDC_AQ = "HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv", + BTC_USDC_AQ = "J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj", + MNDE_USDC_AQ = "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N", + CHICKS_USDC_AQ = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -118,4 +126,7 @@ export enum OrcaFarmConfig { CATO_USDC_DD = "BHtZnTBMeY4EBEW5egGnuK5bdW12v6Dod6wFav79AyYx", OOGI_USDC_DD = "FiwSk36yi1DNWcuQUeNipAc1VKxa9Wv9AR2xFvyKUxAE", SONAR_USDC_DD = "GWmwwMGYBG4NqYdnsYrudzBnbgDC49MkBxdzhfLA9kVY", + UPS_USDC_DD = "9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH", + FANT_USDC_DD = "C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6", + stSOL_USDC_DD = "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 444d2c1..e4b7ab5 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -87,4 +87,12 @@ export enum OrcaPoolConfig { DFL_SOL = "9Y1vPaAsMz8X65DebMMnmBjbMo8i4jh4mcgiggZUUS3M", FRKT_USDC = "FnDxJPNk7pPmGHUbR4XUHmHevrkXHdna5D3sQKcAtjBL", TTT_USDC = "FGgP1npQTsC5Q4xBmQtNYSh51NKqNwdxBZy8JCo3igcu", + UPS_USDC = "E1U63VXhNiWoUkVvjrfLDdV1oJrwE6zLde3bohr6jCqz", + FANT_USDC = "GjG7JjTQfQpDxw4hWx4etP9oTaYCuCbPjsU8WaUT3xHB", + BLOCK_USDC = "D8WjqtwC9CzBrQKfSf2ccCHFQuPYwyLv5KAy8WjT5vnf", + RUN_USDC = "34Ppq6R8NfYBwWwPY4cBK4Afyb8hHaASQFukCzH6cV4n", + UXP_USDC = "HjR8JgqNKQVMvdryqJw5RJ4PCE9WGk8sgbEF7S9S3obv", + BTC_USDC = "J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj", + MNDE_USDC = "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N", + CHICKS_USDC = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", } From 4aeb211e37c777c5d48aefbedda33240811ebf7a Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 15 Dec 2021 18:48:07 -0800 Subject: [PATCH 43/81] Bump to 1.2.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 73d6873..5f502e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.7", + "version": "1.2.8", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 4642d7881ede805c25b4d284222d84c3cf2c6530 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 23 Dec 2021 01:30:39 -0800 Subject: [PATCH 44/81] Pool update (#78) --- src/constants/farms.ts | 30 ++++++++++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 14 ++++++++++ src/public/farms/config.ts | 3 +++ src/public/pools/config.ts | 2 ++ 5 files changed, 101 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index a9dbe3b..693bbdf 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -788,6 +788,24 @@ export const chicksUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const onesolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5FSwvhovxgEJPg4yufxCXiLXD3RY2SJKQ2fFy8mMupJj"), + farmTokenMint: new PublicKey("4tcadvVpXQPswr5dRt6jJW1sVFW2CxrKgzP594ZxaUTv"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg"), + baseTokenDecimals: 6, +}); + +export const wmpUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8brkHbXG9fNoYZu68D7cQy9Q1gC7hfTZQD7jfKFv4hvC"), + farmTokenMint: new PublicKey("Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1094,6 +1112,15 @@ export const stsolUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const wmpUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2aUMqCFWK3PKeScspP4SqRFS7fag18TDHv2VsaBfSS72"), + farmTokenMint: new PublicKey("4SWDBKeb44RQMYmyorUiuF94Fqf1toketzJyvLSjVtHN"), + rewardTokenMint: new PublicKey("BygDd5LURoqztD3xETc99WCxLUbTi6WYSht9XiBgZ4HW"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1186,6 +1213,8 @@ export const orcaFarmConfigs: Record = { J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj: btcUsdcAqFarm, "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N": mndeUsdcAqFarm, "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcAqFarm, + "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg": onesolUsdcAqFarm, + HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8: wmpUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1220,4 +1249,5 @@ export const orcaFarmConfigs: Record = { "9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH": upsUsdcDoubleDip, C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6: fantUsdcDoubleDip, "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5": stsolUsdcDoubleDip, + Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo: wmpUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 742ba57..b1a3504 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2185,6 +2185,56 @@ export const chicksUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const onesolUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CKKuMECwW75NBNRKtYJz1svCycRHt4KpXmcNnHXiHY73"), + nonce: 253, + authority: new PublicKey("2TSCMpjN6ToLJy8baiFTc9UdB1PuHFsr24mos98Zp57v"), + poolTokenMint: new PublicKey("6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9Rw29Mvx6b2RMAbdZoqs3gBRMcfYjBYRyiegNZoaYrWS"), + tokenIds: [Tokens.onesolToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.onesolToken.mint.toString()]: { + ...Tokens.onesolToken, + addr: new PublicKey("2meoejmWQno2q6cbFMRytu7UMqMA8FTx651feSUHfTtC"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("n5CtiZDLm2xNxVU1o4KC98dNGiFb1sbuCazDihahbMy"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const wmpUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Cqy7PRGRx2QeTLZM3QmLGN68uHxEd9euj2eEeeZWnuvQ"), + nonce: 255, + authority: new PublicKey("9vkbzRnjd9qpmunBUHqS8Fnt9DUEX5akJPm9movtfNxZ"), + poolTokenMint: new PublicKey("HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("Bfr66xExhYijJzc732abX7znkFnj4v3otQDFbHaz7RkK"), + tokenIds: [Tokens.wmpToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.wmpToken.mint.toString()]: { + ...Tokens.wmpToken, + addr: new PublicKey("3WubbpV7W82H6FERR62Bd8Z4fXFGaihtBNqnT1zkGr6f"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("8MxcExnMniQEDs361cZseukEau9Rmd3CmrCXxasmNM1x"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2277,4 +2327,6 @@ export const orcaPoolConfigs: Record = { J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj: btcUsdcPool, "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N": mndeUsdcPool, "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcPool, + "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg": onesolUsdcPool, + HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8: wmpUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 7e973d0..b30922b 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -5,6 +5,13 @@ import { OrcaToken } from ".."; * The following content is auto-generated. */ +export const onesolToken: OrcaToken = Object.freeze({ + tag: "ONESOL", + name: "1Sol", + mint: new PublicKey("4ThReWAbAVZjNVgs5Ui9Pk3cZ5TYaD9u6Y89fp6EFzoF"), + scale: 8, +}); + export const abrToken: OrcaToken = Object.freeze({ tag: "ABR", name: "Allbridge", @@ -432,6 +439,13 @@ export const wagToken: OrcaToken = Object.freeze({ scale: 9, }); +export const wmpToken: OrcaToken = Object.freeze({ + tag: "WMP", + name: "Whalemap", + mint: new PublicKey("BygDd5LURoqztD3xETc99WCxLUbTi6WYSht9XiBgZ4HW"), + scale: 9, +}); + export const woofToken: OrcaToken = Object.freeze({ tag: "WOOF", name: "WOOF Token", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 4272a9c..1da043f 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -95,6 +95,8 @@ export enum OrcaFarmConfig { BTC_USDC_AQ = "J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj", MNDE_USDC_AQ = "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N", CHICKS_USDC_AQ = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", + ONESOL_USDC_AQ = "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg", + WMP_USDC_AQ = "HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -129,4 +131,5 @@ export enum OrcaFarmConfig { UPS_USDC_DD = "9fuv3emLQXECrTWqm2HaKT3wQhmvmgqmReZSMcu8PfpH", FANT_USDC_DD = "C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6", stSOL_USDC_DD = "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5", + WMP_USDC_DD = "Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index e4b7ab5..dc7f8da 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -95,4 +95,6 @@ export enum OrcaPoolConfig { BTC_USDC = "J3kvcay3N16FBdawgnqoJ9v9p6XCvyCLE2Z9F5RLvGkj", MNDE_USDC = "12Uj74zgUUoBe4yeackwQ4qYtFMr9fk1xL6q5Nha6t2N", CHICKS_USDC = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", + ONESOL_USDC = "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg", + WMP_USDC = "HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8", } From 4a89450029f22099184d16c0c92e2413e43616c7 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 23 Dec 2021 01:31:34 -0800 Subject: [PATCH 45/81] Bump to 1.2.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f502e6..0362ee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.8", + "version": "1.2.9", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 22a5015f3c91902e4e0e77ed15ebfac9fa7f73f5 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 25 Dec 2021 10:59:19 -0800 Subject: [PATCH 46/81] Pool update (#79) --- src/constants/farms.ts | 10 ++++++++++ src/public/farms/config.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 693bbdf..35b28da 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1121,6 +1121,15 @@ export const wmpUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const chicksUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("61uQt5e3Vd3cps6mS5xnL1UVLe3rwNS4aDaa3F2V7h3z"), + farmTokenMint: new PublicKey("3EPqpch8B8nk37gcxKCnQ5n6VSu4NyetcyZen636NYfb"), + rewardTokenMint: new PublicKey("cxxShYRVcepDudXhe7U62QHvw8uBJoKFifmzggGKVC2"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1250,4 +1259,5 @@ export const orcaFarmConfigs: Record = { C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6: fantUsdcDoubleDip, "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5": stsolUsdcDoubleDip, Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo: wmpUsdcDoubleDip, + GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X: chicksUsdcDoubleDip, }; diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 1da043f..5110239 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -132,4 +132,5 @@ export enum OrcaFarmConfig { FANT_USDC_DD = "C2EcthTMaC5eATXVaXg5ctvMfUYYgFyNibybHes5D3S6", stSOL_USDC_DD = "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5", WMP_USDC_DD = "Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo", + CHICKS_USDC_DD = "GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X", } From d1898b4fe50acbb48c13bd4d1b033c6a749d174c Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 25 Dec 2021 11:00:06 -0800 Subject: [PATCH 47/81] Bump to 1.2.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0362ee7..98d4242 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.9", + "version": "1.2.10", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 70518f32086c3cb841d593aa60788be5b1763bf0 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 28 Dec 2021 08:43:55 -0800 Subject: [PATCH 48/81] Pool update (#80) --- src/constants/farms.ts | 70 +++++++++++++++++++++++++ src/constants/pools.ts | 104 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 28 ++++++++++ src/public/farms/config.ts | 7 +++ src/public/pools/config.ts | 4 ++ 5 files changed, 213 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 35b28da..846a950 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -806,6 +806,42 @@ export const wmpUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const unqUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9hQXfKCdD4v9v8vzimd6KExoSnS36q5kUPTW3PdX6KRu"), + farmTokenMint: new PublicKey("CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy"), + baseTokenDecimals: 6, +}); + +export const basisUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("A8CNiARq7zYMMGKYbqJVfByVyBzdMexhc5EEGzCN13dS"), + farmTokenMint: new PublicKey("4yx2aHMa7N4m1uUaBRy9QPtpstw3HFPtvcCPJQaGFHKL"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj"), + baseTokenDecimals: 6, +}); + +export const gstUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("44aNS8nnj4r3WWvnR1Ud929iAqn5jJ7ugVkJJvH4XuW9"), + farmTokenMint: new PublicKey("72vxFxfeSN2DRKmSQAkJCoFBNYb2WNevyaDh4v2t8TqP"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb"), + baseTokenDecimals: 6, +}); + +export const meanUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4ZqD3uYerAhUrVCPSKV15JT7ToR4EW1TwK6HHckAZNio"), + farmTokenMint: new PublicKey("3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1130,6 +1166,33 @@ export const chicksUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const unqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("G5cvdbZwbwAV4eW8ENQy5tmbzaJu8TbdgF5MLXgLPXj3"), + farmTokenMint: new PublicKey("75jdeQfjFnNzg4dSbkA3HxTN63hXo99MrpafDJsz5Gcy"), + rewardTokenMint: new PublicKey("UNQtEecZ5Zb4gSSVHCAWUQEoNnSVEbWiKCi1v9kdUJJ"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS"), + baseTokenDecimals: 6, +}); + +export const frktUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("64b5z9Xa8Fa6KHrqUHHBfgtFa4amhtbiV7Z9hLKeitpP"), + farmTokenMint: new PublicKey("AMLbt8xsoUReYSepxyjjaWLUR4hNV1G1ufCL7e7fZCC9"), + rewardTokenMint: new PublicKey("ErGB9xa24Szxbk1M28u2Tx8rKPqzL6BroNkkzk5rG4zj"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh"), + baseTokenDecimals: 6, +}); + +export const meanUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9TQ4HQXymNLVKEMve5peFXst5VPDXX1oZ8VTVuQeG7W7"), + farmTokenMint: new PublicKey("FaFGyRihhc8XUqWXNrVAd6gjRsyJ98mogonH4EN8WUPb"), + rewardTokenMint: new PublicKey("MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1224,6 +1287,10 @@ export const orcaFarmConfigs: Record = { "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcAqFarm, "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg": onesolUsdcAqFarm, HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8: wmpUsdcAqFarm, + "2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy": unqUsdcAqFarm, + GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj: basisUsdcAqFarm, + E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcAqFarm, + F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1260,4 +1327,7 @@ export const orcaFarmConfigs: Record = { "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5": stsolUsdcDoubleDip, Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo: wmpUsdcDoubleDip, GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X: chicksUsdcDoubleDip, + CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS: unqUsdcDoubleDip, + Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh: frktUsdcDoubleDip, + "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq": meanUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index b1a3504..d5fabaa 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2235,6 +2235,106 @@ export const wmpUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const unqUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3a3G1RjJe826EB1toShvPPWnyi2jXR53HP4vYb936kwj"), + nonce: 254, + authority: new PublicKey("94V4mU6bWzU86tdzFbBCjkFngqXvf5MwXKhVLgJA83vL"), + poolTokenMint: new PublicKey("2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9iHGnquXmnJnSATN4ijGj7Niz4StxXEMC8KqB1pT51uW"), + tokenIds: [Tokens.unqToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.unqToken.mint.toString()]: { + ...Tokens.unqToken, + addr: new PublicKey("Hf4gYkKNAPhm2RYrXrcP9YVL44VbYnsRsyUuBnZGzqPr"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("BZ9oTLGDL6tsvoooQ9qEBSM3sYKJB1v2e9b4en5ix1Mp"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const basisUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9wb29L97MmPp7Nw8oaqiAGkXceETGNQurhySiUNLv5wh"), + nonce: 251, + authority: new PublicKey("786ezhfHqkmJUBmjrWYGpzPnVWR8zhy2V71qNws7D89z"), + poolTokenMint: new PublicKey("GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("4FjEd37W9FExXq85nLeuNWuhUaTwkFdnqewt3E3qoYAh"), + tokenIds: [Tokens.basisToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.basisToken.mint.toString()]: { + ...Tokens.basisToken, + addr: new PublicKey("7QM71YvJm86bN9RLFoEvyDX8dBgLh2xjnabcHf4d1Q1y"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("AmP22dYrTsG2LrkQX9cLg79jUrzDJcmWqGEWmM3Mdn46"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const gstUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("87E4KtN7F4LivKhjqXaoQAvS3a8HnM4DnMUrbMrkVvXY"), + nonce: 244, + authority: new PublicKey("CwwMfXPXfRT5H5JUatpBctASRGhKW2SqLWWGU3eX5Zgo"), + poolTokenMint: new PublicKey("E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("BynpQprCNjcY2KHeffDKzquyKWvJxikty3donrMT4ZPU"), + tokenIds: [Tokens.gstToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.gstToken.mint.toString()]: { + ...Tokens.gstToken, + addr: new PublicKey("9r39vqrJuubgafaJ5aQyDWYAUQVJeyZyveBXeRqp7xev"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("7LFnr5YgUyEgPMCLGNQ9N7wM5MFRNqCuRawLZTe5q4c7"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const meanUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4jhCSYuGkLCiB8uvCaS34QCtPycBjayxEk27YCartTuW"), + nonce: 255, + authority: new PublicKey("Fawkj9g4s1M26uZDF6QczEviyib2Ge3FaPdCG9TJLYcm"), + poolTokenMint: new PublicKey("F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("EqhWQbxsa36o7YSrCNvJTV1yoTRTWxCiLKcG9pzafprc"), + tokenIds: [Tokens.meanToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.meanToken.mint.toString()]: { + ...Tokens.meanToken, + addr: new PublicKey("5KSCuA99i7PSF6KvvbvV5hDveGse7isqF6e7tFXPeMyn"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("13PtHDhQzswoFWg8Gr4yVrTmUEW4CWxeKFkLVERCmypB"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2329,4 +2429,8 @@ export const orcaPoolConfigs: Record = { "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS": chicksUsdcPool, "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg": onesolUsdcPool, HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8: wmpUsdcPool, + "2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy": unqUsdcPool, + GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj: basisUsdcPool, + E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcPool, + F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index b30922b..2f1eead 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -47,6 +47,13 @@ export const avaxToken: OrcaToken = Object.freeze({ scale: 9, }); +export const basisToken: OrcaToken = Object.freeze({ + tag: "BASIS", + name: "basis.markets", + mint: new PublicKey("Basis9oJw9j8cw53oMV7iqsgo6ihi9ALw4QR31rcjUJa"), + scale: 6, +}); + export const blockToken: OrcaToken = Object.freeze({ tag: "BLOCK", name: "Blockasset", @@ -145,6 +152,13 @@ export const grapeToken: OrcaToken = Object.freeze({ scale: 6, }); +export const gstToken: OrcaToken = Object.freeze({ + tag: "GST", + name: "GST", + mint: new PublicKey("AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB"), + scale: 9, +}); + export const ivnToken: OrcaToken = Object.freeze({ tag: "IVN", name: "Investin", @@ -194,6 +208,13 @@ export const mapsToken: OrcaToken = Object.freeze({ scale: 6, }); +export const meanToken: OrcaToken = Object.freeze({ + tag: "MEAN", + name: "Meanfi", + mint: new PublicKey("MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD"), + scale: 6, +}); + export const mediaToken: OrcaToken = Object.freeze({ tag: "MEDIA", name: "Media Network", @@ -404,6 +425,13 @@ export const tulipToken: OrcaToken = Object.freeze({ scale: 6, }); +export const unqToken: OrcaToken = Object.freeze({ + tag: "UNQ", + name: "UNQ", + mint: new PublicKey("UNQtEecZ5Zb4gSSVHCAWUQEoNnSVEbWiKCi1v9kdUJJ"), + scale: 6, +}); + export const upsToken: OrcaToken = Object.freeze({ tag: "UPS", name: "UPFI Network", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 5110239..9ee0e05 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -97,6 +97,10 @@ export enum OrcaFarmConfig { CHICKS_USDC_AQ = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", ONESOL_USDC_AQ = "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg", WMP_USDC_AQ = "HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8", + UNQ_USDC_AQ = "2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy", + BASIS_USDC_AQ = "GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj", + GST_USDC_AQ = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", + MEAN_USDC_AQ = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -133,4 +137,7 @@ export enum OrcaFarmConfig { stSOL_USDC_DD = "3u2dNfGuU6C3vmSg5EvLPUpX57b3niqhWBV5Gc3WDEf5", WMP_USDC_DD = "Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo", CHICKS_USDC_DD = "GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X", + UNQ_USDC_DD = "CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS", + FRKT_USDC_DD = "Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh", + MEAN_USDC_DD = "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index dc7f8da..56ab0ea 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -97,4 +97,8 @@ export enum OrcaPoolConfig { CHICKS_USDC = "71CBZeJ4tw38L9pSPoCz4fRsuWE64Fipyzotte7haoCS", ONESOL_USDC = "6MF5CHWAj5mS7FhpxiKz37CzR2eYTu236XpBKKMXCrGg", WMP_USDC = "HDgxKmiA8Pv82fNguhVeMkZqQkos2YksFPoP1KttWxX8", + UNQ_USDC = "2VuGzaMrDnDyZfYvDwSXk38s7M2wpud7LDY3dGA1J9sy", + BASIS_USDC = "GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj", + GST_USDC = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", + MEAN_USDC = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", } From b56acf7a1c39d4762678747cb14f9df8254fee0a Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 28 Dec 2021 08:44:23 -0800 Subject: [PATCH 49/81] Bump to 1.2.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98d4242..7615222 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.10", + "version": "1.2.11", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 4d574b6a6d5a677e3bbcd5b76e598b531111e60d Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 28 Dec 2021 10:05:31 -0800 Subject: [PATCH 50/81] Pool update (#81) --- src/constants/farms.ts | 20 ++++++++++---------- src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 2 +- src/public/pools/config.ts | 1 + 5 files changed, 45 insertions(+), 11 deletions(-) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 846a950..f12430e 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -842,6 +842,15 @@ export const meanUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const aartUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6pvWTK3UZJ2gKpVZBXMEUEbnSbqf8GxEFbAQjWuuW4C7"), + farmTokenMint: new PublicKey("Bg7pZq7KdsQsnCQBeNpa4XVnrWfjUJNu3ViHoNB7YUZU"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1175,15 +1184,6 @@ export const unqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const frktUsdcDoubleDip: OrcaFarmParams = Object.freeze({ - address: new PublicKey("64b5z9Xa8Fa6KHrqUHHBfgtFa4amhtbiV7Z9hLKeitpP"), - farmTokenMint: new PublicKey("AMLbt8xsoUReYSepxyjjaWLUR4hNV1G1ufCL7e7fZCC9"), - rewardTokenMint: new PublicKey("ErGB9xa24Szxbk1M28u2Tx8rKPqzL6BroNkkzk5rG4zj"), - rewardTokenDecimals: 8, - baseTokenMint: new PublicKey("Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh"), - baseTokenDecimals: 6, -}); - export const meanUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("9TQ4HQXymNLVKEMve5peFXst5VPDXX1oZ8VTVuQeG7W7"), farmTokenMint: new PublicKey("FaFGyRihhc8XUqWXNrVAd6gjRsyJ98mogonH4EN8WUPb"), @@ -1291,6 +1291,7 @@ export const orcaFarmConfigs: Record = { GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj: basisUsdcAqFarm, E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcAqFarm, F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcAqFarm, + HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1328,6 +1329,5 @@ export const orcaFarmConfigs: Record = { Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo: wmpUsdcDoubleDip, GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X: chicksUsdcDoubleDip, CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS: unqUsdcDoubleDip, - Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh: frktUsdcDoubleDip, "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq": meanUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index d5fabaa..90f0a03 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2335,6 +2335,31 @@ export const meanUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const aartUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8wVYTnchy3WbhJvKn4NhTbgtVm6Bfd6yvxR33DsSftse"), + nonce: 255, + authority: new PublicKey("GAWAD19LVUgKmkWWfB4Xg92KMXuVR7M1gUpQPiFAAtxR"), + poolTokenMint: new PublicKey("HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("FmZkn9xAwpZULmF6rSrcz1pHiqqNnAXCUFWs1z5t9LSX"), + tokenIds: [Tokens.aartToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.aartToken.mint.toString()]: { + ...Tokens.aartToken, + addr: new PublicKey("Hy3FDHpTfzqtooUARjgUvYuRcFnjGH5WLftu77DyEnKJ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("J4Cd9u1WuY1WnCScENuRyL2jGh7qD6vpRsWJG6ZsC5z9"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2433,4 +2458,5 @@ export const orcaPoolConfigs: Record = { GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj: basisUsdcPool, E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcPool, F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcPool, + HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 2f1eead..f90bb0e 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -12,6 +12,13 @@ export const onesolToken: OrcaToken = Object.freeze({ scale: 8, }); +export const aartToken: OrcaToken = Object.freeze({ + tag: "AART", + name: "ALL.ART", + mint: new PublicKey("F3nefJBcejYbtdREjui1T9DPh5dBgpkKq7u2GAAMXs5B"), + scale: 6, +}); + export const abrToken: OrcaToken = Object.freeze({ tag: "ABR", name: "Allbridge", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 9ee0e05..13b6cd5 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -101,6 +101,7 @@ export enum OrcaFarmConfig { BASIS_USDC_AQ = "GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj", GST_USDC_AQ = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", MEAN_USDC_AQ = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", + AART_USDC_AQ = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -138,6 +139,5 @@ export enum OrcaFarmConfig { WMP_USDC_DD = "Ce3VXSQGFEHqrQSEzcVb2Ro88Mcn56cYBUAXFx5tL9bo", CHICKS_USDC_DD = "GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X", UNQ_USDC_DD = "CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS", - FRKT_USDC_DD = "Bc4CvPm15iLRopgLmU17RJicBgjykiMwVzYxa7Wnujdh", MEAN_USDC_DD = "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 56ab0ea..fddfa5a 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -101,4 +101,5 @@ export enum OrcaPoolConfig { BASIS_USDC = "GoaAiajubRgeCFEz9L6mLnSmT2QFegoJDH5tpLfivpj", GST_USDC = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", MEAN_USDC = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", + AART_USDC = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", } From 5163cf6e14f280dc0c7fc05eb47ddacaf69b09b8 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 28 Dec 2021 10:06:28 -0800 Subject: [PATCH 51/81] Bump to 1.2.12 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7615222..9213798 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.11", + "version": "1.2.12", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 23187abca7538e0a5711de4a193c01c2ab8e6a10 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 30 Dec 2021 08:25:07 -0800 Subject: [PATCH 52/81] Pool update (#83) --- src/constants/farms.ts | 10 ++++++++++ src/public/farms/config.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index f12430e..733cd25 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1193,6 +1193,15 @@ export const meanUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const wagUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5dA9HWoFnBagq25bpMPA79bKxQkQ6YXvBtYQn6Le6vyp"), + farmTokenMint: new PublicKey("BYno9HNAiLoi7K8Wa5c1f5EE7hukzZPUQZDesGxBPzhh"), + rewardTokenMint: new PublicKey("5tN42n9vMi6ubp67Uy4NnmM5DMZYN8aS8GeB3bEDHr6E"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1330,4 +1339,5 @@ export const orcaFarmConfigs: Record = { GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X: chicksUsdcDoubleDip, CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS: unqUsdcDoubleDip, "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq": meanUsdcDoubleDip, + "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc": wagUsdcDoubleDip, }; diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 13b6cd5..469f8d2 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -140,4 +140,5 @@ export enum OrcaFarmConfig { CHICKS_USDC_DD = "GTcxXu3yw7yotq2UtAMvpEbx84ozJyrBwy77Cmem7m4X", UNQ_USDC_DD = "CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS", MEAN_USDC_DD = "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq", + WAG_USDC_DD = "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc", } From aced8048e8625d03148c0ef0aa3ddf1fd4930ce7 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 30 Dec 2021 08:25:32 -0800 Subject: [PATCH 53/81] Bump to 1.2.13 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9213798..e714a3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.12", + "version": "1.2.13", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From f89d9f3b4a31d83c2d2a7c14855832a697a8f67e Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 4 Jan 2022 06:46:39 -0800 Subject: [PATCH 54/81] Pool update (#84) --- src/constants/farms.ts | 40 +++++++++++++++++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++ src/public/farms/config.ts | 4 +++ src/public/pools/config.ts | 2 ++ 5 files changed, 105 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 733cd25..9981d99 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -851,6 +851,24 @@ export const aartUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const shdwUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("ABmFqgfvQjjU8uBkZL2KdH5AvYEMsuddtdvpm4s62Pzq"), + farmTokenMint: new PublicKey("7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc"), + baseTokenDecimals: 6, +}); + +export const shdwSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EKe5CgBnBJA2cgeEUe67aQS57bAQsPvfVdArEWuEuEEW"), + farmTokenMint: new PublicKey("BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1202,6 +1220,24 @@ export const wagUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const shdwUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GJ9EixfM3noFT1b7Y5uAzV1qJSFev5uPaRrmfMoibck6"), + farmTokenMint: new PublicKey("HPv7XJ16t4pZVNTBPHoYY19xiv4pHjjSbarE7Km3jJ1R"), + rewardTokenMint: new PublicKey("SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9"), + baseTokenDecimals: 6, +}); + +export const shdwSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2EHJ8ToKpJfXyAfechjH9QSbVMKTSViYPdJRepQz7V8S"), + farmTokenMint: new PublicKey("8HgXuNigmLvfsgDun1vQso6pBuj7sVvDqpcergjtu3dz"), + rewardTokenMint: new PublicKey("SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1301,6 +1337,8 @@ export const orcaFarmConfigs: Record = { E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcAqFarm, F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcAqFarm, HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcAqFarm, + DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc: shdwUsdcAqFarm, + "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1340,4 +1378,6 @@ export const orcaFarmConfigs: Record = { CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS: unqUsdcDoubleDip, "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq": meanUsdcDoubleDip, "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc": wagUsdcDoubleDip, + "7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9": shdwUsdcDoubleDip, + BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms: shdwSolDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 90f0a03..271f873 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2360,6 +2360,56 @@ export const aartUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const shdwUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("25bQ6UzZpgFgnU7MqZdqM9Axi6oJunytRL2LgXruDWZB"), + nonce: 254, + authority: new PublicKey("BjnfpyU3Verx99dKcEJZpL1AqLTPrkAUcd44LpXcXVvn"), + poolTokenMint: new PublicKey("DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9wmHbXURZ4zTPSj1KqoRSCdBRGUF7jrURzf7BB39cxM4"), + tokenIds: [Tokens.shdwToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.shdwToken.mint.toString()]: { + ...Tokens.shdwToken, + addr: new PublicKey("8ZVaNyNZQkcMzF7esuZoRgRo7Rc9eKEN18v4zw7Ng8JZ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("H8A2xivBXr1RMCYmuhJ7dyEXJqPxaGDyQaaim8WucU7c"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const shdwSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("E3fxkJGNNAWf5xXDfMdq5qofBVkQtLKxkP7gG6Up21Ts"), + nonce: 253, + authority: new PublicKey("ByC5idkRdo2XdU5U6tSoSQmfq6spztUYMaSs2rrcJRPh"), + poolTokenMint: new PublicKey("2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("G9HR4sFJufdUovMGn4qc97r7fhgJCkTDnn4BT2wPWYar"), + tokenIds: [Tokens.shdwToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.shdwToken.mint.toString()]: { + ...Tokens.shdwToken, + addr: new PublicKey("9LQEB2SZQJxtLQStgXVNzgWU3LVkc4szK22iDHcSr4K9"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("F2qtMkEy3L78wpw64bckvRx5M4w12Zi7bimuPBnYzto1"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2459,4 +2509,6 @@ export const orcaPoolConfigs: Record = { E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb: gstUsdcPool, F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ: meanUsdcPool, HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcPool, + DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc: shdwUsdcPool, + "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index f90bb0e..5972ab5 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -348,6 +348,13 @@ export const sdogeToken: OrcaToken = Object.freeze({ scale: 0, }); +export const shdwToken: OrcaToken = Object.freeze({ + tag: "SHDW", + name: "Shadow", + mint: new PublicKey("SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y"), + scale: 9, +}); + export const slimToken: OrcaToken = Object.freeze({ tag: "SLIM", name: "Solanium", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 469f8d2..4af34d2 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -102,6 +102,8 @@ export enum OrcaFarmConfig { GST_USDC_AQ = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", MEAN_USDC_AQ = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", AART_USDC_AQ = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", + SHDW_USDC_AQ = "DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc", + SHDW_SOL_AQ = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -141,4 +143,6 @@ export enum OrcaFarmConfig { UNQ_USDC_DD = "CsGTrgJ6oLx9UQow9aLjuAacjXTY53zT8B2FnAbfVZAS", MEAN_USDC_DD = "3h2VBX8533NB8eEH8rPXMdayodFDbgTHpbav6JqLZAQq", WAG_USDC_DD = "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc", + SHDW_USDC_DD = "7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9", + SHDW_SOL_DD = "BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index fddfa5a..0327aa6 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -102,4 +102,6 @@ export enum OrcaPoolConfig { GST_USDC = "E6FUnQHGHJVJg7oExVr5Moeaj1QpdpZQF5odYjHXWPZb", MEAN_USDC = "F5BTnwuMA6rxftTdbZ33VWKr2wrr6DuQHnd4guKmPSYQ", AART_USDC = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", + SHDW_USDC = "DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc", + SHDW_SOL = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", } From b78a8a9a912568d9bf19802a38904256327e9e55 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 4 Jan 2022 06:47:04 -0800 Subject: [PATCH 55/81] Bump to 1.2.14 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e714a3a..cd03708 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.13", + "version": "1.2.14", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 3b495fce49345b08cfc47faa88addb8e7d249d81 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 8 Jan 2022 20:15:10 -1000 Subject: [PATCH 56/81] Pool update (#85) --- src/constants/farms.ts | 20 +++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 14 ++++++++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 2 ++ 5 files changed, 90 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 9981d99..d26f145 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -869,6 +869,24 @@ export const shdwSolAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const scyUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GDf3GpSU1V1UCvpcU19rV8p8CUC4cken9b5RpKzBBgiN"), + farmTokenMint: new PublicKey("DkxeyV1TEt9umvqjPNf9tdjJjgyvW5Mdi4AQnExA5bZa"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX"), + baseTokenDecimals: 6, +}); + +export const slcUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AgscvT8HJ4uqznp4SeYMgKf9qUjTrQL7AzU6mjcqpPCB"), + farmTokenMint: new PublicKey("X8GnAvxq942xXjNzqYPFQQ9JstJQNEA81uPeNoQpgrN"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1339,6 +1357,8 @@ export const orcaFarmConfigs: Record = { HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcAqFarm, DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc: shdwUsdcAqFarm, "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolAqFarm, + "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX": scyUsdcAqFarm, + E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR: slcUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 271f873..2f40b21 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2410,6 +2410,56 @@ export const shdwSolPool: OrcaPoolParams = Object.freeze({ }, }); +export const scyUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Ci2T7KY8xXc3NmSr4JmbhZ2V7SfjZ7Fn2q6VxJsDD1Dg"), + nonce: 255, + authority: new PublicKey("fmoBkLez7cSLnG1XNn6PTf6UH5Vq2hSAPrZ1NbvRppL"), + poolTokenMint: new PublicKey("99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("HHhxxFKyVt4xrYnJqAiywHCzuoCu45S4itkLKvop2fAe"), + tokenIds: [Tokens.scyToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.scyToken.mint.toString()]: { + ...Tokens.scyToken, + addr: new PublicKey("Hfa6kPY27pgnbXHMd1bKBaYMBoF8RRxUm2AmWHBWudcn"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("CYKEhyhe9JZqLzaM29o8urMu8riDNBE6ycZP6bLQtkbF"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const slcUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("ByfDbpLVNVQHzU6E5dmLE1kcAKWAYRr9LPSGcVxxSRFF"), + nonce: 255, + authority: new PublicKey("7G6i4eQxiJvXg7hPn5kMrso8AHQNsdfPZZdJM3NNJuYz"), + poolTokenMint: new PublicKey("E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("CtBP4cFDLzm3KQCQRKXwwsMgYG9f6hbwuUswUZBzYvvY"), + tokenIds: [Tokens.slcToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.slcToken.mint.toString()]: { + ...Tokens.slcToken, + addr: new PublicKey("EnvNSVK9JRQ5jmsz7nvbhYmR3MHSeMvB8Mf1e4VwoyRe"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("CHuUSo3EMCqtGWvUGRj4crmDzV5YKdYvqrhHSEitAP8V"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2511,4 +2561,6 @@ export const orcaPoolConfigs: Record = { HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag: aartUsdcPool, DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc: shdwUsdcPool, "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolPool, + "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX": scyUsdcPool, + E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR: slcUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 5972ab5..74ec701 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -341,6 +341,13 @@ export const sbrToken: OrcaToken = Object.freeze({ scale: 6, }); +export const scyToken: OrcaToken = Object.freeze({ + tag: "SCY", + name: "Synchrony", + mint: new PublicKey("SCYfrGCw8aDiqdgcpdGjV6jp4UVVQLuphxTDLNWu36f"), + scale: 9, +}); + export const sdogeToken: OrcaToken = Object.freeze({ tag: "SDOGE", name: "SolDoge", @@ -355,6 +362,13 @@ export const shdwToken: OrcaToken = Object.freeze({ scale: 9, }); +export const slcToken: OrcaToken = Object.freeze({ + tag: "SLC", + name: "Solice", + mint: new PublicKey("METAmTMXwdb8gYzyCPfXXFmZZw4rUsXX58PNsDg7zjL"), + scale: 6, +}); + export const slimToken: OrcaToken = Object.freeze({ tag: "SLIM", name: "Solanium", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 4af34d2..b9cccd7 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -104,6 +104,8 @@ export enum OrcaFarmConfig { AART_USDC_AQ = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", SHDW_USDC_AQ = "DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc", SHDW_SOL_AQ = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", + SCY_USDC_AQ = "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX", + SLC_USDC_AQ = "E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 0327aa6..b7fec30 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -104,4 +104,6 @@ export enum OrcaPoolConfig { AART_USDC = "HCtyJzFUtYecXrA52s4Y9atq4J1fhT3cYsTX17XVSFag", SHDW_USDC = "DJqqvzSuPaWThfzwMjXx7H2ZmHDdwxza6NtFudtuXcpc", SHDW_SOL = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", + SCY_USDC = "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX", + SLC_USDC = "E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR", } From 87cb55e183db887d38888521930fa4392f1b34fc Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 8 Jan 2022 20:21:14 -1000 Subject: [PATCH 57/81] Bump to 1.2.15 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cd03708..af4034a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.14", + "version": "1.2.15", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From ec8b78809df585a3afe2c410161d8886d5b2aa70 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 12 Jan 2022 13:58:51 -1000 Subject: [PATCH 58/81] Pool update (#86) --- src/constants/farms.ts | 160 +++++++++++++++++++++++++ src/constants/pools.ts | 235 +++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 28 +++++ src/public/farms/config.ts | 16 +++ src/public/pools/config.ts | 9 ++ 5 files changed, 448 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index d26f145..7692c35 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -887,6 +887,87 @@ export const slcUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const wustSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7tHjwHKvoSPjoAZepTZsw7uV9XobkgRXhMbhbZmqA8mS"), + farmTokenMint: new PublicKey("F49Cm3srGucQCBanA2xL7nSKHfH1QZd9vLdFtkg4LKnq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs"), + baseTokenDecimals: 6, +}); + +export const wustUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Aq289TqufDB4A4TEGVUkVquVggyrPjCwxkEv7pDEVpWZ"), + farmTokenMint: new PublicKey("2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7"), + baseTokenDecimals: 6, +}); + +export const msolWustAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9iXAweywwdGR76L58FNg9siQzxyzbeJsomjEohPztpHF"), + farmTokenMint: new PublicKey("6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd"), + baseTokenDecimals: 6, +}); + +export const wlunaWustAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("52VxPD3pag6QrtEKXTe4jYBvSTvfggjbXZv3vqo455uU"), + farmTokenMint: new PublicKey("3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA"), + baseTokenDecimals: 6, +}); + +export const stsolWustAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GxhewC22S6wsXT156yC9SARvDnijoc3YEYyLVcQFDUCx"), + farmTokenMint: new PublicKey("3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95"), + baseTokenDecimals: 6, +}); + +export const jsolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("62JumLDtnsQ5YsEZrJaQsvDMP5pRmok3JEWHghFkL8D2"), + farmTokenMint: new PublicKey("B3JDURP58ooQT8zvhLgDRKVjstqgrHhn61qzzudHWrS1"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR"), + baseTokenDecimals: 6, +}); + +export const daosolUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EaxYr2iZhrgwUKQVeFFeHQLW1afzS8pgZGn6hLhgFMgy"), + farmTokenMint: new PublicKey("A9kPybFFdj3MGKWWSwgb3KvzQyeNXESayh4ngmkmee2R"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww"), + baseTokenDecimals: 6, +}); + +export const orcaUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4SNMBiDGjDSZnyQFqSodJTTmRqEkisBWciXZ4hGbDujc"), + farmTokenMint: new PublicKey("C2YSdSesufbMVWtKXSZGhc12f6UL2j3WDe9VT6rRbmA8"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk"), + baseTokenDecimals: 6, +}); + +export const orcaWhethAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AgWH92f8cPAuURyqehF6A9wFgupEsnDX3VP5eHyytabA"), + farmTokenMint: new PublicKey("A7EAHvFEWzW8qSTFNLrEHN894GAZWZesNiebttEwtUGJ"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1256,6 +1337,69 @@ export const shdwSolDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const aartUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("BKFSHwhqDHRFM3PzNh7BG1vgxtEbx1A9Co1JN6z9SLYz"), + farmTokenMint: new PublicKey("FvmyENsZf68ezNbHxRqv1hAb7phfhdnXMfQm74Vcpnkn"), + rewardTokenMint: new PublicKey("F3nefJBcejYbtdREjui1T9DPh5dBgpkKq7u2GAAMXs5B"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("Bg7pZq7KdsQsnCQBeNpa4XVnrWfjUJNu3ViHoNB7YUZU"), + baseTokenDecimals: 6, +}); + +export const basisUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DasaXe2Wqcks6csFv1bWwdW41mV8rMD5c27Uw9rFYVu4"), + farmTokenMint: new PublicKey("8XtNSYBhLHa4cYzNsXd6yDAweMECumrxFJ7F2qxk2xN"), + rewardTokenMint: new PublicKey("Basis9oJw9j8cw53oMV7iqsgo6ihi9ALw4QR31rcjUJa"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4yx2aHMa7N4m1uUaBRy9QPtpstw3HFPtvcCPJQaGFHKL"), + baseTokenDecimals: 6, +}); + +export const slcUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DdYbYsTgpp3pBdGhN9sSdgRJs4ijKZQuDqzqKz6qmScs"), + farmTokenMint: new PublicKey("6VWtaecVXHuorMwVrZ4GAnYC3T5MG1YdQLYNPGyWzQHh"), + rewardTokenMint: new PublicKey("METAmTMXwdb8gYzyCPfXXFmZZw4rUsXX58PNsDg7zjL"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("X8GnAvxq942xXjNzqYPFQQ9JstJQNEA81uPeNoQpgrN"), + baseTokenDecimals: 6, +}); + +export const wustSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6p47BJ5d9JmywGpbZa8MapJmhcLdu5w2uNg9NQTJKvi"), + farmTokenMint: new PublicKey("BkcNGF6iV6NTfoH1ocoywXrfDpPWiWUu7eARBT42e57v"), + rewardTokenMint: new PublicKey("F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("F49Cm3srGucQCBanA2xL7nSKHfH1QZd9vLdFtkg4LKnq"), + baseTokenDecimals: 6, +}); + +export const wustUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("87ArJQZCaUwLkZfaRHbjU8geq6F8HsFcCtoppCV7Buby"), + farmTokenMint: new PublicKey("DGxLh6BykS8C4zLrBRRD4cHZRdy73eVqZ5283JkAdU7d"), + rewardTokenMint: new PublicKey("F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL"), + baseTokenDecimals: 6, +}); + +export const msolWustDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5z183wdSnkc1k9EmnXncE66VQYYLn8MkxG9gJTo5gabj"), + farmTokenMint: new PublicKey("2q4rZYZgicviVBsb8CTWGR3bGWys3ePFDYtrayyQpwyi"), + rewardTokenMint: new PublicKey("F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM"), + baseTokenDecimals: 6, +}); + +export const wlunaWustDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4G49eoJrt6DGWnVR84tgNzw987cjwD4cPYd3SUuo6mrd"), + farmTokenMint: new PublicKey("HQnMrrLP5RxYN6Peuu9cfDNQK81yd3TtBt3ZCjoD8UAf"), + rewardTokenMint: new PublicKey("F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1359,6 +1503,15 @@ export const orcaFarmConfigs: Record = { "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolAqFarm, "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX": scyUsdcAqFarm, E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR: slcUsdcAqFarm, + "6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs": wustSolAqFarm, + J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7: wustUsdcAqFarm, + "68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd": msolWustAqFarm, + "8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA": wlunaWustAqFarm, + HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95: stsolWustAqFarm, + AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR: jsolUsdcAqFarm, + CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww: daosolUsdcAqFarm, + Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk: orcaUsdtAqFarm, + GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1400,4 +1553,11 @@ export const orcaFarmConfigs: Record = { "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc": wagUsdcDoubleDip, "7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9": shdwUsdcDoubleDip, BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms: shdwSolDoubleDip, + Bg7pZq7KdsQsnCQBeNpa4XVnrWfjUJNu3ViHoNB7YUZU: aartUsdcDoubleDip, + "4yx2aHMa7N4m1uUaBRy9QPtpstw3HFPtvcCPJQaGFHKL": basisUsdcDoubleDip, + X8GnAvxq942xXjNzqYPFQQ9JstJQNEA81uPeNoQpgrN: slcUsdcDoubleDip, + F49Cm3srGucQCBanA2xL7nSKHfH1QZd9vLdFtkg4LKnq: wustSolDoubleDip, + "2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL": wustUsdcDoubleDip, + "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM": msolWustDoubleDip, + "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29": wlunaWustDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 2f40b21..efc649f 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2460,6 +2460,232 @@ export const slcUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const wustSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("M3DfDvKZ9WEWYWcBuguvt3rYSbKqj66PgjW69DoEq9C"), + nonce: 249, + authority: new PublicKey("5mYWcs7n1JqDVeYby897eEUNeEJsp2PNMg2Y2VMD5Jrf"), + poolTokenMint: new PublicKey("6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("BSoUBwfNgXSHX8QoZUnjfu8wWKyBmjNyDXwsgW3UEff9"), + tokenIds: [Tokens.wustToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.wustToken.mint.toString()]: { + ...Tokens.wustToken, + addr: new PublicKey("3T7UL3ixF9S8XPjW7SEr9yYY8A5YWTDc7omgjKD2ULhb"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("91NfC8SunFRWF6BqEKnbnJCursfiDB2U3H6GGCqsFVxc"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const wustUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Awp1hdAi5xi3CTDsXxiZsygSacpZV2a3L8rNNvpNRVn4"), + nonce: 255, + authority: new PublicKey("EtdLVaBnKzfKPqp8E2swCyQcjp8XjoT5FE72kqGxWCkq"), + poolTokenMint: new PublicKey("J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2onwniiH5fapr1EPsCDBnY92HGzoQpiHnNPWTmxngKbd"), + tokenIds: [Tokens.wustToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.wustToken.mint.toString()]: { + ...Tokens.wustToken, + addr: new PublicKey("GZWYWkbZ63teAW3tUaThq7k4NMp67TqwF94TqAMRSPx4"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("DMuVdnkRsqP7v8exbrdHNn7WoViNLjf4PVanEQtwgFZ6"), + }, + }, + curveType: CurveType.Stable, + amp: 100, + feeStructure: { + traderFee: Percentage.fromFraction(6, 10000), + ownerFee: Percentage.fromFraction(1, 10000), + }, +}); + +export const msolWustPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("BpiM8jnpbha2TnTKp4AogyLYYA99Ks73GfDGueUWLakT"), + nonce: 255, + authority: new PublicKey("DVSsnD9fid2o6nzqbET1LctDmNMHBthf8LS1u9ZPyebr"), + poolTokenMint: new PublicKey("68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("ETX7csSJYTMYFwLAC6oPDKXnYWdpkzsNXyG2JuxVV4tJ"), + tokenIds: [Tokens.msolToken.mint.toString(), Tokens.wustToken.mint.toString()], + tokens: { + [Tokens.msolToken.mint.toString()]: { + ...Tokens.msolToken, + addr: new PublicKey("8SuMMuDbSGVpWjp3fW5kzpMWuMhxcdQwGgLJiviP25UD"), + }, + [Tokens.wustToken.mint.toString()]: { + ...Tokens.wustToken, + addr: new PublicKey("FL5QM8K2AYrqN52ssqr9GA3goYGkUiXQQxXfFFc9xD4f"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const wlunaWustPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("C9NcP1mx51DLZVX8VtAk2Ldip5v6xCxZGmhx7Bxtqnz8"), + nonce: 255, + authority: new PublicKey("CAsASHduARHrb6pFFYrD9vcqXWhEEj7Z6AatKYVG3dbA"), + poolTokenMint: new PublicKey("8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("J43pVTNEB3AQEeXopMWTEozjPeMHBkwETXQWr4YZDzn3"), + tokenIds: [Tokens.wlunaToken.mint.toString(), Tokens.wustToken.mint.toString()], + tokens: { + [Tokens.wlunaToken.mint.toString()]: { + ...Tokens.wlunaToken, + addr: new PublicKey("97aVH3M9cjZmfA5HVu9iJ9AnE41inBG1Sxqj8UQhR2jo"), + }, + [Tokens.wustToken.mint.toString()]: { + ...Tokens.wustToken, + addr: new PublicKey("Av3RXECkvPCehJTJNbkWmUj3LmP63c4btzMYjbcYLkpm"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolWustPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9F3J6RY7PTkDb3SUUpg725uXyCceBGCpZrtmYGJwgMwF"), + nonce: 253, + authority: new PublicKey("wJydc21tAMxYDif8uvy5rWNGWDFNZnPPmqCvegyZRod"), + poolTokenMint: new PublicKey("HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("5rCbmppxMBHwBjCkLUP6fireQ12cL8LRa26QRUimoxN6"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.wustToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("GFso9SAGakm8ZFa3rmuonuerbcQ8ZbACNZN7idkKR5nw"), + }, + [Tokens.wustToken.mint.toString()]: { + ...Tokens.wustToken, + addr: new PublicKey("EZ7pJskN2a4pDknrdkLzGDHpzjbfgdBj3Tt594K9HZbL"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const jsolUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("5pki97N9a6yEB3YQL3y8gvf4nSWnvEL9V6yms8Amnd9Z"), + nonce: 255, + authority: new PublicKey("BqBc47X3wgrVzi8zPUMUvsaKWsj6JN4wKJ4ArGRKn2QG"), + poolTokenMint: new PublicKey("AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("9Qkje8PCpu4LrGwpudcN3sunWLVP6ZP61zNupaPKNRnr"), + tokenIds: [Tokens.jsolToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.jsolToken.mint.toString()]: { + ...Tokens.jsolToken, + addr: new PublicKey("D4Am1hMwzQqULAvmEjwJLDGwoyTgakRXrn7ayWHMhiB7"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GznbQjBy2KKYYVLaJ6bM59GgekRsKT5QRi2NFMYNRcmf"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const daosolUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("6TwZgp6ABN7pbXbxvaZriHbbxeSAcEgxhKYnqGwphiRD"), + nonce: 255, + authority: new PublicKey("5jFXPUF5mN83WZkT5MJQFpFcZrP5zPZy1ZZwD29Le2Kh"), + poolTokenMint: new PublicKey("CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("JCnNHppa7kp9bRc3zfvfnwGqoVR8Li6sJT9pMztgwE9j"), + tokenIds: [Tokens.daosolToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.daosolToken.mint.toString()]: { + ...Tokens.daosolToken, + addr: new PublicKey("EZf2tVoxVgGaBz6ir5iBppxiqFSqBUob2dNpiEuXMYiJ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("3v29nJzrWebKv3DefSY5WVq4kgHWykF7fdYVaCpohwks"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const orcaUsdtPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4YnaUPeZ2fYqpoLrCyprSai8LaDWZxmgb6cGfNHJmyP6"), + nonce: 255, + authority: new PublicKey("35d4qNQiMtNV9Yb2kqk4tSd5M1yEqozWSQaYtjGHCA7b"), + poolTokenMint: new PublicKey("Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("ABuGLBFTwcbLsqNsiCpZsFuNmHYwHEzfQR9SNpr4y3bP"), + tokenIds: [Tokens.orcaToken.mint.toString(), Tokens.usdtToken.mint.toString()], + tokens: { + [Tokens.orcaToken.mint.toString()]: { + ...Tokens.orcaToken, + addr: new PublicKey("D91z1TewbTQ3AVc9RThtTjiMVRqr94CP73XrsbHEhej8"), + }, + [Tokens.usdtToken.mint.toString()]: { + ...Tokens.usdtToken, + addr: new PublicKey("Fy4AwXwAwitVdFwgWBdYkqRVv8QjigU86ssL6rqzgp8S"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const orcaWhethPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("D67u6UEuFp9Q4Fu2gnu5thxBoVj2eRgDDDirdWsMVsgm"), + nonce: 255, + authority: new PublicKey("4kwchkCnCaZPkBdnk85j9bJ9F1P883rwjbvsXGV7H5rM"), + poolTokenMint: new PublicKey("GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("GdHXLai5M8FKedXUsECSzrV72nb1RTCCooFyTWT8WYmT"), + tokenIds: [Tokens.orcaToken.mint.toString(), Tokens.whethToken.mint.toString()], + tokens: { + [Tokens.orcaToken.mint.toString()]: { + ...Tokens.orcaToken, + addr: new PublicKey("EMxDw1NjdddQjPk9gCUN4iDMy8HJ5siKYMVjGbjuUCrh"), + }, + [Tokens.whethToken.mint.toString()]: { + ...Tokens.whethToken, + addr: new PublicKey("DQyhcuEvE1K9DSd51agcNLg4CDrgthnKMVhU7q6R55LV"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2563,4 +2789,13 @@ export const orcaPoolConfigs: Record = { "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh": shdwSolPool, "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX": scyUsdcPool, E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR: slcUsdcPool, + "6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs": wustSolPool, + J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7: wustUsdcPool, + "68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd": msolWustPool, + "8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA": wlunaWustPool, + HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95: stsolWustPool, + AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR: jsolUsdcPool, + CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww: daosolUsdcPool, + Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk: orcaUsdtPool, + GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 74ec701..3c4c8c7 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -180,6 +180,13 @@ export const jetToken: OrcaToken = Object.freeze({ scale: 9, }); +export const jsolToken: OrcaToken = Object.freeze({ + tag: "JSOL", + name: "JPool", + mint: new PublicKey("7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn"), + scale: 9, +}); + export const kinToken: OrcaToken = Object.freeze({ tag: "KIN", name: "Kin", @@ -509,6 +516,13 @@ export const woofToken: OrcaToken = Object.freeze({ scale: 6, }); +export const daosolToken: OrcaToken = Object.freeze({ + tag: "daoSOL", + name: "daoSOL Token", + mint: new PublicKey("GEJpt3Wjmr628FqXxTgxMce1pLntcPV4uFi8ksxMyPQh"), + scale: 9, +}); + export const msolToken: OrcaToken = Object.freeze({ tag: "mSOL", name: "Marinade.finance", @@ -551,6 +565,20 @@ export const wldoToken: OrcaToken = Object.freeze({ scale: 8, }); +export const wlunaToken: OrcaToken = Object.freeze({ + tag: "wLUNA", + name: "Terra", + mint: new PublicKey("F6v4wfAdJB8D8p77bMXZgYt8TDKsYxLYxH5AFhUkYx9W"), + scale: 6, +}); + +export const wustToken: OrcaToken = Object.freeze({ + tag: "wUST", + name: "TerraUSD (Wormhole)", + mint: new PublicKey("9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i"), + scale: 6, +}); + export const whethToken: OrcaToken = Object.freeze({ tag: "whETH", name: "Ethereum", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index b9cccd7..c34213d 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -106,6 +106,15 @@ export enum OrcaFarmConfig { SHDW_SOL_AQ = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", SCY_USDC_AQ = "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX", SLC_USDC_AQ = "E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR", + wUST_SOL_AQ = "6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs", + wUST_USDC_AQ = "J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7", + mSOL_wUST_AQ = "68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd", + wLUNA_wUST_AQ = "8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA", + stSOL_wUST_AQ = "HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95", + JSOL_USDC_AQ = "AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR", + daoSOL_USDC_AQ = "CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww", + ORCA_USDT_AQ = "Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk", + ORCA_whETH_AQ = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -147,4 +156,11 @@ export enum OrcaFarmConfig { WAG_USDC_DD = "8Wu5sJpERA1J5iWcT8aMpt9cTAfKDLPbLpGjNsJoPgLc", SHDW_USDC_DD = "7WWHfufv8vuBC1x7GXA3pu7kgNhEQkXoq3CtbaQihAJ9", SHDW_SOL_DD = "BDStVBt4NS5bfda25ubK51kVRioV4yjKKCPbe96jeEms", + AART_USDC_DD = "Bg7pZq7KdsQsnCQBeNpa4XVnrWfjUJNu3ViHoNB7YUZU", + BASIS_USDC_DD = "4yx2aHMa7N4m1uUaBRy9QPtpstw3HFPtvcCPJQaGFHKL", + SLC_USDC_DD = "X8GnAvxq942xXjNzqYPFQQ9JstJQNEA81uPeNoQpgrN", + wUST_SOL_DD = "F49Cm3srGucQCBanA2xL7nSKHfH1QZd9vLdFtkg4LKnq", + wUST_USDC_DD = "2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL", + mSOL_wUST_DD = "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM", + wLUNA_wUST_DD = "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index b7fec30..8528028 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -106,4 +106,13 @@ export enum OrcaPoolConfig { SHDW_SOL = "2ws7g3LBPdctfKn42Di9qxzQtUJ8ZL1aEAX2rGEQMNqh", SCY_USDC = "99ZHUQsgxL7K6PHrGNi1gSwawwPr7UA5fbWrYoHQ6qhX", SLC_USDC = "E5kSBqTDxFLbLNQaVVtPtnhEYVLMCK2fVSEKoMKL98qR", + wUST_SOL = "6c13xsmyk7UaHUWZ2rm1MM3ZdrQRSBkQ9waaG25ridVs", + wUST_USDC = "J1KfRtP5y2warpD7LdJhfBLPKoWwSqYuovdArSv1mpQ7", + mSOL_wUST = "68YVjgPnTUPcBqZyghqvD2WPNsrLKsjYTmBKJzHRr4qd", + wLUNA_wUST = "8Mh7drLbt3jFJYwp948XyvQscGLaLkChNcaH5wwaAoWA", + stSOL_wUST = "HTZd53fYwYQRyAjiaPsZy9Gf41gobFdqkF4oKe3XLi95", + JSOL_USDC = "AzEoVuNJyo9ByoLRZ5t6vav2Zg24vULNVJM41PgCKUqR", + daoSOL_USDC = "CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww", + ORCA_USDT = "Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk", + ORCA_whETH = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", } From 97bc567599e84d9a69f27711bf53bbfca8adf731 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 12 Jan 2022 13:59:37 -1000 Subject: [PATCH 59/81] Bump to 1.2.16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af4034a..dea8aa7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.15", + "version": "1.2.16", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 069f7ac7b8ba1ea25935bd2e0190e1e41de0a523 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:22:38 -1000 Subject: [PATCH 60/81] Pool update (#87) --- src/constants/farms.ts | 10 ++++++++++ src/public/farms/config.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 7692c35..de74793 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1400,6 +1400,15 @@ export const wlunaWustDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const stsolWustDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CXbiLWJoYcVmV7GcF9xSwwMPSgHh5rHRLJB84F54R4qU"), + farmTokenMint: new PublicKey("DxiftFoeRxHk15N4rDYzpwtGhfK3LqSn4gWDCaEkMksE"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1560,4 +1569,5 @@ export const orcaFarmConfigs: Record = { "2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL": wustUsdcDoubleDip, "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM": msolWustDoubleDip, "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29": wlunaWustDoubleDip, + "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, }; diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index c34213d..d3fd9e6 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -163,4 +163,5 @@ export enum OrcaFarmConfig { wUST_USDC_DD = "2mhVUMsG7eb3XhHjAbKpRZgWNyGZNCiWU7dRxauzZaGL", mSOL_wUST_DD = "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM", wLUNA_wUST_DD = "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29", + stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", } From 4aab2b8ceb6186e392c2bbcbf598773adfc09579 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Thu, 13 Jan 2022 15:23:04 -1000 Subject: [PATCH 61/81] Bump to 1.2.17 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dea8aa7..082b0d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.16", + "version": "1.2.17", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 898bb4d7af703c8330955ce6dad738e1cea2b823 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 24 Jan 2022 12:09:56 -0800 Subject: [PATCH 62/81] Pool update (#89) --- src/constants/farms.ts | 20 +++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 14 ++++++++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 2 ++ 5 files changed, 90 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index de74793..18aa8ec 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -968,6 +968,24 @@ export const orcaWhethAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const geneUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EoRaCH4cwmmxc78s5E1fTDt2zPkivXNLf1MvoGhJywKd"), + farmTokenMint: new PublicKey("GrBZ4HLhL28JTxMfAH2Vm2hVv3RE4TYXCG9p9BpyUaRq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK"), + baseTokenDecimals: 6, +}); + +export const cmfiUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2CGcou8YJoannsazSYQ16jSUZzPP8zZ9jdqgSRSGsVXa"), + farmTokenMint: new PublicKey("E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1521,6 +1539,8 @@ export const orcaFarmConfigs: Record = { CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww: daosolUsdcAqFarm, Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk: orcaUsdtAqFarm, GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethAqFarm, + "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcAqFarm, + "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, diff --git a/src/constants/pools.ts b/src/constants/pools.ts index efc649f..7f2618b 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2686,6 +2686,56 @@ export const orcaWhethPool: OrcaPoolParams = Object.freeze({ }, }); +export const geneUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("PQ1sBpkZYTkXo2aDRqWU2sEJGUj7yaeJ3GePoCRYU4V"), + nonce: 253, + authority: new PublicKey("DvbTrW3tUfdgBDU5TFxfXjBpGUYivQP8MiSA5YmXHZGF"), + poolTokenMint: new PublicKey("7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AsR18ERwBhmTkjNpav9NDWdeUzvmDH2TXCwfy2kinat"), + tokenIds: [Tokens.geneToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.geneToken.mint.toString()]: { + ...Tokens.geneToken, + addr: new PublicKey("LiM9qAQi7ud4fCkAcGcJJzmY47od7vzzeqKBejATbJm"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("APQyCmCvyVFreK2JjFHinmja24jTHdwm4umNJo67Nu2v"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const cmfiUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("AaJERSYSMtWxhRqZzBZ9JFr1gJkfSPgPEd3mBDT2AknQ"), + nonce: 255, + authority: new PublicKey("ERMNbmKrBKk3e8ZBbVWNUTkrqamZYxnRFXvgsPUSLT5j"), + poolTokenMint: new PublicKey("85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3HXU5ABkghqJ3iMEGWsGe88kvZtiEyDJ24ihgFTytRNx"), + tokenIds: [Tokens.cmfiToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.cmfiToken.mint.toString()]: { + ...Tokens.cmfiToken, + addr: new PublicKey("HEqNExFgmyZ4Es53pL2bfBi5pKcZwGzbvwm1UknYLD9s"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GbK7B7ZGQNZYrEhADC8aV5HdPhYgMZ35f6c8Decie224"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2798,4 +2848,6 @@ export const orcaPoolConfigs: Record = { CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww: daosolUsdcPool, Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk: orcaUsdtPool, GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethPool, + "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcPool, + "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 3c4c8c7..0a74352 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -96,6 +96,13 @@ export const chicksToken: OrcaToken = Object.freeze({ scale: 9, }); +export const cmfiToken: OrcaToken = Object.freeze({ + tag: "CMFI", + name: "Compendium.Fi", + mint: new PublicKey("5Wsd311hY8NXQhkt9cWHwTnqafk7BGEbLu8Py3DSnPAr"), + scale: 6, +}); + export const copeToken: OrcaToken = Object.freeze({ tag: "COPE", name: "Cope", @@ -145,6 +152,13 @@ export const fttToken: OrcaToken = Object.freeze({ scale: 6, }); +export const geneToken: OrcaToken = Object.freeze({ + tag: "GENE", + name: "Genopets", + mint: new PublicKey("GENEtH5amGSi8kHAtQoezp1XEXwZJ8vcuePYnXdKrMYz"), + scale: 9, +}); + export const gofxToken: OrcaToken = Object.freeze({ tag: "GOFX", name: "GooseFX", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index d3fd9e6..a132749 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -115,6 +115,8 @@ export enum OrcaFarmConfig { daoSOL_USDC_AQ = "CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww", ORCA_USDT_AQ = "Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk", ORCA_whETH_AQ = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", + GENE_USDC_AQ = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", + CMFI_USDC_AQ = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 8528028..7eda3e8 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -115,4 +115,6 @@ export enum OrcaPoolConfig { daoSOL_USDC = "CCyDxjdW3G7hPTthTMPTZ4bnhFF19XG6rx2fNiKeRQww", ORCA_USDT = "Gx4PoxenyQwhGGnKagAT35iVg4im1iKhJxDWqVhgu6tk", ORCA_whETH = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", + GENE_USDC = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", + CMFI_USDC = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", } From d231754ef33d21b6a60858996cd93450807f61f3 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Mon, 24 Jan 2022 12:10:29 -0800 Subject: [PATCH 63/81] Bump to 1.2.18 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 082b0d6..82363ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.17", + "version": "1.2.18", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From ec3db7f18f0c36e9c3512d00af8ed0ea18be129b Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 25 Jan 2022 02:02:01 -0800 Subject: [PATCH 64/81] Execute cleanup instructions in reverse order (#90) * Exclude revoke instruction for one-off wsol account * Revert "Exclude revoke instruction for one-off wsol account" This reverts commit 626321a51ba0f852785fd1a5b5de66ddb291f258. * cleanupInstructions execute in reverse order * remove comment --- src/public/utils/web3/transactions/transaction-builder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/public/utils/web3/transactions/transaction-builder.ts b/src/public/utils/web3/transactions/transaction-builder.ts index e0df5a7..1115219 100644 --- a/src/public/utils/web3/transactions/transaction-builder.ts +++ b/src/public/utils/web3/transactions/transaction-builder.ts @@ -42,7 +42,7 @@ export class TransactionBuilder { let signers: Signer[] = []; this.instructions.forEach((curr) => { instructions = instructions.concat(curr.instructions); - cleanupInstructions = cleanupInstructions.concat(curr.cleanupInstructions); + cleanupInstructions = curr.cleanupInstructions.concat(cleanupInstructions); signers = signers.concat(curr.signers); }); From f4aac091642ddf13019d4258100d4b62d0e9d7c7 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Tue, 25 Jan 2022 02:02:38 -0800 Subject: [PATCH 65/81] Bump to 1.2.19 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 82363ae..567a5ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.18", + "version": "1.2.19", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 41ca9f1953780d48511c0b558007df7aa3365c01 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 26 Jan 2022 14:25:01 -0800 Subject: [PATCH 66/81] Pool update (#91) --- src/constants/farms.ts | 40 +++++++++++++++++++ src/constants/pools.ts | 78 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 14 +++++++ src/public/farms/config.ts | 4 ++ src/public/pools/config.ts | 3 ++ 5 files changed, 139 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 18aa8ec..f4bf5f2 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -986,6 +986,33 @@ export const cmfiUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const acceloUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EowPc9YUmqJDjAujhD1eaLzDm99JnCu88fA1W8skKgQv"), + farmTokenMint: new PublicKey("9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT"), + baseTokenDecimals: 6, +}); + +export const afftmUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EsE6fq5rP5Dg3ivS42JodpaQNpmkB6LTFX2nDSRZZ2og"), + farmTokenMint: new PublicKey("E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG"), + baseTokenDecimals: 6, +}); + +export const btcOrcaAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("8TcCqDgPgim1CV6zgAXFq3PxSBH7MDCeVSGharRzJ4SA"), + farmTokenMint: new PublicKey("EQsfnq9d1R2MbXGKDPSgJXnDk1oXocgMFoSd15pEAPGD"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1427,6 +1454,15 @@ export const stsolWustDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const cmfiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("E5m2jmo8DhLiY93nh95K4XCxvZgt66JzaJnwyt5CPmVR"), + farmTokenMint: new PublicKey("Dr7ks8oV6iRTT2R2uqE4x6Egmg3djt14aCEciNhq3SF9"), + rewardTokenMint: new PublicKey("5Wsd311hY8NXQhkt9cWHwTnqafk7BGEbLu8Py3DSnPAr"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1541,6 +1577,9 @@ export const orcaFarmConfigs: Record = { GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethAqFarm, "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcAqFarm, "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcAqFarm, + HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcAqFarm, + Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcAqFarm, + DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1590,4 +1629,5 @@ export const orcaFarmConfigs: Record = { "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM": msolWustDoubleDip, "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29": wlunaWustDoubleDip, "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, + E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD: cmfiUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 7f2618b..ae44be1 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2736,6 +2736,81 @@ export const cmfiUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const acceloUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("H2bkwBwizcotpWHbruYFKXfHvh29hhoZn52qHq2YZumW"), + nonce: 254, + authority: new PublicKey("E812K73QyqSsGBeU3MLodqVs3gCKJjka4p4gP34hXtns"), + poolTokenMint: new PublicKey("HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("35HW4HcFDzVnVsxBhPKptYfwX3HyJWEosv5T9sdBSu8t"), + tokenIds: [Tokens.acceloToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.acceloToken.mint.toString()]: { + ...Tokens.acceloToken, + addr: new PublicKey("H6tFXr3BnF3r21Sv2ykLSbiE7wLxWpDcXroyxBReoXou"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("GnKnjXsmZKVhduVyLiR9Ngsxwo8spfxtruiPtqDqHLNJ"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const afftmUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4RCU8SoBzvYysNaQBAFpQMmt7LPQgxbto9uiuRjAJPpq"), + nonce: 255, + authority: new PublicKey("HC6aGC7RsgVGonWs1MVy5Qit5R5ruEXZmeywpFwSCmdY"), + poolTokenMint: new PublicKey("Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2cA9XLcSFJ9jgnYViJr5JtnhSpGNrPhebS4RaGm7DHmu"), + tokenIds: [Tokens.afftmToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.afftmToken.mint.toString()]: { + ...Tokens.afftmToken, + addr: new PublicKey("EULHGNmuJWcRHm5Xen9CiG4uqVZoemLorLvAQ7vR9vCi"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("71rJZyRkxxupdqZeLrNQnHjus11C1yEVwsrKgQax6TSx"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const btcOrcaPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("CqXRyZ23dFwdbMLGEQLhQQRJrzkFB3wBsuH92rp7d3yw"), + nonce: 255, + authority: new PublicKey("Fixb6XBzoSRJ4iCkHNX3xbr61yWXUh6SYyu5Jweg36VF"), + poolTokenMint: new PublicKey("DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("47pxL1vidAiARAF45SoVnpqSet8EPckF9pB4d9zT1S3N"), + tokenIds: [Tokens.btcToken.mint.toString(), Tokens.orcaToken.mint.toString()], + tokens: { + [Tokens.btcToken.mint.toString()]: { + ...Tokens.btcToken, + addr: new PublicKey("8dbqoSTALCCshdKXX8Nb6AskytydXtHLyPoqu9Nb2ig3"), + }, + [Tokens.orcaToken.mint.toString()]: { + ...Tokens.orcaToken, + addr: new PublicKey("7UAHjQQjYBrSKdtgbJK1SaUVgmBxcmMJKshvEiEhLheP"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2850,4 +2925,7 @@ export const orcaPoolConfigs: Record = { GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethPool, "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcPool, "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcPool, + HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcPool, + Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcPool, + DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 0a74352..cfe314d 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -530,6 +530,20 @@ export const woofToken: OrcaToken = Object.freeze({ scale: 6, }); +export const acceloToken: OrcaToken = Object.freeze({ + tag: "acCELO", + name: "Celo", + mint: new PublicKey("GNCjk3FmPPgZTkbQRSxr6nCvLtYMbXKMnRxg8BgJs62e"), + scale: 9, +}); + +export const afftmToken: OrcaToken = Object.freeze({ + tag: "afFTM", + name: "Fantom", + mint: new PublicKey("EsPKhGTMf3bGoy4Qm7pCv3UCcWqAmbC1UGHBTDxRjjD4"), + scale: 9, +}); + export const daosolToken: OrcaToken = Object.freeze({ tag: "daoSOL", name: "daoSOL Token", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index a132749..18dbc93 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -117,6 +117,9 @@ export enum OrcaFarmConfig { ORCA_whETH_AQ = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", GENE_USDC_AQ = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", CMFI_USDC_AQ = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", + acCELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", + afFTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", + BTC_ORCA_AQ = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -166,4 +169,5 @@ export enum OrcaFarmConfig { mSOL_wUST_DD = "6wqME6zPQzGDLugpnwZnVBKBbATC5nTaEa781Vj98yvM", wLUNA_wUST_DD = "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29", stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", + CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 7eda3e8..1bad723 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -117,4 +117,7 @@ export enum OrcaPoolConfig { ORCA_whETH = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", GENE_USDC = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", CMFI_USDC = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", + acCELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", + afFTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", + BTC_ORCA = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", } From 37f2b7c0a97b153d481b0910d29af76ce5f3b5a6 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 26 Jan 2022 14:25:50 -0800 Subject: [PATCH 67/81] Bump to 1.2.20 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 567a5ef..8ac89a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.19", + "version": "1.2.20", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From d042fc9aab0705aae96190fbff1b018e49e3da4c Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 28 Jan 2022 05:37:13 -0800 Subject: [PATCH 68/81] Pool update (#92) --- src/constants/farms.ts | 30 ++++++++++++++++++++++ src/constants/pools.ts | 52 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++ src/public/farms/config.ts | 3 +++ src/public/pools/config.ts | 2 ++ 5 files changed, 94 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index f4bf5f2..3da11f4 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1013,6 +1013,24 @@ export const btcOrcaAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const hbbUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3saySWJwipyCXqqhYT8XaSMFAS7NNksKKdP3zFJuUMtT"), + farmTokenMint: new PublicKey("BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k"), + baseTokenDecimals: 6, +}); + +export const hbbSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9fEfGhHjvqDPcFx6cBNuWHHjQaa6fSEP5pRHjdFkPenE"), + farmTokenMint: new PublicKey("62q8m79WkXR1MAer4H2zLpA38s47Fywkqqv4MMwEHjad"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1463,6 +1481,15 @@ export const cmfiUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const hbbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CvYum3awvbxPVa5FpZRBs97Prg5GDmLha4X6mggX7R1p"), + farmTokenMint: new PublicKey("FYdet59VXibMU8FhnbZamZTVMsjnCyNevUqzWUrJfGum"), + rewardTokenMint: new PublicKey("HBB111SCo9jkCejsZfz8Ec8nH7T6THF8KEKSnvwT6XK6"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1580,6 +1607,8 @@ export const orcaFarmConfigs: Record = { HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcAqFarm, Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcAqFarm, DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaAqFarm, + cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcAqFarm, + FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1630,4 +1659,5 @@ export const orcaFarmConfigs: Record = { "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29": wlunaWustDoubleDip, "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD: cmfiUsdcDoubleDip, + BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk: hbbUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index ae44be1..6c50b53 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2811,6 +2811,56 @@ export const btcOrcaPool: OrcaPoolParams = Object.freeze({ }, }); +export const hbbUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Fpwa7a1r7kjax1nW25TVP3uiQc7XH9dv9n9UXMJRSTEx"), + nonce: 254, + authority: new PublicKey("9odZioXkQTCZERzQXbDTfirMfbP9FtKqsP9LvHgm6wJr"), + poolTokenMint: new PublicKey("cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3nyqxtRPnYrwEHneWgbN1197aZoEaemnSNQ7rgJLv8hS"), + tokenIds: [Tokens.hbbToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.hbbToken.mint.toString()]: { + ...Tokens.hbbToken, + addr: new PublicKey("2vq1vt98xBPUmvbTC5nH4GtsjJVeA64kwv6CZc7xSAf6"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("B7f4A1Pp6RCjWYv5Lsrf4MecmZQDMekXh4MFQasCQuRB"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const hbbSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2aCJ1VTwfvLej1PJJAmiVCzuLGtjQ5bEo9DYkbwwe1C6"), + nonce: 255, + authority: new PublicKey("8GRweHBrpXfeYpmryfkvEsW3DmoJKGDQLpcVfeNUqn8x"), + poolTokenMint: new PublicKey("FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2Y1xXr1j6xg5r5Qz8LDqnU7N8T4GGu3Ju4AHGsfU2nXS"), + tokenIds: [Tokens.hbbToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.hbbToken.mint.toString()]: { + ...Tokens.hbbToken, + addr: new PublicKey("5k1Nj2TvG51p7s2ambWpmX6FraiSchoYS1wJgVw5f9Af"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("2s2vbHk4XzKQ9SQdPRyirY8JmBemhZ67EBx7xgF6tzq5"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2928,4 +2978,6 @@ export const orcaPoolConfigs: Record = { HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcPool, Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcPool, DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaPool, + cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcPool, + FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index cfe314d..2ce12cb 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -180,6 +180,13 @@ export const gstToken: OrcaToken = Object.freeze({ scale: 9, }); +export const hbbToken: OrcaToken = Object.freeze({ + tag: "HBB", + name: "Hubble", + mint: new PublicKey("HBB111SCo9jkCejsZfz8Ec8nH7T6THF8KEKSnvwT6XK6"), + scale: 6, +}); + export const ivnToken: OrcaToken = Object.freeze({ tag: "IVN", name: "Investin", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 18dbc93..e9b71b4 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -120,6 +120,8 @@ export enum OrcaFarmConfig { acCELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", afFTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA_AQ = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", + HBB_USDC_AQ = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", + HBB_SOL_AQ = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -170,4 +172,5 @@ export enum OrcaFarmConfig { wLUNA_wUST_DD = "3ZGKT28NXAqb2YtUAMvKixQvHNHT31Q5mK8AC2iBMs29", stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", + HBB_USDC_DD = "BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 1bad723..2cdcebf 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -120,4 +120,6 @@ export enum OrcaPoolConfig { acCELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", afFTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", + HBB_USDC = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", + HBB_SOL = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", } From 65d7bccf6321d41ea15eb3f77752052f3654da84 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Fri, 28 Jan 2022 05:37:40 -0800 Subject: [PATCH 69/81] Bump to 1.2.21 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8ac89a7..79e6de7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.20", + "version": "1.2.21", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From e8f01a493dc834b011e3032d72bf0e817d6857b4 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 5 Feb 2022 02:07:36 -0800 Subject: [PATCH 70/81] Pool update (#93) --- src/constants/farms.ts | 20 ++++++++++++++++++++ src/constants/pools.ts | 26 ++++++++++++++++++++++++++ src/constants/tokens.ts | 7 +++++++ src/public/farms/config.ts | 2 ++ src/public/pools/config.ts | 1 + 5 files changed, 56 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 3da11f4..6294c26 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1031,6 +1031,15 @@ export const hbbSolAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const sbUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Ax8vkRHj3Gqo5Tv6PfWZzmbr8zHfPdeYbJpG7QYkP3r1"), + farmTokenMint: new PublicKey("3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1490,6 +1499,15 @@ export const hbbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const sbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("74hUtc4MaZUt4YDDjVSqHyUbPT8kbxW16mbAharpZhPV"), + farmTokenMint: new PublicKey("EdkL9TXiT2NV1LND5nj4kR1L9SYjozWpJvbcStvrUUJF"), + rewardTokenMint: new PublicKey("SuperbZyz7TsSdSoFAZ6RYHfAWe9NmjXBLVQpS8hqdx"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1609,6 +1627,7 @@ export const orcaFarmConfigs: Record = { DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaAqFarm, cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcAqFarm, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolAqFarm, + "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o": sbUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1660,4 +1679,5 @@ export const orcaFarmConfigs: Record = { "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD: cmfiUsdcDoubleDip, BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk: hbbUsdcDoubleDip, + "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk": sbUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 6c50b53..42dad16 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2861,6 +2861,31 @@ export const hbbSolPool: OrcaPoolParams = Object.freeze({ }, }); +export const sbUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GPxcR4ci8RbLh4bVPi88mKwTEDeVxEKs3nBkKayghuuL"), + nonce: 255, + authority: new PublicKey("6poTLvmbRU9FAJAnM5RmXMRTVFf2xWRKooCkStZQJf6U"), + poolTokenMint: new PublicKey("2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("EVRpMUxUGZGH15SB1hGhLzzz15XNopLZjSuTZSpcwMmt"), + tokenIds: [Tokens.sbToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.sbToken.mint.toString()]: { + ...Tokens.sbToken, + addr: new PublicKey("EoV9ub5aojyBFdYGhPQPQ6cDeesgsENrNYGN6L8CB6Nh"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("7kRmDjSorwKqqLAFupgGW8fEp6hywkt2bntw2gCrV5Sh"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -2980,4 +3005,5 @@ export const orcaPoolConfigs: Record = { DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaPool, cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcPool, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolPool, + "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o": sbUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 2ce12cb..b2f2633 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -362,6 +362,13 @@ export const samoToken: OrcaToken = Object.freeze({ scale: 9, }); +export const sbToken: OrcaToken = Object.freeze({ + tag: "SB", + name: "SuperBonds", + mint: new PublicKey("SuperbZyz7TsSdSoFAZ6RYHfAWe9NmjXBLVQpS8hqdx"), + scale: 6, +}); + export const sbrToken: OrcaToken = Object.freeze({ tag: "SBR", name: "Saber", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index e9b71b4..fc53687 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -122,6 +122,7 @@ export enum OrcaFarmConfig { BTC_ORCA_AQ = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", HBB_USDC_AQ = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL_AQ = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", + SB_USDC_AQ = "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -173,4 +174,5 @@ export enum OrcaFarmConfig { stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", HBB_USDC_DD = "BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk", + SB_USDC_DD = "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 2cdcebf..6914ea1 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -122,4 +122,5 @@ export enum OrcaPoolConfig { BTC_ORCA = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", HBB_USDC = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", + SB_USDC = "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o", } From 7a8b76d4254d25cb259342fd7fc27f2638a92b5f Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Sat, 5 Feb 2022 02:08:11 -0800 Subject: [PATCH 71/81] Bump to 1.2.22 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 79e6de7..a1b6d39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.21", + "version": "1.2.22", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 78b93ed7071673a2f005883150ca3a7d3a093d03 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:50:16 -0800 Subject: [PATCH 72/81] Pool update (#95) --- src/constants/farms.ts | 60 +++++++++++++++++++++++++++++ src/constants/pools.ts | 78 ++++++++++++++++++++++++++++++++++++++ src/constants/tokens.ts | 14 +++++++ src/public/farms/config.ts | 6 +++ src/public/pools/config.ts | 3 ++ 5 files changed, 161 insertions(+) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 6294c26..2db0ab2 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1040,6 +1040,33 @@ export const sbUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const stsolUsdtAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2xvT1Z2SU1iKvmWpUNP9y4vRXyB8GpGq7sD9CforJoYd"), + farmTokenMint: new PublicKey("CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur"), + baseTokenDecimals: 6, +}); + +export const seededUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("n7VuBP5qpMt2fZxNevR2gtxsgogDv22GJsj5f2WNJCN"), + farmTokenMint: new PublicKey("H15WptGntFQifZmJHUzYBV9Mv7P27ofavEsF6yqpLTdX"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf"), + baseTokenDecimals: 6, +}); + +export const audioUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DvzYNQoPYFWQCjBs6rxvMmarcKMiEaQHC7sWVAm5K2XM"), + farmTokenMint: new PublicKey("BbRVh76k2jYsSWnd7qpDQ8ptzVzgRq67viK6tAFEkB8z"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1499,6 +1526,15 @@ export const hbbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const acceloUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DrDpUFTvHjznYEugMqcXTqspdmQ6GZhuBzjodU7A6qWU"), + farmTokenMint: new PublicKey("4EUgJ5LSF3UDVbVAYzqE133NXAxfhHZSvqx214EJkNkQ"), + rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY"), + baseTokenDecimals: 6, +}); + export const sbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("74hUtc4MaZUt4YDDjVSqHyUbPT8kbxW16mbAharpZhPV"), farmTokenMint: new PublicKey("EdkL9TXiT2NV1LND5nj4kR1L9SYjozWpJvbcStvrUUJF"), @@ -1508,6 +1544,24 @@ export const sbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const afftmUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7cYU6ux4GwB1X2FKaRruQ9dbDZKUrxZAaWGNJfeoHeGJ"), + farmTokenMint: new PublicKey("4r3uYr4Ph4ctw1chiUaAtwon4stFGHqbSJ6Lym139rM9"), + rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9"), + baseTokenDecimals: 6, +}); + +export const stsolUsdtDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AihUw1sSxuzL2i1ELWMXmiRT3UgyRds68iNXwFKbyQnP"), + farmTokenMint: new PublicKey("2kftNiMcrjp9CRqtoLZNwApGEoirfunHPvunenGLz17y"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1628,6 +1682,9 @@ export const orcaFarmConfigs: Record = { cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcAqFarm, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolAqFarm, "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o": sbUsdcAqFarm, + "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur": stsolUsdtAqFarm, + H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf: seededUsdcAqFarm, + "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5": audioUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1679,5 +1736,8 @@ export const orcaFarmConfigs: Record = { "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD: cmfiUsdcDoubleDip, BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk: hbbUsdcDoubleDip, + "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY": acceloUsdcDoubleDip, "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk": sbUsdcDoubleDip, + E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9: afftmUsdcDoubleDip, + CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN: stsolUsdtDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 42dad16..74145af 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2886,6 +2886,81 @@ export const sbUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const stsolUsdtPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("EacW6utfAJk6z5QCbyqjJHdTN2TH5UFu9K5dh3DmhsLV"), + nonce: 254, + authority: new PublicKey("CUQbwmFXySWXpBgycGTTj3gQNY8AnjD4DJRjgLeG1bVK"), + poolTokenMint: new PublicKey("4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("H4VgN76Mri6ctLCkf6fnyfae9fCDC51nZVPa1oPjq1Da"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.usdtToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("BAMiBNk9j6Z9LLdZzzGScHDFQas58uLqW4GGX4ndq7K6"), + }, + [Tokens.usdtToken.mint.toString()]: { + ...Tokens.usdtToken, + addr: new PublicKey("Ajf4bxNoKCyFVfV35sRTgGwZK1dfJJJVXgNFs7ncC5EF"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const seededUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3fyCss3Y9ATNnTSsN7VCasEb4H5SpSuN7VEoJnNWZU3x"), + nonce: 251, + authority: new PublicKey("89TxEkGNHFcniBm5pXo8Jq6s1ZaBUKCRqgYS3eAr3jJ7"), + poolTokenMint: new PublicKey("H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("2ZTqrZTNumBMdyQm3cAiREHozzQp18KhEuGWiUVwJMRm"), + tokenIds: [Tokens.seededToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.seededToken.mint.toString()]: { + ...Tokens.seededToken, + addr: new PublicKey("Dn9LiTqcRiyxipCqvTEyT3ZwbWtf69bUcHQLWG89jpJa"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("Aq5xPmh3cZoyLN3KzVcAK8osAU7oAjo1k6qdw6gd5ovi"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const audioUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("2arG3AznFJbLknAQUqk44PgeABZDHpBfcRsPmPWjjBPY"), + nonce: 254, + authority: new PublicKey("ETCzw3Vp2n4aas7rFtxb554h67JPeyDBr7DKcHUgSAxp"), + poolTokenMint: new PublicKey("3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("H1Rcj6jAeV9v5QsJTo957tcWgYzve4PZEuSHGNmX1UFv"), + tokenIds: [Tokens.audioToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.audioToken.mint.toString()]: { + ...Tokens.audioToken, + addr: new PublicKey("FfpKRggDra1uSskyzAm6f4EXFhxw6ij8BkDwiWTs126x"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("ACBf9ksELg2buAFnDTJL9WnT5kZRcFN1Bvarox9JZVbq"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -3006,4 +3081,7 @@ export const orcaPoolConfigs: Record = { cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcPool, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolPool, "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o": sbUsdcPool, + "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur": stsolUsdtPool, + H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf: seededUsdcPool, + "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5": audioUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index b2f2633..fc925c9 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -40,6 +40,13 @@ export const atlasToken: OrcaToken = Object.freeze({ scale: 8, }); +export const audioToken: OrcaToken = Object.freeze({ + tag: "AUDIO", + name: "Audius (Wormhole)", + mint: new PublicKey("9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM"), + scale: 8, +}); + export const auryToken: OrcaToken = Object.freeze({ tag: "AURY", name: "Aurory", @@ -390,6 +397,13 @@ export const sdogeToken: OrcaToken = Object.freeze({ scale: 0, }); +export const seededToken: OrcaToken = Object.freeze({ + tag: "SEEDED", + name: "Seeded Network", + mint: new PublicKey("seedEDBqu63tJ7PFqvcbwvThrYUkQeqT6NLf81kLibs"), + scale: 9, +}); + export const shdwToken: OrcaToken = Object.freeze({ tag: "SHDW", name: "Shadow", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index fc53687..db91d8a 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -123,6 +123,9 @@ export enum OrcaFarmConfig { HBB_USDC_AQ = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL_AQ = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", SB_USDC_AQ = "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o", + stSOL_USDT_AQ = "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur", + SEEDED_USDC_AQ = "H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf", + AUDIO_USDC_AQ = "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -174,5 +177,8 @@ export enum OrcaFarmConfig { stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", HBB_USDC_DD = "BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk", + acCELO_USDC_DD = "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY", SB_USDC_DD = "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk", + afFTM_USDC_DD = "E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9", + stSOL_USDT_DD = "CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 6914ea1..4730ef2 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -123,4 +123,7 @@ export enum OrcaPoolConfig { HBB_USDC = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", SB_USDC = "2Reqt4Sw9xNY8BoJ3EZLpFu5yVgNxFrbw8M3KiJpPn6o", + stSOL_USDT = "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur", + SEEDED_USDC = "H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf", + AUDIO_USDC = "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5", } From 57a355deb6d1f11cc1efa5ee1bbd53675426cd89 Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:50:45 -0800 Subject: [PATCH 73/81] Bump to 1.2.23 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1b6d39..f87e035 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.22", + "version": "1.2.23", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 99dc9da776e5f089bee99bb275255f4783d09d66 Mon Sep 17 00:00:00 2001 From: scuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 6 Apr 2022 21:50:26 -0700 Subject: [PATCH 74/81] Pool update (#99) --- src/constants/farms.ts | 156 ++++++++++++++++++++++++++-- src/constants/pools.ts | 202 +++++++++++++++++++++++++++++++++++-- src/constants/tokens.ts | 64 ++++++++++-- src/public/farms/config.ts | 18 ++++ src/public/pools/config.ts | 9 ++ 5 files changed, 420 insertions(+), 29 deletions(-) diff --git a/src/constants/farms.ts b/src/constants/farms.ts index 2db0ab2..a519e2f 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -986,7 +986,7 @@ export const cmfiUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const acceloUsdcAqFarm: OrcaFarmParams = Object.freeze({ +export const celoUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("EowPc9YUmqJDjAujhD1eaLzDm99JnCu88fA1W8skKgQv"), farmTokenMint: new PublicKey("9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), @@ -995,7 +995,7 @@ export const acceloUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const afftmUsdcAqFarm: OrcaFarmParams = Object.freeze({ +export const ftmUsdcAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("EsE6fq5rP5Dg3ivS42JodpaQNpmkB6LTFX2nDSRZZ2og"), farmTokenMint: new PublicKey("E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), @@ -1067,6 +1067,69 @@ export const audioUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const mmaUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("C54TkajKsLqHZP1taiayDAaAHrr6KBmCVRT1BuZHxa9q"), + farmTokenMint: new PublicKey("H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp"), + baseTokenDecimals: 6, +}); + +export const onesolSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("64zLHH6zA8yuLxxPAgbVx5Cp9F8afHZWSyUndHsFBP95"), + farmTokenMint: new PublicKey("Hva9oLa2GjoKdB45WoHujsX7MTpehByPshMrQpNDmkFq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV"), + baseTokenDecimals: 6, +}); + +export const puffSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("Gp4r2PFLSf9Y1Y1K46gpEYsM7mkFNVY4Ga7s6YXZmxGD"), + farmTokenMint: new PublicKey("Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4"), + baseTokenDecimals: 6, +}); + +export const saoUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("4rKjrmHAmeT6bu3JNhP2NYjFgVHtt71U9yumBDKHTe14"), + farmTokenMint: new PublicKey("A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE"), + baseTokenDecimals: 6, +}); + +export const srlySolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9SV2NL59i1PfD72AUHDXa2KT1xWnFD3VyMgfzCRDARW1"), + farmTokenMint: new PublicKey("6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH"), + baseTokenDecimals: 6, +}); + +export const zbcUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("gBBNuRf5VsGoAEwKzTAaVsPSqTiYLh5VmaxvzvbCEBb"), + farmTokenMint: new PublicKey("7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7"), + baseTokenDecimals: 6, +}); + +export const gmtUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DbJT9UTTt8U8xAk7BtRWC3nQHxJnNmZdZydUAhJj14TZ"), + farmTokenMint: new PublicKey("8EnEoVX1aXkzbTzhrqDQ2aVGybbPpeWZDCYEGjjw1dyG"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1526,7 +1589,7 @@ export const hbbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const acceloUsdcDoubleDip: OrcaFarmParams = Object.freeze({ +export const celoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("DrDpUFTvHjznYEugMqcXTqspdmQ6GZhuBzjodU7A6qWU"), farmTokenMint: new PublicKey("4EUgJ5LSF3UDVbVAYzqE133NXAxfhHZSvqx214EJkNkQ"), rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), @@ -1544,7 +1607,7 @@ export const sbUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const afftmUsdcDoubleDip: OrcaFarmParams = Object.freeze({ +export const ftmUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("7cYU6ux4GwB1X2FKaRruQ9dbDZKUrxZAaWGNJfeoHeGJ"), farmTokenMint: new PublicKey("4r3uYr4Ph4ctw1chiUaAtwon4stFGHqbSJ6Lym139rM9"), rewardTokenMint: new PublicKey("a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp"), @@ -1562,6 +1625,69 @@ export const stsolUsdtDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const seededUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("EsSWWXMipKC4aVHcKjkYdvNjKphxk86DGCYhdF2huoso"), + farmTokenMint: new PublicKey("AjCuWDEZYC9FuwdYpdAy4vLoY6PxMNF8xitQeaNZd1nW"), + rewardTokenMint: new PublicKey("seedEDBqu63tJ7PFqvcbwvThrYUkQeqT6NLf81kLibs"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("H15WptGntFQifZmJHUzYBV9Mv7P27ofavEsF6yqpLTdX"), + baseTokenDecimals: 6, +}); + +export const onesolSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("2GpXwBPbooPwqxLuM1bW9FaSK5hxaJqNkr7WdPsjoPca"), + farmTokenMint: new PublicKey("DuTybhuJgwECRHDLgtrBuKnfhxve2zXoYXD6cnDikzoT"), + rewardTokenMint: new PublicKey("4ThReWAbAVZjNVgs5Ui9Pk3cZ5TYaD9u6Y89fp6EFzoF"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("Hva9oLa2GjoKdB45WoHujsX7MTpehByPshMrQpNDmkFq"), + baseTokenDecimals: 6, +}); + +export const mmaUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7w9ztS9wcnsk2gqCEvKmQFUBbwhPZPfb5CXhC2onUWXs"), + farmTokenMint: new PublicKey("9hSvWrDqgAr7E8sWpatomKcgAGy3hvgAWPXtGPySNbsy"), + rewardTokenMint: new PublicKey("MMAx26JtJgSWv6yH48nEHCGZcVvRbf9Lt9ALa7jSipe"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn"), + baseTokenDecimals: 6, +}); + +export const puffSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HNTRmR36ZXBNakYpfPPq7VJaXzLrNY6hN1Xz9p5s8wWA"), + farmTokenMint: new PublicKey("Grn1ipjetWK7sz5Bq9S1nwD7F7dUsFzM44diFxbMruvK"), + rewardTokenMint: new PublicKey("G9tt98aYSznRk7jWsfuz9FnTdokxS6Brohdo9hSmjTRB"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW"), + baseTokenDecimals: 6, +}); + +export const saoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9eVq1gfxbgRpX8W4XctocHEm2U8eT5KzTcnMduFThoz1"), + farmTokenMint: new PublicKey("47PY3ET5oziYHEt1mddYFE7opJnqPbp98yZ1xf6cpgER"), + rewardTokenMint: new PublicKey("2HeykdKjzHKGm2LKHw8pDYwjKPiFEoXAz74dirhUgQvq"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p"), + baseTokenDecimals: 6, +}); + +export const srlySolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("7GAp1xR64GjjbyHbvE28Rt9xLEBLTjk4W3AemRMvTcrS"), + farmTokenMint: new PublicKey("4Xtia3w6AKBNPCYmFZCAQV8CNwUmHYrVQiNMEGdMkRMg"), + rewardTokenMint: new PublicKey("RLYv2ubRMDLcGG2UyvPmnPmkfuQTsMbg4Jtygc7dmnq"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe"), + baseTokenDecimals: 6, +}); + +export const zbcUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("AMVd1e1mvWxvJ9LPU3GWjRQ7bfhkwVB69RiL5oRkyAtC"), + farmTokenMint: new PublicKey("2ygRp6eeFaBmfEZngpkVwuVs8hmRbe3FMnF4qiJiFzhT"), + rewardTokenMint: new PublicKey("zebeczgi5fSEtbpfQKVZKCJ3WgYXxjkMUkNNx7fLKAF"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1676,8 +1802,8 @@ export const orcaFarmConfigs: Record = { GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethAqFarm, "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcAqFarm, "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcAqFarm, - HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcAqFarm, - Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcAqFarm, + HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: celoUsdcAqFarm, + Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: ftmUsdcAqFarm, DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaAqFarm, cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcAqFarm, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolAqFarm, @@ -1685,6 +1811,13 @@ export const orcaFarmConfigs: Record = { "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur": stsolUsdtAqFarm, H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf: seededUsdcAqFarm, "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5": audioUsdcAqFarm, + AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp: mmaUsdcAqFarm, + "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV": onesolSolAqFarm, + Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4: puffSolAqFarm, + "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE": saoUsdcAqFarm, + "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlySolAqFarm, + "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7": zbcUsdcAqFarm, + CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi: gmtUsdcAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1736,8 +1869,15 @@ export const orcaFarmConfigs: Record = { "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH": stsolWustDoubleDip, E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD: cmfiUsdcDoubleDip, BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk: hbbUsdcDoubleDip, - "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY": acceloUsdcDoubleDip, + "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY": celoUsdcDoubleDip, "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk": sbUsdcDoubleDip, - E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9: afftmUsdcDoubleDip, + E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9: ftmUsdcDoubleDip, CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN: stsolUsdtDoubleDip, + H15WptGntFQifZmJHUzYBV9Mv7P27ofavEsF6yqpLTdX: seededUsdcDoubleDip, + Hva9oLa2GjoKdB45WoHujsX7MTpehByPshMrQpNDmkFq: onesolSolDoubleDip, + H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn: mmaUsdcDoubleDip, + Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW: puffSolDoubleDip, + A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p: saoUsdcDoubleDip, + "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe": srlySolDoubleDip, + "7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb": zbcUsdcDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 74145af..689441d 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -2736,17 +2736,17 @@ export const cmfiUsdcPool: OrcaPoolParams = Object.freeze({ }, }); -export const acceloUsdcPool: OrcaPoolParams = Object.freeze({ +export const celoUsdcPool: OrcaPoolParams = Object.freeze({ address: new PublicKey("H2bkwBwizcotpWHbruYFKXfHvh29hhoZn52qHq2YZumW"), nonce: 254, authority: new PublicKey("E812K73QyqSsGBeU3MLodqVs3gCKJjka4p4gP34hXtns"), poolTokenMint: new PublicKey("HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT"), poolTokenDecimals: 6, feeAccount: new PublicKey("35HW4HcFDzVnVsxBhPKptYfwX3HyJWEosv5T9sdBSu8t"), - tokenIds: [Tokens.acceloToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokenIds: [Tokens.celoToken.mint.toString(), Tokens.usdcToken.mint.toString()], tokens: { - [Tokens.acceloToken.mint.toString()]: { - ...Tokens.acceloToken, + [Tokens.celoToken.mint.toString()]: { + ...Tokens.celoToken, addr: new PublicKey("H6tFXr3BnF3r21Sv2ykLSbiE7wLxWpDcXroyxBReoXou"), }, [Tokens.usdcToken.mint.toString()]: { @@ -2761,17 +2761,17 @@ export const acceloUsdcPool: OrcaPoolParams = Object.freeze({ }, }); -export const afftmUsdcPool: OrcaPoolParams = Object.freeze({ +export const ftmUsdcPool: OrcaPoolParams = Object.freeze({ address: new PublicKey("4RCU8SoBzvYysNaQBAFpQMmt7LPQgxbto9uiuRjAJPpq"), nonce: 255, authority: new PublicKey("HC6aGC7RsgVGonWs1MVy5Qit5R5ruEXZmeywpFwSCmdY"), poolTokenMint: new PublicKey("Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG"), poolTokenDecimals: 6, feeAccount: new PublicKey("2cA9XLcSFJ9jgnYViJr5JtnhSpGNrPhebS4RaGm7DHmu"), - tokenIds: [Tokens.afftmToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokenIds: [Tokens.ftmToken.mint.toString(), Tokens.usdcToken.mint.toString()], tokens: { - [Tokens.afftmToken.mint.toString()]: { - ...Tokens.afftmToken, + [Tokens.ftmToken.mint.toString()]: { + ...Tokens.ftmToken, addr: new PublicKey("EULHGNmuJWcRHm5Xen9CiG4uqVZoemLorLvAQ7vR9vCi"), }, [Tokens.usdcToken.mint.toString()]: { @@ -2961,6 +2961,181 @@ export const audioUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const mmaUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("3HJ9QwRNsdHj3xaTvrzYyvvsY1gd23N8qGiSHaytKLLB"), + nonce: 254, + authority: new PublicKey("58KyKR1fHXP2ewDC93TdRxPZ7W8FNYkLc53VH9XP32hD"), + poolTokenMint: new PublicKey("AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AfesEXaDzs4mnPQJyqNHzpZ8DMBpuEPtmi1aL5xwRjVm"), + tokenIds: [Tokens.mmaToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.mmaToken.mint.toString()]: { + ...Tokens.mmaToken, + addr: new PublicKey("BzccyLPYsbhhWjHnRLUn7Fpkao9reYRdjA8wkp7iY6re"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("6uJF6gMpCxUYvmQ8hmaz44MRyRYq5ykpsx5GYABbUK5A"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const onesolSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("8CJhJomcLYoVw6pAQdNWPJ3yDXkS55y2gAxJ9uReuXEz"), + nonce: 254, + authority: new PublicKey("9DV4t1XqqNiXLCdHfaEwAbVaT5Mth3z8VjYS6CG8CPQS"), + poolTokenMint: new PublicKey("9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("6yqvsmFJrMhSv31Ne6yY8f4y2ZJvMMCwTjYTxhq1eKS5"), + tokenIds: [Tokens.onesolToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.onesolToken.mint.toString()]: { + ...Tokens.onesolToken, + addr: new PublicKey("532m3b4aSmWsrn4RfM9ByBRLJocdcHMwiscjADQYNjXG"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("2qu6tc58av5AGfrrBPdHxK2Cyi5CsDhjaZ8x8yw8UA1w"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const puffSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GrSE1LoQBr3p9y7HQxV8h5vc8fH4xkT4a6Nysckbu8zt"), + nonce: 253, + authority: new PublicKey("79gfyi1Ct3m8RKkF618yxnA7w5JQV1NWhkMs6dXACgGq"), + poolTokenMint: new PublicKey("Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("44XxHHYz2642Bc4sHdDuV2aEGbziugqN5tKnmBBBwPyA"), + tokenIds: [Tokens.puffToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.puffToken.mint.toString()]: { + ...Tokens.puffToken, + addr: new PublicKey("HYszSkhsPPNSj6Q5hRudc94kawCgUNeQ1DqrxJxtoxsK"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("AKJUQjqAHTw5rNYYv9Rvxxe23mwdNaqzt7pdriJy92sw"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const saoUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("BWCT76eQ8jtrKkMm234ZY1QEXSfZYTrzHyXaE3DxeQfd"), + nonce: 255, + authority: new PublicKey("7TXfpFGVASvgkLkuTSsqQJQTXypa31zqcHmPZNMaAJu"), + poolTokenMint: new PublicKey("4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("BVSJLE6RZ2cvfXPjSZcj7fK1HLra2wtcC4jLCZAh6gFX"), + tokenIds: [Tokens.saoToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.saoToken.mint.toString()]: { + ...Tokens.saoToken, + addr: new PublicKey("8MNhNFCU366Y3dq3HRk5nKuKZuQLY3kffMZekadM2R8q"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("6qnLaADqFjtGsMsHjScFVmpVVNBbqaGNoBwBFy5BVRr8"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const srlySolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Df7DkQRXEpPM5basbYHi45268hmR8m7YrtraPdGgj6R6"), + nonce: 255, + authority: new PublicKey("9DaRQeoEx3EjXYxhpZrcJ6no3bcAkfm9toWbngcAqSCB"), + poolTokenMint: new PublicKey("3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("B3Ao2fEX2isX8UQ99EuPz3BDzUfQTPeYS7KVvbCnkrXm"), + tokenIds: [Tokens.srlyToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.srlyToken.mint.toString()]: { + ...Tokens.srlyToken, + addr: new PublicKey("AJzDsY4wnv8nWSWoBimY6hWJpWC54oEgmfbV7YGXsLww"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("qytd7KfK3pFVWog53xUVE8dqD1sBxa1H13VnF6ADGSd"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const zbcUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("J4Xvy9twDDWqqwyfX6nrc2QFJeMJ6HD9kbAmcPhfYmFP"), + nonce: 255, + authority: new PublicKey("9Ssocd3xbxm3xCKwz1g8d41rS6iWbmGyo25ZdYZHbDCp"), + poolTokenMint: new PublicKey("2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("8H1bUAywEerLCYxLVDjM5EqXYXtoW5gbR1MoD1LrrnMV"), + tokenIds: [Tokens.zbcToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.zbcToken.mint.toString()]: { + ...Tokens.zbcToken, + addr: new PublicKey("8AcanN7p8KHfLxKBBMKuJUqqX2uUPz3mkp3iaNHHaZfZ"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("FwqAxdo6s5EtyVXqqU7sj3Q9n3eLuUkF2D4584MDoWLW"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const gmtUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("46GcZFgznxUf6TpoCqJqzMpgMbbJPCAwNn8GThSt9qjC"), + nonce: 255, + authority: new PublicKey("3HGGVGTXbqT49PG3L8JQYH4jCeP5CNBG6CpJniZ434an"), + poolTokenMint: new PublicKey("CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3pBqsnahNsm6p14FFjtMCGfD1VCQNcUEdNEeSwTGfE2q"), + tokenIds: [Tokens.gmtToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.gmtToken.mint.toString()]: { + ...Tokens.gmtToken, + addr: new PublicKey("BTpvbpTArnekGgbXRqjfSvp7gENtHXvZCAwuUKQNYMeN"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("DdBTJuiAXQQ7gLVXBXNPbVEG8g1avRxiJXhH5LhBytYW"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -3075,8 +3250,8 @@ export const orcaPoolConfigs: Record = { GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3: orcaWhethPool, "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK": geneUsdcPool, "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR": cmfiUsdcPool, - HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: acceloUsdcPool, - Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: afftmUsdcPool, + HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT: celoUsdcPool, + Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG: ftmUsdcPool, DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY: btcOrcaPool, cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k: hbbUsdcPool, FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk: hbbSolPool, @@ -3084,4 +3259,11 @@ export const orcaPoolConfigs: Record = { "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur": stsolUsdtPool, H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf: seededUsdcPool, "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5": audioUsdcPool, + AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp: mmaUsdcPool, + "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV": onesolSolPool, + Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4: puffSolPool, + "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE": saoUsdcPool, + "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlySolPool, + "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7": zbcUsdcPool, + CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi: gmtUsdcPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index fc925c9..6d5f4f4 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -96,6 +96,13 @@ export const catoToken: OrcaToken = Object.freeze({ scale: 9, }); +export const celoToken: OrcaToken = Object.freeze({ + tag: "CELO", + name: "Celo", + mint: new PublicKey("GNCjk3FmPPgZTkbQRSxr6nCvLtYMbXKMnRxg8BgJs62e"), + scale: 9, +}); + export const chicksToken: OrcaToken = Object.freeze({ tag: "CHICKS", name: "SolChicks Token", @@ -152,6 +159,13 @@ export const frktToken: OrcaToken = Object.freeze({ scale: 8, }); +export const ftmToken: OrcaToken = Object.freeze({ + tag: "FTM", + name: "Fantom", + mint: new PublicKey("EsPKhGTMf3bGoy4Qm7pCv3UCcWqAmbC1UGHBTDxRjjD4"), + scale: 9, +}); + export const fttToken: OrcaToken = Object.freeze({ tag: "FTT", name: "FTX Token", @@ -166,6 +180,13 @@ export const geneToken: OrcaToken = Object.freeze({ scale: 9, }); +export const gmtToken: OrcaToken = Object.freeze({ + tag: "GMT", + name: "STEPN", + mint: new PublicKey("7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx"), + scale: 9, +}); + export const gofxToken: OrcaToken = Object.freeze({ tag: "GOFX", name: "GooseFX", @@ -271,6 +292,13 @@ export const merToken: OrcaToken = Object.freeze({ scale: 6, }); +export const mmaToken: OrcaToken = Object.freeze({ + tag: "MMA", + name: "MMA Gaming", + mint: new PublicKey("MMAx26JtJgSWv6yH48nEHCGZcVvRbf9Lt9ALa7jSipe"), + scale: 9, +}); + export const mndeToken: OrcaToken = Object.freeze({ tag: "MNDE", name: "Marinade Governance", @@ -341,6 +369,13 @@ export const prtToken: OrcaToken = Object.freeze({ scale: 6, }); +export const puffToken: OrcaToken = Object.freeze({ + tag: "PUFF", + name: "PUFF", + mint: new PublicKey("G9tt98aYSznRk7jWsfuz9FnTdokxS6Brohdo9hSmjTRB"), + scale: 9, +}); + export const rayToken: OrcaToken = Object.freeze({ tag: "RAY", name: "Raydium", @@ -369,6 +404,13 @@ export const samoToken: OrcaToken = Object.freeze({ scale: 9, }); +export const saoToken: OrcaToken = Object.freeze({ + tag: "SAO", + name: "Sator", + mint: new PublicKey("2HeykdKjzHKGm2LKHw8pDYwjKPiFEoXAz74dirhUgQvq"), + scale: 9, +}); + export const sbToken: OrcaToken = Object.freeze({ tag: "SB", name: "SuperBonds", @@ -558,17 +600,10 @@ export const woofToken: OrcaToken = Object.freeze({ scale: 6, }); -export const acceloToken: OrcaToken = Object.freeze({ - tag: "acCELO", - name: "Celo", - mint: new PublicKey("GNCjk3FmPPgZTkbQRSxr6nCvLtYMbXKMnRxg8BgJs62e"), - scale: 9, -}); - -export const afftmToken: OrcaToken = Object.freeze({ - tag: "afFTM", - name: "Fantom", - mint: new PublicKey("EsPKhGTMf3bGoy4Qm7pCv3UCcWqAmbC1UGHBTDxRjjD4"), +export const zbcToken: OrcaToken = Object.freeze({ + tag: "ZBC", + name: "Zebec Protocol", + mint: new PublicKey("zebeczgi5fSEtbpfQKVZKCJ3WgYXxjkMUkNNx7fLKAF"), scale: 9, }); @@ -593,6 +628,13 @@ export const psolToken: OrcaToken = Object.freeze({ scale: 9, }); +export const srlyToken: OrcaToken = Object.freeze({ + tag: "sRLY", + name: "Rally (Solana)", + mint: new PublicKey("RLYv2ubRMDLcGG2UyvPmnPmkfuQTsMbg4Jtygc7dmnq"), + scale: 9, +}); + export const scnsolToken: OrcaToken = Object.freeze({ tag: "scnSOL", name: "Socean Staked Sol", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index db91d8a..82a0c96 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -119,6 +119,8 @@ export enum OrcaFarmConfig { CMFI_USDC_AQ = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", acCELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", afFTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", + CELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", + FTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA_AQ = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", HBB_USDC_AQ = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL_AQ = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", @@ -126,6 +128,13 @@ export enum OrcaFarmConfig { stSOL_USDT_AQ = "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur", SEEDED_USDC_AQ = "H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf", AUDIO_USDC_AQ = "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5", + MMA_USDC_AQ = "AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp", + ONESOL_SOL_AQ = "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV", + PUFF_SOL_AQ = "Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4", + SAO_USDC_AQ = "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE", + sRLY_SOL_AQ = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", + ZBC_USDC_AQ = "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7", + GMT_USDC_AQ = "CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -178,7 +187,16 @@ export enum OrcaFarmConfig { CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", HBB_USDC_DD = "BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk", acCELO_USDC_DD = "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY", + CELO_USDC_DD = "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY", SB_USDC_DD = "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk", afFTM_USDC_DD = "E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9", + FTM_USDC_DD = "E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9", stSOL_USDT_DD = "CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN", + SEEDED_USDC_DD = "H15WptGntFQifZmJHUzYBV9Mv7P27ofavEsF6yqpLTdX", + ONESOL_SOL_DD = "Hva9oLa2GjoKdB45WoHujsX7MTpehByPshMrQpNDmkFq", + MMA_USDC_DD = "H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn", + PUFF_SOL_DD = "Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW", + SAO_USDC_DD = "A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p", + sRLY_SOL_DD = "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe", + ZBC_USDC_DD = "7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index 4730ef2..d3d390c 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -119,6 +119,8 @@ export enum OrcaPoolConfig { CMFI_USDC = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", acCELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", afFTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", + CELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", + FTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", HBB_USDC = "cL5WhffCYFRLM4We8VS2W684kM4pHyuvEDwp8Ddw48k", HBB_SOL = "FkKzu2HeMJZf4oHwoYPxLGVy3net5Jq8HAfnA5VqETgk", @@ -126,4 +128,11 @@ export enum OrcaPoolConfig { stSOL_USDT = "4ni1nho89cDKAQ9ddbNQA9ieLYpzvJVmJpuogu5Ct5ur", SEEDED_USDC = "H7gyTmNCDXkD8MGMqnxqoD8ANszjcju4tjT6ERZ5dakf", AUDIO_USDC = "3hksYA17VxgiKSeihjnZkBbjc2CTbEBfvDCYgQhojTo5", + MMA_USDC = "AaZRnJAnDyJyPD9uPJpJ8bzBGDCEi6jtBpUf92xErWPp", + ONESOL_SOL = "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV", + PUFF_SOL = "Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4", + SAO_USDC = "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE", + sRLY_SOL = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", + ZBC_USDC = "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7", + GMT_USDC = "CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi", } From e04a5c4742500e1b9988207226d58184617ed45c Mon Sep 17 00:00:00 2001 From: 0xscuba <88916581+0xscuba@users.noreply.github.com> Date: Wed, 6 Apr 2022 21:51:32 -0700 Subject: [PATCH 75/81] v1.2.24 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f87e035..abc16ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.23", + "version": "1.2.24", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From dbded0f23a23616df4ddefd0c1f8355f4e3d0870 Mon Sep 17 00:00:00 2001 From: meep <33380758+odcheung@users.noreply.github.com> Date: Fri, 10 Jun 2022 18:36:02 -0700 Subject: [PATCH 76/81] Update Tokenlist with new tokens (#102) * Sync token list to SDK * Update .gitignore --- .gitignore | 2 + src/constants/farms.ts | 178 ++++++++++++++++++++++++++- src/constants/pools.ts | 245 ++++++++++++++++++++++++++++++++++++- src/constants/tokens.ts | 76 +++++++++++- src/public/farms/config.ts | 27 ++-- src/public/pools/config.ts | 15 ++- 6 files changed, 518 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 148457b..91c4c7c 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,5 @@ dist .yarn/build-state.yml .yarn/install-state.gz .pnp.* + +.vscode/* diff --git a/src/constants/farms.ts b/src/constants/farms.ts index a519e2f..e1454f4 100644 --- a/src/constants/farms.ts +++ b/src/constants/farms.ts @@ -1103,7 +1103,7 @@ export const saoUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const srlySolAqFarm: OrcaFarmParams = Object.freeze({ +export const srlyv2SolAqFarm: OrcaFarmParams = Object.freeze({ address: new PublicKey("9SV2NL59i1PfD72AUHDXa2KT1xWnFD3VyMgfzCRDARW1"), farmTokenMint: new PublicKey("6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe"), rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), @@ -1130,6 +1130,87 @@ export const gmtUsdcAqFarm: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const novaUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("B8Kv2mjJGvbDnEUX5EHhg1Erg3s7qBYpjDzrmvMMMrRx"), + farmTokenMint: new PublicKey("H2jZrZKx1fLY9LPi2ad5G2DVBWzMmUwPQLjRFERUroEH"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME"), + baseTokenDecimals: 6, +}); + +export const hbbUsdhAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("cPFH2eNZnyf85RpSkPM2ZG3S4RdedX51ywqSk7kjmp2"), + farmTokenMint: new PublicKey("DUGuXcpHX9y6WdTKgDm8XsECbf7pApA7ZvAsjUqHUoYn"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo"), + baseTokenDecimals: 6, +}); + +export const takiSrlyv2AqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("ADTFK1eFV3oKCzGex2wHTCctBNYxqSvHv7fN1tnbHBGq"), + farmTokenMint: new PublicKey("EkPqSfr4ZiRiLgjZw45QmF36TzZ3EEV51DyRVd2iuhA2"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3"), + baseTokenDecimals: 6, +}); + +export const zigUsdcAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("CAG4eyg41phvb4KZ1hkfPikbUreZcVTVVH9Rc8yf7ADc"), + farmTokenMint: new PublicKey("9nKbvVW9TjdnKt2NbfMaf9PHcg8zWWFgGTBfzUXdFcke"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp"), + baseTokenDecimals: 6, +}); + +export const srlySolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("3851tQsk6PdqWm3pZgPdHaqZcBdNioKxnGM3ah8Yq5rK"), + farmTokenMint: new PublicKey("HfkZkoPqZzd7S1F3BhkJN2Es1C5vabVYqfCecXG2MGHP"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P"), + baseTokenDecimals: 6, +}); + +export const takiSrlyAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("FSy7cpNu9gC2Grr8J3pnorm5jTR9D2xHngUS8vZDUeug"), + farmTokenMint: new PublicKey("13HwDUH7yREGAwHSWnx4Kgnn6huL8yfCCBqaBr6NGVH6"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs"), + baseTokenDecimals: 6, +}); + +export const stsolSolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9bKvCTiVrnSzFPrd4g7Dd9SeEZvKNn3SQ7dMpuE9VKuo"), + farmTokenMint: new PublicKey("7ZvhrqdnP2NrQi2YCjQNd8jKJpLDMUuZg4wP7XJPjnVX"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw"), + baseTokenDecimals: 6, +}); + +export const btcStsolAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("F2mdxT26uvf16X9vV5ACUqa6FicPBq5fLZkAXXxYxD8b"), + farmTokenMint: new PublicKey("GjBW6751wNJ99zYkr9QwSi98bvj1NgyAcYHfQDpemJfq"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh"), + baseTokenDecimals: 6, +}); + +export const stsolWhethAqFarm: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5xpcR2aPqE3WWQa6ZMv6xSmBakdyKBsAi3pmLJj2ARH1"), + farmTokenMint: new PublicKey("9V9CavjccKJH66m4MJHzVBYzY2ZM3U3D5xUCP7HSyAUz"), + rewardTokenMint: new PublicKey("orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT"), + baseTokenDecimals: 6, +}); + export const liqUsdcDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("AraZDjfmkqzDJ3CdbjjYbtpujUYivgTEKKM2TPf6hJ27"), farmTokenMint: new PublicKey("5rGtJDiJhD5Mx2fvdEYuLrCiWaMD9z3wpmJSxwGHmo4u"), @@ -1670,7 +1751,7 @@ export const saoUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); -export const srlySolDoubleDip: OrcaFarmParams = Object.freeze({ +export const srlyv2SolDoubleDip: OrcaFarmParams = Object.freeze({ address: new PublicKey("7GAp1xR64GjjbyHbvE28Rt9xLEBLTjk4W3AemRMvTcrS"), farmTokenMint: new PublicKey("4Xtia3w6AKBNPCYmFZCAQV8CNwUmHYrVQiNMEGdMkRMg"), rewardTokenMint: new PublicKey("RLYv2ubRMDLcGG2UyvPmnPmkfuQTsMbg4Jtygc7dmnq"), @@ -1688,6 +1769,78 @@ export const zbcUsdcDoubleDip: OrcaFarmParams = Object.freeze({ baseTokenDecimals: 6, }); +export const novaUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("DQW177Qu36iFAjeXmywHPoeBVvVHa6ngwm2RWzL6ffVj"), + farmTokenMint: new PublicKey("22MzBGjYuoZuAyoXEnNSAxBatpRwUFhDzusY1NboiMLj"), + rewardTokenMint: new PublicKey("BDrL8huis6S5tpmozaAaT5zhE5A7ZBAB2jMMvpKEeF8A"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("H2jZrZKx1fLY9LPi2ad5G2DVBWzMmUwPQLjRFERUroEH"), + baseTokenDecimals: 6, +}); + +export const hbbUsdhDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("9qCNAmcuo8odN67UJopN7BEKXBfT2kc7xf98612Ria1z"), + farmTokenMint: new PublicKey("8Lb3tMPCUwYPWDRWsujSHs2grXBssXm8GdXyn3zh1GmU"), + rewardTokenMint: new PublicKey("HBB111SCo9jkCejsZfz8Ec8nH7T6THF8KEKSnvwT6XK6"), + rewardTokenDecimals: 6, + baseTokenMint: new PublicKey("DUGuXcpHX9y6WdTKgDm8XsECbf7pApA7ZvAsjUqHUoYn"), + baseTokenDecimals: 6, +}); + +export const zigUsdcDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("6rGP2znXXGU9vWN6Te5D3DaKvSYQKXB8chaLdVcsSJsF"), + farmTokenMint: new PublicKey("87om2hz9nKKdS3sinYtGXCBuPACPd7xrnKBS3UwyZAoJ"), + rewardTokenMint: new PublicKey("ANqY8h3sRSwkC29FvGJenAh7VGRABVVx7Ls6Mq4BuGT"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("9nKbvVW9TjdnKt2NbfMaf9PHcg8zWWFgGTBfzUXdFcke"), + baseTokenDecimals: 6, +}); + +export const srlySolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("5dGXUyewQ652r6FTC1yduvxxSVspvmcQRY5wFCVNZeg3"), + farmTokenMint: new PublicKey("919hW5ubB18RFEU6KmP9AKfMxk6drESjc54sxewfz1Mp"), + rewardTokenMint: new PublicKey("sRLY3migNrkC1HLgqotpvi66qGkdNedqPZ9TJpAQhyh"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("HfkZkoPqZzd7S1F3BhkJN2Es1C5vabVYqfCecXG2MGHP"), + baseTokenDecimals: 6, +}); + +export const takiSrlyDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("GMa3zuo9DGHu9hfnQ6noUpsmtX1wJH9AF84q37TfmtfW"), + farmTokenMint: new PublicKey("5gR2iQfkNe5XgApAUqMsbBjkXkmf4yineBFkhpm4yKgD"), + rewardTokenMint: new PublicKey("Taki7fi3Zicv7Du1xNAWLaf6mRK7ikdn77HeGzgwvo4"), + rewardTokenDecimals: 9, + baseTokenMint: new PublicKey("13HwDUH7yREGAwHSWnx4Kgnn6huL8yfCCBqaBr6NGVH6"), + baseTokenDecimals: 6, +}); + +export const stsolSolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("D7tPD1ZP46fH2jJoL8YH75aPkGQVXFJVYiX7G2NVKt3T"), + farmTokenMint: new PublicKey("HaBymyP8zL1pgpnkdAn14pmTQbLQpiraYwd1uEzkReG9"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("7ZvhrqdnP2NrQi2YCjQNd8jKJpLDMUuZg4wP7XJPjnVX"), + baseTokenDecimals: 6, +}); + +export const btcStsolDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("kDV1QjYknEeqMRaTGssdPmnnKLxTavUBFf3VkNn89aP"), + farmTokenMint: new PublicKey("B91eD8Z2TfR21NxnwHv8H2GihT25qNRKtMxhtZfz4Kgk"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("GjBW6751wNJ99zYkr9QwSi98bvj1NgyAcYHfQDpemJfq"), + baseTokenDecimals: 6, +}); + +export const stsolWhethDoubleDip: OrcaFarmParams = Object.freeze({ + address: new PublicKey("HcWSgX8HKHTDrbdHwMe2KgQSixs3KM2PNXEowT6bkyB7"), + farmTokenMint: new PublicKey("DkMeCWXirFsQZPYfgDs4voqvQbYGGQiwYoPQkUn4fU9W"), + rewardTokenMint: new PublicKey("HZRCwxP2Vq9PCpPXooayhJ2bxTpo5xfpQrwB1svh332p"), + rewardTokenDecimals: 8, + baseTokenMint: new PublicKey("9V9CavjccKJH66m4MJHzVBYzY2ZM3U3D5xUCP7HSyAUz"), + baseTokenDecimals: 6, +}); + /** * Mapping for OrcaFarm parameters * Key: baseTokenMint : OrcaFarmParams @@ -1815,9 +1968,18 @@ export const orcaFarmConfigs: Record = { "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV": onesolSolAqFarm, Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4: puffSolAqFarm, "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE": saoUsdcAqFarm, - "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlySolAqFarm, + "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlyv2SolAqFarm, "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7": zbcUsdcAqFarm, CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi: gmtUsdcAqFarm, + DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME: novaUsdcAqFarm, + "7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo": hbbUsdhAqFarm, + "6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3": takiSrlyv2AqFarm, + "5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp": zigUsdcAqFarm, + HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P: srlySolAqFarm, + "3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs": takiSrlyAqFarm, + "4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw": stsolSolAqFarm, + HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh: btcStsolAqFarm, + FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT: stsolWhethAqFarm, "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT": liqUsdcDoubleDip, GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL: stepSolDoubleDip, "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7": slrsUsdcDoubleDip, @@ -1878,6 +2040,14 @@ export const orcaFarmConfigs: Record = { H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn: mmaUsdcDoubleDip, Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW: puffSolDoubleDip, A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p: saoUsdcDoubleDip, - "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe": srlySolDoubleDip, + "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe": srlyv2SolDoubleDip, "7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb": zbcUsdcDoubleDip, + H2jZrZKx1fLY9LPi2ad5G2DVBWzMmUwPQLjRFERUroEH: novaUsdcDoubleDip, + DUGuXcpHX9y6WdTKgDm8XsECbf7pApA7ZvAsjUqHUoYn: hbbUsdhDoubleDip, + "9nKbvVW9TjdnKt2NbfMaf9PHcg8zWWFgGTBfzUXdFcke": zigUsdcDoubleDip, + HfkZkoPqZzd7S1F3BhkJN2Es1C5vabVYqfCecXG2MGHP: srlySolDoubleDip, + "13HwDUH7yREGAwHSWnx4Kgnn6huL8yfCCBqaBr6NGVH6": takiSrlyDoubleDip, + "7ZvhrqdnP2NrQi2YCjQNd8jKJpLDMUuZg4wP7XJPjnVX": stsolSolDoubleDip, + GjBW6751wNJ99zYkr9QwSi98bvj1NgyAcYHfQDpemJfq: btcStsolDoubleDip, + "9V9CavjccKJH66m4MJHzVBYzY2ZM3U3D5xUCP7HSyAUz": stsolWhethDoubleDip, }; diff --git a/src/constants/pools.ts b/src/constants/pools.ts index 689441d..71745c8 100644 --- a/src/constants/pools.ts +++ b/src/constants/pools.ts @@ -3061,17 +3061,17 @@ export const saoUsdcPool: OrcaPoolParams = Object.freeze({ }, }); -export const srlySolPool: OrcaPoolParams = Object.freeze({ +export const srlyv2SolPool: OrcaPoolParams = Object.freeze({ address: new PublicKey("Df7DkQRXEpPM5basbYHi45268hmR8m7YrtraPdGgj6R6"), nonce: 255, authority: new PublicKey("9DaRQeoEx3EjXYxhpZrcJ6no3bcAkfm9toWbngcAqSCB"), poolTokenMint: new PublicKey("3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH"), poolTokenDecimals: 6, feeAccount: new PublicKey("B3Ao2fEX2isX8UQ99EuPz3BDzUfQTPeYS7KVvbCnkrXm"), - tokenIds: [Tokens.srlyToken.mint.toString(), Tokens.solToken.mint.toString()], + tokenIds: [Tokens.srlyv2Token.mint.toString(), Tokens.solToken.mint.toString()], tokens: { - [Tokens.srlyToken.mint.toString()]: { - ...Tokens.srlyToken, + [Tokens.srlyv2Token.mint.toString()]: { + ...Tokens.srlyv2Token, addr: new PublicKey("AJzDsY4wnv8nWSWoBimY6hWJpWC54oEgmfbV7YGXsLww"), }, [Tokens.solToken.mint.toString()]: { @@ -3136,6 +3136,232 @@ export const gmtUsdcPool: OrcaPoolParams = Object.freeze({ }, }); +export const novaUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("GWG6gTW75GxMS7oUDoivjPrjcbsiR7fDMFKFw6pz2MuN"), + nonce: 254, + authority: new PublicKey("Az4AA8tzbKJRZhunGUGVmtJyGUj763fiDyxbZiPeSVb4"), + poolTokenMint: new PublicKey("DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7RPsLN9WHRL39sAs3oDjWzGHJ1bCJg36qmTqb4i6ZPFV"), + tokenIds: [Tokens.novaToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.novaToken.mint.toString()]: { + ...Tokens.novaToken, + addr: new PublicKey("5DCtLobmcNATqtgbv9pymXsXDqmVJ7NVi6GLLuPwmphk"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("Hym2QSjXpNZE8VubGbg63nPx1QGXtkmsucdBCFYKp6jj"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const hbbUsdhPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9GgFi1cavfTEQ8gy87S3VVeqZSFBhncpJvMBQ8vprAQw"), + nonce: 255, + authority: new PublicKey("HsTk5QvXEQpdr1bB8nay55TZqecKUqNvGLM93vVRhHqj"), + poolTokenMint: new PublicKey("7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AijCQCXg6pcLwfNW6DB9HNrwge2HRaXfdJLAXeBEhgKF"), + tokenIds: [Tokens.hbbToken.mint.toString(), Tokens.usdhToken.mint.toString()], + tokens: { + [Tokens.hbbToken.mint.toString()]: { + ...Tokens.hbbToken, + addr: new PublicKey("D9uCWM7yfWwUktQ2MjuiDmTYa4vE9ff5St7TaQ9uJPwe"), + }, + [Tokens.usdhToken.mint.toString()]: { + ...Tokens.usdhToken, + addr: new PublicKey("AGGpY57ko5qcJJxRNgJSXTs3jrf6cPgux4q8B9R3nE52"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const takiSrlyv2Pool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("6AxGikaR6FvDAP3rEWYA5sjKim8ELceCfno7ZGaYYwsK"), + nonce: 254, + authority: new PublicKey("13sT1XctPqMUoomDqyV55nEAupZXfyc7tohxTrhNXyKQ"), + poolTokenMint: new PublicKey("6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3yvDrXwLK4z5P7BbPko7siDfxDLV31J58xzoCK9Wy5mb"), + tokenIds: [Tokens.takiToken.mint.toString(), Tokens.srlyv2Token.mint.toString()], + tokens: { + [Tokens.takiToken.mint.toString()]: { + ...Tokens.takiToken, + addr: new PublicKey("J8kiPsPrscD9oLg5JP3Dj7HyNSLh5s4zmfA7LLYNqYXS"), + }, + [Tokens.srlyv2Token.mint.toString()]: { + ...Tokens.srlyv2Token, + addr: new PublicKey("FpdhjfJsJtMYy5zejmhFJNxtE59NDhgbXn3mfsEeKDmu"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const zigUsdcPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("37b7oyhDTJh1VpjjEZqaC8VasvnyHHYHeiXLpa8Ht8Hm"), + nonce: 255, + authority: new PublicKey("8D4DfRUgmEMuiFct6BCqSiUd7NgH4wtbU3kLB4Miy1YC"), + poolTokenMint: new PublicKey("5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("AcWQv9cp2gn8BUTn7swwpPeAcGZ9gG64zzM5pYWnReGx"), + tokenIds: [Tokens.zigToken.mint.toString(), Tokens.usdcToken.mint.toString()], + tokens: { + [Tokens.zigToken.mint.toString()]: { + ...Tokens.zigToken, + addr: new PublicKey("BNx1dsmrFLX9r2hWf2duWaPL4m7yu1AkBw8X9YwEGqp7"), + }, + [Tokens.usdcToken.mint.toString()]: { + ...Tokens.usdcToken, + addr: new PublicKey("jYirYPaPZKnsbEJSvWu3Pb6tWRcNxPQPL2RD1qTa7eK"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const srlySolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("FyGeyg6HEjBwTEGXF9o78XgKyMkmxSncLe2VECu3FPgo"), + nonce: 253, + authority: new PublicKey("BDmEnikYwue2wtzxZFhr29avpQdX3rrQrvSjYJimeteH"), + poolTokenMint: new PublicKey("HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("EcUL9q6rMrVsyqDR1hMMMyHM6Sqos93SKXBCEd3HgAa7"), + tokenIds: [Tokens.srlyToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.srlyToken.mint.toString()]: { + ...Tokens.srlyToken, + addr: new PublicKey("7vY5bs27YTWus7KiemXsfaY4E2EzbrV5gXvbx1RaWJ8B"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("JiKtEtLL96sUDQvM1oYXuNaWdHxjdcSgb9M3yqNYs8h"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const takiSrlyPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("4VzdxTLqzgn5MGMTDsNMukZCvkAZkXLXhYENeKGRtdTR"), + nonce: 255, + authority: new PublicKey("CMTEg8iJ131Fi6yJvsZ5ovtUZjfQWaEsZtTmZH15WjFH"), + poolTokenMint: new PublicKey("3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("5Vey7hniN8uNjqBkaxrVpXFrsc5eEZdqFD1Xi5SJF6PS"), + tokenIds: [Tokens.takiToken.mint.toString(), Tokens.srlyToken.mint.toString()], + tokens: { + [Tokens.takiToken.mint.toString()]: { + ...Tokens.takiToken, + addr: new PublicKey("7p3UFVn1h2Eeo8zF4CETufa7JqXYMVXzKLn7vg39MQfX"), + }, + [Tokens.srlyToken.mint.toString()]: { + ...Tokens.srlyToken, + addr: new PublicKey("J5V4k8nSGu3PBH8ej4E34KjCbGZx5Q7v2AMwr4Wt9Tgm"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolSolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("71zvJycCiY2JRRwKr27oiu48mFzrstCoP6riGEyCyEB2"), + nonce: 253, + authority: new PublicKey("5qpKgo2PSNSkmHGAa4oYrEZcYA3CQaFpA66nPVuP1qHX"), + poolTokenMint: new PublicKey("4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("7nxYhYUaD7og4rYce263CCPh9pPTnGixfBtQrXE7UUvZ"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.solToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("HQ2XUmQefvBdpN8nseBSWNP2D1crncodLL73AWnYBiSy"), + }, + [Tokens.solToken.mint.toString()]: { + ...Tokens.solToken, + addr: new PublicKey("8y8X4JuZn1MckRo5J6rirpr2Dxj1RKQshj7VzuX6dMUw"), + }, + }, + curveType: CurveType.Stable, + amp: 100, + feeStructure: { + traderFee: Percentage.fromFraction(6, 10000), + ownerFee: Percentage.fromFraction(1, 10000), + }, +}); + +export const btcStsolPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("Cus1XADrHBrgyD7hKLGARsHFtBgGWvjAA346KimbHXai"), + nonce: 255, + authority: new PublicKey("Czqib5TfizVRvDksYBFfdDgHcBwdPPVejW9LYDBSXxu5"), + poolTokenMint: new PublicKey("HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("3SHTi6ybA2oAFooARTt1ETbNPSueofuBFhmEtjmrJFUw"), + tokenIds: [Tokens.btcToken.mint.toString(), Tokens.stsolToken.mint.toString()], + tokens: { + [Tokens.btcToken.mint.toString()]: { + ...Tokens.btcToken, + addr: new PublicKey("8WhAF65WbdsRAzGQF66oLsBZwbeXbU5WtxX7pA8SwjK"), + }, + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("EnbNxeehxrAJXxyWupFcs7zsJN3Zob4nJmpFGS8ninm8"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + +export const stsolWhethPool: OrcaPoolParams = Object.freeze({ + address: new PublicKey("9FtrC9VkqssGygMafJjseqPQXnyorqHV3DyMPBfJrgtj"), + nonce: 252, + authority: new PublicKey("4Y7EQYJ1WWKn8ZXC3Fc6KVnp5LPgqLxyV5Pk9eGm3cuh"), + poolTokenMint: new PublicKey("FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT"), + poolTokenDecimals: 6, + feeAccount: new PublicKey("28t4Vixx6cE1yunwXNqQ2YU3pU9PbCscK9G3daRYuYCS"), + tokenIds: [Tokens.stsolToken.mint.toString(), Tokens.whethToken.mint.toString()], + tokens: { + [Tokens.stsolToken.mint.toString()]: { + ...Tokens.stsolToken, + addr: new PublicKey("FTrSPUnMKmdKkNekKvVUQY1nunr2kWwohMHmBusd79Vj"), + }, + [Tokens.whethToken.mint.toString()]: { + ...Tokens.whethToken, + addr: new PublicKey("2teAyRLAU716sCj9v2634Wi4wcLqtRvV9upXaRvDSFm1"), + }, + }, + curveType: CurveType.ConstantProduct, + feeStructure: { + traderFee: Percentage.fromFraction(25, 10000), + ownerFee: Percentage.fromFraction(5, 10000), + }, +}); + /** * Mapping for OrcaPool parameters * Key: poolTokenMint : OrcaPoolParams @@ -3263,7 +3489,16 @@ export const orcaPoolConfigs: Record = { "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV": onesolSolPool, Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4: puffSolPool, "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE": saoUsdcPool, - "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlySolPool, + "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH": srlyv2SolPool, "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7": zbcUsdcPool, CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi: gmtUsdcPool, + DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME: novaUsdcPool, + "7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo": hbbUsdhPool, + "6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3": takiSrlyv2Pool, + "5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp": zigUsdcPool, + HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P: srlySolPool, + "3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs": takiSrlyPool, + "4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw": stsolSolPool, + HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh: btcStsolPool, + FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT: stsolWhethPool, }; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 6d5f4f4..d8580de 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -6,7 +6,7 @@ import { OrcaToken } from ".."; */ export const onesolToken: OrcaToken = Object.freeze({ - tag: "ONESOL", + tag: "1SOL", name: "1Sol", mint: new PublicKey("4ThReWAbAVZjNVgs5Ui9Pk3cZ5TYaD9u6Y89fp6EFzoF"), scale: 8, @@ -26,6 +26,13 @@ export const abrToken: OrcaToken = Object.freeze({ scale: 9, }); +export const anaToken: OrcaToken = Object.freeze({ + tag: "ANA", + name: "Nirvana ANA", + mint: new PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"), + scale: 6, +}); + export const aptToken: OrcaToken = Object.freeze({ tag: "APT", name: "Apricot", @@ -96,6 +103,13 @@ export const catoToken: OrcaToken = Object.freeze({ scale: 9, }); +export const caveToken: OrcaToken = Object.freeze({ + tag: "CAVE", + name: "Crypto Cavemen", + mint: new PublicKey("4SZjjNABoqhbd4hnapbvoEPEqT8mnNkfbEoAwALf1V8t"), + scale: 6, +}); + export const celoToken: OrcaToken = Object.freeze({ tag: "CELO", name: "Celo", @@ -138,6 +152,13 @@ export const ethToken: OrcaToken = Object.freeze({ scale: 6, }); +export const fabToken: OrcaToken = Object.freeze({ + tag: "FAB", + name: "Fabric", + mint: new PublicKey("EdAhkbj5nF9sRM7XN7ewuW8C9XEUMs8P7cnoQ57SYE96"), + scale: 9, +}); + export const fantToken: OrcaToken = Object.freeze({ tag: "FANT", name: "Phantasia", @@ -215,6 +236,13 @@ export const hbbToken: OrcaToken = Object.freeze({ scale: 6, }); +export const hdgToken: OrcaToken = Object.freeze({ + tag: "HDG", + name: "Hedge Token", + mint: new PublicKey("5PmpMzWjraf3kSsGEKtqdUsCoLhptg4yriZ17LKKdBBy"), + scale: 9, +}); + export const ivnToken: OrcaToken = Object.freeze({ tag: "IVN", name: "Investin", @@ -320,6 +348,13 @@ export const ninjaToken: OrcaToken = Object.freeze({ scale: 6, }); +export const novaToken: OrcaToken = Object.freeze({ + tag: "NOVA", + name: "Nova Finance", + mint: new PublicKey("BDrL8huis6S5tpmozaAaT5zhE5A7ZBAB2jMMvpKEeF8A"), + scale: 9, +}); + export const oogiToken: OrcaToken = Object.freeze({ tag: "OOGI", name: "OOGI", @@ -530,6 +565,13 @@ export const sypToken: OrcaToken = Object.freeze({ scale: 9, }); +export const takiToken: OrcaToken = Object.freeze({ + tag: "TAKI", + name: "Taki", + mint: new PublicKey("Taki7fi3Zicv7Du1xNAWLaf6mRK7ikdn77HeGzgwvo4"), + scale: 9, +}); + export const tttToken: OrcaToken = Object.freeze({ tag: "TTT", name: "TabTrader", @@ -565,6 +607,13 @@ export const usdcToken: OrcaToken = Object.freeze({ scale: 6, }); +export const usdhToken: OrcaToken = Object.freeze({ + tag: "USDH", + name: "USDH", + mint: new PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"), + scale: 6, +}); + export const usdtToken: OrcaToken = Object.freeze({ tag: "USDT", name: "Tether USD", @@ -572,6 +621,13 @@ export const usdtToken: OrcaToken = Object.freeze({ scale: 6, }); +export const ushToken: OrcaToken = Object.freeze({ + tag: "USH", + name: "Hedge USD", + mint: new PublicKey("9iLH8T7zoWhY7sBmj1WK9ENbWdS1nL8n9wAxaeRitTa6"), + scale: 9, +}); + export const uxpToken: OrcaToken = Object.freeze({ tag: "UXP", name: "UXD Protocol Token", @@ -607,6 +663,13 @@ export const zbcToken: OrcaToken = Object.freeze({ scale: 9, }); +export const zigToken: OrcaToken = Object.freeze({ + tag: "ZIG", + name: "Zignaly", + mint: new PublicKey("ANqY8h3sRSwkC29FvGJenAh7VGRABVVx7Ls6Mq4BuGT"), + scale: 9, +}); + export const daosolToken: OrcaToken = Object.freeze({ tag: "daoSOL", name: "daoSOL Token", @@ -628,13 +691,20 @@ export const psolToken: OrcaToken = Object.freeze({ scale: 9, }); -export const srlyToken: OrcaToken = Object.freeze({ - tag: "sRLY", +export const srlyv2Token: OrcaToken = Object.freeze({ + tag: "sRLYv2", name: "Rally (Solana)", mint: new PublicKey("RLYv2ubRMDLcGG2UyvPmnPmkfuQTsMbg4Jtygc7dmnq"), scale: 9, }); +export const srlyToken: OrcaToken = Object.freeze({ + tag: "sRLY", + name: "Rally Solana", + mint: new PublicKey("sRLY3migNrkC1HLgqotpvi66qGkdNedqPZ9TJpAQhyh"), + scale: 9, +}); + export const scnsolToken: OrcaToken = Object.freeze({ tag: "scnSOL", name: "Socean Staked Sol", diff --git a/src/public/farms/config.ts b/src/public/farms/config.ts index 82a0c96..d787e3b 100644 --- a/src/public/farms/config.ts +++ b/src/public/farms/config.ts @@ -33,13 +33,11 @@ export enum OrcaFarmConfig { PORT_USDC_AQ = "F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w", SBR_USDC_AQ = "CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo", scnSOL_USDC_AQ = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", - SOCN_USDC_AQ = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", pSOL_USDC_AQ = "C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1", mSOL_SOL_AQ = "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R", ORCA_PAI_AQ = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", ORCA_mSOL_AQ = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", scnSOL_SOL_AQ = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", - SOCN_SOL_AQ = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", ATLAS_USDC_AQ = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", POLIS_USDC_AQ = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", BOP_USDC_AQ = "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu", @@ -117,8 +115,6 @@ export enum OrcaFarmConfig { ORCA_whETH_AQ = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", GENE_USDC_AQ = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", CMFI_USDC_AQ = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", - acCELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", - afFTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", CELO_USDC_AQ = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", FTM_USDC_AQ = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA_AQ = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", @@ -132,9 +128,18 @@ export enum OrcaFarmConfig { ONESOL_SOL_AQ = "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV", PUFF_SOL_AQ = "Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4", SAO_USDC_AQ = "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE", - sRLY_SOL_AQ = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", + sRLYv2_SOL_AQ = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", ZBC_USDC_AQ = "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7", GMT_USDC_AQ = "CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi", + NOVA_USDC_AQ = "DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME", + HBB_USDH_AQ = "7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo", + TAKI_sRLYv2_AQ = "6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3", + ZIG_USDC_AQ = "5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp", + sRLY_SOL_AQ = "HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P", + TAKI_sRLY_AQ = "3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs", + stSOL_SOL_AQ = "4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw", + BTC_stSOL_AQ = "HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh", + stSOL_whETH_AQ = "FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT", LIQ_USDC_DD = "57vGdcMZLnbNr4TZ4hgrpGJZGR9vTPhu8L9bNKDrqxKT", STEP_SOL_DD = "GwrBA1F8rGummDCDd8NY9Eu1cLNuJqbT8WaGxgWpFwGL", SLRS_USDC_DD = "66xCxkffQZKBZLiHV3PDcfR8ANJTfnDRxPCaBdv4wxB7", @@ -186,10 +191,8 @@ export enum OrcaFarmConfig { stSOL_wUST_DD = "3Q44iV4URXdbS4Tk1PGs5VdWQoCxHB7zdcdMnemo8jfH", CMFI_USDC_DD = "E8RVjS24pBuF3oCCeJVAgC4RQ7mVa5P3FGXqGbiczzvD", HBB_USDC_DD = "BxPd4x7gm6WQF6jsDCRQuQVZ2bopQ4KegMrqyQgdkPDk", - acCELO_USDC_DD = "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY", CELO_USDC_DD = "9RRBDWZGWGVnHgazCpb9R1XApmHLBDya8Tq1yrzoMsKY", SB_USDC_DD = "3Wppx86xN7Dg7GLUTD9C7AqCt68qZkWzNYUdCS7t1pCk", - afFTM_USDC_DD = "E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9", FTM_USDC_DD = "E7Af9Fa2U1YqEkQpAYjXwDB5TJUou9VcN3ot33Gj6UY9", stSOL_USDT_DD = "CtvKaRLzCzRZCcYPwai7NCYBK4ArBj2oD6BfvMgJoiCN", SEEDED_USDC_DD = "H15WptGntFQifZmJHUzYBV9Mv7P27ofavEsF6yqpLTdX", @@ -197,6 +200,14 @@ export enum OrcaFarmConfig { MMA_USDC_DD = "H9qkbU2XYSQTk6JJJ2TMuZBthfkeCHigmuxB5jiQaamn", PUFF_SOL_DD = "Ge5kuYg5PekrPUeKzngw97Cnfngj8j6NCX5q1jTBkWSW", SAO_USDC_DD = "A9BeGSRJJYXPrMs81rVZxvkk16fopzgG5YkngntgTu7p", - sRLY_SOL_DD = "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe", + sRLYv2_SOL_DD = "6gkZ7QUmxmwPLS2NK3Dr6YHtTPZs6GQrkA595WSx5iLe", ZBC_USDC_DD = "7Hoi4adCSBzERdvSiUXtVDz79tiDxMD5HpDv7m9rs3Sb", + NOVA_USDC_DD = "H2jZrZKx1fLY9LPi2ad5G2DVBWzMmUwPQLjRFERUroEH", + HBB_USDH_DD = "DUGuXcpHX9y6WdTKgDm8XsECbf7pApA7ZvAsjUqHUoYn", + ZIG_USDC_DD = "9nKbvVW9TjdnKt2NbfMaf9PHcg8zWWFgGTBfzUXdFcke", + sRLY_SOL_DD = "HfkZkoPqZzd7S1F3BhkJN2Es1C5vabVYqfCecXG2MGHP", + TAKI_sRLY_DD = "13HwDUH7yREGAwHSWnx4Kgnn6huL8yfCCBqaBr6NGVH6", + stSOL_SOL_DD = "7ZvhrqdnP2NrQi2YCjQNd8jKJpLDMUuZg4wP7XJPjnVX", + BTC_stSOL_DD = "GjBW6751wNJ99zYkr9QwSi98bvj1NgyAcYHfQDpemJfq", + stSOL_whETH_DD = "9V9CavjccKJH66m4MJHzVBYzY2ZM3U3D5xUCP7HSyAUz", } diff --git a/src/public/pools/config.ts b/src/public/pools/config.ts index d3d390c..95cfae8 100644 --- a/src/public/pools/config.ts +++ b/src/public/pools/config.ts @@ -33,13 +33,11 @@ export enum OrcaPoolConfig { PORT_USDC = "F8gPSpwVHj8FdAJAYULDuZBxFEJut87hUbARYYx3471w", SBR_USDC = "CS7fA5n4c2D82dUoHrYzS3gAqgqaoVSfgsr18kitp2xo", scnSOL_USDC = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", - SOCN_USDC = "Dkr8B675PGnNwEr9vTKXznjjHke5454EQdz3iaSbparB", pSOL_USDC = "C2YzN6MymD5HM2kPaH7bzcbqciyjfmpqyVaR3KA5V6z1", mSOL_SOL = "29cdoMgu6MS2VXpcMo1sqRdWEzdUR9tjvoh8fcK8Z87R", ORCA_PAI = "C7TH2jEJJaxVwwuvkbcDGfHUiZvEkkeYjyAcdTMi5ujb", ORCA_mSOL = "CVapmQn7HaU1yMDW3q6oUV4hx6XoYv54T4zfGXkuJqkA", scnSOL_SOL = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", - SOCN_SOL = "APNpzQvR91v1THbsAyG3HHrUEwvexWYeNCFLQuVnxgMc", ATLAS_USDC = "FZ8x1LCRSPDeHBDoAc3Gc6Y7ETCynuHEr5q5YWV7uRCJ", POLIS_USDC = "GteBdo9sqE7T41G8AJsaG9WHW48uXBwsLLznmu2TBdgy", BOP_USDC = "2gXDJZ7XAtQEtf4PRSQZKoq1WMuu1H44tQanbMA3YVpu", @@ -117,8 +115,6 @@ export enum OrcaPoolConfig { ORCA_whETH = "GsfyYHkSgC3Ta6aWR9MjB2sxoBrkGGeR2tAwXbpphf3", GENE_USDC = "7cuu94swKL5PtFQohKMAzyd1mjj65rgMW3GzLY31HCnK", CMFI_USDC = "85krvT9DxdYgoFLQDHTAGdvtNuLdAsc4xE5FkVLpN2aR", - acCELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", - afFTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", CELO_USDC = "HVLyX8mD8YvKgZJ4oB6rXJiCYMLpHKwB6iCiCjE1XwdT", FTM_USDC = "Gpzd833qSmv3kXpQmxEaqkrZTXZaRjhNAoqhf61qAhTG", BTC_ORCA = "DFpLFcQZqDKykyDePgip4r6MExVmBKWqTa12ezq6qxUY", @@ -132,7 +128,16 @@ export enum OrcaPoolConfig { ONESOL_SOL = "9wPhuYapychVDSxmXqCZxy2Ka8Lmav4SHM72si8bfraV", PUFF_SOL = "Eho8h1BcoG5QWU7X9FzJafw5ErKUXtR2LobAJJZfWff4", SAO_USDC = "4iyU77yZbg8iD344vbwruAuDAf9i1EVV3FhZJDnWStBE", - sRLY_SOL = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", + sRLYv2_SOL = "3dXdXg5HPyZ73GFC9LkSn3thdJUGeXWB8iSTHs5UcqiH", ZBC_USDC = "2LYgm6nGXmSSjfoEriPuYeGoNiWNxUs7n3rnTbDWN5c7", GMT_USDC = "CFxQF5kNAtbbDj298Xr47Sf4mkSyuzWpRH97hrdQ6kxi", + NOVA_USDC = "DdAFNvDxtEHCgKj3JAM64zCKfMWhs4J9wEmRrjUAFiME", + HBB_USDH = "7n2YW9qLkhGFArdZPLoF4hYPE2zw7xCACkVPXrUWnLuo", + TAKI_sRLYv2 = "6atKbS2Xz5vu7cqWBNk8KYkuakRzckZ9nvtUKf2k8Sc3", + ZIG_USDC = "5vhh9ZnD9vnahRhFLP1EUEyYRSzvJwgw9U2xygsSJSrp", + sRLY_SOL = "HfRgvhgscGX5GaP3rUrZAhh7gS4aJ2UQ7rNVX976rG6P", + TAKI_sRLY = "3xaK5aWWLNRB73xUVX3cusLhDp65mTvP4fwW5Jwxakgs", + stSOL_SOL = "4jjQSgFx33DUb1a7pgPsi3FbtZXDQ94b6QywjNK3NtZw", + BTC_stSOL = "HYp9v7cY4wAxSsa6ijztQQ3GQ8iTttuG5vu8JNBDHoNh", + stSOL_whETH = "FWurFWADrgmhb6Y44LEaCMnEHS2Tu3QGqd9oBcZtr8gT", } From 55eb802db6d51f9e51f614cbf2e2dfea5dc6f5ff Mon Sep 17 00:00:00 2001 From: Otto Cheung Date: Fri, 10 Jun 2022 18:38:07 -0700 Subject: [PATCH 77/81] v1.2.25 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index abc16ab..7164b32 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orca-so/sdk", - "version": "1.2.24", + "version": "1.2.25", "description": "Typescript SDK for the Orca protocol.", "main": "dist/index.js", "types": "dist/index.d.ts", From 36e050fea6a5b4c2aff0d70b6f48d2e2d842e76a Mon Sep 17 00:00:00 2001 From: Yihwan Kim Date: Tue, 26 Jul 2022 16:18:40 +0200 Subject: [PATCH 78/81] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35316e0..390e24b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Orca Typescript SDK -The Orca SDK contains a set of simple to use APIs to allow developers to integrate with the Orca exchange platform. +The Orca SDK contains a set of simple to use APIs to allow developers to integrate with the Orca platform. Learn more Orca [here](https://docs.orca.so). From 295436f64e86f7458b86e85b3b75faf7b4d50b4a Mon Sep 17 00:00:00 2001 From: Yutaro Mori Date: Sun, 31 Jul 2022 19:47:16 +0300 Subject: [PATCH 79/81] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 390e24b..03ca5be 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,9 @@ The Orca SDK contains a set of simple to use APIs to allow developers to integra Learn more Orca [here](https://docs.orca.so). +### Orca Token Swap V2 +- The [Orca Token Swap V2 program](https://solscan.io/account/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP) uses the following commit hash of the SPL Token Swap program: [3613cea3]( https://github.com/solana-labs/solana-program-library/tree/3613cea3cabbb5f7e4445d6203b7292d413732da/token-swap) + ### Trading Orca Liquidity Pools - Get detailed quotes and make swaps between trading pairs in an Orca Pool From cee0446c97472aea008f0b0d828a26e8512bd0f5 Mon Sep 17 00:00:00 2001 From: yugure-orca <109891005+yugure-orca@users.noreply.github.com> Date: Sun, 30 Oct 2022 18:41:53 +0900 Subject: [PATCH 80/81] fix: minimum fee of one token (#108) Bug Details: calculate_fee function of spl-token-swap includes a process to set the fee to 1 if it is truncated to 0. https://github.com/solana-labs/solana-program-library/blob/813aa3304022528cbf3cf7a3d32bca339194a492/token-swap/program/src/curve/fees.rs#L56 The SDK's fee calculation does not have this logic, so if the amount of input is small, fee calculation results in zero. As a result, on-chain, the amount of input is less than the amount of fee and the output is lower than expected. Fixes: - Change to the same fee calculation logic as spl-token-swap - Added test cases to constant-product-quote.test.ts and stable-quote.test.ts Note: To avoid exceptions when obtaining estimates, if the fees is greater than the input, the input is treated as zero. --- src/model/quote/constant-product-quote.ts | 42 ++++++-- src/model/quote/stable-quote.ts | 43 +++++--- .../orca/quote/constant-product-quote.test.ts | 100 +++++++++++++++++- test/model/orca/quote/stable-quote.test.ts | 76 +++++++++++++ 4 files changed, 236 insertions(+), 25 deletions(-) diff --git a/src/model/quote/constant-product-quote.ts b/src/model/quote/constant-product-quote.ts index e6db5e2..2ee37f5 100644 --- a/src/model/quote/constant-product-quote.ts +++ b/src/model/quote/constant-product-quote.ts @@ -1,7 +1,7 @@ import { u64 } from "@solana/spl-token"; import Decimal from "decimal.js"; import { solToken } from "../../constants/tokens"; -import { ZERO, DecimalUtil, U64Utils, OrcaU64, Quote } from "../../public"; +import { ZERO, ONE, DecimalUtil, U64Utils, OrcaU64, Quote } from "../../public"; import { QuotePoolParams } from "./quote-builder"; /** @@ -13,6 +13,21 @@ import { QuotePoolParams } from "./quote-builder"; * k = x * y */ +function calculateFee(inputTradeAmount: u64, feeNumerator: u64, feeDenominator: u64): u64 { + if (feeNumerator.eq(ZERO) || inputTradeAmount.eq(ZERO)) { + return ZERO; + } + + const fee = inputTradeAmount.mul(feeNumerator).div(feeDenominator); + // minimum fee of one token + return fee.eq(ZERO) ? ONE : fee; +} + +function getInputAmountLessFees(inputTradeAmount: u64, params: QuotePoolParams): u64 { + const fees = getLPFees(inputTradeAmount, params); + return fees.gt(inputTradeAmount) ? new u64(0) : inputTradeAmount.sub(fees); +} + function getRate(inputTradeAmountU64: u64, params: QuotePoolParams): Decimal { if (inputTradeAmountU64.eq(ZERO)) { return new Decimal(0); @@ -31,6 +46,11 @@ function getPriceImpact(inputTradeAmount: u64, params: QuotePoolParams): Decimal const noSlippageOutputCountU64 = getExpectedOutputAmountWithNoSlippage(inputTradeAmount, params); const outputCountU64 = getExpectedOutputAmount(inputTradeAmount, params); + if (noSlippageOutputCountU64.isZero()) { + // The minimum fee of one token makes inputTradeLessFees zero when the input is minimal, + // and the output is also zero. + return new Decimal(0); + } const noSlippageOutputCount = DecimalUtil.fromU64( noSlippageOutputCountU64, @@ -44,19 +64,23 @@ function getPriceImpact(inputTradeAmount: u64, params: QuotePoolParams): Decimal function getLPFees(inputTradeAmount: u64, params: QuotePoolParams): u64 { const { feeStructure } = params; - const tradingFee = inputTradeAmount - .mul(feeStructure.traderFee.numerator) - .div(feeStructure.traderFee.denominator); + const tradingFee = calculateFee( + inputTradeAmount, + feeStructure.traderFee.numerator, + feeStructure.traderFee.denominator + ); - const ownerFee = inputTradeAmount - .mul(feeStructure.ownerFee.numerator) - .div(feeStructure.ownerFee.denominator); + const ownerFee = calculateFee( + inputTradeAmount, + feeStructure.ownerFee.numerator, + feeStructure.ownerFee.denominator + ); return new u64(tradingFee.add(ownerFee).toString()); } function getExpectedOutputAmount(inputTradeAmount: u64, params: QuotePoolParams): u64 { - const inputTradeLessFees = inputTradeAmount.sub(getLPFees(inputTradeAmount, params)); + const inputTradeLessFees = getInputAmountLessFees(inputTradeAmount, params); return getOutputAmount(inputTradeLessFees, params); } @@ -68,7 +92,7 @@ function getExpectedOutputAmountWithNoSlippage( return params.outputTokenCount; } - const inputTradeLessFees = inputTradeAmount.sub(getLPFees(inputTradeAmount, params)); + const inputTradeLessFees = getInputAmountLessFees(inputTradeAmount, params); return inputTradeLessFees.mul(params.outputTokenCount).div(params.inputTokenCount); } diff --git a/src/model/quote/stable-quote.ts b/src/model/quote/stable-quote.ts index dab6235..45e633d 100644 --- a/src/model/quote/stable-quote.ts +++ b/src/model/quote/stable-quote.ts @@ -2,11 +2,22 @@ import { u64 } from "@solana/spl-token"; import Decimal from "decimal.js"; import { computeBaseOutputAmount, computeOutputAmount } from "@orca-so/stablecurve"; import { QuotePoolParams } from "./quote-builder"; -import { DecimalUtil, OrcaU64, Quote, ZERO } from "../../public"; +import { DecimalUtil, OrcaU64, Quote, ZERO, ONE } from "../../public"; import { solToken } from "../../constants/tokens"; +function calculateFee(inputTradeAmount: u64, feeNumerator: u64, feeDenominator: u64): u64 { + if (feeNumerator.eq(ZERO) || inputTradeAmount.eq(ZERO)) { + return ZERO; + } + + const fee = inputTradeAmount.mul(feeNumerator).div(feeDenominator); + // minimum fee of one token + return fee.eq(ZERO) ? ONE : fee; +} + function getInputAmountLessFees(inputTradeAmount: u64, params: QuotePoolParams): u64 { - return inputTradeAmount.sub(getLPFees(inputTradeAmount, params)); + const fees = getLPFees(inputTradeAmount, params); + return fees.gt(inputTradeAmount) ? new u64(0) : inputTradeAmount.sub(fees); } function getOutputAmountWithNoSlippage( @@ -69,6 +80,11 @@ function getPriceImpact(inputTradeAmount: u64, params: QuotePoolParams): Decimal const noSlippageOutputCountU64 = getExpectedOutputAmountWithNoSlippage(inputTradeAmount, params); const outputCountU64 = getExpectedOutputAmount(inputTradeAmount, params); + if (noSlippageOutputCountU64.isZero()) { + // The minimum fee of one token makes inputTradeLessFees zero when the input is minimal, + // and the output is also zero. + return new Decimal(0); + } const noSlippageOutputCount = DecimalUtil.fromU64( noSlippageOutputCountU64, @@ -82,20 +98,17 @@ function getPriceImpact(inputTradeAmount: u64, params: QuotePoolParams): Decimal function getLPFees(inputTradeAmount: u64, params: QuotePoolParams): u64 { const { feeStructure } = params; + const tradingFee = calculateFee( + inputTradeAmount, + feeStructure.traderFee.numerator, + feeStructure.traderFee.denominator + ); - const tradingFee = - feeStructure.traderFee.numerator === ZERO - ? ZERO - : inputTradeAmount - .mul(feeStructure.traderFee.numerator) - .div(feeStructure.traderFee.denominator); - - const ownerFee = - feeStructure.ownerFee.numerator === ZERO - ? ZERO - : inputTradeAmount - .mul(feeStructure.ownerFee.numerator) - .div(feeStructure.ownerFee.denominator); + const ownerFee = calculateFee( + inputTradeAmount, + feeStructure.ownerFee.numerator, + feeStructure.ownerFee.denominator + ); return new u64(tradingFee.add(ownerFee).toString()); } diff --git a/test/model/orca/quote/constant-product-quote.test.ts b/test/model/orca/quote/constant-product-quote.test.ts index 32440ac..5de44fd 100644 --- a/test/model/orca/quote/constant-product-quote.test.ts +++ b/test/model/orca/quote/constant-product-quote.test.ts @@ -9,7 +9,7 @@ import { QuotePoolParams, } from "../../../../src/model/quote/quote-builder"; import { DecimalUtil, OrcaU64, Percentage } from "../../../../src/public"; -import { defaultQuotePoolParams } from "../../../test-utils"; +import { defaultQuotePoolParams, defaultSOLToken, defaultUsdcToken } from "../../../test-utils"; import { Builder } from "builder-pattern"; const builder: QuoteBuilder = QuoteBuilderFactory.getBuilder( @@ -122,6 +122,104 @@ test("Output Token Count is zero", () => { ); }); +test("Minimum fee of one token", () => { + const params = Builder(defaultQuotePoolParams) + // 1,000,000 defaultUSDCToken = 10,000 defaultSOLToken + .inputToken(defaultUsdcToken) + .inputTokenCount(new u64("1000000000000")) + .outputToken(defaultSOLToken) + .outputTokenCount(new u64("10000000000000")) + .build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.0001"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0.00979)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0.102040816)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("978"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("979"), params.outputToken.scale) + ); +}); + +describe("Too small inputTradeAmount", () => { + test("Too small inputTradeAmount (1 unit)", () => { + const params = Builder(defaultQuotePoolParams) + // 1,000,000 defaultUSDCToken = 10,000 defaultSOLToken + .inputToken(defaultUsdcToken) + .inputTokenCount(new u64("1000000000000")) + .outputToken(defaultSOLToken) + .outputTokenCount(new u64("10000000000000")) + .build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000001"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("0"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("0"), params.outputToken.scale) + ); + }); + + test("Too small inputTradeAmount (2 unit)", () => { + const params = Builder(defaultQuotePoolParams) + // 1,000,000 defaultUSDCToken = 10,000 defaultSOLToken + .inputToken(defaultUsdcToken) + .inputTokenCount(new u64("1000000000000")) + .outputToken(defaultSOLToken) + .outputTokenCount(new u64("10000000000000")) + .build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000002"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("0"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("0"), params.outputToken.scale) + ); + }); + + test("Too small inputTradeAmount (3 unit)", () => { + const params = Builder(defaultQuotePoolParams) + // 1,000,000 defaultUSDCToken = 10,000 defaultSOLToken + .inputToken(defaultUsdcToken) + .inputTokenCount(new u64("1000000000000")) + .outputToken(defaultSOLToken) + .outputTokenCount(new u64("10000000000000")) + .build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000003"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0.003)); + expect(quote.getPriceImpact()).toEqual(new Decimal(10.0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("8"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("9"), params.outputToken.scale) + ); + }); +}); + describe("Slippage tolerance", () => { test("tolerance equal 0", () => { const params = Builder(defaultQuotePoolParams) diff --git a/test/model/orca/quote/stable-quote.test.ts b/test/model/orca/quote/stable-quote.test.ts index 883d8fe..89183c5 100644 --- a/test/model/orca/quote/stable-quote.test.ts +++ b/test/model/orca/quote/stable-quote.test.ts @@ -313,4 +313,80 @@ describe("Fee Structure", () => { new OrcaU64(new u64("999399195675"), params.outputToken.scale) ); }); + + test("Minimum fee of one token", () => { + const params = Builder(stableQuotePoolParams).build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.0001"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0.98)); + expect(quote.getPriceImpact()).toEqual(new Decimal(-1.030928)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual( + new OrcaU64(new u64("97"), params.outputToken.scale) + ); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("98"), params.outputToken.scale) + ); + }); +}); + +describe("Too small inputTradeAmount", () => { + test("Too small inputTradeAmount (1 unit)", () => { + const params = Builder(stableQuotePoolParams).build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000001"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("0"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("0"), params.outputToken.scale) + ); + }); + + test("Too small inputTradeAmount (2 unit)", () => { + const params = Builder(stableQuotePoolParams).build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000002"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("0"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("0"), params.outputToken.scale) + ); + }); + + test("Too small inputTradeAmount (3 unit)", () => { + const params = Builder(stableQuotePoolParams).build(); + + const quote = builder.buildQuote( + params, + DecimalUtil.toU64(new Decimal("0.000003"), params.inputToken.scale) + ); + + expect(quote.getRate()).toEqual(new Decimal(0.333333)); + expect(quote.getPriceImpact()).toEqual(new Decimal(0)); + expect(quote.getLPFees()).toEqual(new OrcaU64(new u64("2"), params.inputToken.scale)); + expect(quote.getNetworkFees()).toEqual(new OrcaU64(new u64("10000"))); + expect(quote.getMinOutputAmount()).toEqual(new OrcaU64(new u64("0"), params.outputToken.scale)); + expect(quote.getExpectedOutputAmount()).toEqual( + new OrcaU64(new u64("1"), params.outputToken.scale) + ); + }); }); From a551fa7a3365fb23ac41a0b9b9a1303798c1fca5 Mon Sep 17 00:00:00 2001 From: Yutaro Mori Date: Tue, 2 May 2023 07:55:04 +0900 Subject: [PATCH 81/81] Update README --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 03ca5be..a6ca35f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +⚠️ **WARNING: DEPRECATED TYPESCRIPT SDK** ⚠️ + +This Typescript SDK is for the **legacy pools** which are **deprecated**. We highly recommend you to use the **Whirlpools SDK** for the new and improved pools. You can find it here: + +🌊 [Whirlpools SDK on npmjs](https://www.npmjs.com/package/@orca-so/whirlpools-sdk) 🌊 + +Please update your implementations to avoid any issues or disruptions in the future. + # Orca Typescript SDK The Orca SDK contains a set of simple to use APIs to allow developers to integrate with the Orca platform. @@ -5,7 +13,8 @@ The Orca SDK contains a set of simple to use APIs to allow developers to integra Learn more Orca [here](https://docs.orca.so). ### Orca Token Swap V2 -- The [Orca Token Swap V2 program](https://solscan.io/account/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP) uses the following commit hash of the SPL Token Swap program: [3613cea3]( https://github.com/solana-labs/solana-program-library/tree/3613cea3cabbb5f7e4445d6203b7292d413732da/token-swap) + +- The [Orca Token Swap V2 program](https://solscan.io/account/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP) uses the following commit hash of the SPL Token Swap program: [3613cea3](https://github.com/solana-labs/solana-program-library/tree/3613cea3cabbb5f7e4445d6203b7292d413732da/token-swap) ### Trading Orca Liquidity Pools @@ -160,6 +169,7 @@ main() # Devnet Testing The example code above can be run on devnet by updating the import statement: + ```typescript import { getOrca, OrcaFarmConfig, OrcaPoolConfig, Network } from "@orca-so/sdk"; ```