tx · 7kuoX4EbsoLVzPdNk45cCihJKghqFHJ9PXWBdtZeSaR6 3N3RGW47cNzDY5Yp7vn13qdnpM2TNWaKeoU: -0.01000000 Waves 2020.04.15 22:45 [956001] smart account 3N3RGW47cNzDY5Yp7vn13qdnpM2TNWaKeoU > SELF 0.00000000 Waves
{ "type": 13, "id": "7kuoX4EbsoLVzPdNk45cCihJKghqFHJ9PXWBdtZeSaR6", "fee": 1000000, "feeAssetId": null, "timestamp": 1586979963100, "version": 1, "sender": "3N3RGW47cNzDY5Yp7vn13qdnpM2TNWaKeoU", "senderPublicKey": "2w1DSfDhaBAYQrwjAwAR5T16EAPYy9u2KbD4dP7FmTjr", "proofs": [ "Wq7ufHYY6R1puhiVTQhqLNZNXnfBft8inDcRuxjS4tn5tmsQydF3A2RWS5cwJnBzB4vtNb993Z3eEv22HyBy51X" ], "script": "base64:AAIDAAAAAAAAAAQIARIAAAAAKAEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEHAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAAtNQVhESVNDT1VOVAAAAAAAAAAAMgAAAAAIQ0FOQ0VMRUQCAAAACGNhbmNlbGVkAAAAAANORVcCAAAAA25ldwAAAAAGRklMTEVEAgAAAAZmaWxsZWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAAEk5ldXRyaW5vQXNzZXRJZEtleQIAAAARbmV1dHJpbm9fYXNzZXRfaWQAAAAAEkNvbnRyb2xDb250cmFjdEtleQIAAAAQY29udHJvbF9jb250cmFjdAAAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAADWJhbGFuY2VfbG9ja18AAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQkAASwAAAACBQAAABFCYWxhbmNlTG9ja2Vka0tleQIAAAAFd2F2ZXMAAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQkAASwAAAACBQAAABFCYWxhbmNlTG9ja2Vka0tleQIAAAAIbmV1dHJpbm8AAAAADUZpcnN0T3JkZXJLZXkCAAAAC29yZGVyX2ZpcnN0AAAAAAxMYXN0T3JkZXJLZXkCAAAACm9yZGVyX2xhc3QBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfcHJpY2VfBQAAAAdvcmRlcklkAQAAAA9nZXRPcmRlck5leHRLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAALb3JkZXJfbmV4dF8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfdG90YWxfBQAAAAdvcmRlcklkAQAAABBnZXRPcmRlck93bmVyS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADG9yZGVyX293bmVyXwUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAANb3JkZXJfc3RhdHVzXwUAAAAHb3JkZXJJZAEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABNvcmRlcl9maWxsZWRfdG90YWxfBQAAAAdvcmRlcklkAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNQQzlCZlJ3SldXaXc5QVJFRTJCM2VXekNrczNDWXRnNHlvAAAAAA9jb250cm9sQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM1A1QmZkNThQUGZOdkJNMkh5OFFmYmNEcU1lTnR6ZzdLZlAAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM1A0UEN4c0pxTXpRQkFMbzh6QU5IdEJEWlJScXVvYkhRcDcAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABAgAAACxERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAAAAALYm9uZEFzc2V0SWQJAAJZAAAAAQIAAAAsNm5TcFZ5Tkg3eU02OWVnNDQ2d3JRUjk0aXBiYmNtWk1VMUVOUHdhbkM5N2cAAAAACWlzQmxvY2tlZAkBAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QCAAAACmlzX2Jsb2NrZWQAAAAACmZpcnN0T3JkZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADUZpcnN0T3JkZXJLZXkAAAAACWxhc3RPcmRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAMTGFzdE9yZGVyS2V5AQAAAAxnZXRPcmRlck5leHQAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0T3JkZXJOZXh0S2V5AAAAAQUAAAACaWQBAAAADWdldE9yZGVyVG90YWwAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEFAAAAAmlkAQAAAA1nZXRPcmRlck93bmVyAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABBQAAAAJpZAEAAAAOZ2V0T3JkZXJTdGF0dXMAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAAJpZAEAAAATZ2V0T3JkZXJGaWxsZWRUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQUAAAACaWQAAAAAFkN1cnJlbnREZWZhdWx0T3JkZXJLZXkCAAAADW9yZGVyX2RlZmF1bHQAAAABAAAAAWkBAAAAGG1pZ3JhdGlvbk9yZGVyc05TQlR0b1NPTgAAAAAEAAAAB3Rlc3RLZXkCAAAABXRlc3QxAwkAAGYAAAACCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAAd0ZXN0S2V5AAAAAAAAAAAKCQAAAgAAAAECAAAAP3N0YXR1cyBvazogYWxsIG9yZGVyIGhhcyBhbHJlYWR5IG1pZ3JhdGVkIG9yIG5vdGhpbmcgdG8gbWlncmF0ZQQAAAANcHJldmlvdXNWYWx1ZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQIAAAAFdGVzdDEEAAAACG5ld1ZhbHVlCQAAZAAAAAIFAAAADXByZXZpb3VzVmFsdWUAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAB3Rlc3RLZXkFAAAACG5ld1ZhbHVlBQAAAANuaWwAAAAAI1M6Lw==", "chainId": 84, "height": 956001, "spentComplexity": 0 } View: original | compacted Prev: none Next: 95xr3vGvZzs1KaXHN36RqwFdMTaG6veN1kcjZ9hVtH5p Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func getNumberByKey (key) = match getInteger(this, key) { | |
5 | + | case a: Int => | |
6 | + | a | |
7 | + | case _ => | |
8 | + | 0 | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | func getStringByKey (key) = match getString(this, key) { | |
13 | + | case a: String => | |
14 | + | a | |
15 | + | case _ => | |
16 | + | "" | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func getBoolByAddressAndKey (address,key) = match getBoolean(address, key) { | |
21 | + | case a: Boolean => | |
22 | + | a | |
23 | + | case _ => | |
24 | + | false | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | func getStringByAddressAndKey (address,key) = match getString(address, key) { | |
29 | + | case a: String => | |
30 | + | a | |
31 | + | case _ => | |
32 | + | "" | |
33 | + | } | |
34 | + | ||
35 | + | ||
36 | + | func getNumberByAddressAndKey (address,key) = match getInteger(address, key) { | |
37 | + | case a: Int => | |
38 | + | a | |
39 | + | case _ => | |
40 | + | 0 | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | let WAVELET = 100000000 | |
45 | + | ||
46 | + | let PAULI = 1000000 | |
47 | + | ||
48 | + | let MAXDISCOUNT = 50 | |
49 | + | ||
50 | + | let CANCELED = "canceled" | |
51 | + | ||
52 | + | let NEW = "new" | |
53 | + | ||
54 | + | let FILLED = "filled" | |
55 | + | ||
56 | + | let NeutrinoContractKey = "neutrino_contract" | |
57 | + | ||
58 | + | let PriceKey = "price" | |
59 | + | ||
60 | + | let NeutrinoAssetIdKey = "neutrino_asset_id" | |
61 | + | ||
62 | + | let ControlContractKey = "control_contract" | |
63 | + | ||
64 | + | let BalanceLockedkKey = "balance_lock_" | |
65 | + | ||
66 | + | let WavesLockedBalanceKey = (BalanceLockedkKey + "waves") | |
67 | + | ||
68 | + | let NeutrinoLockedBalanceKey = (BalanceLockedkKey + "neutrino") | |
69 | + | ||
70 | + | let FirstOrderKey = "order_first" | |
71 | + | ||
72 | + | let LastOrderKey = "order_last" | |
73 | + | ||
74 | + | func getOrderPriceKey (orderId) = ("order_price_" + orderId) | |
75 | + | ||
76 | + | ||
77 | + | func getOrderNextKey (orderId) = ("order_next_" + orderId) | |
78 | + | ||
79 | + | ||
80 | + | func getOrderTotalKey (orderId) = ("order_total_" + orderId) | |
81 | + | ||
82 | + | ||
83 | + | func getOrderOwnerKey (orderId) = ("order_owner_" + orderId) | |
84 | + | ||
85 | + | ||
86 | + | func getOrderStatusKey (orderId) = ("order_status_" + orderId) | |
87 | + | ||
88 | + | ||
89 | + | func getOrderFilledTotalKey (orderId) = ("order_filled_total_" + orderId) | |
90 | + | ||
91 | + | ||
92 | + | let neutrinoContract = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo") | |
93 | + | ||
94 | + | let controlContract = addressFromStringValue("3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP") | |
95 | + | ||
96 | + | let liquidationContract = addressFromStringValue("3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7") | |
97 | + | ||
98 | + | let neutrinoAssetId = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p") | |
99 | + | ||
100 | + | let bondAssetId = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g") | |
101 | + | ||
102 | + | let isBlocked = getBoolByAddressAndKey(controlContract, "is_blocked") | |
103 | + | ||
104 | + | let firstOrder = getStringByKey(FirstOrderKey) | |
105 | + | ||
106 | + | let lastOrder = getStringByKey(LastOrderKey) | |
107 | + | ||
108 | + | func getOrderNext (id) = getStringByKey(getOrderNextKey(id)) | |
109 | + | ||
110 | + | ||
111 | + | func getOrderTotal (id) = getNumberByKey(getOrderTotalKey(id)) | |
112 | + | ||
113 | + | ||
114 | + | func getOrderOwner (id) = getStringByKey(getOrderOwnerKey(id)) | |
115 | + | ||
116 | + | ||
117 | + | func getOrderStatus (id) = getStringByKey(getOrderStatusKey(id)) | |
118 | + | ||
119 | + | ||
120 | + | func getOrderFilledTotal (id) = getNumberByKey(getOrderFilledTotalKey(id)) | |
121 | + | ||
122 | + | ||
123 | + | let CurrentDefaultOrderKey = "order_default" | |
124 | + | ||
125 | + | @Callable(i) | |
126 | + | func migrationOrdersNSBTtoSON () = { | |
127 | + | let testKey = "test1" | |
128 | + | if ((getNumberByKey(testKey) > 10)) | |
129 | + | then throw("status ok: all order has already migrated or nothing to migrate") | |
130 | + | else { | |
131 | + | let previousValue = getNumberByKey("test1") | |
132 | + | let newValue = (previousValue + 1) | |
133 | + | WriteSet([DataEntry(testKey, newValue)]) | |
134 | + | } | |
135 | + | } | |
136 | + | ||
137 | + |
github/deemru/w8io/169f3d6 17.87 ms ◑![]()