Skip to content

Commit 8fba2e3

Browse files
committed
fix: small tweaks to final guess contract
- Make both constants consistent as references - Rename `reset_guess` to `reset_number` - Add private readonly `number` getter
1 parent 0fa698b commit 8fba2e3

File tree

1 file changed

+11
-6
lines changed
  • contracts/guess-the-number/src

1 file changed

+11
-6
lines changed

contracts/guess-the-number/src/lib.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use error::Error;
99
#[contract]
1010
pub struct GuessTheNumber;
1111

12-
const THE_NUMBER: Symbol = symbol_short!("n");
12+
const THE_NUMBER: &Symbol = &symbol_short!("n");
1313
pub const ADMIN_KEY: &Symbol = &symbol_short!("ADMIN");
1414

1515
#[contractimpl]
@@ -32,27 +32,27 @@ impl GuessTheNumber {
3232
// Set the admin in storage
3333
Self::set_admin(env, admin);
3434
// Set a random number between 1 and 10
35-
Self::reset_guess(env);
35+
Self::reset_number(env);
3636
}
3737

3838
/// Update the number. Only callable by admin.
3939
pub fn reset(env: &Env) {
4040
Self::require_admin(env);
41-
Self::reset_guess(env);
41+
Self::reset_number(env);
4242
}
4343

4444
// Private function to reset the number to a new random value
4545
// which doesn't require auth from the admin
46-
fn reset_guess(env: &Env) {
46+
fn reset_number(env: &Env) {
4747
let new_number: u64 = env.prng().gen_range(1..=10);
48-
env.storage().instance().set(&THE_NUMBER, &new_number);
48+
env.storage().instance().set(THE_NUMBER, &new_number);
4949
}
5050

5151
/// Guess a number between 1 and 10
5252
pub fn guess(env: &Env, a_number: u64, guesser: Address) -> Result<bool, Error> {
5353
let xlm_client = xlm::token_client(env);
5454
let contract_address = env.current_contract_address();
55-
let guessed_it = a_number == env.storage().instance().get::<_, u64>(&THE_NUMBER).unwrap();
55+
let guessed_it = a_number == Self::number(env).unwrap();
5656
if guessed_it {
5757
let balance = xlm_client.balance(&contract_address);
5858
if balance == 0 {
@@ -88,6 +88,11 @@ impl GuessTheNumber {
8888
}
8989

9090
/// readonly function to get the current number
91+
pub fn number(env: &Env) -> Option<u64> {
92+
env.storage().instance().get(THE_NUMBER)
93+
}
94+
95+
/// readonly function to get the current admin
9196
pub fn admin(env: &Env) -> Option<Address> {
9297
env.storage().instance().get(ADMIN_KEY)
9398
}

0 commit comments

Comments
 (0)