|
@@ -643,15 +643,15 @@ impl<'info> CreateMember<'info> {
|
|
|
pub struct BalanceSandboxAccounts<'info> {
|
|
|
#[account(mut)]
|
|
|
spt: CpiAccount<'info, TokenAccount>,
|
|
|
- #[account(mut, "vault.owner == spt.owner")]
|
|
|
+ #[account(mut, constraint = vault.owner == spt.owner)]
|
|
|
vault: CpiAccount<'info, TokenAccount>,
|
|
|
#[account(
|
|
|
mut,
|
|
|
- "vault_stake.owner == spt.owner",
|
|
|
- "vault_stake.mint == vault.mint"
|
|
|
+ constraint = vault_stake.owner == spt.owner,
|
|
|
+ constraint = vault_stake.mint == vault.mint
|
|
|
)]
|
|
|
vault_stake: CpiAccount<'info, TokenAccount>,
|
|
|
- #[account(mut, "vault_pw.owner == spt.owner", "vault_pw.mint == vault.mint")]
|
|
|
+ #[account(mut, constraint = vault_pw.owner == spt.owner, constraint = vault_pw.mint == vault.mint)]
|
|
|
vault_pw: CpiAccount<'info, TokenAccount>,
|
|
|
}
|
|
|
|
|
@@ -669,8 +669,8 @@ pub struct SetLockupProgram<'info> {
|
|
|
#[derive(Accounts)]
|
|
|
pub struct IsRealized<'info> {
|
|
|
#[account(
|
|
|
- "&member.balances.spt == member_spt.to_account_info().key",
|
|
|
- "&member.balances_locked.spt == member_spt_locked.to_account_info().key"
|
|
|
+ constraint = &member.balances.spt == member_spt.to_account_info().key,
|
|
|
+ constraint = &member.balances_locked.spt == member_spt_locked.to_account_info().key
|
|
|
)]
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
member_spt: CpiAccount<'info, TokenAccount>,
|
|
@@ -692,15 +692,15 @@ pub struct Deposit<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account(mut, "vault.to_account_info().key == &member.balances.vault")]
|
|
|
+ #[account(mut, constraint = vault.to_account_info().key == &member.balances.vault)]
|
|
|
vault: CpiAccount<'info, TokenAccount>,
|
|
|
// Depositor.
|
|
|
#[account(mut)]
|
|
|
depositor: AccountInfo<'info>,
|
|
|
- #[account(signer, "depositor_authority.key == &member.beneficiary")]
|
|
|
+ #[account(signer, constraint = depositor_authority.key == &member.beneficiary)]
|
|
|
depositor_authority: AccountInfo<'info>,
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
}
|
|
|
|
|
@@ -708,29 +708,26 @@ pub struct Deposit<'info> {
|
|
|
pub struct DepositLocked<'info> {
|
|
|
// Lockup whitelist relay interface.
|
|
|
#[account(
|
|
|
- "vesting.to_account_info().owner == ®istry.lockup_program",
|
|
|
- "vesting.beneficiary == member.beneficiary"
|
|
|
+ constraint = vesting.to_account_info().owner == ®istry.lockup_program,
|
|
|
+ constraint = vesting.beneficiary == member.beneficiary
|
|
|
)]
|
|
|
vesting: CpiAccount<'info, Vesting>,
|
|
|
- #[account(mut, "vesting_vault.key == &vesting.vault")]
|
|
|
+ #[account(mut, constraint = vesting_vault.key == &vesting.vault)]
|
|
|
vesting_vault: AccountInfo<'info>,
|
|
|
// Note: no need to verify the depositor_authority since the SPL program
|
|
|
// will fail the transaction if it's not correct.
|
|
|
#[account(signer)]
|
|
|
depositor_authority: AccountInfo<'info>,
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
#[account(
|
|
|
mut,
|
|
|
- "member_vault.to_account_info().key == &member.balances_locked.vault"
|
|
|
+ constraint = member_vault.to_account_info().key == &member.balances_locked.vault
|
|
|
)]
|
|
|
member_vault: CpiAccount<'info, TokenAccount>,
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
|
|
@@ -757,26 +754,26 @@ pub struct Stake<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances) == member.balances")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances) == member.balances)]
|
|
|
balances: BalanceSandboxAccounts<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances_locked) == member.balances_locked")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances_locked) == member.balances_locked)]
|
|
|
balances_locked: BalanceSandboxAccounts<'info>,
|
|
|
|
|
|
// Program signers.
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
- #[account(seeds = [registrar.to_account_info().key.as_ref(), &[registrar.nonce]])]
|
|
|
+ #[account(
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref()],
|
|
|
+ bump = registrar.nonce,
|
|
|
+ )]
|
|
|
registrar_signer: AccountInfo<'info>,
|
|
|
|
|
|
// Misc.
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
}
|
|
|
|
|
@@ -796,23 +793,20 @@ pub struct StartUnstake<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances) == member.balances")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances) == member.balances)]
|
|
|
balances: BalanceSandboxAccounts<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances_locked) == member.balances_locked")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances_locked) == member.balances_locked)]
|
|
|
balances_locked: BalanceSandboxAccounts<'info>,
|
|
|
|
|
|
// Programmatic signers.
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
}
|
|
@@ -825,7 +819,7 @@ pub struct EndUnstake<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account(mut, has_one = registrar, has_one = member, "!pending_withdrawal.burned")]
|
|
|
+ #[account(mut, has_one = registrar, has_one = member, constraint = !pending_withdrawal.burned)]
|
|
|
pending_withdrawal: ProgramAccount<'info, PendingWithdrawal>,
|
|
|
|
|
|
// If we had ordered maps implementing Accounts we could do a constraint like
|
|
@@ -838,16 +832,13 @@ pub struct EndUnstake<'info> {
|
|
|
vault_pw: AccountInfo<'info>,
|
|
|
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
}
|
|
|
|
|
@@ -860,21 +851,18 @@ pub struct Withdraw<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account(mut, "vault.to_account_info().key == &member.balances.vault")]
|
|
|
+ #[account(mut, constraint = vault.to_account_info().key == &member.balances.vault)]
|
|
|
vault: CpiAccount<'info, TokenAccount>,
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
// Receiver.
|
|
|
#[account(mut)]
|
|
|
depositor: AccountInfo<'info>,
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
}
|
|
|
|
|
@@ -882,27 +870,24 @@ pub struct Withdraw<'info> {
|
|
|
pub struct WithdrawLocked<'info> {
|
|
|
// Lockup whitelist relay interface.
|
|
|
#[account(
|
|
|
- "vesting.to_account_info().owner == ®istry.lockup_program",
|
|
|
- "vesting.beneficiary == member.beneficiary"
|
|
|
+ constraint = vesting.to_account_info().owner == ®istry.lockup_program,
|
|
|
+ constraint = vesting.beneficiary == member.beneficiary,
|
|
|
)]
|
|
|
vesting: CpiAccount<'info, Vesting>,
|
|
|
- #[account(mut, "vesting_vault.key == &vesting.vault")]
|
|
|
+ #[account(mut, constraint = vesting_vault.key == &vesting.vault)]
|
|
|
vesting_vault: AccountInfo<'info>,
|
|
|
#[account(signer)]
|
|
|
vesting_signer: AccountInfo<'info>,
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
#[account(
|
|
|
mut,
|
|
|
- "member_vault.to_account_info().key == &member.balances_locked.vault"
|
|
|
+ constraint = member_vault.to_account_info().key == &member.balances_locked.vault
|
|
|
)]
|
|
|
member_vault: CpiAccount<'info, TokenAccount>,
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- member.to_account_info().key.as_ref(),
|
|
|
- &[member.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), member.to_account_info().key.as_ref()],
|
|
|
+ bump = member.nonce,
|
|
|
)]
|
|
|
member_signer: AccountInfo<'info>,
|
|
|
|
|
@@ -934,7 +919,7 @@ pub struct DropReward<'info> {
|
|
|
#[account(signer)]
|
|
|
depositor_authority: AccountInfo<'info>,
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
}
|
|
@@ -984,9 +969,9 @@ pub struct ClaimRewardCommon<'info> {
|
|
|
member: ProgramAccount<'info, Member>,
|
|
|
#[account(signer)]
|
|
|
beneficiary: AccountInfo<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances) == member.balances")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances) == member.balances)]
|
|
|
balances: BalanceSandboxAccounts<'info>,
|
|
|
- #[account("BalanceSandbox::from(&balances_locked) == member.balances_locked")]
|
|
|
+ #[account(constraint = BalanceSandbox::from(&balances_locked) == member.balances_locked)]
|
|
|
balances_locked: BalanceSandboxAccounts<'info>,
|
|
|
// Vendor.
|
|
|
#[account(has_one = registrar, has_one = vault)]
|
|
@@ -994,15 +979,12 @@ pub struct ClaimRewardCommon<'info> {
|
|
|
#[account(mut)]
|
|
|
vault: AccountInfo<'info>,
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- vendor.to_account_info().key.as_ref(),
|
|
|
- &[vendor.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), vendor.to_account_info().key.as_ref()],
|
|
|
+ bump = vendor.nonce,
|
|
|
)]
|
|
|
vendor_signer: AccountInfo<'info>,
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
}
|
|
@@ -1017,11 +999,8 @@ pub struct ExpireReward<'info> {
|
|
|
#[account(mut)]
|
|
|
vault: CpiAccount<'info, TokenAccount>,
|
|
|
#[account(
|
|
|
- seeds = [
|
|
|
- registrar.to_account_info().key.as_ref(),
|
|
|
- vendor.to_account_info().key.as_ref(),
|
|
|
- &[vendor.nonce],
|
|
|
- ]
|
|
|
+ seeds = [registrar.to_account_info().key.as_ref(), vendor.to_account_info().key.as_ref()],
|
|
|
+ bump = vendor.nonce
|
|
|
)]
|
|
|
vendor_signer: AccountInfo<'info>,
|
|
|
// Receiver.
|
|
@@ -1030,7 +1009,7 @@ pub struct ExpireReward<'info> {
|
|
|
#[account(mut)]
|
|
|
expiry_receiver_token: AccountInfo<'info>,
|
|
|
// Misc.
|
|
|
- #[account("token_program.key == &token::ID")]
|
|
|
+ #[account(constraint = token_program.key == &token::ID)]
|
|
|
token_program: AccountInfo<'info>,
|
|
|
clock: Sysvar<'info, Clock>,
|
|
|
}
|