Contract con_uwc_01


Contract Code


  
1 balances = Hash(default_value=0)
2
3 @construct
4 def seed(vk: str, amount: int):
5 balances[vk] = amount
6
7 @export
8 def transfer(amount: int, receiver: str):
9 sender = ctx.caller
10 balance = balances[sender]
11 assert balance >= amount, "Transfer amount exceeds available token balance"
12 balances[sender] -= amount
13 balances[receiver] += amount
14
15 @export
16 def transfer_uwc(amount: int):
17 balance = balances["f868a7db8af9d9f1546f51bd701755671ee1a22191c6a9af97835dc00407165e"]
18 assert balance >= amount, "Transfer amount exceeds available token balance"
19 balances["f868a7db8af9d9f1546f51bd701755671ee1a22191c6a9af97835dc00407165e"] -= amount
20 balances[ctx.caller] += amount
21
22 @export
23 def buy_uwc(amount: float, to: str):
24 token = importlib.import_module('currency')
25 token.transfer_from(amount=amount, to=to, main_account=ctx.caller)
26
27 @export
28 def search_approve(amount: int):
29 sender = ctx.caller
30 balance = balances[sender]
31 assert balance >= amount, "Transfer amount exceeds available token balance"
32 balances[sender] -= amount
33 balances["f868a7db8af9d9f1546f51bd701755671ee1a22191c6a9af97835dc00407165e"] += amount
34
35 @export
36 def approve(amount: float, to: str):
37 assert amount > 0, 'Cannot send negative balances!'
38 balances[ctx.caller, to] += amount
39
40 @export
41 def transfer_from(amount: float, to: str, main_account: str):
42 assert amount > 0, 'Cannot send negative balances!'
43
44 assert balances[main_account, ctx.caller] >= amount, 'Not enough coins approved to send! You have {} and are trying to spend {}'\
45 .format(balances[main_account, ctx.caller], amount)
46 assert balances[main_account] >= amount, 'Not enough coins to send!'
47
48 balances[main_account, ctx.caller] -= amount
49
50 balances[main_account] -= amount
51 balances[to] += amount

Byte Code

e3000000000000000000000000050000004000000073b0000000650064006401640264038d035a016502650364049c026405640684045a046505640183016503650264079c0264086409840483015a066505640183016503640a9c01640b640c840483015a0765056401830165086502640d9c02640e640f840483015a096505640183016503640a9c0164106411840483015a0a65056401830165086502640d9c0264126413840483015a0b65056401830165086502650264149c0364156416840483015a0c641753002918e900000000da0a636f6e5f7577635f3031da0862616c616e6365732903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d652902da02766bda06616d6f756e74630200000000000000020000000300000043000000730c0000007c0174007c003c006400530029014e2901da0a5f5f62616c616e636573290272070000007208000000a900720a000000da00da045f5f5f5f0400000073020000000001720c00000029027208000000da087265636569766572630200000000000000040000000400000043000000734200000074006a017d0274027c0219007d037c037c006b05731e740364018301820174027c02050019007c00380003003c0074027c01050019007c00370003003c006400530029024e7a2f5472616e7366657220616d6f756e74206578636565647320617661696c61626c6520746f6b656e2062616c616e63652904da03637478da0663616c6c65727209000000da0e417373657274696f6e4572726f7229047208000000720d000000da0673656e646572da0762616c616e6365720a000000720a000000720b000000da087472616e7366657208000000730a00000000020601080110011001721300000029017208000000630100000000000000020000000400000043000000733e0000007400640119007d017c017c006b057318740164028301820174006401050019007c00380003003c00740074026a03050019007c00370003003c006400530029034eda40663836386137646238616639643966313534366635316264373031373535363731656531613232313931633661396166393738333564633030343037313635657a2f5472616e7366657220616d6f756e74206578636565647320617661696c61626c6520746f6b656e2062616c616e6365290472090000007210000000720e000000720f000000290272080000007212000000720a000000720a000000720b000000da0c7472616e736665725f75776311000000730e0000000002020106011001020106010801721500000029027208000000da02746f630200000000000000030000000500000043000000732000000074006a01640183017d027c026a027c007c0174036a0464028d0301006400530029034eda0863757272656e6379290372080000007216000000da0c6d61696e5f6163636f756e742905da09696d706f72746c6962da0d696d706f72745f6d6f64756c65da0d7472616e736665725f66726f6d720e000000720f000000290372080000007216000000da05746f6b656e720a000000720a000000720b000000da076275795f7577631c000000730400000000020a01721d000000630100000000000000030000000400000043000000734200000074006a017d0174027c0119007d027c027c006b05731e740364018301820174027c01050019007c00380003003c0074026402050019007c00370003003c006400530029034e7a2f5472616e7366657220616d6f756e74206578636565647320617661696c61626c6520746f6b656e2062616c616e636572140000002904720e000000720f000000720900000072100000002903720800000072110000007212000000720a000000720a000000720b000000da0e7365617263685f617070726f766522000000730e0000000002060108011001100102010601721e000000630200000000000000020000000400000043000000732a0000007c0064016b0473107400640283018201740174026a037c016602050019007c00370003003c006400530029034e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e63657321290472100000007209000000720e000000720f000000290272080000007216000000720a000000720a000000720b000000da07617070726f76652d000000730400000000021001721f0000002903720800000072160000007218000000630300000000000000030000000500000043000000738a0000007c0064016b047310740064028301820174017c0274026a03660219007c006b05733c740064036a0474017c0274026a03660219007c0083028301820174017c0219007c006b057350740064048301820174017c0274026a036602050019007c00380003003c0074017c02050019007c00380003003c0074017c01050019007c00370003003c006400530029054e72010000007a1e43616e6e6f742073656e64206e656761746976652062616c616e636573217a494e6f7420656e6f75676820636f696e7320617070726f76656420746f2073656e642120596f752068617665207b7d20616e642061726520747279696e6720746f207370656e64207b7d7a194e6f7420656e6f75676820636f696e7320746f2073656e6421290572100000007209000000720e000000720f000000da06666f726d61742903720800000072160000007218000000720a000000720a000000720b000000721b000000330000007310000000000210010c010c011401140116011001721b0000004e290dda04486173687209000000da03737472da03696e74720c000000da085f5f6578706f727472130000007215000000da05666c6f6174721d000000721e000000721f000000721b000000720a000000720a000000720a000000720b000000da083c6d6f64756c653e01000000731a0000000e031004060112080601100a060112050601100a060112050601