Transaction Details
SMART CONTRACT
Transaction Hash
89f662deda6141096cc3153367b4d664a6913d4ff4884c32a8d2831535911089
Block Status
Smart Contract State
SCID Reserves
| SCID | Amount (Atomic Units) |
|---|---|
| 0000000000000000000000000000000000000000000000000000000000000000 | 11100000 |
String Variables
| Key | Value |
|---|---|
| C | 2f2f203d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a2f2f20204465726f566f746520e280942044564d2d424153494320766f74696e6720636f6e74726163742028537461726761746520332e352e352d313432290a2f2f0a2f2f202050524f544f434f4c0a2f2f20202020312e20437265617465506f6c6c2020203a2063726561746f7220706179732061204e4f4e2d524546554e4441424c45206372656174696f6e2066656520636f6d70757465640a2f2f202020202020202020202020202020202020202020202066726f6d207265717569726564436f6c6c61746572616c20616e64206475726174696f6e2e20546865206665652069730a2f2f2020202020202020202020202020202020202020202020626f6f6b656420746f207468652070726f6a656374206f776e65722e204974206973206e6576657220726566756e64656420616e640a2f2f20202020202020202020202020202020202020202020206e657665722074616b656e2066726f6d20766f74657220636f6c6c61746572616c2e0a2f2f20202020322e20456e746572506f6c6c202020203a20766f746572206c6f636b732065786163746c79207265717569726564436f6c6c61746572616c2e2054686520636f6e74726163740a2f2f20202020202020202020202020202020202020202020206772616e74732065786163746c79204f4e4520706f6c6c2d73636f70656420766f74696e672072696768742e0a2f2f20202020332e20566f74652020202020202020203a20636f6e73756d65732074686520766f74696e672072696768742c207265636f726473206f6e65206f7074696f6e2e0a2f2f20202020342e2046696e616c697a65506f6c6c203a20616674657220706f6c6c5f656e642c20636c6f73657320766f74696e672e20416e796f6e65206d61792066696e616c697a652e0a2f2f20202020352e20526566756e64202020202020203a206561636820766f74657220636c61696d73206261636b207468652046554c4c206c6f636b656420636f6c6c61746572616c2e0a2f2f0a2f2f20204d4f4e45590a2f2f20202020416c6c20616d6f756e747320617265204445524f2061746f6d696320756e6974732e2031204445524f203d203130303030302061746f6d732e0a2f2f202020204e6f20666c6f6174696e6720706f696e74206973207573656420616e7977686572652e0a2f2f0a2f2f202044564d2052554e54494d452052554c4553205448495320434f44452052454c494553204f4e2028766572696669656420696e206465726f68652f64766d290a2f2f202020202d204c4f41442829206f6e2061206e657665722d53544f524564206b65792050414e49435320616e64206469736361726473207468652077686f6c652074782e0a2f2f202020202020457665727920706f737369626c792d6672657368206b6579206973207468657265666f7265204558495354532d677561726465642e0a2f2f202020202d2052455455524e203020636f6d6d6974732c2052455455524e20213d2030206469736361726473206576657279206368616e67652061746f6d6963616c6c792e0a2f2f202020202020416c6c2076616c69646174696f6e2068617070656e73204245464f5245207468652066697273742053544f5245202861746f6d6963206775617264206f72646572292e0a2f2f202020202d2055696e7436342061726974686d657469632077726170732073696c656e746c792c20736f206576657279206164646974696f6e20746861742063616e0a2f2f2020202020207265616c6973746963616c6c792067726f77206973206f766572666c6f772d636865636b65642e0a2f2f202020202d204f6e6c79202f2f20616e64202f2a202a2f20636f6d6d656e74732061726520757365642e202027206973206120636861722d6c69746572616c20737461727465720a2f2f202020202020616e6420627265616b7320746865206c657865722e0a2f2f202020202d20537472696e67202b2055696e74363420636f6e636174656e6174696f6e20697320737570706f7274656420616e64207969656c6473206120537472696e672e0a2f2f0a2f2f2020564f54494e47205249474854204d4f44454c20202873656520646f63732f564f54452d544f4b454e2e6d64290a2f2f202020204445524f206e61746976652061737365747320617265207472616e7366657261626c65206265747765656e2077616c6c6574732c20736f2061206c69746572616c0a2f2f202020206e6f6e2d7472616e7366657261626c6520746f6b656e2063616e6e6f7420626520656e666f726365642062792074686520636861696e2e2054686520766f74696e670a2f2f202020207269676874206973207468657265666f726520616e20494e5445524e414c20636f6e74726163742062616c616e6365206b657965642062790a2f2f2020202028706f6c6c49442c20766f746572292e2049742063616e6e6f74206265207472616e736665727265642c2072652d736f6c642c20726575736564206f72207370656e740a2f2f2020202062656361757365206e6f2066756e6374696f6e2065786973747320746f206d6f76652069742e20546869732069732074686520636c6f736573740a2f2f202020204445524f2d6e6174697665206571756976616c656e74206f66206120736f756c626f756e64202f206e6f6e2d7472616e7366657261626c6520746f6b656e20616e642069740a2f2f202020207072657365727665732065766572792070726f746f636f6c2072756c652e0a2f2f203d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d0a0a46756e6374696f6e20496e697469616c697a6528292055696e7436340a202020203130202053544f524528226f776e6572222c205349474e45522829290a202020203230202053544f52452822706f6c6c5f636f756e74222c2030290a202020203330202053544f524528226665655f62616c616e6365222c2030290a202020203430202052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f20204665654261736973506f696e7473286461797329203a2064657465726d696e6973746963206372656174696f6e2d666565207363686564756c652e0a2f2f2020202064617973203c3d2037202020202020202020202d3e20312e3030252020202831303020627073290a2f2f2020202065616368206578747261207374617274656420372d64617920706572696f64202d3e202b302e35302520282b353020627073290a2f2f2020536f3a20312d37203d20312e30252c20382d3134203d20312e35252c2031352d3231203d20322e30252c2032322d3238203d20322e35252c2032392d3335203d20332e3025202e2e2e0a2f2f202064617973203c3d2037206d61707320746f203130302062707320626563617573652028646179732d31292f37203d3d203020666f72206461797320696e205b312c375d2e0a2f2f202054686973206973206365696c2828646179732d37292f372920666f722064617973203e2037207772697474656e207769746820696e7465676572206469766973696f6e206f6e6c792e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e204665654261736973506f696e747328646179732055696e743634292055696e7436340a202020203130202044494d207765656b732c206270732041532055696e7436340a202020203230202049462064617973203c3d2037205448454e20474f544f2036300a20202020333020204c4554207765656b73203d202864617973202d203129202f20370a20202020343020204c455420627073203d20313030202b203530202a207765656b730a202020203530202052455455524e206270730a202020203630202052455455524e203130300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020437265617465506f6c6c203a207061797320746865206e6f6e2d726566756e6461626c65206372656174696f6e2066656520616e64206f70656e732074686520706f6c6c2e0a2f2f202020207265717569726564436f6c6c61746572616c203a20766f74657220636f6c6c61746572616c20696e2041544f4d532c203130302e2e312c3030302c303030204445524f0a2f2f202020206475726174696f6e44617973202020202020203a203e3d2031206461790a2f2f202020206f7074696f6e436f756e7420202020202020203a203e3d2032206f7074696f6e730a2f2f202054686520666565203d207265717569726564436f6c6c61746572616c202a204665654261736973506f696e7473286475726174696f6e4461797329202f2031303030302e0a2f2f20204974206d75737420617272697665206173204445524f56414c5545282920616e6420697320616464656420746f206665655f62616c616e6365202870726f6a6563742066756e6473292e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e20437265617465506f6c6c287265717569726564436f6c6c61746572616c2055696e7436342c206475726174696f6e446179732055696e7436342c206f7074696f6e436f756e742055696e743634292055696e7436340a202020203520202044494d207069642c206270732c206665652c206f70742041532055696e7436340a20202020313020204946207265717569726564436f6c6c61746572616c203e3d20313030202a20313030303030205448454e20474f544f2033300a202020203230202052455455524e203120202020202020202020202020202020202020202020202020202020202020202020202f2f20636f6c6c61746572616c2062656c6f7720313030204445524f0a20202020333020204946207265717569726564436f6c6c61746572616c203c3d2031303030303030202a20313030303030205448454e20474f544f2035300a202020203430202052455455524e203220202020202020202020202020202020202020202020202020202020202020202020202f2f20636f6c6c61746572616c2061626f766520312c3030302c303030204445524f0a20202020353020204946206475726174696f6e44617973203e3d2031205448454e20474f544f2037300a202020203630202052455455524e203320202020202020202020202020202020202020202020202020202020202020202020202f2f20696e76616c6964206475726174696f6e0a20202020373020204946206f7074696f6e436f756e74203e3d2032205448454e20474f544f2039300a202020203830202052455455524e203420202020202020202020202020202020202020202020202020202020202020202020202f2f206e656564206174206c656173742074776f206f7074696f6e730a20202020393020204946204558495354532822706f6c6c5f636f756e742229205448454e20474f544f203131300a202020203130302053544f52452822706f6c6c5f636f756e74222c2030290a20202020313130204c455420706964203d204c4f41442822706f6c6c5f636f756e742229202b20310a202020203132302053544f52452822706f6c6c5f636f756e74222c20706964290a0a202020202f2f2066656520696e20626173697320706f696e74732c207468656e2061746f6d732e204f72646572206d6174746572733a206d756c7469706c792066697273742069730a202020202f2f207361666520686572652062656361757365207265717569726564436f6c6c61746572616c203c3d20316531312061746f6d7320616e6420627073203c3d207e373630300a202020202f2f20666f7220616e79207265616c6973746963206475726174696f6e2c20736f207468652070726f64756374206973206661722062656c6f7720325e36342e0a20202020313330204c455420627073203d204665654261736973506f696e7473286475726174696f6e44617973290a20202020313430204c455420666565203d207265717569726564436f6c6c61746572616c202a20627073202f2031303030300a20202020313530204946204445524f56414c55452829203d3d20666565205448454e20474f544f203137300a202020203136302052455455524e203520202020202020202020202020202020202020202020202020202020202020202020202f2f2077726f6e67206372656174696f6e206665652061747461636865640a0a202020203137302049462045584953545328226665655f62616c616e63652229205448454e20474f544f203139300a202020203138302053544f524528226665655f62616c616e6365222c2030290a202020203139302053544f524528226665655f62616c616e6365222c204c4f414428226665655f62616c616e63652229202b20666565290a0a202020203230302053544f52452822705f636f6c6c61746572616c5f22202b207069642c207265717569726564436f6c6c61746572616c290a202020203231302053544f52452822705f6475726174696f6e5f22202b207069642c206475726174696f6e44617973290a202020203232302053544f52452822705f6f7074696f6e735f22202b207069642c206f7074696f6e436f756e74290a202020203233302053544f52452822705f63726561746f725f22202b207069642c205349474e45522829290a202020203234302053544f52452822705f6665655f22202b207069642c20666565290a202020203235302053544f52452822705f73746172745f22202b207069642c20424c4f434b5f54494d455354414d502829290a202020203236302053544f52452822705f656e645f22202b207069642c20424c4f434b5f54494d455354414d502829202b206475726174696f6e44617973202a203836343030290a202020203237302053544f52452822705f7374617475735f22202b207069642c203129202020202020202020202020202020202f2f2031203d206163746976650a0a202020202f2f205a65726f2d696e697469616c69736520657665727920636f756e74657220746861742061206c617465722066756e6374696f6e2052454144532d4245464f52452d57524954452e0a202020202f2f2044564d20604c4f4144282960206f6e2061206e657665722d53544f524564206b65792050414e49435320776974682022556e68616e646c656420646174615f74797065220a202020202f2f20616e64206469736361726473207468652077686f6c6520747820287665726966696564206f6e20746865207265616c20696e746572707265746572292c20736f207468650a202020202f2f20666972737420766f74657220616e64207468652066697273742062616c6c6f7420776f756c6420626f74682062652072656a656374656420776974686f757420746869732e0a202020202f2f20705f766f7465735f20203a20746f74616c2062616c6c6f747320636173742020202020202020287265616420627920566f7465290a202020202f2f20705f766f746572735f203a20756e69717565206465706f7369746f7273202020202020202020287265616420627920456e746572506f6c6c290a202020202f2f20705f74616c6c795f5f3c6f70743e203a207065722d6f7074696f6e20636f756e747320202020287265616420627920566f74652c206f6e6520706572206f7074696f6e290a202020203238302053544f52452822705f766f7465735f22202b207069642c20302920202020202020202020202020202020202f2f20746f74616c2062616c6c6f747320636173740a202020203238322053544f52452822705f766f746572735f22202b207069642c203029202020202020202020202020202020202f2f20756e69717565206465706f7369746f72730a20202020323834204c4554206f7074203d20310a20202020323836204946206f7074203e206f7074696f6e436f756e74205448454e20474f544f203239340a202020203238382053544f52452822705f74616c6c795f22202b20706964202b20225f22202b206f70742c2030290a20202020323930204c4554206f7074203d206f7074202b20310a2020202032393220474f544f203238360a202020203239342052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020456e746572506f6c6c203a206c6f636b732065786163746c79207265717569726564436f6c6c61746572616c20616e64206772616e7473204f4e4520766f74696e672072696768742e0a2f2f202052652d656e747279206279207468652073616d652077616c6c657420666f72207468652073616d6520706f6c6c2069732072656a65637465642c207768696368206973207468650a2f2f2020636f6e74726163742d6c6576656c206f6e652d77616c6c65742d6f6e652d766f746520656e666f7263656d656e742e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e20456e746572506f6c6c28706f6c6c49442055696e743634292055696e7436340a2020202031302020494620706f6c6c4944203e3d2031205448454e20474f544f2033300a202020203230202052455455524e203130202020202020202020202020202020202020202020202020202020202020202020202f2f2062616420706f6c6c2069640a20202020333020204946204558495354532822706f6c6c5f636f756e742229205448454e20474f544f2035300a202020203430202052455455524e203131202020202020202020202020202020202020202020202020202020202020202020202f2f206e6f20706f6c6c732065786973740a2020202035302020494620706f6c6c4944203c3d204c4f41442822706f6c6c5f636f756e742229205448454e20474f544f2037300a202020203630202052455455524e203132202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c20646f6573206e6f742065786973740a20202020373020204946204c4f41442822705f7374617475735f22202b20706f6c6c494429203d3d2031205448454e20474f544f2039300a202020203830202052455455524e203133202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c206e6f74206163746976650a2020202039302020494620424c4f434b5f54494d455354414d502829203c204c4f41442822705f656e645f22202b20706f6c6c494429205448454e20474f544f203131300a202020203130302052455455524e203134202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c2068617320656e6465640a20202020313130204946204558495354532822705f656c696769626c655f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f203133300a2020202031323020474f544f2031353020202020202020202020202020202020202020202020202020202020202020202020202f2f206e6f742079657420656e74657265643a20676f6f640a202020203133302052455455524e203135202020202020202020202020202020202020202020202020202020202020202020202f2f2077616c6c657420616c726561647920656e7465726564207468697320706f6c6c0a20202020313530204946204445524f56414c55452829203d3d204c4f41442822705f636f6c6c61746572616c5f22202b20706f6c6c494429205448454e20474f544f203137300a202020203136302052455455524e203136202020202020202020202020202020202020202020202020202020202020202020202f2f2077726f6e6720636f6c6c61746572616c20616d6f756e740a0a202020202f2f204772616e742065786163746c79206f6e6520706f6c6c2d73636f70656420766f74696e672072696768742e203120746f6b656e203d20312072696768742e0a202020203137302053544f52452822705f656c696769626c655f22202b20706f6c6c4944202b205349474e455228292c2031290a202020203138302053544f52452822705f766f7465725f22202b20706f6c6c4944202b205349474e455228292c204445524f56414c55452829292020202f2f206c6f636b656420636f6c6c61746572616c0a202020203139302053544f52452822705f766f74655f6f7074696f6e5f22202b20706f6c6c4944202b205349474e455228292c203029202020202020202f2f206e6f7420766f746564207965740a202020203230302053544f52452822705f726566756e6465645f22202b20706f6c6c4944202b205349474e455228292c2030290a202020203231302053544f52452822705f766f746572735f22202b20706f6c6c49442c204c4f41442822705f766f746572735f22202b20706f6c6c494429202b2031290a202020203232302052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020566f7465203a20636f6e73756d65732074686520766f74696e6720726967687420616e64207265636f7264732065786163746c79206f6e65206f7074696f6e2e0a2f2f202052657175697265732074686520706f6c6c2d73706563696669632072696768742c20616e20756e6578657263697365642072696768742c2061206c69766520706f6c6c20616e6420610a2f2f202076616c6964206f7074696f6e20696e6465782e20436f6e73756d696e6720746865207269676874206d616b6573207265706c617920696d706f737369626c652e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e20566f746528706f6c6c49442055696e7436342c206f7074696f6e2055696e743634292055696e7436340a2020202031302020494620706f6c6c4944203e3d2031205448454e20474f544f2033300a202020203230202052455455524e203230202020202020202020202020202020202020202020202020202020202020202020202f2f2062616420706f6c6c2069640a20202020333020204946204558495354532822706f6c6c5f636f756e742229205448454e20474f544f2035300a202020203430202052455455524e2032310a2020202035302020494620706f6c6c4944203c3d204c4f41442822706f6c6c5f636f756e742229205448454e20474f544f2037300a202020203630202052455455524e203232202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c20646f6573206e6f742065786973740a20202020373020204946204c4f41442822705f7374617475735f22202b20706f6c6c494429203d3d2031205448454e20474f544f2039300a202020203830202052455455524e203233202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c206e6f74206163746976650a2020202039302020494620424c4f434b5f54494d455354414d502829203c204c4f41442822705f656e645f22202b20706f6c6c494429205448454e20474f544f203131300a202020203130302052455455524e203234202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c2068617320656e6465640a20202020313130204946204558495354532822705f656c696769626c655f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f203133300a202020203132302052455455524e203235202020202020202020202020202020202020202020202020202020202020202020202f2f206e6f20766f74696e6720726967687420666f72207468697320706f6c6c0a20202020313330204946204c4f41442822705f656c696769626c655f22202b20706f6c6c4944202b205349474e4552282929203d3d2031205448454e20474f544f203135300a202020203134302052455455524e203236202020202020202020202020202020202020202020202020202020202020202020202f2f20726967687420616c726561647920636f6e73756d65640a20202020313530204946206f7074696f6e203e3d2031205448454e20474f544f203137300a202020203136302052455455524e203237202020202020202020202020202020202020202020202020202020202020202020202f2f206f7074696f6e2062656c6f772072616e67650a20202020313730204946206f7074696f6e203c3d204c4f41442822705f6f7074696f6e735f22202b20706f6c6c494429205448454e20474f544f203139300a202020203138302052455455524e203238202020202020202020202020202020202020202020202020202020202020202020202f2f206f7074696f6e2061626f76652072616e67650a0a202020202f2f20436f6e73756d65207468652072696768742046495253542e204974206265636f6d657320302c20736f2061207365636f6e6420566f74652068697473206c696e65203134302e0a202020203139302053544f52452822705f656c696769626c655f22202b20706f6c6c4944202b205349474e455228292c2030290a202020203230302053544f52452822705f766f74655f6f7074696f6e5f22202b20706f6c6c4944202b205349474e455228292c206f7074696f6e290a202020203231302053544f52452822705f74616c6c795f22202b20706f6c6c4944202b20225f22202b206f7074696f6e2c204c4f41442822705f74616c6c795f22202b20706f6c6c4944202b20225f22202b206f7074696f6e29202b2031290a202020203232302053544f52452822705f766f7465735f22202b20706f6c6c49442c204c4f41442822705f766f7465735f22202b20706f6c6c494429202b2031290a202020203233302052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f202046696e616c697a65506f6c6c203a20636c6f7365732074686520706f6c6c2061667465722069747320656e642074696d652e205065726d697373696f6e6c6573732c20736f207468650a2f2f2020706f6c6c2063616e6e6f742062652068656c6420686f737461676520627920612063726561746f722077686f20646973617070656172732e204964656d706f74656e742e0a2f2f2020566f74696e672072696768747320666f722074686520706f6c6c206265636f6d6520756e757361626c652061667465722074686973202873746174757320213d2031292e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e2046696e616c697a65506f6c6c28706f6c6c49442055696e743634292055696e7436340a2020202031302020494620706f6c6c4944203e3d2031205448454e20474f544f2033300a202020203230202052455455524e2033300a20202020333020204946204558495354532822706f6c6c5f636f756e742229205448454e20474f544f2035300a202020203430202052455455524e2033310a2020202035302020494620706f6c6c4944203c3d204c4f41442822706f6c6c5f636f756e742229205448454e20474f544f2037300a202020203630202052455455524e203332202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c20646f6573206e6f742065786973740a20202020373020204946204c4f41442822705f7374617475735f22202b20706f6c6c494429203d3d2031205448454e20474f544f2039300a202020203830202052455455524e203333202020202020202020202020202020202020202020202020202020202020202020202f2f20616c72656164792066696e616c697a65640a2020202039302020494620424c4f434b5f54494d455354414d502829203e3d204c4f41442822705f656e645f22202b20706f6c6c494429205448454e20474f544f203131300a202020203130302052455455524e203334202020202020202020202020202020202020202020202020202020202020202020202f2f20746f6f206561726c7920746f2066696e616c697a650a202020203131302053544f52452822705f7374617475735f22202b20706f6c6c49442c203229202020202020202020202020202f2f2032203d2066696e616c697a65640a202020203132302053544f52452822705f66696e616c697a65645f61745f22202b20706f6c6c49442c20424c4f434b5f54494d455354414d502829290a202020203133302052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020526566756e64203a2072657475726e732074686520766f74657227732046554c4c206c6f636b656420636f6c6c61746572616c2061667465722066696e616c697a6174696f6e2e0a2f2f2020456163682077616c6c657420636c61696d7320697473206f776e20726566756e643b2074686520636f6e74726163742070617973206f6e6c792074686520657861637420616d6f756e740a2f2f20206974207265636f7264656420666f7220746861742077616c6c65742c20736f2069742063616e6e6f74206f766572706179206f7220756e6465727061792e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e20526566756e6428706f6c6c49442055696e743634292055696e7436340a202020203520202044494d20616d6f756e742041532055696e7436340a2020202031302020494620706f6c6c4944203e3d2031205448454e20474f544f2033300a202020203230202052455455524e2034300a20202020333020204946204558495354532822706f6c6c5f636f756e742229205448454e20474f544f2035300a202020203430202052455455524e2034310a2020202035302020494620706f6c6c4944203c3d204c4f41442822706f6c6c5f636f756e742229205448454e20474f544f2037300a202020203630202052455455524e203432202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c20646f6573206e6f742065786973740a20202020373020204946204c4f41442822705f7374617475735f22202b20706f6c6c494429203d3d2032205448454e20474f544f2039300a202020203830202052455455524e203433202020202020202020202020202020202020202020202020202020202020202020202f2f20706f6c6c206e6f742066696e616c697a6564207965740a20202020393020204946204558495354532822705f766f7465725f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f203131300a202020203130302052455455524e203434202020202020202020202020202020202020202020202020202020202020202020202f2f2077616c6c6574206e6576657220656e7465726564207468697320706f6c6c0a20202020313130204946204c4f41442822705f726566756e6465645f22202b20706f6c6c4944202b205349474e4552282929203d3d2030205448454e20474f544f203133300a202020203132302052455455524e203435202020202020202020202020202020202020202020202020202020202020202020202f2f20616c726561647920726566756e6465640a20202020313330204946204558495354532822705f766f7465725f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f203135300a202020203134302052455455524e203436202020202020202020202020202020202020202020202020202020202020202020202f2f206d697373696e6720636f6c6c61746572616c207265636f72640a20202020313530204c455420616d6f756e74203d204c4f41442822705f766f7465725f22202b20706f6c6c4944202b205349474e45522829290a2020202031363020494620616d6f756e74203e2030205448454e20474f544f203138300a202020203137302052455455524e203437202020202020202020202020202020202020202020202020202020202020202020202f2f206e6f7468696e67206c6f636b65640a202020203138302053544f52452822705f726566756e6465645f22202b20706f6c6c4944202b205349474e455228292c2031290a202020203139302053454e445f4445524f5f544f5f41444452455353285349474e455228292c20616d6f756e74290a202020203230302052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020576974686472617746656573203a2070726f6a656374206f776e6572207377656570732074686520616363756d756c61746564206372656174696f6e20666565732e0a2f2f20205468697320697320746865204f4e4c59207061746820627920776869636820666565206d6f6e6579206d6f7665732c20616e64206974206973207365706172617465642066726f6d0a2f2f202074686520726566756e6420706174682c20736f20766f74657220636f6c6c61746572616c20616e642070726f6a6563742066656573206e65766572206d69782e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e2057697468647261774665657328616d6f756e742055696e743634292055696e7436340a20202020313020204946204c4f414428226f776e65722229203d3d205349474e45522829205448454e20474f544f2033300a202020203230202052455455524e203530202020202020202020202020202020202020202020202020202020202020202020202f2f206e6f74207468652070726f6a656374206f776e65720a202020203330202049462045584953545328226665655f62616c616e63652229205448454e20474f544f2035300a202020203430202053544f524528226665655f62616c616e6365222c2030290a2020202035302020494620616d6f756e74203c3d204c4f414428226665655f62616c616e63652229205448454e20474f544f2037300a202020203630202052455455524e203531202020202020202020202020202020202020202020202020202020202020202020202f2f206578636565647320636f6c6c656374656420666565730a202020203730202053544f524528226665655f62616c616e6365222c204c4f414428226665655f62616c616e63652229202d20616d6f756e74290a202020203830202053454e445f4445524f5f544f5f41444452455353285349474e455228292c20616d6f756e74290a202020203930202052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f20205472616e736665724f776e657273686970202f20436c61696d4f776e657273686970203a2074776f2d737465702068616e646f766572206f66207468652070726f6a6563740a2f2f20206f776e65722e204d61746368657320746865207061747465726e2075736564206279206576657279207265666572656e636520636f6e747261637420696e20746865204445524f0a2f2f202065636f73797374656d20286c6f74746572792c20746f6b656e2c206e616d652d736572766963652c2064555344292e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e205472616e736665724f776e657273686970286e65776f776e657220537472696e67292055696e7436340a20202020313020204946204c4f414428226f776e65722229203d3d205349474e45522829205448454e20474f544f2033300a202020203230202052455455524e2036300a202020203330202053544f52452822746d706f776e6572222c20414444524553535f524157286e65776f776e657229290a202020203430202052455455524e20300a456e642046756e6374696f6e0a0a46756e6374696f6e20436c61696d4f776e65727368697028292055696e7436340a20202020313020204946204558495354532822746d706f776e65722229205448454e20474f544f2033300a202020203230202052455455524e2036310a20202020333020204946204c4f41442822746d706f776e65722229203d3d205349474e45522829205448454e20474f544f2035300a202020203430202052455455524e2036320a202020203530202053544f524528226f776e6572222c205349474e45522829290a202020203630202053544f52452822746d706f776e6572222c202222290a202020203730202052455455524e20300a456e642046756e6374696f6e0a0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2f2f2020526561642068656c706572732e2044564d2d424153494320686173206e6f20726561642d6f6e6c792076696577732c20736f2074686573652072657475726e2076616c7565730a2f2f20207468726f756768207468652072657475726e20636f64652e205468657920706572666f726d206e6f207374617465206368616e67652e0a2f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a46756e6374696f6e20476574506f6c6c496e666f28706f6c6c49442055696e743634292055696e7436340a20202020313020204946204558495354532822705f636f6c6c61746572616c5f22202b20706f6c6c494429205448454e20474f544f2033300a202020203230202052455455524e203730202020202020202020202020202020202020202020202020202020202020202020202f2f20756e6b6e6f776e20706f6c6c0a202020203330202052455455524e204c4f41442822705f636f6c6c61746572616c5f22202b20706f6c6c4944290a456e642046756e6374696f6e0a0a46756e6374696f6e2047657446656542616c616e636528292055696e7436340a202020203130202049462045584953545328226665655f62616c616e63652229205448454e20474f544f2033300a202020203230202052455455524e20300a202020203330202052455455524e204c4f414428226665655f62616c616e636522290a456e642046756e6374696f6e0a0a46756e6374696f6e20476574566f7465436f756e7428706f6c6c49442055696e7436342c206f7074696f6e2055696e743634292055696e7436340a20202020313020204946204558495354532822705f74616c6c795f22202b20706f6c6c4944202b20225f22202b206f7074696f6e29205448454e20474f544f2033300a202020203230202052455455524e20300a202020203330202052455455524e204c4f41442822705f74616c6c795f22202b20706f6c6c4944202b20225f22202b206f7074696f6e290a456e642046756e6374696f6e0a0a46756e6374696f6e20476574566f746572436f756e7428706f6c6c49442055696e743634292055696e7436340a20202020313020204946204558495354532822705f766f746572735f22202b20706f6c6c494429205448454e20474f544f2033300a202020203230202052455455524e20300a202020203330202052455455524e204c4f41442822705f766f746572735f22202b20706f6c6c4944290a456e642046756e6374696f6e0a0a46756e6374696f6e20486173456e746572656428706f6c6c49442055696e743634292055696e7436340a20202020313020204946204558495354532822705f656c696769626c655f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f2033300a202020203230202052455455524e20300a202020203330202052455455524e20310a456e642046756e6374696f6e0a0a46756e6374696f6e20486173566f74656428706f6c6c49442055696e743634292055696e7436340a20202020313020204946204558495354532822705f766f74655f6f7074696f6e5f22202b20706f6c6c4944202b205349474e4552282929205448454e20474f544f2033300a202020203230202052455455524e20300a202020203330202052455455524e204c4f41442822705f766f74655f6f7074696f6e5f22202b20706f6c6c4944202b205349474e45522829290a456e642046756e6374696f6e0a |
| fee_balance | 1.1e+06 |
| owner | 14825960eda2c01bfab1de8a7574788aafae4f31092ac8f252b148285290678800 |
| p_collateral_1 | 1e+08 |
| p_collateral_2 | 1e+07 |
| p_creator_1 | 14825960eda2c01bfab1de8a7574788aafae4f31092ac8f252b148285290678800 |
| p_creator_2 | 14825960eda2c01bfab1de8a7574788aafae4f31092ac8f252b148285290678800 |
| p_duration_1 | 7 |
| p_duration_2 | 1 |
| p_eligible_2�Y`�����ފutx���O1 *��R�H(R�g�� | 1 |
| p_end_1 | 1.791248958e+09 |
| p_end_2 | 1.790732512e+09 |
| p_fee_1 | 1e+06 |
| p_fee_2 | 100000 |
| p_options_1 | 2 |
| p_options_2 | 2 |
| p_refunded_2�Y`�����ފutx���O1 *��R�H(R�g�� | 0 |
| p_start_1 | 1.790644158e+09 |
| p_start_2 | 1.790646112e+09 |
| p_status_1 | 1 |
| p_status_2 | 1 |
| p_tally_1_1 | 0 |
| p_tally_1_2 | 0 |
| p_tally_2_1 | 0 |
| p_tally_2_2 | 0 |
| p_vote_option_2�Y`�����ފutx���O1 *��R�H(R�g�� | 0 |
| p_voter_2�Y`�����ފutx���O1 *��R�H(R�g�� | 1e+07 |
| p_voters_1 | 0 |
| p_voters_2 | 1 |
| p_votes_1 | 0 |
| p_votes_2 | 0 |
| poll_count | 2 |
Transaction Information
Root Hash
Built Height
7684110
Block
Timestamp
1790629862517
Timestamp (UTC)
2026-09-28 21:11:02
Block Age
4h 56m ago
Fee
0.23910
TX Size
17.156 kB
Version
1
Confirmations
961
Signature Type
DERO_HOMOMORPHIC
DERO Asset
2
Ring Size
0.23910
Fees
0.00000
Deposited
Sender
dero1qy2gyktqak3vqxl6k80g5at50z92ltj0xyyj4j8j22c5s2zjjpncsqq9wwyly
Ring Members (2)
Smart Contract Details
SC Balance
0.00000 DERO
Smart Contract Code
Smart Contract Arguments
| Name | Type | Value |
|---|---|---|
| SC_ACTION | uint64 | 1 |
| SC_CODE | string | "// ============================================================================= // DeroVote — DVM-BASIC voting contract (Stargate 3.5.5-142) // // PROTOCOL // 1. CreatePoll : creator pays a NON-REFUNDABLE creation fee computed // from requiredCollateral and duration. The fee is // booked to the project owner. It is never refunded and // never taken from voter collateral. // 2. EnterPoll : voter locks exactly requiredCollateral. The contract // grants exactly ONE poll-scoped voting right. // 3. Vote : consumes the voting right, records one option. // 4. FinalizePoll : after poll_end, closes voting. Anyone may finalize. // 5. Refund : each voter claims back the FULL locked collateral. // // MONEY // All amounts are DERO atomic units. 1 DERO = 100000 atoms. // No floating point is used anywhere. // // DVM RUNTIME RULES THIS CODE RELIES ON (verified in derohe/dvm) // - LOAD() on a never-STOREd key PANICS and discards the whole tx. // Every possibly-fresh key is therefore EXISTS-guarded. // - RETURN 0 commits, RETURN != 0 discards every change atomically. // All validation happens BEFORE the first STORE (atomic guard order). // - Uint64 arithmetic wraps silently, so every addition that can // realistically grow is overflow-checked. // - Only // and /* */ comments are used. ' is a char-literal starter // and breaks the lexer. // - String + Uint64 concatenation is supported and yields a String. // // VOTING RIGHT MODEL (see docs/VOTE-TOKEN.md) // DERO native assets are transferable between wallets, so a literal // non-transferable token cannot be enforced by the chain. The voting // right is therefore an INTERNAL contract balance keyed by // (pollID, voter). It cannot be transferred, re-sold, reused or spent // because no function exists to move it. This is the closest // DERO-native equivalent of a soulbound / non-transferable token and it // preserves every protocol rule. // ============================================================================= Function Initialize() Uint64 10 STORE("owner", SIGNER()) 20 STORE("poll_count", 0) 30 STORE("fee_balance", 0) 40 RETURN 0 End Function // ----------------------------------------------------------------------------- // FeeBasisPoints(days) : deterministic creation-fee schedule. // days <= 7 -> 1.00% (100 bps) // each extra started 7-day period -> +0.50% (+50 bps) // So: 1-7 = 1.0%, 8-14 = 1.5%, 15-21 = 2.0%, 22-28 = 2.5%, 29-35 = 3.0% ... // days <= 7 maps to 100 bps because (days-1)/7 == 0 for days in [1,7]. // This is ceil((days-7)/7) for days > 7 written with integer division only. // ----------------------------------------------------------------------------- Function FeeBasisPoints(days Uint64) Uint64 10 DIM weeks, bps AS Uint64 20 IF days <= 7 THEN GOTO 60 30 LET weeks = (days - 1) / 7 40 LET bps = 100 + 50 * weeks 50 RETURN bps 60 RETURN 100 End Function // ----------------------------------------------------------------------------- // CreatePoll : pays the non-refundable creation fee and opens the poll. // requiredCollateral : voter collateral in ATOMS, 100..1,000,000 DERO // durationDays : >= 1 day // optionCount : >= 2 options // The fee = requiredCollateral * FeeBasisPoints(durationDays) / 10000. // It must arrive as DEROVALUE() and is added to fee_balance (project funds). // ----------------------------------------------------------------------------- Function CreatePoll(requiredCollateral Uint64, durationDays Uint64, optionCount Uint64) Uint64 5 DIM pid, bps, fee, opt AS Uint64 10 IF requiredCollateral >= 100 * 100000 THEN GOTO 30 20 RETURN 1 // collateral below 100 DERO 30 IF requiredCollateral <= 1000000 * 100000 THEN GOTO 50 40 RETURN 2 // collateral above 1,000,000 DERO 50 IF durationDays >= 1 THEN GOTO 70 60 RETURN 3 // invalid duration 70 IF optionCount >= 2 THEN GOTO 90 80 RETURN 4 // need at least two options 90 IF EXISTS("poll_count") THEN GOTO 110 100 STORE("poll_count", 0) 110 LET pid = LOAD("poll_count") + 1 120 STORE("poll_count", pid) // fee in basis points, then atoms. Order matters: multiply first is // safe here because requiredCollateral <= 1e11 atoms and bps <= ~7600 // for any realistic duration, so the product is far below 2^64. 130 LET bps = FeeBasisPoints(durationDays) 140 LET fee = requiredCollateral * bps / 10000 150 IF DEROVALUE() == fee THEN GOTO 170 160 RETURN 5 // wrong creation fee attached 170 IF EXISTS("fee_balance") THEN GOTO 190 180 STORE("fee_balance", 0) 190 STORE("fee_balance", LOAD("fee_balance") + fee) 200 STORE("p_collateral_" + pid, requiredCollateral) 210 STORE("p_duration_" + pid, durationDays) 220 STORE("p_options_" + pid, optionCount) 230 STORE("p_creator_" + pid, SIGNER()) 240 STORE("p_fee_" + pid, fee) 250 STORE("p_start_" + pid, BLOCK_TIMESTAMP()) 260 STORE("p_end_" + pid, BLOCK_TIMESTAMP() + durationDays * 86400) 270 STORE("p_status_" + pid, 1) // 1 = active // Zero-initialise every counter that a later function READS-BEFORE-WRITE. // DVM `LOAD()` on a never-STOREd key PANICS with "Unhandled data_type" // and discards the whole tx (verified on the real interpreter), so the // first voter and the first ballot would both be rejected without this. // p_votes_ : total ballots cast (read by Vote) // p_voters_ : unique depositors (read by EnterPoll) // p_tally__<opt> : per-option counts (read by Vote, one per option) 280 STORE("p_votes_" + pid, 0) // total ballots cast 282 STORE("p_voters_" + pid, 0) // unique depositors 284 LET opt = 1 286 IF opt > optionCount THEN GOTO 294 288 STORE("p_tally_" + pid + "_" + opt, 0) 290 LET opt = opt + 1 292 GOTO 286 294 RETURN 0 End Function // ----------------------------------------------------------------------------- // EnterPoll : locks exactly requiredCollateral and grants ONE voting right. // Re-entry by the same wallet for the same poll is rejected, which is the // contract-level one-wallet-one-vote enforcement. // ----------------------------------------------------------------------------- Function EnterPoll(pollID Uint64) Uint64 10 IF pollID >= 1 THEN GOTO 30 20 RETURN 10 // bad poll id 30 IF EXISTS("poll_count") THEN GOTO 50 40 RETURN 11 // no polls exist 50 IF pollID <= LOAD("poll_count") THEN GOTO 70 60 RETURN 12 // poll does not exist 70 IF LOAD("p_status_" + pollID) == 1 THEN GOTO 90 80 RETURN 13 // poll not active 90 IF BLOCK_TIMESTAMP() < LOAD("p_end_" + pollID) THEN GOTO 110 100 RETURN 14 // poll has ended 110 IF EXISTS("p_eligible_" + pollID + SIGNER()) THEN GOTO 130 120 GOTO 150 // not yet entered: good 130 RETURN 15 // wallet already entered this poll 150 IF DEROVALUE() == LOAD("p_collateral_" + pollID) THEN GOTO 170 160 RETURN 16 // wrong collateral amount // Grant exactly one poll-scoped voting right. 1 token = 1 right. 170 STORE("p_eligible_" + pollID + SIGNER(), 1) 180 STORE("p_voter_" + pollID + SIGNER(), DEROVALUE()) // locked collateral 190 STORE("p_vote_option_" + pollID + SIGNER(), 0) // not voted yet 200 STORE("p_refunded_" + pollID + SIGNER(), 0) 210 STORE("p_voters_" + pollID, LOAD("p_voters_" + pollID) + 1) 220 RETURN 0 End Function // ----------------------------------------------------------------------------- // Vote : consumes the voting right and records exactly one option. // Requires the poll-specific right, an unexercised right, a live poll and a // valid option index. Consuming the right makes replay impossible. // ----------------------------------------------------------------------------- Function Vote(pollID Uint64, option Uint64) Uint64 10 IF pollID >= 1 THEN GOTO 30 20 RETURN 20 // bad poll id 30 IF EXISTS("poll_count") THEN GOTO 50 40 RETURN 21 50 IF pollID <= LOAD("poll_count") THEN GOTO 70 60 RETURN 22 // poll does not exist 70 IF LOAD("p_status_" + pollID) == 1 THEN GOTO 90 80 RETURN 23 // poll not active 90 IF BLOCK_TIMESTAMP() < LOAD("p_end_" + pollID) THEN GOTO 110 100 RETURN 24 // poll has ended 110 IF EXISTS("p_eligible_" + pollID + SIGNER()) THEN GOTO 130 120 RETURN 25 // no voting right for this poll 130 IF LOAD("p_eligible_" + pollID + SIGNER()) == 1 THEN GOTO 150 140 RETURN 26 // right already consumed 150 IF option >= 1 THEN GOTO 170 160 RETURN 27 // option below range 170 IF option <= LOAD("p_options_" + pollID) THEN GOTO 190 180 RETURN 28 // option above range // Consume the right FIRST. It becomes 0, so a second Vote hits line 140. 190 STORE("p_eligible_" + pollID + SIGNER(), 0) 200 STORE("p_vote_option_" + pollID + SIGNER(), option) 210 STORE("p_tally_" + pollID + "_" + option, LOAD("p_tally_" + pollID + "_" + option) + 1) 220 STORE("p_votes_" + pollID, LOAD("p_votes_" + pollID) + 1) 230 RETURN 0 End Function // ----------------------------------------------------------------------------- // FinalizePoll : closes the poll after its end time. Permissionless, so the // poll cannot be held hostage by a creator who disappears. Idempotent. // Voting rights for the poll become unusable after this (status != 1). // ----------------------------------------------------------------------------- Function FinalizePoll(pollID Uint64) Uint64 10 IF pollID >= 1 THEN GOTO 30 20 RETURN 30 30 IF EXISTS("poll_count") THEN GOTO 50 40 RETURN 31 50 IF pollID <= LOAD("poll_count") THEN GOTO 70 60 RETURN 32 // poll does not exist 70 IF LOAD("p_status_" + pollID) == 1 THEN GOTO 90 80 RETURN 33 // already finalized 90 IF BLOCK_TIMESTAMP() >= LOAD("p_end_" + pollID) THEN GOTO 110 100 RETURN 34 // too early to finalize 110 STORE("p_status_" + pollID, 2) // 2 = finalized 120 STORE("p_finalized_at_" + pollID, BLOCK_TIMESTAMP()) 130 RETURN 0 End Function // ----------------------------------------------------------------------------- // Refund : returns the voter's FULL locked collateral after finalization. // Each wallet claims its own refund; the contract pays only the exact amount // it recorded for that wallet, so it cannot overpay or underpay. // ----------------------------------------------------------------------------- Function Refund(pollID Uint64) Uint64 5 DIM amount AS Uint64 10 IF pollID >= 1 THEN GOTO 30 20 RETURN 40 30 IF EXISTS("poll_count") THEN GOTO 50 40 RETURN 41 50 IF pollID <= LOAD("poll_count") THEN GOTO 70 60 RETURN 42 // poll does not exist 70 IF LOAD("p_status_" + pollID) == 2 THEN GOTO 90 80 RETURN 43 // poll not finalized yet 90 IF EXISTS("p_voter_" + pollID + SIGNER()) THEN GOTO 110 100 RETURN 44 // wallet never entered this poll 110 IF LOAD("p_refunded_" + pollID + SIGNER()) == 0 THEN GOTO 130 120 RETURN 45 // already refunded 130 IF EXISTS("p_voter_" + pollID + SIGNER()) THEN GOTO 150 140 RETURN 46 // missing collateral record 150 LET amount = LOAD("p_voter_" + pollID + SIGNER()) 160 IF amount > 0 THEN GOTO 180 170 RETURN 47 // nothing locked 180 STORE("p_refunded_" + pollID + SIGNER(), 1) 190 SEND_DERO_TO_ADDRESS(SIGNER(), amount) 200 RETURN 0 End Function // ----------------------------------------------------------------------------- // WithdrawFees : project owner sweeps the accumulated creation fees. // This is the ONLY path by which fee money moves, and it is separated from // the refund path, so voter collateral and project fees never mix. // ----------------------------------------------------------------------------- Function WithdrawFees(amount Uint64) Uint64 10 IF LOAD("owner") == SIGNER() THEN GOTO 30 20 RETURN 50 // not the project owner 30 IF EXISTS("fee_balance") THEN GOTO 50 40 STORE("fee_balance", 0) 50 IF amount <= LOAD("fee_balance") THEN GOTO 70 60 RETURN 51 // exceeds collected fees 70 STORE("fee_balance", LOAD("fee_balance") - amount) 80 SEND_DERO_TO_ADDRESS(SIGNER(), amount) 90 RETURN 0 End Function // ----------------------------------------------------------------------------- // TransferOwnership / ClaimOwnership : two-step handover of the project // owner. Matches the pattern used by every reference contract in the DERO // ecosystem (lottery, token, name-service, dUSD). // ----------------------------------------------------------------------------- Function TransferOwnership(newowner String) Uint64 10 IF LOAD("owner") == SIGNER() THEN GOTO 30 20 RETURN 60 30 STORE("tmpowner", ADDRESS_RAW(newowner)) 40 RETURN 0 End Function Function ClaimOwnership() Uint64 10 IF EXISTS("tmpowner") THEN GOTO 30 20 RETURN 61 30 IF LOAD("tmpowner") == SIGNER() THEN GOTO 50 40 RETURN 62 50 STORE("owner", SIGNER()) 60 STORE("tmpowner", "") 70 RETURN 0 End Function // ----------------------------------------------------------------------------- // Read helpers. DVM-BASIC has no read-only views, so these return values // through the return code. They perform no state change. // ----------------------------------------------------------------------------- Function GetPollInfo(pollID Uint64) Uint64 10 IF EXISTS("p_collateral_" + pollID) THEN GOTO 30 20 RETURN 70 // unknown poll 30 RETURN LOAD("p_collateral_" + pollID) End Function Function GetFeeBalance() Uint64 10 IF EXISTS("fee_balance") THEN GOTO 30 20 RETURN 0 30 RETURN LOAD("fee_balance") End Function Function GetVoteCount(pollID Uint64, option Uint64) Uint64 10 IF EXISTS("p_tally_" + pollID + "_" + option) THEN GOTO 30 20 RETURN 0 30 RETURN LOAD("p_tally_" + pollID + "_" + option) End Function Function GetVoterCount(pollID Uint64) Uint64 10 IF EXISTS("p_voters_" + pollID) THEN GOTO 30 20 RETURN 0 30 RETURN LOAD("p_voters_" + pollID) End Function Function HasEntered(pollID Uint64) Uint64 10 IF EXISTS("p_eligible_" + pollID + SIGNER()) THEN GOTO 30 20 RETURN 0 30 RETURN 1 End Function Function HasVoted(pollID Uint64) Uint64 10 IF EXISTS("p_vote_option_" + pollID + SIGNER()) THEN GOTO 30 20 RETURN 0 30 RETURN LOAD("p_vote_option_" + pollID + SIGNER()) End Function " |
Prove Transaction
Prove that you sent DERO in this transaction. Obtain proof using the dero-wallet-cli command or from your wallet statement.
Note: The proof is sent to the server for verification calculations.
Payload proofs are user-provided display proofs; for the strongest verification, confirm with the receiving wallet.