Transaction
85802E86DF59E6…0780F51E20F0
Block 26,344 · index 0 · indexed
Summary
- Hash
- 85802E86DF59E69EB77364D2ACB29DD906C897C84A443049EB1E0780F51E20F0
- Block
- 26,344
- Size
- 2308 bytes
- Gas used
- 7,204,296 / 8,645,215
- Fee
- 1000000ugnot
- Memo
- gnopublish
- Status
- success
Messages
Arguments · 9
- #1wikicoin
- #2README.md
- #3# `gno.land/r/moul/demo/wikicoin/v0` _TODO: describe this package._ <!-- BEGIN GNOCONTRACTS FOOTER (generated by `make readmes`; do not edit below) --> --- Part of **[moul/gno-contracts](https://github.com/moul/gno-contracts)** — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage. **Dependency graph:**  > ⚠️ **Disclaimer:** provided as-is, without warranty; not security-audited. Full disclaimer: [DISCLAIMER](https://github.com/moul/gno-contracts/blob/main/DISCLAIMER.md). <!-- END GNOCONTRACTS FOOTER -->
- #4contract.gno
- #5// based on Wikipedia's Solidity example: https://en.wikipedia.org/wiki/Solidity package wikicoin import ( "chain/runtime/unsafe" "gno.land/p/nt/avl/v0" "gno.land/p/nt/ufmt/v0" ) var balances = avl.NewTree() // addr -> balance var minter address // Constructor code is only run when the contract is created func init() { minter = unsafe.OriginCaller() } func Mint(cur realm, receiver address, amount uint) { if unsafe.OriginCaller() != minter { panic("restricted") } curBalance := BalanceOf(receiver) newBalance := curBalance + amount balances.Set(receiver.String(), newBalance) } func Send(cur realm, receiver address, amount uint) { sender := unsafe.OriginCaller() senderBalance := BalanceOf(sender) if amount > senderBalance { panic(ufmt.Sprintf("insufficient balance: %d", senderBalance)) } receiverBalance := BalanceOf(receiver) balances.Set(sender.String(), senderBalance-amount) balances.Set(receiver.String(), receiverBalance+amount) } func BalanceOf(addr address) uint { balance := balances.Get(addr.String()) if balance == nil { return 0 } return balance.(uint) }
- #6gnomod.toml
- #7module = "gno.land/r/moul/demo/wikicoin/v0" gno = "0.9"
- #8/gno.MemPackageType
- #9 MPUserProd
Result log
msg:0,success:true,log:,events:[]