add create refereal account instruction to listing (#323)
* add create refereal account instruction to listing * existing account check
This commit is contained in:
parent
d66abc1c67
commit
0c88638868
|
@ -5,7 +5,11 @@ import { ChangeEvent, useCallback, useMemo, useState } from 'react'
|
|||
import mangoStore, { CLUSTER } from '@store/mangoStore'
|
||||
import { Token } from 'types/jupiter'
|
||||
import { handleGetRoutes } from '@components/swap/useQuoteRoutes'
|
||||
import { JUPITER_PRICE_API_MAINNET, USDC_MINT } from 'utils/constants'
|
||||
import {
|
||||
JUPITER_PRICE_API_MAINNET,
|
||||
JUPITER_REFERRAL_PK,
|
||||
USDC_MINT,
|
||||
} from 'utils/constants'
|
||||
import { AccountMeta, PublicKey, SYSVAR_RENT_PUBKEY } from '@solana/web3.js'
|
||||
import { useWallet } from '@solana/wallet-adapter-react'
|
||||
import { OPENBOOK_PROGRAM_ID, toNative } from '@blockworks-foundation/mango-v4'
|
||||
|
@ -48,6 +52,7 @@ import {
|
|||
LISTING_PRESETS_PYTH,
|
||||
} from '@blockworks-foundation/mango-v4-settings/lib/helpers/listingTools'
|
||||
import Checkbox from '@components/forms/Checkbox'
|
||||
import { ReferralProvider } from '@jup-ag/referral-sdk'
|
||||
|
||||
type FormErrors = Partial<Record<keyof TokenListForm, string>>
|
||||
|
||||
|
@ -457,13 +462,10 @@ const ListToken = ({ goBack }: { goBack: () => void }) => {
|
|||
})
|
||||
return
|
||||
}
|
||||
const mint = new PublicKey(advForm.mintPk)
|
||||
|
||||
const [mintInfoPk] = PublicKey.findProgramAddressSync(
|
||||
[
|
||||
Buffer.from('MintInfo'),
|
||||
group!.publicKey.toBuffer(),
|
||||
new PublicKey(advForm.mintPk).toBuffer(),
|
||||
],
|
||||
[Buffer.from('MintInfo'), group!.publicKey.toBuffer(), mint.toBuffer()],
|
||||
client.programId,
|
||||
)
|
||||
|
||||
|
@ -509,7 +511,7 @@ const ListToken = ({ goBack }: { goBack: () => void }) => {
|
|||
.accounts({
|
||||
admin: MANGO_DAO_WALLET,
|
||||
group: group!.publicKey,
|
||||
mint: new PublicKey(advForm.mintPk),
|
||||
mint: mint,
|
||||
oracle: new PublicKey(advForm.oraclePk),
|
||||
payer: MANGO_DAO_WALLET,
|
||||
rent: SYSVAR_RENT_PUBKEY,
|
||||
|
@ -568,7 +570,7 @@ const ListToken = ({ goBack }: { goBack: () => void }) => {
|
|||
const trustlessIx = await client!.program.methods
|
||||
.tokenRegisterTrustless(Number(advForm.tokenIndex), advForm.name)
|
||||
.accounts({
|
||||
mint: new PublicKey(advForm.mintPk),
|
||||
mint: mint,
|
||||
payer: MANGO_DAO_FAST_LISTING_WALLET,
|
||||
rent: SYSVAR_RENT_PUBKEY,
|
||||
oracle: new PublicKey(advForm.oraclePk),
|
||||
|
@ -597,6 +599,22 @@ const ListToken = ({ goBack }: { goBack: () => void }) => {
|
|||
if (listingTier !== 'UNTRUSTED') {
|
||||
proposalTx.push(registerMarketix)
|
||||
}
|
||||
const rp = new ReferralProvider(connection)
|
||||
|
||||
const tx = await rp.initializeReferralTokenAccount({
|
||||
payerPubKey:
|
||||
listingTier === 'UNTRUSTED'
|
||||
? MANGO_DAO_FAST_LISTING_WALLET
|
||||
: MANGO_DAO_WALLET,
|
||||
referralAccountPubKey: JUPITER_REFERRAL_PK,
|
||||
mint: mint,
|
||||
})
|
||||
const isExistingAccount =
|
||||
(await connection.getBalance(tx.referralTokenAccountPubKey)) > 1
|
||||
|
||||
if (!isExistingAccount) {
|
||||
proposalTx.push(...tx.tx.instructions)
|
||||
}
|
||||
|
||||
const walletSigner = wallet as never
|
||||
setCreatingProposal(true)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
"@blockworks-foundation/mangolana": "0.0.1-beta.15",
|
||||
"@headlessui/react": "1.6.6",
|
||||
"@heroicons/react": "2.0.18",
|
||||
"@jup-ag/referral-sdk": "0.1.5",
|
||||
"@metaplex-foundation/js": "0.19.4",
|
||||
"@project-serum/anchor": "0.25.0",
|
||||
"@pythnetwork/client": "2.15.0",
|
||||
|
|
|
@ -167,6 +167,10 @@ export const CUSTOM_TOKEN_ICONS: { [key: string]: boolean } = {
|
|||
|
||||
export const DEFAULT_FAVORITE_MKTS = ['SOL-PERP', 'ETH-PERP', 'BTC-PERP']
|
||||
|
||||
export const JUPITER_REFERRAL_PK = new PublicKey(
|
||||
'EV4qhLE2yPKdUPdQ74EWJUn21xT3eGQxG3DRR1g9NNFc',
|
||||
)
|
||||
|
||||
export const WHITE_LIST_API = 'https://api.mngo.cloud/whitelist/v1/'
|
||||
export const DAILY_SECONDS = 86400
|
||||
export const DAILY_MILLISECONDS = 86400000
|
||||
|
|
60
yarn.lock
60
yarn.lock
|
@ -24,6 +24,13 @@
|
|||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
"@babel/runtime@^7.23.2":
|
||||
version "7.23.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e"
|
||||
integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
"@blockworks-foundation/mango-feeds@0.1.7":
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-feeds/-/mango-feeds-0.1.7.tgz#07283e4f6b52ce2e631b866f7675b395dcc15f9e"
|
||||
|
@ -124,7 +131,7 @@
|
|||
eventemitter3 "^4.0.7"
|
||||
uuid "^8.3.2"
|
||||
|
||||
"@coral-xyz/anchor@^0.26.0", "@coral-xyz/anchor@^0.27.0", "@coral-xyz/anchor@^0.28.0", "@coral-xyz/anchor@^0.28.1-beta.2":
|
||||
"@coral-xyz/anchor@0.28.1-beta.2", "@coral-xyz/anchor@^0.26.0", "@coral-xyz/anchor@^0.27.0", "@coral-xyz/anchor@^0.28.0", "@coral-xyz/anchor@^0.28.1-beta.2":
|
||||
version "0.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.27.0.tgz#621e5ef123d05811b97e49973b4ed7ede27c705c"
|
||||
integrity sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g==
|
||||
|
@ -655,6 +662,16 @@
|
|||
"@json-rpc-tools/types" "^1.7.6"
|
||||
"@pedrouid/environment" "^1.0.1"
|
||||
|
||||
"@jup-ag/referral-sdk@0.1.5":
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@jup-ag/referral-sdk/-/referral-sdk-0.1.5.tgz#02a8bc901154659e75a5f31ae9a3e3edd28cd6cd"
|
||||
integrity sha512-0R/NuBkIj2otpLnatacZqIwVAwL+OIheSlT+a2atAaNuf2WceL4lKZ/EZWm1AVTFhmFd/07HHN9PJ2fma9AMPA==
|
||||
dependencies:
|
||||
"@coral-xyz/anchor" "0.28.1-beta.2"
|
||||
"@solana/spl-token" "0.3.8"
|
||||
"@solana/web3.js" "^1.77.3"
|
||||
lodash "^4.17.21"
|
||||
|
||||
"@keystonehq/bc-ur-registry-sol@^0.3.1":
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-sol/-/bc-ur-registry-sol-0.3.1.tgz#5319c7c4a22cc83bbacfa6fe09aaa6fb21363f24"
|
||||
|
@ -1031,7 +1048,7 @@
|
|||
dependencies:
|
||||
"@noble/hashes" "1.3.1"
|
||||
|
||||
"@noble/curves@^1.0.0", "@noble/curves@^1.1.0":
|
||||
"@noble/curves@^1.0.0", "@noble/curves@^1.1.0", "@noble/curves@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35"
|
||||
integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==
|
||||
|
@ -1554,6 +1571,15 @@
|
|||
"@solana/buffer-layout-utils" "^0.2.0"
|
||||
buffer "^6.0.3"
|
||||
|
||||
"@solana/spl-token@0.3.8", "@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.6", "@solana/spl-token@^0.3.8":
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.8.tgz#8e9515ea876e40a4cc1040af865f61fc51d27edf"
|
||||
integrity sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==
|
||||
dependencies:
|
||||
"@solana/buffer-layout" "^4.0.0"
|
||||
"@solana/buffer-layout-utils" "^0.2.0"
|
||||
buffer "^6.0.3"
|
||||
|
||||
"@solana/spl-token@^0.1.6", "@solana/spl-token@^0.1.8":
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.1.8.tgz#f06e746341ef8d04165e21fc7f555492a2a0faa6"
|
||||
|
@ -1566,15 +1592,6 @@
|
|||
buffer-layout "^1.2.0"
|
||||
dotenv "10.0.0"
|
||||
|
||||
"@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.6", "@solana/spl-token@^0.3.8":
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.8.tgz#8e9515ea876e40a4cc1040af865f61fc51d27edf"
|
||||
integrity sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==
|
||||
dependencies:
|
||||
"@solana/buffer-layout" "^4.0.0"
|
||||
"@solana/buffer-layout-utils" "^0.2.0"
|
||||
buffer "^6.0.3"
|
||||
|
||||
"@solana/wallet-adapter-alpha@^0.1.10":
|
||||
version "0.1.10"
|
||||
resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-alpha/-/wallet-adapter-alpha-0.1.10.tgz#497ac17634dac4de17eba643768df9b30a13129a"
|
||||
|
@ -2055,6 +2072,27 @@
|
|||
rpc-websockets "^7.5.1"
|
||||
superstruct "^0.14.2"
|
||||
|
||||
"@solana/web3.js@^1.77.3":
|
||||
version "1.87.6"
|
||||
resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.87.6.tgz#6744cfc5f4fc81e0f58241c0a92648a7320bb3bf"
|
||||
integrity sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.23.2"
|
||||
"@noble/curves" "^1.2.0"
|
||||
"@noble/hashes" "^1.3.1"
|
||||
"@solana/buffer-layout" "^4.0.0"
|
||||
agentkeepalive "^4.3.0"
|
||||
bigint-buffer "^1.1.5"
|
||||
bn.js "^5.2.1"
|
||||
borsh "^0.7.0"
|
||||
bs58 "^4.0.1"
|
||||
buffer "6.0.3"
|
||||
fast-stable-stringify "^1.0.0"
|
||||
jayson "^4.1.0"
|
||||
node-fetch "^2.6.12"
|
||||
rpc-websockets "^7.5.1"
|
||||
superstruct "^0.14.2"
|
||||
|
||||
"@solflare-wallet/metamask-sdk@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@solflare-wallet/metamask-sdk/-/metamask-sdk-1.0.2.tgz#03a49956e00481d8a7c06aaa2177635e2fd642bd"
|
||||
|
|
Loading…
Reference in New Issue