diff --git a/packages/escrow-swap/src/types.rs b/packages/escrow-swap/src/types.rs index f0c1cce..7cc47f7 100644 --- a/packages/escrow-swap/src/types.rs +++ b/packages/escrow-swap/src/types.rs @@ -3,7 +3,7 @@ use soroban_sdk::{contracttype,contracterror,contractevent,Address,BytesN}; pub struct SwapRequest{pub id:u64,pub initiator:Address,pub responder:Address,pub token_a:Address,pub token_b:Address,pub initiator_amount:i128,pub responder_amount:i128,pub hash_lock:BytesN<32>,pub time_lock:u64,pub status:u32,pub created_at:u64} pub const STATUS_PENDING:u32=0;pub const STATUS_ACTIVE:u32=1;pub const STATUS_COMPLETED:u32=2;pub const STATUS_CANCELLED:u32=3; #[contracttype]#[derive(Clone)] -pub enum DataKey{Admin,SwapRequests,NextSwapId,Paused} +pub enum DataKey{Admin,SwapRequests,NextSwapId} #[contracterror]#[derive(Debug,Clone,PartialEq,Eq)] pub enum EscrowError{NotInitialized=1,Unauthorized=2,ContractPaused=3,InvalidAmount=4,SwapNotFound=5,SwapNotActive=6,AlreadyAccepted=7,HashLockMismatch=8,TimeLockExpired=9,InsufficientBalance=10,InvalidSwap=11,VecAccessError=12,AlreadyInitialized=13,InvalidAdmin=14} #[contractevent(topics=["swap_new"])]#[derive(Clone,Debug)] diff --git a/packages/governance-token/src/contract.rs b/packages/governance-token/src/contract.rs index 8cf032f..1ebe4dd 100644 --- a/packages/governance-token/src/contract.rs +++ b/packages/governance-token/src/contract.rs @@ -64,7 +64,7 @@ pub fn transfer_from( if amount <= 0 { return Err(TokenError::InvalidAmount); } - let allowances: Map<(Address, Address), AllowanceData> = env.storage().persistent().get(&ALLOWANCES_KEY).ok_or(TokenError::NotInitialized)?; + let mut allowances: Map<(Address, Address), AllowanceData> = env.storage().persistent().get(&ALLOWANCES_KEY).ok_or(TokenError::NotInitialized)?; let key = (from.clone(), spender.clone()); let allowance: AllowanceData = allowances.get(key.clone()).ok_or(TokenError::Unauthorized)?; let current_ledger: u32 = env.ledger().sequence(); @@ -74,13 +74,12 @@ pub fn transfer_from( if allowance.amount < amount { return Err(TokenError::AllowanceExceeded); } - let mut allowances_mut = allowances; let new_allowance = allowance.amount.checked_sub(amount).ok_or(TokenError::Underflow)?; - allowances_mut.set(key, AllowanceData { + allowances.set(key, AllowanceData { amount: new_allowance, expiration_ledger: allowance.expiration_ledger, }); - env.storage().persistent().set(&ALLOWANCES_KEY, &allowances_mut); + env.storage().persistent().set(&ALLOWANCES_KEY, &allowances); let mut balances: Map = env.storage().persistent().get(&BALANCES_KEY).ok_or(TokenError::NotInitialized)?; let from_balance: i128 = balances.get(from.clone()).unwrap_or(0); if from_balance < amount { diff --git a/packages/governance-token/src/types.rs b/packages/governance-token/src/types.rs index 9596c5b..9741713 100644 --- a/packages/governance-token/src/types.rs +++ b/packages/governance-token/src/types.rs @@ -25,7 +25,6 @@ pub enum TokenError { Overflow = 5, AllowanceExpired = 6, AllowanceExceeded = 7, - NegativeAllowance = 8, NotAdmin = 9, ContractPaused = 10, Underflow = 11,