chore: cleanup
This commit is contained in:
parent
93f2da00ab
commit
f3b0a78216
|
@ -16,7 +16,6 @@ import { useUserAccounts } from '../hooks/useUserAccounts';
|
|||
import {
|
||||
WRAPPED_SOL_MINT,
|
||||
programIds,
|
||||
LEND_HOST_FEE_ADDRESS,
|
||||
} from '../utils/ids';
|
||||
|
||||
const AccountsContext = React.createContext<any>(null);
|
||||
|
@ -425,8 +424,6 @@ export function AccountsProvider({ children = null as any }) {
|
|||
if (!connection || !publicKey) {
|
||||
setTokenAccounts([]);
|
||||
} else {
|
||||
precacheUserTokenAccounts(connection, LEND_HOST_FEE_ADDRESS);
|
||||
|
||||
precacheUserTokenAccounts(connection, publicKey).then(() => {
|
||||
setTokenAccounts(selectUserAccounts());
|
||||
});
|
||||
|
|
|
@ -60,14 +60,11 @@ export const ENDPOINTS = [
|
|||
];
|
||||
|
||||
const DEFAULT = ENDPOINTS[0].endpoint;
|
||||
const DEFAULT_SLIPPAGE = 0.25;
|
||||
|
||||
interface ConnectionConfig {
|
||||
connection: Connection;
|
||||
sendConnection: Connection;
|
||||
endpoint: string;
|
||||
slippage: number;
|
||||
setSlippage: (val: number) => void;
|
||||
env: ENV;
|
||||
setEndpoint: (val: string) => void;
|
||||
tokens: TokenInfo[];
|
||||
|
@ -77,8 +74,6 @@ interface ConnectionConfig {
|
|||
const ConnectionContext = React.createContext<ConnectionConfig>({
|
||||
endpoint: DEFAULT,
|
||||
setEndpoint: () => {},
|
||||
slippage: DEFAULT_SLIPPAGE,
|
||||
setSlippage: (val: number) => {},
|
||||
connection: new Connection(DEFAULT, 'recent'),
|
||||
sendConnection: new Connection(DEFAULT, 'recent'),
|
||||
env: ENDPOINTS[0].name,
|
||||
|
@ -92,11 +87,6 @@ export function ConnectionProvider({ children = undefined as any }) {
|
|||
ENDPOINTS[0].endpoint,
|
||||
);
|
||||
|
||||
const [slippage, setSlippage] = useLocalStorageState(
|
||||
'slippage',
|
||||
DEFAULT_SLIPPAGE.toString(),
|
||||
);
|
||||
|
||||
const connection = useMemo(
|
||||
() => new Connection(endpoint, 'recent'),
|
||||
[endpoint],
|
||||
|
@ -176,8 +166,6 @@ export function ConnectionProvider({ children = undefined as any }) {
|
|||
value={{
|
||||
endpoint,
|
||||
setEndpoint,
|
||||
slippage: parseFloat(slippage),
|
||||
setSlippage: val => setSlippage(val.toString()),
|
||||
connection,
|
||||
sendConnection,
|
||||
tokens,
|
||||
|
@ -209,11 +197,6 @@ export function useConnectionConfig() {
|
|||
};
|
||||
}
|
||||
|
||||
export function useSlippageConfig() {
|
||||
const { slippage, setSlippage } = useContext(ConnectionContext);
|
||||
return { slippage, setSlippage };
|
||||
}
|
||||
|
||||
export const getErrorForTransaction = async (
|
||||
connection: Connection,
|
||||
txid: string,
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
import { PublicKey } from '@solana/web3.js';
|
||||
import { TokenSwapLayout, TokenSwapLayoutV1 } from '../models/tokenSwap';
|
||||
|
||||
export const STORE = new PublicKey(
|
||||
'7KwpjEy7KBpZTBErE3niBUNxWGAQTPo9kZzkgEoP6dfR',
|
||||
);
|
||||
export const STORE_OWNER_ADDRESS = process.env
|
||||
.REACT_APP_STORE_OWNER_ADDRESS_ADDRESS
|
||||
? new PublicKey(`${process.env.REACT_APP_STORE_OWNER_ADDRESS_ADDRESS}`)
|
||||
: // DEFAULT STORE FRONT OWNER FOR METAPLEX
|
||||
undefined;
|
||||
console.debug(`Store owner address: ${STORE_OWNER_ADDRESS?.toBase58()}`);
|
||||
|
||||
export const WRAPPED_SOL_MINT = new PublicKey(
|
||||
'So11111111111111111111111111111111111111112',
|
||||
|
@ -12,10 +15,6 @@ export let TOKEN_PROGRAM_ID = new PublicKey(
|
|||
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
|
||||
);
|
||||
|
||||
export let LENDING_PROGRAM_ID = new PublicKey(
|
||||
'LendZqTs7gn5CTSJU1jWKhKuVpjJGom45nnwPb2AMTi',
|
||||
);
|
||||
|
||||
export let SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID = new PublicKey(
|
||||
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
|
||||
);
|
||||
|
@ -45,140 +44,65 @@ export const METAPLEX_ID = new PublicKey(
|
|||
|
||||
export let SYSTEM = new PublicKey('11111111111111111111111111111111');
|
||||
|
||||
let WORMHOLE_BRIDGE: {
|
||||
pubkey: PublicKey;
|
||||
bridge: string;
|
||||
wrappedMaster: string;
|
||||
};
|
||||
|
||||
let GOVERNANCE: {
|
||||
programId: PublicKey;
|
||||
};
|
||||
|
||||
let SWAP_PROGRAM_ID: PublicKey;
|
||||
let SWAP_PROGRAM_LEGACY_IDS: PublicKey[];
|
||||
let SWAP_PROGRAM_LAYOUT: any;
|
||||
|
||||
export const LEND_HOST_FEE_ADDRESS = process.env.REACT_APP_LEND_HOST_FEE_ADDRESS
|
||||
? new PublicKey(`${process.env.REACT_APP_LEND_HOST_FEE_ADDRESS}`)
|
||||
: undefined;
|
||||
|
||||
console.debug(`Lend host fee address: ${LEND_HOST_FEE_ADDRESS?.toBase58()}`);
|
||||
|
||||
export const ENABLE_FEES_INPUT = false;
|
||||
|
||||
// legacy pools are used to show users contributions in those pools to allow for withdrawals of funds
|
||||
export const PROGRAM_IDS = [
|
||||
{
|
||||
name: 'mainnet-beta',
|
||||
governance: () => ({
|
||||
programId: new PublicKey('9iAeqqppjn7g1Jn8o2cQCqU5aQVV3h4q9bbWdKRbeC2w'),
|
||||
}),
|
||||
wormhole: () => ({
|
||||
pubkey: new PublicKey('WormT3McKhFJ2RkiGpdw9GKvNCrB2aB54gb2uV9MfQC'),
|
||||
bridge: '0xf92cD566Ea4864356C5491c177A430C222d7e678',
|
||||
wrappedMaster: '9A5e27995309a03f8B583feBdE7eF289FcCdC6Ae',
|
||||
}),
|
||||
swap: () => ({
|
||||
current: {
|
||||
pubkey: new PublicKey('9qvG1zUp8xF1Bi4m6UdRNby1BAAuaDrUxSpv4CmRRMjL'),
|
||||
layout: TokenSwapLayoutV1,
|
||||
},
|
||||
legacy: [
|
||||
// TODO: uncomment to enable legacy contract
|
||||
// new PublicKey("9qvG1zUp8xF1Bi4m6UdRNby1BAAuaDrUxSpv4CmRRMjL"),
|
||||
],
|
||||
}),
|
||||
},
|
||||
{
|
||||
name: 'testnet',
|
||||
governance: () => ({
|
||||
programId: new PublicKey('A9KW1nhwZUr1kMX8C6rgzZvAE9AwEEUi2C77SiVvEiuN'),
|
||||
}),
|
||||
wormhole: () => ({
|
||||
pubkey: new PublicKey('5gQf5AUhAgWYgUCt9ouShm9H7dzzXUsLdssYwe5krKhg'),
|
||||
bridge: '0x251bBCD91E84098509beaeAfF0B9951859af66D3',
|
||||
wrappedMaster: 'E39f0b145C0aF079B214c5a8840B2B01eA14794c',
|
||||
}),
|
||||
swap: () => ({
|
||||
current: {
|
||||
pubkey: new PublicKey('2n2dsFSgmPcZ8jkmBZLGUM2nzuFqcBGQ3JEEj6RJJcEg'),
|
||||
layout: TokenSwapLayoutV1,
|
||||
},
|
||||
legacy: [],
|
||||
}),
|
||||
},
|
||||
|
||||
{
|
||||
name: 'devnet',
|
||||
governance: () => ({
|
||||
programId: new PublicKey('A9KW1nhwZUr1kMX8C6rgzZvAE9AwEEUi2C77SiVvEiuN'),
|
||||
}),
|
||||
wormhole: () => ({
|
||||
pubkey: new PublicKey('WormT3McKhFJ2RkiGpdw9GKvNCrB2aB54gb2uV9MfQC'),
|
||||
bridge: '0xf92cD566Ea4864356C5491c177A430C222d7e678',
|
||||
wrappedMaster: '9A5e27995309a03f8B583feBdE7eF289FcCdC6Ae',
|
||||
}),
|
||||
swap: () => ({
|
||||
current: {
|
||||
pubkey: new PublicKey('6Cust2JhvweKLh4CVo1dt21s2PJ86uNGkziudpkNPaCj'),
|
||||
layout: TokenSwapLayout,
|
||||
},
|
||||
legacy: [new PublicKey('BSfTAcBdqmvX5iE2PW88WFNNp2DHhLUaBKk5WrnxVkcJ')],
|
||||
}),
|
||||
},
|
||||
{
|
||||
name: 'localnet',
|
||||
governance: () => ({
|
||||
programId: new PublicKey('2uWrXQ3tMurqTLe3Dmue6DzasUGV9UPqK7AK7HzS7v3D'),
|
||||
}),
|
||||
wormhole: () => ({
|
||||
pubkey: new PublicKey('WormT3McKhFJ2RkiGpdw9GKvNCrB2aB54gb2uV9MfQC'),
|
||||
bridge: '0xf92cD566Ea4864356C5491c177A430C222d7e678',
|
||||
wrappedMaster: '9A5e27995309a03f8B583feBdE7eF289FcCdC6Ae',
|
||||
}),
|
||||
swap: () => ({
|
||||
current: {
|
||||
pubkey: new PublicKey('369YmCWHGxznT7GGBhcLZDRcRoGWmGKFWdmtiPy78yj7'),
|
||||
layout: TokenSwapLayoutV1,
|
||||
},
|
||||
legacy: [],
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
export const setProgramIds = (envName: string) => {
|
||||
const getStoreID = async () => {
|
||||
console.log(`STORE_OWNER_ADDRESS: ${STORE_OWNER_ADDRESS}`);
|
||||
if (!STORE_OWNER_ADDRESS) {
|
||||
return DEFAULT_STORE;
|
||||
}
|
||||
|
||||
if (!STORE) {
|
||||
STORE = (
|
||||
await PublicKey.findProgramAddress(
|
||||
[
|
||||
Buffer.from('metaplex'),
|
||||
METAPLEX_ID.toBuffer(),
|
||||
STORE_OWNER_ADDRESS.toBuffer(),
|
||||
],
|
||||
METAPLEX_ID,
|
||||
)
|
||||
)[0];
|
||||
}
|
||||
|
||||
return STORE;
|
||||
};
|
||||
|
||||
export const setProgramIds = async (envName: string) => {
|
||||
let instance = PROGRAM_IDS.find(env => envName.indexOf(env.name) >= 0);
|
||||
if (!instance) {
|
||||
return;
|
||||
}
|
||||
|
||||
WORMHOLE_BRIDGE = instance.wormhole();
|
||||
|
||||
let swap = instance.swap();
|
||||
|
||||
SWAP_PROGRAM_ID = swap.current.pubkey;
|
||||
SWAP_PROGRAM_LAYOUT = swap.current.layout;
|
||||
SWAP_PROGRAM_LEGACY_IDS = swap.legacy;
|
||||
|
||||
GOVERNANCE = instance.governance();
|
||||
|
||||
if (envName === 'mainnet-beta') {
|
||||
LENDING_PROGRAM_ID = new PublicKey(
|
||||
'LendZqTs7gn5CTSJU1jWKhKuVpjJGom45nnwPb2AMTi',
|
||||
);
|
||||
}
|
||||
STORE = await getStoreID();
|
||||
};
|
||||
|
||||
const DEFAULT_STORE = new PublicKey(
|
||||
'7KwpjEy7KBpZTBErE3niBUNxWGAQTPo9kZzkgEoP6dfR',
|
||||
);
|
||||
|
||||
let STORE: PublicKey;
|
||||
|
||||
export const programIds = () => {
|
||||
return {
|
||||
token: TOKEN_PROGRAM_ID,
|
||||
swap: SWAP_PROGRAM_ID,
|
||||
swap_legacy: SWAP_PROGRAM_LEGACY_IDS,
|
||||
swapLayout: SWAP_PROGRAM_LAYOUT,
|
||||
lending: LENDING_PROGRAM_ID,
|
||||
wormhole: WORMHOLE_BRIDGE,
|
||||
governance: GOVERNANCE,
|
||||
associatedToken: SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID,
|
||||
bpf_upgrade_loader: BPF_UPGRADE_LOADER_ID,
|
||||
system: SYSTEM,
|
||||
|
|
|
@ -25,6 +25,8 @@ import {
|
|||
BIDDER_POT_LEN,
|
||||
decodeVault,
|
||||
Vault,
|
||||
setProgramIds,
|
||||
useConnectionConfig,
|
||||
} from '@oyster/common';
|
||||
import { MintInfo, Token, TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
||||
import {
|
||||
|
@ -117,7 +119,7 @@ const MetaContext = React.createContext<MetaContextState>({
|
|||
|
||||
export function MetaProvider({ children = null as any }) {
|
||||
const connection = useConnection();
|
||||
const PROGRAM_IDS = programIds();
|
||||
const { env } = useConnectionConfig();
|
||||
|
||||
const [metadata, setMetadata] = useState<ParsedAccount<Metadata>[]>([]);
|
||||
const [metadataByMint, setMetadataByMint] = useState<
|
||||
|
@ -197,6 +199,8 @@ export function MetaProvider({ children = null as any }) {
|
|||
])
|
||||
).flat();
|
||||
|
||||
await setProgramIds(env);
|
||||
|
||||
const tempCache = {
|
||||
metadata: {},
|
||||
metadataByMint: {},
|
||||
|
@ -327,6 +331,7 @@ export function MetaProvider({ children = null as any }) {
|
|||
setStore,
|
||||
setWhitelistedCreatorsByCreator,
|
||||
updateMints,
|
||||
env,
|
||||
]);
|
||||
|
||||
useEffect(() => {
|
||||
|
@ -643,9 +648,10 @@ const processMetaplexAccounts = async (
|
|||
setWhitelistedCreatorsByCreator: any,
|
||||
) => {
|
||||
try {
|
||||
const STORE_ID = programIds().store.toBase58()
|
||||
if (a.account.data[0] === MetaplexKey.AuctionManagerV1) {
|
||||
const storeKey = new PublicKey(a.account.data.slice(1, 33));
|
||||
if (storeKey.toBase58() === programIds().store.toBase58()) {
|
||||
if (storeKey.toBase58() === STORE_ID) {
|
||||
const auctionManager = decodeAuctionManager(a.account.data);
|
||||
// An initialized auction manager hasnt been validated, so we cant show it to users.
|
||||
// Could have any kind of pictures in it.
|
||||
|
@ -691,7 +697,7 @@ const processMetaplexAccounts = async (
|
|||
account: a.account,
|
||||
info: store,
|
||||
};
|
||||
if (a.pubkey.toBase58() === programIds().store.toBase58()) {
|
||||
if (a.pubkey.toBase58() === STORE_ID) {
|
||||
setStore(account);
|
||||
}
|
||||
} else if (a.account.data[0] === MetaplexKey.WhitelistedCreatorV1) {
|
||||
|
|
|
@ -59,7 +59,6 @@ export async function getAssetCostToStore(files: File[]) {
|
|||
const arMultiplier =
|
||||
conversionRates.value.arweave.usd / conversionRates.value.solana.usd;
|
||||
console.log('Ar mult', arMultiplier);
|
||||
// Add 10% padding for safety and slippage in price.
|
||||
// We also always make a manifest file, which, though tiny, needs payment.
|
||||
return LAMPORT_MULTIPLIER * totalArCost * arMultiplier * 1.1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue