https://discourse.xion.burnt.com/t/deploy-blockx-roulette-and-rand-generator-smart-contracts/58
https://twitter.com/BlockX_Fun
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.
Roulette Smart Contract
https://github.com/NFTSpin
This smart contract is for letting users bet on the roulette table, which consists of numbers from 0 ~ 36 with their favorite tokens.
https://github.com/SCV-Security/PublicReports/blob/bc69fc065cbd4aeff7798b1e8d000da30750d0a4/BlockX%2FBlockX%20-%20BlockX-Spin%20-%20Audit%20Report%20v1.0.pdf
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.
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>,
},
}
https://www.mintscan.io/xion-testnet/address/xion1nppfyjj7g2zjtw5pdftfvejw57t9repgmrc86uu43xwn5pk76tzqcyahr2