Skip to content

Commit

Permalink
upload prop 15 to mainnet
Browse files Browse the repository at this point in the history
  • Loading branch information
henrye committed Mar 27, 2024
1 parent 3e47ae5 commit 2ddd532
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 67 deletions.
103 changes: 81 additions & 22 deletions scripts/initializeProposal.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { initializeProposal, daoTreasury, META } from "./main";
import {
initializeProposal,
daoTreasury,
META,
migrator,
DEVNET_USDC,
} from "./main";
import * as anchor from "@coral-xyz/anchor";
import { MEMO_PROGRAM_ID } from "@solana/spl-memo";
import * as token from "@solana/spl-token";
Expand All @@ -11,38 +17,91 @@ anchor.setProvider(provider);

const payer = provider.wallet["payer"];

const PANTERA_PUBKEY = new PublicKey(
"BtNPTBX1XkFCwazDJ6ZkK3hcUsomm1RPcfmtUrP6wd2K"
// Sender
const oldTreasury = new PublicKey(
"ADCCEAbH8eixGj5t73vb4sKecSKo7ndgDSuWGvER4Loy"
);
// Receiver
const newTreasury = new PublicKey(
"BC1jThSN7Cgy5LfBZdCKCfMnhKcq155gMjhd9HPWzsCN"
);
// Define the mints
// const META = new PublicKey("METADDFL6wWMWEoKTFJwcThTbUmtarRJZjRpzUvkxhr");
const USDC = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
// const USDC = DEVNET_USDC;
const MNDE = new PublicKey("MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey");
const BOL = new PublicKey("CykVcgvNUvay5KsAaGx1G3BR4kbWDtJcerEaZeJetGLe");
// const BOL = new PublicKey("Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr"); // devnet bol

async function main() {
const senderAcc = await token.getOrCreateAssociatedTokenAccount(
async function getOrCreateATAForMint(mint, owner) {
return await token.getOrCreateAssociatedTokenAccount(
provider.connection,
payer,
META,
daoTreasury,
mint,
owner,
true
);
}

const receiverAcc = await token.getOrCreateAssociatedTokenAccount(
provider.connection,
payer,
META,
PANTERA_PUBKEY,
true
);
async function main() {
const oldTreasuryMetaATA = await getOrCreateATAForMint(META, oldTreasury);
console.log("Old Treasury META ATA:", oldTreasuryMetaATA.address.toString());
const oldTreasuryUsdcATA = await getOrCreateATAForMint(USDC, oldTreasury);
console.log("Old Treasury USDC ATA:", oldTreasuryUsdcATA.address.toString());
const oldTreasuryMndeATA = await getOrCreateATAForMint(MNDE, oldTreasury);
console.log("Old Treasury MNDE ATA:", oldTreasuryMndeATA.address.toString());
const oldTreasuryBolATA = await getOrCreateATAForMint(BOL, oldTreasury);
console.log("Old Treasury BOL ATA:", oldTreasuryBolATA.address.toString());

const newTreasuryMetaATA = await getOrCreateATAForMint(META, newTreasury);
console.log("New Treasury META ATA:", newTreasuryMetaATA.address.toString());
const newTreasuryUsdcATA = await getOrCreateATAForMint(USDC, newTreasury);
console.log("New Treasury USDC ATA:", newTreasuryUsdcATA.address.toString());
const newTreasuryMndeATA = await getOrCreateATAForMint(MNDE, newTreasury);
console.log("New Treasury MNDE ATA:", newTreasuryMndeATA.address.toString());
const newTreasuryBolATA = await getOrCreateATAForMint(BOL, newTreasury);
console.log("New Treasury BOL ATA:", newTreasuryBolATA.address.toString());

let migrateTransaction = await migrator.methods.multiTransfer4().accounts({
authority: oldTreasury,
from0: oldTreasuryMetaATA.address,
to0: newTreasuryMetaATA.address,
from1: oldTreasuryUsdcATA.address,
to1: newTreasuryUsdcATA.address,
from2: oldTreasuryMndeATA.address,
to2: newTreasuryMndeATA.address,
from3: oldTreasuryBolATA.address,
to3: newTreasuryBolATA.address,
lamportReceiver: newTreasury,
});
let migrateInstruction = await migrateTransaction.instruction();
// console.log(migrateInstruction);

const transferIx = token.createTransferInstruction(
senderAcc.address,
receiverAcc.address,
daoTreasury,
1_000 * 1_000_000_000 // 1,000 META
let { blockhash } = await provider.connection.getLatestBlockhash();
const messageV0 = new anchor.web3.TransactionMessage({
payerKey: provider.publicKey,
recentBlockhash: blockhash,
instructions: [migrateInstruction],
}).compileToV0Message();
const transaction = new anchor.web3.VersionedTransaction(messageV0);
const simulationResult = await provider.connection.simulateTransaction(
transaction,
{
sigVerify: false,
}
);
if (simulationResult.value.err) {
console.log("Simulation failed with an error:", simulationResult);
return;
} else {
console.log("Simulation Succeeded");
// console.log("Simulation result:", simulationResult);
}

const ix = {
programId: transferIx.programId,
accounts: transferIx.keys,
data: transferIx.data,
programId: migrateInstruction.programId,
accounts: migrateInstruction.keys,
data: migrateInstruction.data,
};

await initializeProposal(ix, "https://hackmd.io/@0xNallok/Hy2WJ46op");
Expand Down
81 changes: 48 additions & 33 deletions scripts/main.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as anchor from "@coral-xyz/anchor";
// @ts-ignore
import * as token from "@solana/spl-token-018";
import * as token from "@solana/spl-token";
const { BN, Program } = anchor;
import { MPL_TOKEN_METADATA_PROGRAM_ID as UMI_MPL_TOKEN_METADATA_PROGRAM_ID } from "@metaplex-foundation/mpl-token-metadata";

Expand Down Expand Up @@ -38,10 +38,10 @@ const OpenbookTwapIDL: OpenbookTwap = require("../tests/fixtures/openbook_twap.j
const AutocratMigratorIDL: AutocratMigrator = require("../target/idl/autocrat_migrator.json");

const AUTOCRAT_PROGRAM_ID = new PublicKey(
"metaRK9dUBnrAdZN6uUDKvxBVKW5pyCbPVmLtUZwtBp"
"metaX99LHn3A7Gr7VAcCfXhpfocvpMpqQ3eyp3PGUUq"
);
const CONDITIONAL_VAULT_PROGRAM_ID = new PublicKey(
"vAuLTQjV5AZx5f3UgE75wcnkxnQowWxThn1hGjfCVwP"
"vaU1tVLj8RFk7mNj1BxqgAsMKKaL8UvEUHvU3tdbZPe"
);
const OPENBOOK_TWAP_PROGRAM_ID = new PublicKey(
"TWAPrdhADy2aTKN5iFZtNnkQYXERD9NvKjPFVPMSCNN"
Expand Down Expand Up @@ -169,13 +169,13 @@ async function initializeVault(
let conditionalOnFinalizeKP = Keypair.generate();
let conditionalOnRevertKP = Keypair.generate();

const { key: underlyingTokenMetadataKey, metadata: underlyingTokenMetadata } =
await fetchOnchainMetadataForMint(underlyingTokenMint);
// const { key: underlyingTokenMetadataKey, metadata: underlyingTokenMetadata } =
// await fetchOnchainMetadataForMint(underlyingTokenMint);

console.log(
`metadata for token = ${underlyingTokenMint.toBase58()}`,
underlyingTokenMetadata
);
// console.log(
// `metadata for token = ${underlyingTokenMint.toBase58()}`,
// underlyingTokenMetadata
// );

const conditionalOnFinalizeTokenMetadata = await findMetaplexMetadataPda(
conditionalOnFinalizeKP.publicKey
Expand All @@ -188,29 +188,29 @@ async function initializeVault(
const proposalCount = nonce.and(new BN(1).shln(32).sub(new BN(1)));

// create new json, take that and pipe into the instruction
const { passTokenMetadataUri, faileTokenMetadataUri } =
await uploadOffchainMetadata(proposalCount, underlyingTokenMetadata.symbol);

const addMetadataToConditionalTokensIx = await vaultProgram.methods
.addMetadataToConditionalTokens(
proposalCount,
passTokenMetadataUri,
faileTokenMetadataUri
)
.accounts({
payer: payer.publicKey,
vault,
underlyingTokenMint,
underlyingTokenMetadata: underlyingTokenMetadataKey,
conditionalOnFinalizeTokenMint: conditionalOnFinalizeKP.publicKey,
conditionalOnRevertTokenMint: conditionalOnRevertKP.publicKey,
conditionalOnFinalizeTokenMetadata,
conditionalOnRevertTokenMetadata,
tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
systemProgram: SystemProgram.programId,
rent: SYSVAR_RENT_PUBKEY,
})
.instruction();
// const { passTokenMetadataUri, faileTokenMetadataUri } =
// await uploadOffchainMetadata(proposalCount, underlyingTokenMetadata.symbol);

// const addMetadataToConditionalTokensIx = await vaultProgram.methods
// .addMetadataToConditionalTokens(
// proposalCount,
// passTokenMetadataUri,
// faileTokenMetadataUri
// )
// .accounts({
// payer: payer.publicKey,
// vault,
// underlyingTokenMint,
// underlyingTokenMetadata: underlyingTokenMetadataKey,
// conditionalOnFinalizeTokenMint: conditionalOnFinalizeKP.publicKey,
// conditionalOnRevertTokenMint: conditionalOnRevertKP.publicKey,
// conditionalOnFinalizeTokenMetadata,
// conditionalOnRevertTokenMetadata,
// tokenMetadataProgram: MPL_TOKEN_METADATA_PROGRAM_ID,
// systemProgram: SystemProgram.programId,
// rent: SYSVAR_RENT_PUBKEY,
// })
// .instruction();

await vaultProgram.methods
.initializeConditionalVault(settlementAuthority, nonce)
Expand All @@ -226,7 +226,7 @@ async function initializeVault(
systemProgram: SystemProgram.programId,
})
.signers([conditionalOnFinalizeKP, conditionalOnRevertKP])
.postInstructions([addMetadataToConditionalTokensIx])
// .postInstructions([addMetadataToConditionalTokensIx])
.rpc();

//const storedVault = await vaultProgram.account.conditionalVault.fetch(
Expand All @@ -238,6 +238,20 @@ async function initializeVault(
}

export async function initializeDAO(META: any, USDC: any) {
// console.log(autocratProgram);
// if (
// autocratProgram.provider.connection.rpcEndpoint ===
// "https://api.devnet.solana.com"
// ) {
// USDC = DEVNET_USDC;
// }
// console.log(
// (
// await autocratProgram.account.dao.fetch(
// new PublicKey("14YsfUtP6aZ5UHfwfbqe9MYEW4VaDwTHs9NZroAfV6Pi")
// )
// ).treasury
// );
await autocratProgram.methods
.initializeDao()
.accounts({
Expand All @@ -246,6 +260,7 @@ export async function initializeDAO(META: any, USDC: any) {
usdcMint: USDC,
})
.rpc();
// .rpc({ skipPreflight: true });
}

export async function fetchDao() {
Expand Down
20 changes: 8 additions & 12 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
{
"compilerOptions": {
"types": [
"mocha",
"chai"
],
"typeRoots": [
"./node_modules/@types"
],
"lib": [
"es2015"
],
"types": ["mocha", "chai"],
"typeRoots": ["./node_modules/@types"],
"lib": ["es2015"],
"module": "commonjs",
"target": "ES2020",
"esModuleInterop": true,
"resolveJsonModule": true
"resolveJsonModule": true,
"paths": {
"@solana/spl-token": ["./node_modules/@solana/spl-token"]
}
}
}
}

0 comments on commit 2ddd532

Please sign in to comment.