// import "@stdlib/jetton"; import "./messages"; import "./wallet"; import "./linker"; import "./jetton_trait"; import "./staking"; message Deposit { amount: Int as coins; } message Withdraw { amount: Int; } const gas_consumption: Int = ton("0.01"); const withdraw_gas_consumption: Int = ton("0.05"); const deposit_gas_consumption: Int = ton("0.05"); contract TONB with TONBTrait { totalSupply: Int as coins; owner: Address; content: Cell?; mintable: Bool; first_linker: Address?; last_linker: Address?; n_linkers: Int = 0; staking_pool: Address?; init(owner: Address, content: Cell?) { self.totalSupply = 0; self.owner = owner; self.mintable = true; self.content = content; } receive(msg: Deposit) { let ctx: Context = context(); require(ctx.value >= deposit_gas_consumption, "not enough money for deposit"); self.mint(ctx.sender, msg.amount, ctx.sender); } receive() {} receive(msg: Withdraw) { let ctx: Context = context(); require(ctx.value >= withdraw_gas_consumption, "not enough money for withdraw"); self.burn(ctx.sender, msg.amount, ctx.sender); } }