Transaction #1221307

Hash a87b0057acd912299cc25d22fdd220cc4bed6e2628258edc4149b02500cd0ab4
Status Success
Timestamp 515 days ago - 12/20/2022, 12:21:31 AM UTC+0
Block 1172051
Stamps Used 221
Burned Fee 0.01307692 TAU
From 19040eef9ad7e23c84f31cab6930d192bcc7029618d36edc62029c5136af633e 
Contract Name submission
Function Name submit_contract

Additional Info
SubBlock Number 0
Nonce 373
Processor 5b09493df6c18d17cc883ebce54fcb1f5afbd507533417fe32c006009a9c3c4a
Signature 7d6e66b34c8dc8703c1981afa0e8e9551ad84eb6202bc40c572e498142fb1c5e95dac182de236e040d3c3e965b6337f1ed50d436c7c55eb7e1c1a9c963ba7e0c
Stamps Supplied 845
Stamps per TAU 169

Kwargs

code random.seed() I = importlib metadata = Hash() maxStack = Variable() gameStack = Variable() @construct def seed(): metadata['owner'] = ctx.caller metadata['operator'] = ctx.caller maxStack.set(0) gameStack.set(0) @export def rpsPlay(throw: str, stack: float): gameStack = ForeignHash(foreign_contract='con_spange', foreign_name='balances') maxStack = gameStack[ctx.this] assert not ctx.caller.startswith('con_'), 'bad robot' assert throw == "r" or throw == "p" or throw == "s", 'r, p or s; to represent rock, paper or scissors.' assert stack > 0, 'stack must be some spange.' assert stack < maxStack, 'whoa big spender! less than ' + str(maxStack) I.import_module('con_spange').transfer_from( amount=stack, to=ctx.this, main_account=ctx.caller) play = rpsRound(throw, stack) return play def rpsRound(p1: str, stack: float): b1 = botThrow() if p1 == b1: I.import_module('con_spange').transfer( amount=stack*0.99, to=ctx.caller) result = 'Tie. bot = ' + b1 return result elif (b1 == 'r' and p1 == 's') or (b1 == 's' and p1 == 'p') or (b1 == 'p' and p1 == 'r'): result = 'Bot wins! bot = ' + b1 return result else: I.import_module('con_spange').transfer( amount=stack*2, to=ctx.caller) result = 'Human wins! bot = ' + b1 return result def botThrow(): x = random.randint(0, 2) if x == 0: b1 = 'r' elif x == 1: b1 = 'p' else: b1 = 's' return b1 @export def change_metadata(key: str, value: Any): assert ctx.caller == metadata['operator'], 'No' metadata[key] = value @export def top_up(amount: float): assert ctx.caller == metadata['operator'], 'No' assert amount > 0, 'No Zero' I.import_module('con_spange').transfer_from( amount=amount, to=ctx.this, main_account=ctx.caller) @export def tap_out(amount: float): assert ctx.caller == metadata['operator'], 'No' assert amount > 0, 'No Zero' I.import_module('con_spange').transfer( amount=amount, to=ctx.caller)
name con_spange_game_2

State Changes

Contract con_spange_game_2
Variable metadata
Key owner
New Value 19040eef9ad7e23c84f31cab6930d192bcc7029618d36edc62029c5136af633e
 
Contract con_spange_game_2
Variable metadata
Key operator
New Value 19040eef9ad7e23c84f31cab6930d192bcc7029618d36edc62029c5136af633e
 
Contract con_spange_game_2
Variable maxStack
New Value 0
 
Contract con_spange_game_2
Variable gameStack
New Value 0
 
Contract con_spange_game_2
Variable __code__
New Value random.seed() I = importlib __metadata = Hash(contract='con_spange_game_2', name='metadata') __maxStack = Variable(contract='con_spange_game_2', name='maxStack') __gameStack = Variable(contract='con_spange_game_2', name='gameStack') def ____(): __metadata['owner'] = ctx.caller __metadata['operator'] = ctx.caller __maxStack.set(0) __gameStack.set(0) @__export('con_spange_game_2') def rpsPlay(throw: str, stack: float): __gameStack = ForeignHash(foreign_contract='con_spange', foreign_name= 'balances', contract='con_spange_game_2', name='gameStack') __maxStack = __gameStack[ctx.this] assert not ctx.caller.startswith('con_'), 'bad robot' assert throw == 'r' or throw == 'p' or throw == 's', 'r, p or s; to represent rock, paper or scissors.' assert stack > 0, 'stack must be some spange.' assert stack < __maxStack, 'whoa big spender! less than ' + str(__maxStack) I.import_module('con_spange').transfer_from(amount=stack, to=ctx.this, main_account=ctx.caller) play = __rpsRound(throw, stack) return play def __rpsRound(p1: str, stack: float): b1 = __botThrow() if p1 == b1: I.import_module('con_spange').transfer(amount=stack * decimal( '0.99'), to=ctx.caller) result = 'Tie. bot = ' + b1 return result elif b1 == 'r' and p1 == 's' or b1 == 's' and p1 == 'p' or b1 == 'p' and p1 == 'r': result = 'Bot wins! bot = ' + b1 return result else: I.import_module('con_spange').transfer(amount=stack * 2, to=ctx.caller) result = 'Human wins! bot = ' + b1 return result def __botThrow(): x = random.randint(0, 2) if x == 0: b1 = 'r' elif x == 1: b1 = 'p' else: b1 = 's' return b1 @__export('con_spange_game_2') def change_metadata(key: str, value: Any): assert ctx.caller == __metadata['operator'], 'No' __metadata[key] = value @__export('con_spange_game_2') def top_up(amount: float): assert ctx.caller == __metadata['operator'], 'No' assert amount > 0, 'No Zero' I.import_module('con_spange').transfer_from(amount=amount, to=ctx.this, main_account=ctx.caller) @__export('con_spange_game_2') def tap_out(amount: float): assert ctx.caller == __metadata['operator'], 'No' assert amount > 0, 'No Zero' I.import_module('con_spange').transfer(amount=amount, to=ctx.caller)
 
Contract con_spange_game_2
Variable __compiled__
New Value e3000000000000000000000000040000004000000073b000000065006a018300010065025a0365046400640164028d025a0565066400640364028d025a0765066400640464028d025a086405640684005a09650a64008301650b650c64079c0264086409840483015a0d650b650c640a9c02640b640c84045a0e640d640e84005a0f650a64008301650b6510640f9c0264106411840483015a11650a64008301650c64129c0164136414840483015a12650a64008301650c64129c0164156416840483015a13641753002918da11636f6e5f7370616e67655f67616d655f32da086d657461646174612902da08636f6e7472616374da046e616d65da086d6178537461636bda0967616d65537461636b630000000000000000000000000300000043000000732c00000074006a01740264013c0074006a01740264023c0074036a0464038301010074056a046403830101006400530029044eda056f776e6572da086f70657261746f72e9000000002906da03637478da0663616c6c6572da0a5f5f6d65746164617461da0a5f5f6d6178537461636bda03736574da0b5f5f67616d65537461636ba90072100000007210000000da00da045f5f5f5f08000000730800000000010a010a010a0172120000002902da057468726f77da05737461636b63020000000000000005000000060000004300000073a00000007400640164026403640464058d047d027c0274016a0219007d0374016a036a04640683010c00733074056407830182017c0064086b0273507c0064096b0273507c00640a6b0273507405640b830182017c01640c6b0473607405640d830182017c017c036b0073787405640e74067c03830117008301820174076a08640183016a097c0174016a0274016a03640f8d030100740a7c007c0183027d047c04530029104eda0a636f6e5f7370616e6765da0862616c616e636573720100000072060000002904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572030000007204000000da04636f6e5f7a0962616420726f626f74da0172da0170da01737a30722c2070206f7220733b20746f20726570726573656e7420726f636b2c207061706572206f722073636973736f72732e72090000007a1a737461636b206d75737420626520736f6d65207370616e67652e7a1c77686f6120626967207370656e64657221206c657373207468616e202903da06616d6f756e74da02746fda0c6d61696e5f6163636f756e74290bda0b466f726569676e48617368720a000000da0474686973720b000000da0a73746172747377697468da0e417373657274696f6e4572726f72da03737472da0149da0d696d706f72745f6d6f64756c65da0d7472616e736665725f66726f6dda0a5f5f727073526f756e64290572130000007214000000720f000000720d000000da04706c6179721000000072100000007211000000da07727073506c61790f0000007316000000000204010c010a01160120011001180110010a010a01722a0000002902da0270317214000000630200000000000000040000000400000043000000739e000000740083007d027c007c026b02723874016a02640183016a037c01740464028301140074056a0664038d02010064047c0217007d037c0353007c0264056b0272487c0064066b0273687c0264066b0272587c0064076b0273687c0264076b0272747c0064056b02727464087c0217007d037c03530074016a02640183016a037c016409140074056a0664038d020100640a7c0217007d037c03530064005300290b4e72150000007a04302e39392902721d000000721e0000007a0b5469652e20626f74203d20721a000000721c000000721b0000007a10426f742077696e732120626f74203d20e9020000007a1248756d616e2077696e732120626f74203d202907da0a5f5f626f745468726f7772250000007226000000da087472616e73666572da07646563696d616c720a000000720b0000002904722b0000007214000000da026231da06726573756c7472100000007210000000721100000072280000001e00000073180000000001060108010e011001080104013001080104021a0108017228000000630000000000000000020000000300000043000000733000000074006a016401640283027d007c0064016b02721a64037d016e127c0064046b02722864057d016e0464067d017c01530029074e7209000000722c000000721a000000e901000000721b000000721c0000002902da0672616e646f6dda0772616e64696e742902da01787230000000721000000072100000007211000000722d0000002e000000730e00000000010c0108010601080106020401722d0000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e7208000000da024e6f2904720a000000720b000000720c0000007223000000290272360000007237000000721000000072100000007211000000da0f6368616e67655f6d657461646174613900000073040000000002160172390000002901721d000000630100000000000000010000000500000043000000734400000074006a017402640119006b02731674036402830182017c0064036b047326740364048301820174046a05640583016a067c0074006a0774006a0164068d0301006400530029074e7208000000723800000072090000007a074e6f205a65726f72150000002903721d000000721e000000721f0000002908720a000000720b000000720c000000722300000072250000007226000000722700000072210000002901721d000000721000000072100000007211000000da06746f705f75703f00000073080000000002160110011001723a000000630100000000000000010000000400000043000000734000000074006a017402640119006b02731674036402830182017c0064036b047326740364048301820174046a05640583016a067c0074006a0164068d0201006400530029074e7208000000723800000072090000007a074e6f205a65726f72150000002902721d000000721e0000002907720a000000720b000000720c000000722300000072250000007226000000722e0000002901721d000000721000000072100000007211000000da077461705f6f7574470000007306000000000216011001723b0000004e29147233000000da0473656564da09696d706f72746c69627225000000da0448617368720c000000da085661726961626c65720d000000720f0000007212000000da085f5f6578706f72747224000000da05666c6f6174722a0000007228000000722d000000da03416e797239000000723a000000723b0000007210000000721000000072100000007211000000da083c6d6f64756c653e01000000731e000000080104010c010c010c0308070601120e1010080b06011205060110070601
 
Contract con_spange_game_2
Variable __owner__
New Value null
 
Contract con_spange_game_2
Variable __submitted__
New Value 2022,12,20,0,21,32,0
 
Contract con_spange_game_2
Variable __developer__
New Value 19040eef9ad7e23c84f31cab6930d192bcc7029618d36edc62029c5136af633e
 
Contract currency
Variable balances
Key 19040eef9ad7e23c84f31cab6930d192bcc7029618d36edc62029c5136af633e
New Value 21.5731361636530749682922235379