Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
simplified storage
  • Loading branch information
fbielejec committed Aug 16, 2022
commit a66d7b1dd1585eebc5cb3c5079d95d100a2345a7
13 changes: 6 additions & 7 deletions contracts/back_to_the_future/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,7 @@ mod back_to_the_future {
}

fn score(&self, now: BlockNumber) -> Balance {
if let Some(last_press) = self.get().last_press {
return (now - last_press) as Balance;
}
0
(now - self.get().last_press) as Balance
}
}

Expand Down Expand Up @@ -134,8 +131,7 @@ mod back_to_the_future {

#[ink(message)]
fn deadline(&self) -> BlockNumber {
let now = self.env().block_number();
ButtonGame::deadline(self, now)
ButtonGame::deadline(self)
}

#[ink(message)]
Expand Down Expand Up @@ -225,7 +221,10 @@ mod back_to_the_future {
self.data.access_control = AccountId::from(ACCESS_CONTROL_PUBKEY);
self.data.button_lifetime = button_lifetime;
self.data.reward_token = reward_token;
self.data.last_press = Some(now);
self.data.ticket_token = ticket_token;

// NOTE: so that score never returns a 0
self.data.last_press = now;

Self::emit_event(
Self::env(),
Expand Down
37 changes: 8 additions & 29 deletions contracts/button/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ pub struct ButtonData {
pub button_lifetime: BlockNumber,
/// stores the last account that pressed The Button
pub last_presser: Option<AccountId>,
/// block number of the last press
pub last_press: Option<BlockNumber>,
/// block number of the last press, set to current block number at button start/reset
pub last_press: BlockNumber,
/// counter for the number of presses
pub presses: u128,
/// AccountId of the PSP22 ButtonToken instance on-chain
Expand Down Expand Up @@ -166,16 +166,16 @@ pub trait ButtonGame {
}

fn is_dead(&self, now: BlockNumber) -> bool {
now > self.deadline(now)
now > self.deadline()
}

fn deadline(&self, now: BlockNumber) -> BlockNumber {
fn deadline(&self) -> BlockNumber {
let ButtonData {
last_press,
button_lifetime,
..
} = self.get();
last_press.unwrap_or(now) + button_lifetime
last_press + button_lifetime
}

fn access_control(&self) -> AccountId {
Expand Down Expand Up @@ -244,27 +244,6 @@ pub trait ButtonGame {
.fire()
}

// fn transfer_tx<E>(
// &self,
// transfer_selector: [u8; 4],
// to: AccountId,
// value: Balance,
// ) -> Result<Result<(), PSP22Error>, InkEnvError>
// where
// E: Environment<AccountId = AccountId>,
// {
// build_call::<E>()
// .call_type(Call::new().callee(self.get().ticket_token))
// .exec_input(
// ExecutionInput::new(Selector::new(transfer_selector))
// .push_arg(to)
// .push_arg(value)
// .push_arg(vec![0x0]),
// )
// .returns::<Result<(), PSP22Error>>()
// .fire()
// }

fn mint_tx<E>(
&self,
to: AccountId,
Expand Down Expand Up @@ -317,15 +296,15 @@ pub trait ButtonGame {
let root_key = ::ink_primitives::Key::from([0x00; 32]);
let mut state = ::ink_storage::traits::pull_spread_root::<ButtonData>(&root_key);

let _score = self.score(now);
let score = self.score(now);

// mints reward tokens to pay out the reward
// contract needs to have a Minter role on the reward token contract
self.mint_tx::<E>(caller, score)??;

state.presses = presses + 1;
state.last_presser = Some(caller);
state.last_press = Some(now);
state.last_press = now;

swap(self.get_mut(), &mut state);

Expand Down Expand Up @@ -359,7 +338,7 @@ pub trait ButtonGame {

state.presses = 0;
state.last_presser = None;
state.last_press = None;
state.last_press = now;
swap(self.get_mut(), &mut state);

Ok(())
Expand Down
7 changes: 4 additions & 3 deletions contracts/early_bird_special/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ mod early_bird_special {
}

fn score(&self, now: BlockNumber) -> Balance {
let deadline = ButtonGame::deadline(self, now);
let deadline = ButtonGame::deadline(self);
(deadline - now) as Balance
}
}
Expand Down Expand Up @@ -118,8 +118,7 @@ mod early_bird_special {

#[ink(message)]
fn deadline(&self) -> BlockNumber {
let now = self.env().block_number();
ButtonGame::deadline(self, now)
ButtonGame::deadline(self)
}

#[ink(message)]
Expand Down Expand Up @@ -209,6 +208,8 @@ mod early_bird_special {
self.data.access_control = AccountId::from(ACCESS_CONTROL_PUBKEY);
self.data.button_lifetime = button_lifetime;
self.data.reward_token = reward_token;
self.data.ticket_token = ticket_token;
self.data.last_press = now;

Self::emit_event(
Self::env(),
Expand Down