Contract Overview
Balance:
0 MATIC
MATIC Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x30fcffafd9d88adb89532af1ab4ae0565ae2b1a9d10d613efc6fd053f2199f16 | 0x61038060 | 24233496 | 118 days 2 hrs ago | MicroBuddies: Deployer | IN | Create: Mutations | 0 MATIC | 0.073394794415 |
[ Download CSV Export ]
Contract Name:
Mutations
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 336 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.11; // | \/ (_) | _ \ | | | (_) // | \ / |_ ___ _ __ ___ | |_) |_ _ __| | __| |_ ___ ___ ™ // | |\/| | |/ __| '__/ _ \| _ <| | | |/ _` |/ _` | |/ _ \/ __| // | | | | | (__| | | (_) | |_) | |_| | (_| | (_| | | __/\__ \ // |_| |_|_|\___|_| \___/|____/ \__,_|\__,_|\__,_|_|\___||___/ 2021 import "./interfaces/IMutations.sol"; contract Mutations is IMutations { uint48[24] private waterbear = [ 9895705641217, 10995250561281, 12094762582273, 13194324672769, 26388480917763, 27487992611075, 28587672142083, 29687200874755, 30786712895747, 32006550978819, 15393246937348, 16492775145732, 17592354341124, 18691882615044, 19791394439428, 20890922713348, 21990434472196, 23089962942724, 24189474636036, 25370674135300, 8796160262406, 9895688601862, 10995234111750, 12137729097990 ]; uint48[24] private yeast = [ 7696665346561, 8796177170945, 9895705379329, 10995217203713, 12137695216129, 23089912545795, 24189558915587, 25289087386115, 26487433789955, 13194257170948, 14293768995332, 15393297269252, 16492825739780, 17592371249668, 18691966501380, 8796160328198, 9895688602118, 10995250561542, 12094728897030, 13237206778374 ]; uint48[24] private fungi = [ 7696648700673, 8796176974593, 9895688798977, 10995217203969, 12094728897281, 13237173224193, 23089963074307, 24189525099267, 25383610352387, 12094762517252, 13194290594564, 14293802550020, 15393314243332, 16492842582788, 17592354407172, 18691966501636, 7696631857926, 8796160197382, 9895688602374, 10995217007366, 12094796006150 ]; uint48[24] private virus = [ 6597136942081, 7696648635393, 8796176974849, 9895688668161, 10995267666945, 23089946231811, 24189524771843, 25289104098307, 26487433790467, 13194274145284, 14293785838596, 15393314309124, 16492842583044, 17592354276356, 18691865969668, 6597136942086, 7696665478150, 8796193883142, 9895722484742 ]; uint48[24] private bacteria = [ 6597136942337, 7696665412865, 8796177106177, 9895688799489, 23090080974083, 24279786915075, 12094745740548, 13194274080004, 14293785838852, 15393314309380, 16492842517764, 17592354407684, 18691966960900, 7696648635654, 8796160328966, 9895739196678, 11020970165510 ]; uint48[24] private amoeba = [ 6597120230913, 7696648635905, 8796177040897, 9895739131393, 23089996760579, 24189525165571, 25289104098819, 26388615857667, 27591257228803, 14293768930820, 15393280624132, 16492876400132, 17592388093444, 18691966567940, 6597120230918, 7696648635910, 8796177040902, 9917146662406 ]; uint48[24] private archaea = [ 6597120231169, 7696665347841, 8796177172225, 23090064000771, 24189592078083, 25383610353411, 15393364838148, 16492893308676, 17592421779204, 6597136942854, 7696648636166, 8796160329478, 9895688668934, 10995250628358 ]; uint48[24] private protist = [ 6597136943105, 7696665413633, 8796210857985, 23090047027203, 24279786915843, 17592421255172, 18691933341700, 19791495497732, 7696648701958, 8796176975878, 9895739131910 ]; uint48[24] private protozoa = [ 6597137008897, 7696648702209, 8796177172737, 9895738935553, 24189541878019, 25289053702403, 26487433791747, 17592370989316, 18691949398276, 19791461091588, 20890973505796, 21990551849220, 6597120166150, 7696665348358, 8817635166470 ]; uint48[24] private algae = [ 7696648702465, 8796177172993, 9895705577985, 10995267602945, 23089979853315, 24189542009347, 25289070348803, 26388615858691, 27591257229827, 15393347471876, 16492892785156, 17592404478468, 18691916171780, 19791428192772, 20890973309444, 6597153720838, 7696665479686, 8796177172998, 9895705446918, 10995233786374, 12094762191366 ]; uint256 private rWaterbear = 172215310431339865454664869390903082777576533745595712514; uint256 private rYeast = 172215684558587187023427118486724658760148746131770508034; uint256 private rFungi = 147503445673286764548201518353432901300625957459662733825; uint256 private rVirus = 122887736048128424420532989729623253781942800029118104321; uint256 private rBacteria = 147599976394930746583037216758420041367404104648082326017; uint256 private rAmoeba = 122983891163784623748681185902094766651162946645744943617; uint256 private rArchaea = 122983517019387506447209321800185510623001828193848263169; uint256 private rProtist = 122983892625353336863190147299750350219023666562816279041; uint256 private rProtozoa = 122983892625308564210752079539240100429286553480862106370; uint256 private rAlgae = 122983891163829402187238294473027256317680717655966024450; // Returns the max trait ID for a given rarity function getRarity(uint8 species, uint256 index) external view override returns (uint256 rarity) { if (species == 1) { rarity = BuddyLib.sliceNumber(rWaterbear, 8, index * 8); } else if (species == 2) { rarity = BuddyLib.sliceNumber(rYeast, 8, index * 8); } else if (species == 3) { rarity = BuddyLib.sliceNumber(rFungi, 8, index * 8); } else if (species == 4) { rarity = BuddyLib.sliceNumber(rVirus, 8, index * 8); } else if (species == 5) { rarity = BuddyLib.sliceNumber(rBacteria, 8, index * 8); } else if (species == 6) { rarity = BuddyLib.sliceNumber(rAmoeba, 8, index * 8); } else if (species == 7) { rarity = BuddyLib.sliceNumber(rArchaea, 8, index * 8); } else if (species == 8) { rarity = BuddyLib.sliceNumber(rProtist, 8, index * 8); } else if (species == 9) { rarity = BuddyLib.sliceNumber(rProtozoa, 8, index * 8); } else { rarity = BuddyLib.sliceNumber(rAlgae, 8, index * 8); } } function getMutation( uint8 species, uint8 trait, uint8 r1, uint8 r2, uint8 r3, uint8 r4, uint8 traitType ) external view override returns (uint8) { uint8 mutation = 255; uint48[24] memory mutations = getMutations(species); for (uint8 i = 0; i < mutations.length; i++) { if (mutations[i] == 0) { break; } uint8 mTraitType = uint8( BuddyLib.sliceNumber(mutations[i], 8, 0 * 8) ); if (traitType + 1 == mTraitType) { bool dMatched = false; bool matched = false; bool matched3 = false; for (uint8 j = 2; j < 5; j++) { uint8 mTrait = uint8( BuddyLib.sliceNumber(mutations[i], 8, j * 8) ); if (mTrait == 0) { matched3 = true; } else if (mTrait == trait) { dMatched = true; } else if ( mTrait == r1 || mTrait == r2 || mTrait == r3 || mTrait == r4 ) { // Dominant trait must be the rarest of the mutation if (mTrait > trait) { break; } else if (matched) { matched3 = true; } else { matched = true; } } } if (dMatched && matched && matched3) { return uint8(BuddyLib.sliceNumber(mutations[i], 8, 5 * 8)); } } else if (traitType + 1 < mTraitType) { break; } } return mutation; } function getMutations(uint8 species) private view returns (uint48[24] memory mutations) { if (species == 1) { mutations = waterbear; } else if (species == 2) { mutations = yeast; } else if (species == 3) { mutations = fungi; } else if (species == 4) { mutations = virus; } else if (species == 5) { mutations = bacteria; } else if (species == 6) { mutations = amoeba; } else if (species == 7) { mutations = archaea; } else if (species == 8) { mutations = protist; } else if (species == 9) { mutations = protozoa; } else { mutations = algae; } return mutations; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.11; import "../libraries/BuddyLib.sol"; interface IMutations { function getMutation( uint8 species, uint8 trait, uint8 r1, uint8 r2, uint8 r3, uint8 r4, uint8 traitType ) external view returns (uint8); function getRarity(uint8 species, uint256 index) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.11; // | \/ (_) | _ \ | | | (_) // | \ / |_ ___ _ __ ___ | |_) |_ _ __| | __| |_ ___ ___ ™ // | |\/| | |/ __| '__/ _ \| _ <| | | |/ _` |/ _` | |/ _ \/ __| // | | | | | (__| | | (_) | |_) | |_| | (_| | (_| | | __/\__ \ // |_| |_|_|\___|_| \___/|____/ \__,_|\__,_|\__,_|_|\___||___/ 2021 library BuddyLib { //Specials // 0 = None // 1 = Blackhole // 2 = Founder struct Buddy { uint8 species; uint8[30] traits; uint8 gen; uint8 repMax; uint8 repCur; uint8 special; uint256 dna; uint256 birth; uint256 totalProduced; uint256 lastRewardTime; uint256 parent; uint256 lock; } function generate(uint256 dna) external view returns (Buddy memory base) { uint8[] memory unpack = decode(dna); base.species = unpack[0]; for (uint8 i = 1; i < 31; i++) { base.traits[i - 1] = unpack[i]; } base.birth = block.timestamp; base.totalProduced = 0; base.lastRewardTime = block.timestamp; base.dna = dna; base.gen = unpack[31]; base.repMax = 5; base.repCur = 0; base.lock = block.timestamp - 300; return base; } function decode(uint256 dna) public pure returns (uint8[] memory) { uint8[] memory traits = new uint8[](32); uint256 i; for (i = 0; i < 32; i++) { traits[i] = uint8(sliceNumber(dna, 8, i * 8)); } return traits; } /// @dev given a number get a slice of any bits, at certain offset /// @param _n a number to be sliced /// @param _nbits how many bits long is the new number /// @param _offset how many bits to skip function sliceNumber( uint256 _n, uint256 _nbits, uint256 _offset ) public pure returns (uint256) { // mask is made by shifting left an offset number of times uint256 mask = (pow(2, _nbits) - 1) << _offset; // AND n with mask, and trim to max of _nbits bits return uint256((_n & mask) >> _offset); } function pow(uint256 A, uint256 B) public pure returns (uint256) { return A**B; } function encode(uint8[] memory traits) external pure returns (uint256 dna) { dna = 0; for (uint256 i = 0; i < 32; i++) { dna = dna << 8; // bitwise OR trait with _genes dna = dna | traits[31 - i]; } } }
{ "optimizer": { "enabled": true, "runs": 336 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": { "contracts/libraries/BuddyLib.sol": { "BuddyLib": "0x900d069f9934861b83656992b530c616b327b0b4" } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint8","name":"species","type":"uint8"},{"internalType":"uint8","name":"trait","type":"uint8"},{"internalType":"uint8","name":"r1","type":"uint8"},{"internalType":"uint8","name":"r2","type":"uint8"},{"internalType":"uint8","name":"r3","type":"uint8"},{"internalType":"uint8","name":"r4","type":"uint8"},{"internalType":"uint8","name":"traitType","type":"uint8"}],"name":"getMutation","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"species","type":"uint8"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRarity","outputs":[{"internalType":"uint256","name":"rarity","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
610380604052650900060501016080908152650a000801010160a052650b000807010160c052650c000b09010160e0526518000c080103610100526519000c09010361012052651a00160b010361014052651b001710010361016052651c001716010361018052651d1c1b1a01036101a052650e00050401046101c052650f00060101046101e0526510000a080104610200526511000b060104610220526512000b090104610240526513000c070104610260526514000c090104610280526515000d0a01046102a0526516000d0b01046102c052651713120501046102e05265080004020106610300526509000501010661032052650a000706010661034052650b0a09080106610360526200011b90600090601862000adf565b5060408051610280810182526507000501020181526508000504020160208201526509000601020191810191909152650a00060402016060820152650b0a0703020160808201526515000a09020360a08201526516001211020360c08201526517001312020360e082015265181716150203610100820152650c0007030204610120820152650d0007060204610140820152650e0008040204610160820152650f00090502046101808201526510000b0a02046101a0820152651100100602046101c0820152650800040302066101e082015265090005010206610200820152650a0008010206610220820152650b0006050206610240820152650c0a070202066102608201526200023290600590601462000adf565b50604080516102a0810182526507000403030181526508000501030160208201526509000504030191810191909152650a00060403016060820152650b00060503016080820152650c0a0502030160a08201526515000d0c030360c0820152651600100d030360e082015265171615140303610100820152650b0008060304610120820152650c0009010304610140820152650d0009060304610160820152650e0009070304610180820152650f000a0603046101a08201526510000a0903046101c0820152651100100603046101e0820152650700030203066102008201526508000401030661022082015265090005010306610240820152650a0006010306610260820152650b000a0503066102808201526200035690600a90601562000adf565b5060408051610260810182526506000401040181526507000402040160208201526508000501040191810191909152650900050204016060820152650a000906040160808201526515000c0b040360a08201526516001008040360c08201526517001411040360e082015265181716150403610100820152650c0008060404610120820152650d0008070404610140820152650e0009080404610160820152650f000a0604046101808201526510000a0704046101a08201526511000a0804046101c0820152650600040104066101e08201526507000503040661020082015265080006030406610220820152650900070604066102408201526200046090600f90601362000adf565b50604080516102208101825265060004010501815265070005020501602082015265080005030501918101919091526509000504050160608201526515001413050360808201526516151413050360a0820152650b000706050460c0820152650c000805050460e0820152650d0008070504610100820152650e0009080504610120820152650f000a0505046101408201526510000a090504610160820152651100100d0504610180820152650700040205066101a0820152650800040305066101c0820152650900080505066101e0820152650a06050305066102008201526200055090601490601162000adf565b50604080516102408101825265060003020601815265070004020601602082015265080005020601918101919091526509000804060160608201526515000f0e06036080820152651600100e060360a08201526517001411060360c08201526518001413060360e082015265191817160603610100820152650d0007050604610120820152650e0007060604610140820152650f000c0a06046101608201526510000c0b0604610180820152651100100706046101a0820152650600030206066101c0820152650700040206066101e082015265080005020606610200820152650905040106066102208201526200064d90601990601262000adf565b50604080516101c0810182526506000302070181526507000501070160208201526508000504070191810191909152651500131007036060820152651600140b070360808201526517161514070360a0820152650e000c0b070460c0820152650f000d0c070460e08201526510000e0d070461010082015265060004010706610120820152650700040207066101408201526508000403070661016082015265090005020706610180820152650a00080207066101a08201526200071690601e90600e62000adf565b5060408051610160810182526506000401080181526507000502080160208201526508000706080191810191909152651500120d080360608201526516151413080360808201526510000e05080460a08201526511000e0c080460c0820152651200110f080460e0820152650700040308066101008201526508000501080661012082015265090008040806610140820152620007b890602390600b62000adf565b50604080516101e0810182526506000402090181526507000403090160208201526508000504090191810191909152650900080109016060820152651600110d090360808201526517001110090360a08201526518171615090360c08201526510000b06090460e08201526511000f0109046101008201526512000f0209046101208201526513000f0e09046101408201526514001308090461016082015265060003010906610180820152650700050109066101a0820152650805040309066101c08201526200088e90602890600f62000adf565b50604080516102a08101825265070004030a01815265080005040a01602082015265090006040a0191810191909152650a0009050a0160608201526515000e0c0a036080820152651600110f0a0360a0820152651700120e0a0360c082015265180014130a0360e082015265191817160a03610100820152650e000b020a04610120820152650f000d040a046101408201526510000d050a046101608201526511000d060a046101808201526512000d0c0a046101a08201526513000f0b0a046101c082015265060005010a066101e082015265070005030a0661020082015265080005040a0661022082015265090006020a06610240820152650a0007010a06610260820152650b0008010a06610280820152620009b290602d90601562000adf565b507707060301171510010d09050417120c031814110308060402603255770706040114130d010b09060114120f0614130d04060503026033557706040201141311020a09060114130c0714121102060402016034557705030201141311010a08050114120d0114120f01050403016035557706050402141310030a08070214130f041513120205040201603655770504030114100f040c0b080414130f0614130e0405040201603755770504020114110c040d0c0a0214130d0414120c04050402016038557705040302141311020f0e0b0314120c0215130e0305040201603955770504030214110f0b0f0c080515120f0914110c0705040302603a5577050403011412110c0d0b090614110d0714100d0906050302603b5534801562000ad857600080fd5b5062000b9f565b60058301918390821562000b765791602002820160005b8382111562000b4057835183826101000a81548165ffffffffffff021916908365ffffffffffff160217905550926020019260060160208160050104928301926001030262000af6565b801562000b745782816101000a81549065ffffffffffff021916905560060160208160050104928301926001030262000b40565b505b5062000b8492915062000b88565b5090565b5b8082111562000b84576000815560010162000b89565b610c028062000baf6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063192d5bfc1461003b5780634de3bda914610061575b600080fd5b61004e610049366004610a4a565b610086565b6040519081526020015b60405180910390f35b61007461006f366004610a74565b610396565b60405160ff9091168152602001610058565b60008260ff16600114156101345773900d069f9934861b83656992b530c616b327b0b4635edc81f160325460088560086100c09190610b10565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401602060405180830381865af4158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610b2f565b9050610390565b8260ff166002141561016c5773900d069f9934861b83656992b530c616b327b0b4635edc81f160335460088560086100c09190610b10565b8260ff16600314156101a45773900d069f9934861b83656992b530c616b327b0b4635edc81f160345460088560086100c09190610b10565b8260ff16600414156101dc5773900d069f9934861b83656992b530c616b327b0b4635edc81f160355460088560086100c09190610b10565b8260ff16600514156102145773900d069f9934861b83656992b530c616b327b0b4635edc81f160365460088560086100c09190610b10565b8260ff166006141561024c5773900d069f9934861b83656992b530c616b327b0b4635edc81f160375460088560086100c09190610b10565b8260ff16600714156102845773900d069f9934861b83656992b530c616b327b0b4635edc81f160385460088560086100c09190610b10565b8260ff16600814156102bc5773900d069f9934861b83656992b530c616b327b0b4635edc81f160395460088560086100c09190610b10565b8260ff16600914156102f45773900d069f9934861b83656992b530c616b327b0b4635edc81f1603a5460088560086100c09190610b10565b73900d069f9934861b83656992b530c616b327b0b4635edc81f1603b5460088560086103209190610b10565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401602060405180830381865af4158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d9190610b2f565b90505b92915050565b600060ff816103a48a61072e565b905060005b60188160ff16101561071d57818160ff16601881106103ca576103ca610b48565b602002015165ffffffffffff166103e05761071d565b600073900d069f9934861b83656992b530c616b327b0b4635edc81f1848460ff166018811061041157610411610b48565b60200201516040516001600160e01b031960e084901b16815265ffffffffffff90911660048201526008602482015260006044820152606401602060405180830381865af4158015610467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048b9190610b2f565b905060ff811661049c876001610b5e565b60ff1614156106ec576000808060025b60058160ff16101561061457600073900d069f9934861b83656992b530c616b327b0b4635edc81f1898960ff16601881106104e9576104e9610b48565b602002015160086104fa8682610b83565b6040516001600160e01b031960e086901b16815265ffffffffffff9093166004840152602483019190915260ff166044820152606401602060405180830381865af415801561054d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105719190610b2f565b905060ff81166105845760019250610601565b8f60ff168160ff16141561059b5760019450610601565b8e60ff168160ff1614806105b457508d60ff168160ff16145b806105c457508c60ff168160ff16145b806105d457508b60ff168160ff16145b15610601578f60ff168160ff1611156105ed5750610614565b83156105fc5760019250610601565b600193505b508061060c81610bac565b9150506104ac565b5082801561061f5750815b80156106285750805b156106e45773900d069f9934861b83656992b530c616b327b0b4635edc81f1878760ff166018811061065c5761065c610b48565b60200201516040516001600160e01b031960e084901b16815265ffffffffffff90911660048201526008602482015260286044820152606401602060405180830381865af41580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d69190610b2f565b975050505050505050610723565b50505061070a565b60ff81166106fb876001610b5e565b60ff16101561070a575061071d565b508061071581610bac565b9150506103a9565b50909150505b979650505050505050565b610736610a1a565b8160ff16600114156107a55760408051610300810191829052906000906018908280855b82829054906101000a900465ffffffffffff1665ffffffffffff168152602001906006019060208260050104928301926001038202915080841161075a575094979650505050505050565b8160ff16600214156107ec57604080516103008101918290526005805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff16600314156108335760408051610300810191829052600a805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff166004141561087a5760408051610300810191829052600f805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff16600514156108c157604080516103008101918290526014805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff166006141561090857604080516103008101918290526019805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff166007141561094f5760408051610300810191829052601e805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff166008141561099657604080516103008101918290526023805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b8160ff16600914156109dd57604080516103008101918290526028805465ffffffffffff16825290916018908260066020860180841161075a575094979650505050505050565b60408051610300810191829052602d805465ffffffffffff16825290916018908260066020860180841161075a579050505050505090505b919050565b6040518061030001604052806018906020820280368337509192915050565b803560ff81168114610a1557600080fd5b60008060408385031215610a5d57600080fd5b610a6683610a39565b946020939093013593505050565b600080600080600080600060e0888a031215610a8f57600080fd5b610a9888610a39565b9650610aa660208901610a39565b9550610ab460408901610a39565b9450610ac260608901610a39565b9350610ad060808901610a39565b9250610ade60a08901610a39565b9150610aec60c08901610a39565b905092959891949750929550565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610b2a57610b2a610afa565b500290565b600060208284031215610b4157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff03821115610b7b57610b7b610afa565b019392505050565b600060ff821660ff84168160ff0481118215151615610ba457610ba4610afa565b029392505050565b600060ff821660ff811415610bc357610bc3610afa565b6001019291505056fea264697066735822122005b87a9edc85cf932a56a82367d7a069e1bd894e33677488a7833591a54c423e64736f6c634300080b0033
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.