chore: cleanup

This commit is contained in:
bartosz-lipinski 2021-06-02 22:07:34 -04:00
parent 93f2da00ab
commit f3b0a78216
5 changed files with 45 additions and 136 deletions

View File

@ -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());
});

View File

@ -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,

View File

@ -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,

View File

@ -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) {

View File

@ -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;
}