tx · 4uiSKMHXVY6Hm1JK4KS5orq4JfQXDEA7b9rAaDzTQKs8 3NC9boevS259eTsMAkFAxCPorzK4Z9bpWje: -0.01600000 Waves 2023.01.31 10:08 [2428809] smart account 3NC9boevS259eTsMAkFAxCPorzK4Z9bpWje > SELF 0.00000000 Waves
{ "type": 13, "id": "4uiSKMHXVY6Hm1JK4KS5orq4JfQXDEA7b9rAaDzTQKs8", "fee": 1600000, "feeAssetId": null, "timestamp": 1675148932309, "version": 2, "chainId": 84, "sender": "3NC9boevS259eTsMAkFAxCPorzK4Z9bpWje", "senderPublicKey": "515tSAyMUbAb8kKjcpGDpqALGfCgcwfWmWKKkcBKTcGB", "proofs": [ "485sPMWHv5rkrFTKksDzer9724bN2vfoAiz3tY362Vo8xR8CWKxAe36cmnwSHYcvXLao744eS8rorNfFkrvzuYH4" ], "script": "base64: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TmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfBQAAAA1DYWxsX1NlcXVlbmNlBAAAABRzcGxpdFN0YXJ0RW5kQ291bnRlcgkABLUAAAACBQAAABpnZXRPcHRpb25DYWxsX1NlcXVlbmNlZGF0YQIAAAABXwQAAAAPZ2V0U3RhcnRDb3VudGVyCQABkQAAAAIFAAAAFHNwbGl0U3RhcnRFbmRDb3VudGVyAAAAAAAAAAAABAAAAA1nZXRFbmRDb3VudGVyCQABkQAAAAIFAAAAFHNwbGl0U3RhcnRFbmRDb3VudGVyAAAAAAAAAAABBAAAABhnZXRidGNkYXRhQXRTdGFydENvdW50ZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAHMW1fYnRjXwUAAAAPZ2V0U3RhcnRDb3VudGVyBAAAABtzcGxpdGJ0Y3ByaWNlQXRTdGFydENvdW50ZXIJAAS1AAAAAgUAAAAYZ2V0YnRjZGF0YUF0U3RhcnRDb3VudGVyAgAAAAFfBAAAABlnZXRidGNwcmljZUF0U3RhcnRDb3VudGVyCQABkQAAAAIFAAAAG3NwbGl0YnRjcHJpY2VBdFN0YXJ0Q291bnRlcgAAAAAAAAAAAAQAAAAWZ2V0YnRjZGF0YUF0RW5kQ291bnRlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAcxbV9idGNfBQAAAA1nZXRFbmRDb3VudGVyBAAAABlzcGxpdGJ0Y3ByaWNlQXRFbmRDb3VudGVyCQAEtQAAAAIFAAAAFmdldGJ0Y2RhdGFBdEVuZENvdW50ZXICAAAAAV8EAAAAF2dldGJ0Y3ByaWNlQXRFbmRDb3VudGVyCQABkQAAAAIFAAAAGXNwbGl0YnRjcHJpY2VBdEVuZENvdW50ZXIAAAAAAAAAAAAEAAAACXByaWNlZGlmZgkAAGUAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAAF2dldGJ0Y3ByaWNlQXRFbmRDb3VudGVyCQEAAAANcGFyc2VJbnRWYWx1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bGxfU3RhcnRfRW5kXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAANQ2FsbF9TZXF1ZW5jZQUAAAADbmlsAAAAAWkBAAAACENsYWltUHV0AAAAAQAAAAxQdXRfU2VxdWVuY2UEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAOE5vIHBheW1lbnQgYXR0YWNoZWQsIFBsZWFzZSBBdHRhY2ggVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAABFnZXRPcHRpb25QdXRQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEUHV0XwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAAMUHV0X1NlcXVlbmNlBAAAABlnZXRPcHRpb25QdXRfU2VxdWVuY2VkYXRhCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5QdXRfU3RhcnRfRW5kXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAAMUHV0X1NlcXVlbmNlBAAAABRzcGxpdFN0YXJ0RW5kQ291bnRlcgkABLUAAAACBQAAABlnZXRPcHRpb25QdXRfU2VxdWVuY2VkYXRhAgAAAAFfBAAAAA9nZXRTdGFydENvdW50ZXIJAAGRAAAAAgUAAAAUc3BsaXRTdGFydEVuZENvdW50ZXIAAAAAAAAAAAAEAAAADWdldEVuZENvdW50ZXIJAAGRAAAAAgUAAAAUc3BsaXRTdGFydEVuZENvdW50ZXIAAAAAAAAAAAEEAAAAGGdldGJ0Y2RhdGFBdFN0YXJ0Q291bnRlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAcxbV9idGNfBQAAAA9nZXRTdGFydENvdW50ZXIEAAAAG3NwbGl0YnRjcHJpY2VBdFN0YXJ0Q291bnRlcgkABLUAAAACBQAAABhnZXRidGNkYXRhQXRTdGFydENvdW50ZXICAAAAAV8EAAAAGWdldGJ0Y3ByaWNlQXRTdGFydENvdW50ZXIJAAGRAAAAAgUAAAAbc3BsaXRidGNwcmljZUF0U3RhcnRDb3VudGVyAAAAAAAAAAAABAAAABZnZXRidGNkYXRhQXRFbmRDb3VudGVyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAICAAAABzFtX2J0Y18FAAAADWdldEVuZENvdW50ZXIEAAAAGXNwbGl0YnRjcHJpY2VBdEVuZENvdW50ZXIJAAS1AAAAAgUAAAAWZ2V0YnRjZGF0YUF0RW5kQ291bnRlcgIAAAABXwQAAAAXZ2V0YnRjcHJpY2VBdEVuZENvdW50ZXIJAAGRAAAAAgUAAAAZc3BsaXRidGNwcmljZUF0RW5kQ291bnRlcgAAAAAAAAAAAAQAAAAJcHJpY2VkaWZmCQAAZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAXZ2V0YnRjcHJpY2VBdEVuZENvdW50ZXIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAZZ2V0YnRjcHJpY2VBdFN0YXJ0Q291bnRlcgQAAAAOUHJldmlvdXNQdXRXaW4EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAVVG90YWxfT3B0aW9uX1B1dF9XaW5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAC1RvdGFsUHV0V2luCQAAZAAAAAIFAAAADlByZXZpb3VzUHV0V2luAAAAAAAAAAABBAAAAA9QcmV2aW91c1B1dExvc2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAVVG90YWxfT3B0aW9uX1B1dF9Mb3NlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADFRvdGFsUHV0TG9zZQkAAGQAAAACBQAAAA9QcmV2aW91c1B1dExvc2UAAAAAAAAAAAEDCQAA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", "height": 2428809, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8aLMBgu3gVKvNveYeXDCoTjn4M3Gke3itWw8fBUyRoMu Next: 9iQ87YayjovCoRxCawvQsVBT6MJ9qfjZb4Lgoj8sAy3r Diff:
Old | New | Differences | |
---|---|---|---|
46 | 46 | @Callable(i) | |
47 | 47 | func placeoptionPut () = { | |
48 | 48 | let calleraddress = toBase58String(i.caller.bytes) | |
49 | + | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
49 | 50 | let read_oracle_status = getStringValue(this, "oracle_status") | |
50 | 51 | let read_OptionCounterID = getIntegerValue(this, "1m_contract_id") | |
51 | 52 | let getbtcdata = getStringValue(this, ("1m_btc_" + toString(read_OptionCounterID))) | |
73 | 74 | then throw("Something Wrong with Oracle or Height is not matched.") | |
74 | 75 | else if ((read_oracle_status == "Close")) | |
75 | 76 | then throw("Oracle is closed. Wait Until Oracle is Turned On.") | |
76 | - | else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), price), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Puts", TotalPut), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut)] | |
77 | + | else if ((ifBlacklisted == "Yes")) | |
78 | + | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
79 | + | else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), price), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Puts", TotalPut), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut)] | |
77 | 80 | } | |
78 | 81 | ||
79 | 82 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let Dapp_Address_pub_key = base58'CYbv2nupcWmnVFixN6Q2sxd9ChbDsq1KqXQ66VjsZBJE' | |
5 | 5 | ||
6 | 6 | let oracle_controller_address = addressFromPublicKey(Dapp_Address_pub_key) | |
7 | 7 | ||
8 | 8 | @Callable(i) | |
9 | 9 | func placeoptionCall () = { | |
10 | 10 | let calleraddress = toBase58String(i.caller.bytes) | |
11 | 11 | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
12 | 12 | let read_oracle_status = getStringValue(this, "oracle_status") | |
13 | 13 | let read_OptionCounterID = getIntegerValue(this, "1m_contract_id") | |
14 | 14 | let getbtcdata = getStringValue(this, ("1m_btc_" + toString(read_OptionCounterID))) | |
15 | 15 | let swapLi = split(getbtcdata, "_") | |
16 | 16 | let price = swapLi[0] | |
17 | 17 | let block = parseIntValue(swapLi[2]) | |
18 | 18 | let checkblockgap = (height - block) | |
19 | 19 | let OpionExpireCounter = 1 | |
20 | 20 | let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter) | |
21 | 21 | let PreviousCall = match getInteger(this, "Total_Calls") { | |
22 | 22 | case a: Int => | |
23 | 23 | a | |
24 | 24 | case _ => | |
25 | 25 | 0 | |
26 | 26 | } | |
27 | 27 | let TotalCall = (PreviousCall + 1) | |
28 | 28 | let PreviousUserCall = match getInteger(this, (calleraddress + "_Total_Calls")) { | |
29 | 29 | case a: Int => | |
30 | 30 | a | |
31 | 31 | case _ => | |
32 | 32 | 0 | |
33 | 33 | } | |
34 | 34 | let TotalUserCall = (PreviousUserCall + 1) | |
35 | 35 | if ((checkblockgap > 2)) | |
36 | 36 | then throw("Something Wrong with Oracle or Height is not matched.") | |
37 | 37 | else if ((read_oracle_status == "Close")) | |
38 | 38 | then throw("Oracle is closed. Wait Until Oracle is Turned On.") | |
39 | 39 | else if ((ifBlacklisted == "Yes")) | |
40 | 40 | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
41 | 41 | else [StringEntry(((("Call_" + calleraddress) + "_") + toString(TotalUserCall)), price), StringEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(TotalUserCall)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Calls", TotalCall), IntegerEntry((calleraddress + "_Total_Calls"), TotalUserCall)] | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | ||
46 | 46 | @Callable(i) | |
47 | 47 | func placeoptionPut () = { | |
48 | 48 | let calleraddress = toBase58String(i.caller.bytes) | |
49 | + | let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress)) | |
49 | 50 | let read_oracle_status = getStringValue(this, "oracle_status") | |
50 | 51 | let read_OptionCounterID = getIntegerValue(this, "1m_contract_id") | |
51 | 52 | let getbtcdata = getStringValue(this, ("1m_btc_" + toString(read_OptionCounterID))) | |
52 | 53 | let swapLi = split(getbtcdata, "_") | |
53 | 54 | let price = swapLi[0] | |
54 | 55 | let block = parseIntValue(swapLi[2]) | |
55 | 56 | let checkblockgap = (height - block) | |
56 | 57 | let OpionExpireCounter = 1 | |
57 | 58 | let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter) | |
58 | 59 | let PreviousPut = match getInteger(this, "Total_Puts") { | |
59 | 60 | case a: Int => | |
60 | 61 | a | |
61 | 62 | case _ => | |
62 | 63 | 0 | |
63 | 64 | } | |
64 | 65 | let TotalPut = (PreviousPut + 1) | |
65 | 66 | let PreviousUserPut = match getInteger(this, (calleraddress + "_Total_Puts")) { | |
66 | 67 | case a: Int => | |
67 | 68 | a | |
68 | 69 | case _ => | |
69 | 70 | 0 | |
70 | 71 | } | |
71 | 72 | let TotalUserPut = (PreviousUserPut + 1) | |
72 | 73 | if ((checkblockgap > 2)) | |
73 | 74 | then throw("Something Wrong with Oracle or Height is not matched.") | |
74 | 75 | else if ((read_oracle_status == "Close")) | |
75 | 76 | then throw("Oracle is closed. Wait Until Oracle is Turned On.") | |
76 | - | else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), price), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Puts", TotalPut), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut)] | |
77 | + | else if ((ifBlacklisted == "Yes")) | |
78 | + | then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it.")) | |
79 | + | else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), price), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Puts", TotalPut), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut)] | |
77 | 80 | } | |
78 | 81 | ||
79 | 82 | ||
80 | 83 | ||
81 | 84 | @Callable(i) | |
82 | 85 | func ClaimCall (Call_Sequence) = { | |
83 | 86 | let calleraddress = toBase58String(i.caller.bytes) | |
84 | 87 | let pmt = if ((size(i.payments) == 1)) | |
85 | 88 | then i.payments[0] | |
86 | 89 | else throw("No payment attached, Please Attach Tokens in payment[1].") | |
87 | 90 | let getOptionCallPrice = getStringValue(this, ((("Call_" + calleraddress) + "_") + Call_Sequence)) | |
88 | 91 | let getOptionCall_Sequencedata = getStringValue(this, ((("Call_Start_End_" + calleraddress) + "_") + Call_Sequence)) | |
89 | 92 | let splitStartEndCounter = split(getOptionCall_Sequencedata, "_") | |
90 | 93 | let getStartCounter = splitStartEndCounter[0] | |
91 | 94 | let getEndCounter = splitStartEndCounter[1] | |
92 | 95 | let getbtcdataAtStartCounter = getStringValue(this, ("1m_btc_" + getStartCounter)) | |
93 | 96 | let splitbtcpriceAtStartCounter = split(getbtcdataAtStartCounter, "_") | |
94 | 97 | let getbtcpriceAtStartCounter = splitbtcpriceAtStartCounter[0] | |
95 | 98 | let getbtcdataAtEndCounter = getStringValue(this, ("1m_btc_" + getEndCounter)) | |
96 | 99 | let splitbtcpriceAtEndCounter = split(getbtcdataAtEndCounter, "_") | |
97 | 100 | let getbtcpriceAtEndCounter = splitbtcpriceAtEndCounter[0] | |
98 | 101 | let pricediff = (parseIntValue(getbtcpriceAtEndCounter) - parseIntValue(getbtcpriceAtStartCounter)) | |
99 | 102 | let PreviousCallWin = match getInteger(this, "Total_Option_Call_Wins") { | |
100 | 103 | case a: Int => | |
101 | 104 | a | |
102 | 105 | case _ => | |
103 | 106 | 0 | |
104 | 107 | } | |
105 | 108 | let TotalCallWin = (PreviousCallWin + 1) | |
106 | 109 | let PreviousCallLose = match getInteger(this, "Total_Option_Call_Lose") { | |
107 | 110 | case a: Int => | |
108 | 111 | a | |
109 | 112 | case _ => | |
110 | 113 | 0 | |
111 | 114 | } | |
112 | 115 | let TotalCallLose = (PreviousCallLose + 1) | |
113 | 116 | if ((0 > pricediff)) | |
114 | 117 | then [IntegerEntry("Diff", pricediff), IntegerEntry("Total_Option_Call_Lose", TotalCallLose), StringEntry(((((((((((("c_" + calleraddress) + "_") + Call_Sequence) + "_") + getStartCounter) + "_") + getEndCounter) + "_") + getbtcpriceAtStartCounter) + "_") + getbtcpriceAtEndCounter), "lose"), StringEntry("message", "You lose!"), DeleteEntry(((("Call_" + calleraddress) + "_") + Call_Sequence)), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + Call_Sequence))] | |
115 | 118 | else [IntegerEntry("Diff", pricediff), IntegerEntry("Total_Option_Call_Wins", TotalCallWin), StringEntry(((((((((((("c_" + calleraddress) + "_") + Call_Sequence) + "_") + getStartCounter) + "_") + getEndCounter) + "_") + getbtcpriceAtStartCounter) + "_") + getbtcpriceAtEndCounter), "Win"), StringEntry("message", "You Win!"), DeleteEntry(((("Call_" + calleraddress) + "_") + Call_Sequence)), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + Call_Sequence))] | |
116 | 119 | } | |
117 | 120 | ||
118 | 121 | ||
119 | 122 | ||
120 | 123 | @Callable(i) | |
121 | 124 | func ClaimPut (Put_Sequence) = { | |
122 | 125 | let calleraddress = toBase58String(i.caller.bytes) | |
123 | 126 | let pmt = if ((size(i.payments) == 1)) | |
124 | 127 | then i.payments[0] | |
125 | 128 | else throw("No payment attached, Please Attach Tokens in payment[1].") | |
126 | 129 | let getOptionPutPrice = getStringValue(this, ((("Put_" + calleraddress) + "_") + Put_Sequence)) | |
127 | 130 | let getOptionPut_Sequencedata = getStringValue(this, ((("Put_Start_End_" + calleraddress) + "_") + Put_Sequence)) | |
128 | 131 | let splitStartEndCounter = split(getOptionPut_Sequencedata, "_") | |
129 | 132 | let getStartCounter = splitStartEndCounter[0] | |
130 | 133 | let getEndCounter = splitStartEndCounter[1] | |
131 | 134 | let getbtcdataAtStartCounter = getStringValue(this, ("1m_btc_" + getStartCounter)) | |
132 | 135 | let splitbtcpriceAtStartCounter = split(getbtcdataAtStartCounter, "_") | |
133 | 136 | let getbtcpriceAtStartCounter = splitbtcpriceAtStartCounter[0] | |
134 | 137 | let getbtcdataAtEndCounter = getStringValue(this, ("1m_btc_" + getEndCounter)) | |
135 | 138 | let splitbtcpriceAtEndCounter = split(getbtcdataAtEndCounter, "_") | |
136 | 139 | let getbtcpriceAtEndCounter = splitbtcpriceAtEndCounter[0] | |
137 | 140 | let pricediff = (parseIntValue(getbtcpriceAtEndCounter) - parseIntValue(getbtcpriceAtStartCounter)) | |
138 | 141 | let PreviousPutWin = match getInteger(this, "Total_Option_Put_Wins") { | |
139 | 142 | case a: Int => | |
140 | 143 | a | |
141 | 144 | case _ => | |
142 | 145 | 0 | |
143 | 146 | } | |
144 | 147 | let TotalPutWin = (PreviousPutWin + 1) | |
145 | 148 | let PreviousPutLose = match getInteger(this, "Total_Option_Put_Lose") { | |
146 | 149 | case a: Int => | |
147 | 150 | a | |
148 | 151 | case _ => | |
149 | 152 | 0 | |
150 | 153 | } | |
151 | 154 | let TotalPutLose = (PreviousPutLose + 1) | |
152 | 155 | if ((pricediff > 0)) | |
153 | 156 | then [IntegerEntry("Diff", pricediff), IntegerEntry("Total_Option_Put_Lose", TotalPutLose), StringEntry(((((((((((("p_" + calleraddress) + "_") + Put_Sequence) + "_") + getStartCounter) + "_") + getEndCounter) + "_") + getbtcpriceAtStartCounter) + "_") + getbtcpriceAtEndCounter), "lose"), StringEntry("message", "You lose!"), DeleteEntry(((("Put_" + calleraddress) + "_") + Put_Sequence)), DeleteEntry(((("Put_Start_End_" + calleraddress) + "_") + Put_Sequence))] | |
154 | 157 | else [IntegerEntry("Diff", pricediff), IntegerEntry("Total_Option_Put_Wins", TotalPutWin), StringEntry(((((((((((("p_" + calleraddress) + "_") + Put_Sequence) + "_") + getStartCounter) + "_") + getEndCounter) + "_") + getbtcpriceAtStartCounter) + "_") + getbtcpriceAtEndCounter), "Win"), StringEntry("message", "You Win!"), DeleteEntry(((("Put_" + calleraddress) + "_") + Put_Sequence)), DeleteEntry(((("Put_Start_End_" + calleraddress) + "_") + Put_Sequence))] | |
155 | 158 | } | |
156 | 159 | ||
157 | 160 | ||
158 | 161 | ||
159 | 162 | @Callable(i) | |
160 | 163 | func calldata (Counter) = { | |
161 | 164 | let getbtcdata = getStringValue(this, ("1m_btc_" + toString(Counter))) | |
162 | 165 | let swapLi = split(getbtcdata, "_") | |
163 | 166 | let price = swapLi[0] | |
164 | 167 | let time = swapLi[1] | |
165 | 168 | let blockheight = swapLi[2] | |
166 | 169 | let div = swapLi[3] | |
167 | 170 | [StringEntry("price", swapLi[0]), StringEntry("time", swapLi[1]), StringEntry("blockheight", swapLi[2]), StringEntry("div", swapLi[3])] | |
168 | 171 | } | |
169 | 172 | ||
170 | 173 | ||
171 | 174 | ||
172 | 175 | @Callable(i) | |
173 | 176 | func OpenOracle () = { | |
174 | 177 | let calleraddress = toBase58String(i.caller.bytes) | |
175 | 178 | if ((i.caller != oracle_controller_address)) | |
176 | 179 | then throw((("This Address is not Authorized. Only " + toString(oracle_controller_address)) + " is Authorized Address to Sign it.")) | |
177 | 180 | else [StringEntry("oracle_status", "Open")] | |
178 | 181 | } | |
179 | 182 | ||
180 | 183 | ||
181 | 184 | ||
182 | 185 | @Callable(i) | |
183 | 186 | func BlackListAddress (UserAddress) = if ((i.caller != oracle_controller_address)) | |
184 | 187 | then throw((("This Address is not Authorized. Only " + toString(oracle_controller_address)) + " is Authorized Address to Sign it.")) | |
185 | 188 | else [StringEntry(("addr_BLACKLISTED_" + UserAddress), "Yes")] | |
186 | 189 | ||
187 | 190 | ||
188 | 191 | ||
189 | 192 | @Callable(i) | |
190 | 193 | func DeleteBlackListAddress (UserAddress) = if ((i.caller != oracle_controller_address)) | |
191 | 194 | then throw((("This Address is not Authorized. Only " + toString(oracle_controller_address)) + " is Authorized Address to Sign it.")) | |
192 | 195 | else [DeleteEntry(("addr_BLACKLISTED_" + UserAddress))] | |
193 | 196 | ||
194 | 197 | ||
195 | 198 | @Verifier(tx) | |
196 | 199 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
197 | 200 |
github/deemru/w8io/169f3d6 37.94 ms ◑