mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-14 23:16:48 +00:00
sdk
This commit is contained in:
@@ -50,8 +50,10 @@ pub fn close(signer: Pubkey, recipient: Pubkey, id: u64) -> Instruction {
|
||||
let block_adddress = block_pda(id).0;
|
||||
let market_address = market_pda(id).0;
|
||||
let base_mint_address = mint_pda(id).0;
|
||||
let vault_base = get_associated_token_address(&market_address, &base_mint_address);
|
||||
let vault_quote = get_associated_token_address(&market_address, &MINT_ADDRESS);
|
||||
let vault_base = vault_base_pda(id).0;
|
||||
let vault_quote = vault_quote_pda(id).0;
|
||||
// let vault_base = get_associated_token_address(&market_address, &base_mint_address);
|
||||
// let vault_quote = get_associated_token_address(&market_address, &MINT_ADDRESS);
|
||||
Instruction {
|
||||
program_id: crate::ID,
|
||||
accounts: vec![
|
||||
@@ -112,7 +114,8 @@ pub fn commit(
|
||||
let base_mint_address = mint_pda(id).0;
|
||||
let miner_address = miner_pda(signer).0;
|
||||
let permit_address = permit_pda(signer, id).0;
|
||||
let commitment_address = get_associated_token_address(&block_adddress, &base_mint_address);
|
||||
// let commitment_address = get_associated_token_address(&block_adddress, &base_mint_address);
|
||||
let commitment_address = commitment_pda(id).0;
|
||||
let sender_address = get_associated_token_address(&signer, &base_mint_address);
|
||||
Instruction {
|
||||
program_id: crate::ID,
|
||||
@@ -144,7 +147,8 @@ pub fn uncommit(signer: Pubkey, amount: u64, id: u64) -> Instruction {
|
||||
let base_mint_address = mint_pda(id).0;
|
||||
let miner_address = miner_pda(signer).0;
|
||||
let permit_address = permit_pda(signer, id).0;
|
||||
let commitment_address = get_associated_token_address(&block_adddress, &base_mint_address);
|
||||
// let commitment_address = get_associated_token_address(&block_adddress, &base_mint_address);
|
||||
let commitment_address = commitment_pda(id).0;
|
||||
let recipient_address = get_associated_token_address(&signer, &MINT_ADDRESS);
|
||||
Instruction {
|
||||
program_id: crate::ID,
|
||||
@@ -169,7 +173,8 @@ pub fn uncommit(signer: Pubkey, amount: u64, id: u64) -> Instruction {
|
||||
|
||||
pub fn deposit(signer: Pubkey, id: u64, amount: u64) -> Instruction {
|
||||
let block_adddress = block_pda(id).0;
|
||||
let collateral_address = get_associated_token_address(&block_adddress, &MINT_ADDRESS);
|
||||
// let collateral_address = get_associated_token_address(&block_adddress, &MINT_ADDRESS);
|
||||
let collateral_address = collateral_pda(id).0;
|
||||
let stake_address = stake_pda(signer, id).0;
|
||||
let sender = get_associated_token_address(&signer, &MINT_ADDRESS);
|
||||
Instruction {
|
||||
@@ -202,17 +207,19 @@ pub fn swap(
|
||||
let market_address = market_pda(id).0;
|
||||
let base_mint_address = mint_pda(id).0;
|
||||
let stake_address = stake_pda(signer, id).0;
|
||||
let collateral_address = get_associated_token_address(&block_adddress, &MINT_ADDRESS);
|
||||
// let collateral_address = get_associated_token_address(&block_adddress, &MINT_ADDRESS);
|
||||
let tokens_base_address = get_associated_token_address(&signer, &base_mint_address);
|
||||
let tokens_quote_address = get_associated_token_address(&signer, &MINT_ADDRESS);
|
||||
let vault_base_address = get_associated_token_address(&market_address, &base_mint_address);
|
||||
let vault_quote_address = get_associated_token_address(&market_address, &MINT_ADDRESS);
|
||||
// let vault_base_address = get_associated_token_address(&market_address, &base_mint_address);
|
||||
// let vault_quote_address = get_associated_token_address(&market_address, &MINT_ADDRESS);
|
||||
let vault_base_address = vault_base_pda(id).0;
|
||||
let vault_quote_address = vault_quote_pda(id).0;
|
||||
Instruction {
|
||||
program_id: crate::ID,
|
||||
accounts: vec![
|
||||
AccountMeta::new(signer, true),
|
||||
AccountMeta::new(block_adddress, false),
|
||||
AccountMeta::new(collateral_address, false),
|
||||
// AccountMeta::new(collateral_address, false),
|
||||
AccountMeta::new(market_address, false),
|
||||
AccountMeta::new(base_mint_address, false),
|
||||
AccountMeta::new(MINT_ADDRESS, false),
|
||||
|
||||
@@ -14,12 +14,20 @@ pub fn process_close(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
|
||||
let block = block_info
|
||||
.as_account_mut::<Block>(&ore_api::ID)?
|
||||
.assert_mut(|b| clock.slot >= b.start_slot + 1500)?;
|
||||
let _collateral = collateral_info
|
||||
collateral_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_quote_info.key)?;
|
||||
let commitment = commitment_info
|
||||
.has_address(&collateral_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_quote_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// .as_associated_token_account(block_info.key, mint_quote_info.key)?;
|
||||
commitment_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_base_info.key)?;
|
||||
.has_address(&commitment_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_base_info.key)?
|
||||
.assert(|t| t.owner() == *block_info.key)?;
|
||||
// commitment_info.as_associated_token_account(block_info.key, mint_base_info.key)?;
|
||||
let market = market_info
|
||||
.as_account_mut::<Market>(&ore_api::ID)?
|
||||
.assert_mut(|m| m.id == block.id)?;
|
||||
@@ -28,12 +36,20 @@ pub fn process_close(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
|
||||
treasury_info
|
||||
.is_writable()?
|
||||
.has_address(&TREASURY_ADDRESS)?;
|
||||
let vault_base = vault_base_info
|
||||
vault_base_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(market_info.key, mint_base_info.key)?;
|
||||
let vault_quote = vault_quote_info
|
||||
.has_address(&vault_base_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_base_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// .as_associated_token_account(market_info.key, mint_base_info.key)?;
|
||||
vault_quote_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(market_info.key, mint_quote_info.key)?;
|
||||
.has_address(&vault_quote_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_quote_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// .as_associated_token_account(market_info.key, mint_quote_info.key)?;
|
||||
system_program.is_program(&system_program::ID)?;
|
||||
token_program.is_program(&spl_token::ID)?;
|
||||
|
||||
@@ -65,6 +81,7 @@ pub fn process_close(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
|
||||
}
|
||||
|
||||
// Burn base liquidity.
|
||||
let vault_base = vault_base_info.as_token_account()?;
|
||||
let base_burned = vault_base.amount();
|
||||
burn_signed(
|
||||
vault_base_info,
|
||||
@@ -76,6 +93,7 @@ pub fn process_close(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
|
||||
)?;
|
||||
|
||||
// Burn quote liquidity.
|
||||
let vault_quote = vault_quote_info.as_token_account()?;
|
||||
let quote_burned = vault_quote.amount();
|
||||
burn_signed(
|
||||
vault_quote_info,
|
||||
@@ -87,6 +105,7 @@ pub fn process_close(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul
|
||||
)?;
|
||||
|
||||
// Burn any remaining commitment.
|
||||
let commitment = commitment_info.as_token_account()?;
|
||||
let commitment_burned = commitment.amount();
|
||||
burn_signed(
|
||||
commitment_info,
|
||||
|
||||
@@ -20,7 +20,12 @@ pub fn process_commit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResul
|
||||
let block = block_info
|
||||
.as_account_mut::<Block>(&ore_api::ID)?
|
||||
.assert_mut(|b| clock.slot < b.start_slot)?;
|
||||
commitment_info.as_associated_token_account(block_info.key, mint_info.key)?;
|
||||
commitment_info
|
||||
.has_address(&commitment_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_info.key)?
|
||||
.assert(|t| t.owner() == *block_info.key)?;
|
||||
// commitment_info.as_associated_token_account(block_info.key, mint_info.key)?;
|
||||
let market = market_info
|
||||
.as_account::<Market>(&ore_api::ID)?
|
||||
.assert(|m| m.id == block.id)?;
|
||||
|
||||
@@ -20,7 +20,11 @@ pub fn process_deposit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResu
|
||||
.assert_mut(|b| clock.slot < b.start_slot)?;
|
||||
collateral_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_ore_info.key)?;
|
||||
.has_address(&collateral_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_ore_info.key)?
|
||||
.assert(|t| t.owner() == *block_info.key)?;
|
||||
// .as_associated_token_account(block_info.key, mint_ore_info.key)?;
|
||||
mint_ore_info.has_address(&MINT_ADDRESS)?.as_mint()?;
|
||||
sender_info
|
||||
.is_writable()?
|
||||
|
||||
@@ -24,7 +24,11 @@ pub fn process_mine(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult
|
||||
.assert_mut(|b| clock.slot < b.start_slot + 1500)?;
|
||||
commitment_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_hash_info.key)?;
|
||||
.has_address(&commitment_pda(block.id).0)?
|
||||
.as_token_account()?;
|
||||
// .assert(|t| t.mint() == *mint_hash_info.key)?
|
||||
// .assert(|t| t.owner() == *block_info.key)?;
|
||||
// commitment_info.as_associated_token_account(block_info.key, mint_hash_info.key)?;
|
||||
let market = market_info
|
||||
.as_account::<Market>(&ore_api::ID)?
|
||||
.assert(|m| m.id == block.id)?;
|
||||
|
||||
@@ -22,7 +22,11 @@ pub fn process_swap(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult
|
||||
.assert_mut(|b| clock.slot < b.start_slot)?;
|
||||
collateral_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_quote_info.key)?;
|
||||
.has_address(&collateral_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_quote_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// collateral_info.as_associated_token_account(block_info.key, mint_quote_info.key)?;
|
||||
let market = market_info
|
||||
.as_account_mut::<Market>(&ore_api::ID)?
|
||||
.assert_mut(|m| m.id == block.id)?
|
||||
@@ -36,10 +40,18 @@ pub fn process_swap(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult
|
||||
.assert_mut(|p| p.block_id == block.id)?;
|
||||
vault_base_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(market_info.key, mint_base_info.key)?;
|
||||
.has_address(&vault_base_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_base_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// vault_base_info.as_associated_token_account(market_info.key, mint_base_info.key)?;
|
||||
vault_quote_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(market_info.key, mint_quote_info.key)?;
|
||||
.has_address(&vault_quote_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_quote_info.key)?
|
||||
.assert(|t| t.owner() == *market_info.key)?;
|
||||
// vault_quote_info.as_associated_token_account(market_info.key, mint_quote_info.key)?;
|
||||
system_program.is_program(&system_program::ID)?;
|
||||
token_program.is_program(&spl_token::ID)?;
|
||||
associated_token_program.is_program(&spl_associated_token_account::ID)?;
|
||||
|
||||
@@ -20,7 +20,11 @@ pub fn process_uncommit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramRes
|
||||
.assert_mut(|b| clock.slot < b.start_slot)?;
|
||||
commitment_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_info.key)?;
|
||||
.has_address(&commitment_pda(block.id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_info.key)?
|
||||
.assert(|t| t.owner() == *block_info.key)?;
|
||||
// commitment_info.as_associated_token_account(block_info.key, mint_info.key)?;
|
||||
let market = market_info
|
||||
.as_account::<Market>(&ore_api::ID)?
|
||||
.assert(|m| m.id == block.id)?;
|
||||
|
||||
@@ -15,9 +15,7 @@ pub fn process_withdraw(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramRes
|
||||
return Err(ProgramError::NotEnoughAccountKeys);
|
||||
};
|
||||
signer_info.is_signer()?;
|
||||
collateral_info
|
||||
.is_writable()?
|
||||
.as_associated_token_account(block_info.key, mint_ore_info.key)?;
|
||||
// .as_associated_token_account(block_info.key, mint_ore_info.key)?;
|
||||
mint_ore_info.has_address(&MINT_ADDRESS)?.as_mint()?;
|
||||
recipient_info
|
||||
.is_writable()?
|
||||
@@ -26,6 +24,12 @@ pub fn process_withdraw(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramRes
|
||||
.as_account_mut::<Stake>(&ore_api::ID)?
|
||||
.assert_mut(|p| p.authority == *signer_info.key)?;
|
||||
block_info.has_seeds(&[BLOCK, &stake.block_id.to_le_bytes()], &ore_api::ID)?;
|
||||
collateral_info
|
||||
.is_writable()?
|
||||
.has_address(&collateral_pda(stake.block_id).0)?
|
||||
.as_token_account()?
|
||||
.assert(|t| t.mint() == *mint_ore_info.key)?
|
||||
.assert(|t| t.owner() == *block_info.key)?;
|
||||
system_program.is_program(&system_program::ID)?;
|
||||
token_program.is_program(&spl_token::ID)?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user