reenable lite-rpc multiple connections
This commit is contained in:
parent
61dc94011a
commit
2c989573ab
|
@ -23,7 +23,7 @@
|
|||
"dependencies": {
|
||||
"@blockworks-foundation/mango-feeds": "0.1.7",
|
||||
"@blockworks-foundation/mango-mints-redemption": "^0.0.10",
|
||||
"@blockworks-foundation/mango-v4": "0.21.5",
|
||||
"@blockworks-foundation/mango-v4": "0.21.7",
|
||||
"@blockworks-foundation/mango-v4-settings": "0.4.3",
|
||||
"@blockworks-foundation/mangolana": "0.0.1-beta.15",
|
||||
"@headlessui/react": "1.6.6",
|
||||
|
|
|
@ -121,17 +121,18 @@ const initMangoClient = (
|
|||
opts: {
|
||||
prioritizationFee: number
|
||||
prependedGlobalAdditionalInstructions: TransactionInstruction[]
|
||||
multipleProviders: AnchorProvider[] | Connection[]
|
||||
multipleConnections: Connection[]
|
||||
} = {
|
||||
prioritizationFee: DEFAULT_PRIORITY_FEE,
|
||||
prependedGlobalAdditionalInstructions: [],
|
||||
multipleProviders: [],
|
||||
multipleConnections: [],
|
||||
},
|
||||
//for analytics use
|
||||
telemetry: ReturnType<typeof usePlausible> | null,
|
||||
): MangoClient => {
|
||||
return MangoClient.connect(provider, CLUSTER, MANGO_V4_ID[CLUSTER], {
|
||||
prioritizationFee: opts.prioritizationFee,
|
||||
multipleConnections: opts.multipleConnections,
|
||||
prependedGlobalAdditionalInstructions:
|
||||
opts.prependedGlobalAdditionalInstructions,
|
||||
postSendTxCallback: ({ txid }: { txid: string }) => {
|
||||
|
@ -151,31 +152,16 @@ const initMangoClient = (
|
|||
})
|
||||
}
|
||||
|
||||
const createProviders = (
|
||||
const createBackupConnections = (
|
||||
primaryConnection: Connection,
|
||||
wallet: Wallet,
|
||||
options: web3.ConfirmOptions,
|
||||
): [AnchorProvider, AnchorProvider[]] => {
|
||||
const backupConnection1 = new Connection(LITE_RPC_URL)
|
||||
|
||||
const primaryProvider = new AnchorProvider(primaryConnection, wallet, options)
|
||||
const backupProvider1 = new AnchorProvider(backupConnection1, wallet, options)
|
||||
|
||||
primaryProvider.opts.skipPreflight = true
|
||||
backupProvider1.opts.skipPreflight = true
|
||||
|
||||
const backupProviders = [backupProvider1]
|
||||
): Connection[] => {
|
||||
const liteRpcConnection = new Connection(LITE_RPC_URL)
|
||||
const backupConnections = [liteRpcConnection]
|
||||
if (primaryConnection.rpcEndpoint !== TRITON_DEDICATED_URL) {
|
||||
const backupConnection2 = new Connection(TRITON_DEDICATED_URL)
|
||||
const backupProvider2 = new AnchorProvider(
|
||||
backupConnection2,
|
||||
wallet,
|
||||
options,
|
||||
)
|
||||
backupProvider2.opts.skipPreflight = true
|
||||
backupProviders.push(backupProvider2)
|
||||
const conn = new Connection(TRITON_DEDICATED_URL)
|
||||
backupConnections.push(conn)
|
||||
}
|
||||
return [primaryProvider, backupProviders]
|
||||
return backupConnections
|
||||
}
|
||||
|
||||
export const DEFAULT_TRADE_FORM: TradeForm = {
|
||||
|
@ -370,17 +356,15 @@ const mangoStore = create<MangoStore>()(
|
|||
} catch {
|
||||
connection = new web3.Connection(ENDPOINT.url, CONNECTION_COMMITMENT)
|
||||
}
|
||||
const [provider, backupProviders] = createProviders(
|
||||
connection,
|
||||
emptyWallet,
|
||||
options,
|
||||
)
|
||||
const provider = new AnchorProvider(connection, emptyWallet, options)
|
||||
provider.opts.skipPreflight = true
|
||||
const backupConnections = createBackupConnections(connection)
|
||||
const client = initMangoClient(
|
||||
provider,
|
||||
{
|
||||
prioritizationFee: DEFAULT_PRIORITY_FEE,
|
||||
prependedGlobalAdditionalInstructions: [],
|
||||
multipleProviders: backupProviders,
|
||||
multipleConnections: backupConnections,
|
||||
},
|
||||
null,
|
||||
)
|
||||
|
@ -1017,11 +1001,12 @@ const mangoStore = create<MangoStore>()(
|
|||
connectMangoClientWithWallet: async (wallet: WalletAdapter) => {
|
||||
const set = get().set
|
||||
try {
|
||||
const [provider, backupProviders] = createProviders(
|
||||
const provider = new AnchorProvider(
|
||||
connection,
|
||||
wallet.adapter as unknown as Wallet,
|
||||
options,
|
||||
)
|
||||
const backupConnections = createBackupConnections(connection)
|
||||
const priorityFee = get().priorityFee ?? DEFAULT_PRIORITY_FEE
|
||||
|
||||
const client = initMangoClient(
|
||||
|
@ -1030,7 +1015,7 @@ const mangoStore = create<MangoStore>()(
|
|||
prioritizationFee: priorityFee,
|
||||
prependedGlobalAdditionalInstructions:
|
||||
get().prependedGlobalAdditionalInstructions,
|
||||
multipleProviders: backupProviders,
|
||||
multipleConnections: backupConnections,
|
||||
},
|
||||
null,
|
||||
)
|
||||
|
@ -1062,7 +1047,7 @@ const mangoStore = create<MangoStore>()(
|
|||
{
|
||||
prioritizationFee: get().priorityFee,
|
||||
prependedGlobalAdditionalInstructions: instructions,
|
||||
multipleProviders: [],
|
||||
multipleConnections: client.multipleConnections,
|
||||
},
|
||||
null,
|
||||
)
|
||||
|
@ -1152,7 +1137,7 @@ const mangoStore = create<MangoStore>()(
|
|||
prependedGlobalAdditionalInstructions:
|
||||
get().prependedGlobalAdditionalInstructions,
|
||||
prioritizationFee: DEFAULT_PRIORITY_FEE,
|
||||
multipleProviders: [],
|
||||
multipleConnections: client.multipleConnections,
|
||||
},
|
||||
null,
|
||||
)
|
||||
|
@ -1216,7 +1201,7 @@ const mangoStore = create<MangoStore>()(
|
|||
prioritizationFee: feeEstimate,
|
||||
prependedGlobalAdditionalInstructions:
|
||||
get().prependedGlobalAdditionalInstructions,
|
||||
multipleProviders: [],
|
||||
multipleConnections: client.multipleConnections,
|
||||
},
|
||||
telemetry,
|
||||
)
|
||||
|
|
|
@ -58,10 +58,10 @@
|
|||
bn.js "^5.2.1"
|
||||
eslint-config-prettier "^9.0.0"
|
||||
|
||||
"@blockworks-foundation/mango-v4@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.21.5.tgz#5e3b3257de0a0efc98c1f9057982e434c1665120"
|
||||
integrity sha512-tCBFb+eBltsJbFkcBPBgfk5Wzmwa+9MfNU7FTWX8vMycl+ck4svE8K05HEO25dWRSJmZbwx8osGxaqCsricAbQ==
|
||||
"@blockworks-foundation/mango-v4@0.21.7":
|
||||
version "0.21.7"
|
||||
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.21.7.tgz#698292fe2f1f3646d0cc6a7ea0d2c7204ecd9b03"
|
||||
integrity sha512-rjufKVva3mgyVYtr2Fg4Mo9RPqGNnTVht2o3o2HMsaTMamYkXEZtu36NkCX0SFKY/PV5+ZPeY0CmtxnBZ5Y8cA==
|
||||
dependencies:
|
||||
"@blockworks-foundation/mango-v4-settings" "^0.2.16"
|
||||
"@coral-xyz/anchor" "^0.28.1-beta.2"
|
||||
|
|
Loading…
Reference in New Issue