xion

Prop 37: Deploy Roulette Smart Contracts for Blockx.

Link to discourse post

https://discourse.xion.burnt.com/t/deploy-blockx-roulette-and-rand-generator-smart-contracts/58

Developer Information

Link to Developer/Company

https://twitter.com/BlockX_Fun

Developer Description

Jason : Specialize in smart contract development and blockchain architecture.

Kevan: As a dynamic business strategist and web3 visionary , Kevan is an accomplished leader in the blockchain sector with a proven track record.

Bikas: The senior engineer with 6 years of experience in IT industry with the ability to indetify and solve complex technical issues.

Peter: Experienced backend developer adept in all stages of advanced web development.

Philip: As a front-end developer , Philip specializes in the modern front-end frameworks and web3 integration.

William: Specialized in designing and implementing user-facing features for websites and applications.

Contract Details

Contract Name

Roulette Smart Contract

Contract Source Link

https://github.com/NFTSpin

Contract Description and Intended Use

This smart contract is for letting users bet on the roulette table, which consists of numbers from 0 ~ 36 with their favorite tokens.

Audit and Execution Information

Audit Report Link

https://github.com/SCV-Security/PublicReports/blob/bc69fc065cbd4aeff7798b1e8d000da30750d0a4/BlockX%2FBlockX%20-%20BlockX-Spin%20-%20Audit%20Report%20v1.0.pdf

Audit Process Description

Users deposit funds into the Roulette-SC contract within a specified amount of time along with their chosen bet direction.

The Rand Generator contract will determine the result, where the random number is queried from BandChain using IBC.

Execution Messages Description

pub enum ExecuteMsg {

// This message is to update configuration of smart contract like NFT contract, every round seconds, operator, platform fee and rand generation smart contract.

UpdateConfig {

    config: Config,

    rand_generator: Addr,

},

// This message is to add the room with different denoms of tokens like Xion and USDC. Each room owner will be selected as a specific NFT holder.

AddRoom {

    room_info: RoomConfig,

},

// This message is for users to bet with their tokens into various directions as their want but only to existing rooms(only using accepted tokens).

Bet {

    room_id: u64,

    bet_info: Vec<BetConfig>,

},

// This message is to close round after the round time is expired.

CloseRound {

    winner: u32,

},

//This message is for room owners to withdraw funds from their rooms as they want.

WithdrawFromPool {

    room_id: u64,

    amount: Uint128,

},

//This message is for admin to change the room configuration like room_id and name

ChangeRoomConfig {

    room_id: u64,

    room_name: String,

    nft_id: String,

},

//This message is for room owners to set the max bet and minimum bet amount which will be based on the liquidity size.

UpdateBetLimit {

    room_id: u64,

    max_bet: Uint128,

    min_bet: Uint128,

},

//This message is for admin to hault the smart contract whenever the urgent issue happens.

Hault {},

//This message is for admin to make the smart contract live after issues fixed. (opposite function of hault)

NotHault {},

//This message is for two step authentication to change the admin. So the admin request the address which will be replaced as the admin.

RequestAdminChange {

    new_admin: Addr,

},

//This message is to accept the requested admin address as the admin address.

AcceptAdminChange {},

//This message is for distributing reward to winner users after the winner number is decided.

DistributeReward {

    start_after: Option<RoundOffset>,

},

}

Deployment Information

Testnet Explorer Link

https://www.mintscan.io/xion-testnet/address/xion1nppfyjj7g2zjtw5pdftfvejw57t9repgmrc86uu43xwn5pk76tzqcyahr2