tx · 6PnwN47SudLwbj85zNBgDucQfmPSMT1Z4GVRMZ9fuDv3 3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM: -0.02000000 Waves 2020.07.03 17:45 [1071038] smart account 3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM > SELF 0.00000000 Waves
{ "type": 13, "id": "6PnwN47SudLwbj85zNBgDucQfmPSMT1Z4GVRMZ9fuDv3", "fee": 2000000, "feeAssetId": null, "timestamp": 1593787564062, "version": 1, "sender": "3N54eKW5ZucDaRaGVUfzX8xRXv6Ve8M71tM", "senderPublicKey": "FmnQ1LwTnauTS2BSrZivE1nSF1A9MY9hyYB72pyh5hw9", "proofs": [ "5PdoUGvnsLPGQtT8fXcUM7bdmqzeHr5nHYTnFbmrmgy4hR3rz5nodDmp6cZi2LyKoGr7EzPGHtBvmvPi9VxReExR" ], "script": "base64:AAIDAAAAAAAAAAcIARIDCgECAAAADwEAAAAKZGVjb2RlSW50OAAAAAIAAAAEZGF0YQAAAAZvZmZzZXQDCQAAZgAAAAIAAAAAAAAAAAEJAADIAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAAC1kZWNvZGUgdTggZXJyb3IsIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCAxIGJ5dGUDCQAAZgAAAAIFAAAABm9mZnNldAkAAMgAAAABBQAAAARkYXRhCQAAAgAAAAECAAAAI2RlY29kZSB1OCBlcnJvciwgZGVjb2RpbmcgaXMgZmluaXNoBAAAAAJ4MAkAAMkAAAACCQAAygAAAAIFAAAABGRhdGEFAAAABm9mZnNldAAAAAAAAAAAAQQAAAACeDEJAASyAAAAAgkAAMsAAAACAQAAAAcAAAAAAAAABQAAAAJ4MAAAAAAAAAAAAAkABEwAAAACCQAEsgAAAAIJAADLAAAAAgEAAAAHAAAAAAAAAAUAAAACeDAAAAAAAAAAAAAJAARMAAAAAgkAAGQAAAACBQAAAAZvZmZzZXQAAAAAAAAAAAEFAAAAA25pbAEAAAALZGVjb2RlSW50MTYAAAACAAAABGRhdGEAAAAGb2Zmc2V0AwkAAGYAAAACAAAAAAAAAAACCQAAyAAAAAEFAAAABGRhdGEJAAACAAAAAQIAAAAvZGVjb2RlIHUxNiBlcnJvciwgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDIgYnl0ZXMDCQAAZgAAAAIFAAAABm9mZnNldAkAAMgAAAABBQAAAARkYXRhCQAAAgAAAAECAAAAJGRlY29kZSB1MTYgZXJyb3IsIGRlY29kaW5nIGlzIGZpbmlzaAQAAAACeDAJAADKAAAAAgUAAAAEZGF0YQUAAAAGb2Zmc2V0BAAAAAJ4MQkAAMkAAAACBQAAAAJ4MAAAAAAAAAAAAgkABEwAAAACCQAEsgAAAAIJAADLAAAAAgEAAAAGAAAAAAAABQAAAAJ4MQAAAAAAAAAAAAkABEwAAAACCQAAZAAAAAIFAAAABm9mZnNldAAAAAAAAAAAAgUAAAADbmlsAQAAAAtkZWNvZGVJbnQzMgAAAAIAAAAEZGF0YQAAAAZvZmZzZXQDCQAAZgAAAAIAAAAAAAAAAAQJAADIAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAAC9kZWNvZGUgdTMyIGVycm9yLCBkYXRhIG11c3QgYmUgYXQgbGVhc3QgNCBieXRlcwMJAABmAAAAAgUAAAAGb2Zmc2V0CQAAyAAAAAEFAAAABGRhdGEJAAACAAAAAQIAAAAkZGVjb2RlIHUzMiBlcnJvciwgZGVjb2RpbmcgaXMgZmluaXNoBAAAAAJ4MAkAAMoAAAACBQAAAARkYXRhBQAAAAZvZmZzZXQEAAAAAngxCQAAyQAAAAIFAAAAAngwAAAAAAAAAAAECQAETAAAAAIJAASyAAAAAgkAAMsAAAACAQAAAAQAAAAABQAAAAJ4MQAAAAAAAAAAAAkABEwAAAACCQAAZAAAAAIFAAAABm9mZnNldAAAAAAAAAAABAUAAAADbmlsAQAAAAtkZWNvZGVJbnQ2NAAAAAIAAAAEZGF0YQAAAAZvZmZzZXQDCQAAZgAAAAIAAAAAAAAAAAgJAADIAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAAC9kZWNvZGUgdTMyIGVycm9yLCBkYXRhIG11c3QgYmUgYXQgbGVhc3QgOCBieXRlcwMJAABmAAAAAgUAAAAGb2Zmc2V0CQAAyAAAAAEFAAAABGRhdGEJAAACAAAAAQIAAAAkZGVjb2RlIHUzMiBlcnJvciwgZGVjb2RpbmcgaXMgZmluaXNoBAAAAAJ4MAkAAMoAAAACBQAAAARkYXRhBQAAAAZvZmZzZXQEAAAAAngxCQAAyQAAAAIFAAAAAngwAAAAAAAAAAAICQAETAAAAAIJAASyAAAAAgUAAAACeDEAAAAAAAAAAAAJAARMAAAAAgkAAGQAAAACBQAAAAZvZmZzZXQAAAAAAAAAAAgFAAAAA25pbAEAAAAKZGVjb2RlQm9vbAAAAAIAAAAEZGF0YQAAAAZvZmZzZXQEAAAACGRlY29kZWQxCQEAAAAKZGVjb2RlSW50OAAAAAIFAAAABGRhdGEFAAAABm9mZnNldAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAEYm9vbAkBAAAAAiE9AAAAAgkAAZEAAAACBQAAAAhkZWNvZGVkMQAAAAAAAAAAAAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAADaW50CQABkQAAAAIFAAAACGRlY29kZWQxAAAAAAAAAAABBQAAAANuaWwBAAAADWRlY29kZUJ5dGVzMzIAAAACAAAABGRhdGEAAAAGb2Zmc2V0AwkAAGYAAAACAAAAAAAAAAAgCQAAyAAAAAEFAAAABGRhdGEJAAACAAAAAQIAAAA0ZGVjb2RlIGJ5dGVzMzIgZXJyb3IsIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCAzMiBieXRlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALYnl0ZV92ZWN0b3IJAADJAAAAAgkAAMoAAAACBQAAAARkYXRhBQAAAAZvZmZzZXQAAAAAAAAAACAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAA2ludAkAAGQAAAACBQAAAAZvZmZzZXQAAAAAAAAAACAFAAAAA25pbAEAAAANZGVjb2RlQnl0ZXM2NAAAAAIAAAAEZGF0YQAAAAZvZmZzZXQDCQAAZgAAAAIAAAAAAAAAAEAJAADIAAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAADRkZWNvZGUgYnl0ZXM2NCBlcnJvciwgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDY0IGJ5dGVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtieXRlX3ZlY3RvcgkAAMkAAAACCQAAygAAAAIFAAAABGRhdGEFAAAABm9mZnNldAAAAAAAAAAAQAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAADaW50CQAAZAAAAAIFAAAABm9mZnNldAAAAAAAAAAAQAUAAAADbmlsAQAAAA1kZWNvZGVCeXRlczY1AAAAAgAAAARkYXRhAAAABm9mZnNldAMJAABmAAAAAgAAAAAAAAAAQQkAAMgAAAABBQAAAARkYXRhCQAAAgAAAAECAAAANGRlY29kZSBieXRlczY1IGVycm9yLCBkYXRhIG11c3QgYmUgYXQgbGVhc3QgNjUgYnl0ZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC2J5dGVfdmVjdG9yCQAAyQAAAAIJAADKAAAAAgUAAAAEZGF0YQUAAAAGb2Zmc2V0AAAAAAAAAABBCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAANpbnQJAABkAAAAAgUAAAAGb2Zmc2V0AAAAAAAAAABBBQAAAANuaWwBAAAAC2RlY29kZUJ5dGVzAAAAAgAAAARkYXRhAAAABm9mZnNldAQAAAAIZGVjb2RlZDEJAQAAAAtkZWNvZGVJbnQzMgAAAAIFAAAABGRhdGEFAAAABm9mZnNldAQAAAAJYnl0ZXNTaXplCQABkQAAAAIFAAAACGRlY29kZWQxAAAAAAAAAAAABAAAAApuZXh0T2Zmc2V0CQABkQAAAAIFAAAACGRlY29kZWQxAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtieXRlX3ZlY3RvcgkAAMkAAAACCQAAygAAAAIFAAAABGRhdGEFAAAACm5leHRPZmZzZXQFAAAACWJ5dGVzU2l6ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAADaW50CQAAZAAAAAIFAAAACm5leHRPZmZzZXQFAAAACWJ5dGVzU2l6ZQUAAAADbmlsAQAAAAxkZWNvZGVTdHJpbmcAAAACAAAABGRhdGEAAAAGb2Zmc2V0BAAAAAhkZWNvZGVkMQkBAAAAC2RlY29kZUludDMyAAAAAgUAAAAEZGF0YQUAAAAGb2Zmc2V0BAAAAAlieXRlc1NpemUJAAGRAAAAAgUAAAAIZGVjb2RlZDEAAAAAAAAAAAAEAAAACm5leHRPZmZzZXQJAAGRAAAAAgUAAAAIZGVjb2RlZDEAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABnN0cmluZwkABLAAAAABCQAAyQAAAAIJAADKAAAAAgUAAAAEZGF0YQUAAAAKbmV4dE9mZnNldAUAAAAJYnl0ZXNTaXplCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAANpbnQJAABkAAAAAgUAAAAKbmV4dE9mZnNldAUAAAAJYnl0ZXNTaXplBQAAAANuaWwBAAAACWdldEFzQm9vbAAAAAEAAAAFdHVwbGUEAAAAByRtYXRjaDAICQABkQAAAAIFAAAABXR1cGxlAAAAAAAAAAAAAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiCQAAAgAAAAECAAAADW5vdCBhIEJvb2xlYW4BAAAAD2dldEFzQnl0ZVZlY3RvcgAAAAEAAAAFdHVwbGUEAAAAByRtYXRjaDAICQABkQAAAAIFAAAABXR1cGxlAAAAAAAAAAAAAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJidgUAAAAHJG1hdGNoMAUAAAACYnYJAAACAAAAAQIAAAAQbm90IGEgQnl0ZVZlY3RvcgEAAAALZ2V0QXNTdHJpbmcAAAABAAAABXR1cGxlBAAAAAckbWF0Y2gwCAkAAZEAAAACBQAAAAV0dXBsZQAAAAAAAAAAAAAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzCQAAAgAAAAECAAAADG5vdCBhIFN0cmluZwEAAAAJZ2V0T2Zmc2V0AAAAAQAAAAV0dXBsZQQAAAAHJG1hdGNoMAgJAAGRAAAAAgUAAAAFdHVwbGUAAAAAAAAAAAEAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQkAAAIAAAABAgAAAAlub3QgYSBJbnQBAAAAG2dldExhdGVzdFVwZGF0ZVRpbWVPZlN5bWJvbAAAAAEAAAAGc3ltYm9sBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGc3ltYm9sAgAAAA4vbGF0ZXN0X3VwZGF0ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFpBQAAAAckbWF0Y2gwBQAAAAFpAAAAAAAAAAAAAAAAAQAAAApjb250ZXh0T2JqAQAAAA5yZWxheUFuZFZlcmlmeQAAAAEAAAAEZGF0YQMJAQAAAAIhPQAAAAIIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABNVbmF1dGhvcml6ZWQgY2FsbGVyBAAAAARyZXExCQEAAAAMZGVjb2RlU3RyaW5nAAAAAgUAAAAEZGF0YQAAAAAAAAAAAAQAAAAEcmVxMgkBAAAAC2RlY29kZUludDY0AAAAAgUAAAAEZGF0YQkBAAAACWdldE9mZnNldAAAAAEFAAAABHJlcTEEAAAABHJlcTMJAQAAAAtkZWNvZGVCeXRlcwAAAAIFAAAABGRhdGEJAAGRAAAAAgUAAAAEcmVxMgAAAAAAAAAAAQQAAAAEcmVxNAkBAAAAC2RlY29kZUludDY0AAAAAgUAAAAEZGF0YQkBAAAACWdldE9mZnNldAAAAAEFAAAABHJlcTMEAAAABHJlcTUJAQAAAAtkZWNvZGVJbnQ2NAAAAAIFAAAABGRhdGEJAAGRAAAAAgUAAAAEcmVxNAAAAAAAAAAAAQQAAAAEcmVzMQkBAAAADGRlY29kZVN0cmluZwAAAAIFAAAABGRhdGEJAAGRAAAAAgUAAAAEcmVxNQAAAAAAAAAAAQQAAAAEcmVzMgkBAAAAC2RlY29kZUludDY0AAAAAgUAAAAEZGF0YQkBAAAACWdldE9mZnNldAAAAAEFAAAABHJlczEEAAAABHJlczMJAQAAAAtkZWNvZGVJbnQ2NAAAAAIFAAAABGRhdGEJAAGRAAAAAgUAAAAEcmVzMgAAAAAAAAAAAQQAAAAEcmVzNAkBAAAAC2RlY29kZUludDY0AAAAAgUAAAAEZGF0YQkAAZEAAAACBQAAAARyZXMzAAAAAAAAAAABBAAAAARyZXM1CQEAAAALZGVjb2RlSW50NjQAAAACBQAAAARkYXRhCQABkQAAAAIFAAAABHJlczQAAAAAAAAAAAEEAAAABHJlczYJAQAAAApkZWNvZGVJbnQ4AAAAAgUAAAAEZGF0YQkAAZEAAAACBQAAAARyZXM1AAAAAAAAAAABBAAAAARyZXM3CQEAAAALZGVjb2RlQnl0ZXMAAAACBQAAAARkYXRhCQABkQAAAAIFAAAABHJlczYAAAAAAAAAAAEEAAAACGNhbGxkYXRhCQEAAAAPZ2V0QXNCeXRlVmVjdG9yAAAAAQUAAAAEcmVxMwQAAAACYzEJAQAAAAxkZWNvZGVTdHJpbmcAAAACBQAAAAhjYWxsZGF0YQAAAAAAAAAAAAQAAAACYzIJAQAAAAtkZWNvZGVJbnQ2NAAAAAIFAAAACGNhbGxkYXRhCQEAAAAJZ2V0T2Zmc2V0AAAAAQUAAAACYzEEAAAABnN5bWJvbAkBAAAAC2dldEFzU3RyaW5nAAAAAQUAAAACYzEEAAAACm11bHRpcGxpZXIJAAGRAAAAAgUAAAACYzIAAAAAAAAAAAADCQEAAAACIT0AAAACCQABkQAAAAIFAAAABHJlcTIAAAAAAAAAAAAAAAAAAAAAAAEJAAACAAAAAQIAAAAVSW52YWxpZCBvcmFjbGUgc2NyaXB0AwMDCQEAAAACIT0AAAACBQAAAAZzeW1ib2wCAAAAA0JUQwkBAAAAAiE9AAAAAgUAAAAGc3ltYm9sAgAAAAVXQVZFUwcJAQAAAAIhPQAAAAIFAAAABnN5bWJvbAIAAAADRVRIBwkAAAIAAAABAgAAAA5JbnZhbGlkIHN5bWJvbAMJAQAAAAIhPQAAAAIFAAAACm11bHRpcGxpZXIAAAAAAAAPQkAJAAACAAAAAQIAAAASSW52YWxpZCBtdWx0aXBsaWVyAwkAAGYAAAACCQABkQAAAAIFAAAABHJlczUAAAAAAAAAAAAJAQAAABtnZXRMYXRlc3RVcGRhdGVUaW1lT2ZTeW1ib2wAAAABBQAAAAZzeW1ib2wJAAACAAAAAQIAAAAZTm90IG5ld2VyIHRoYW4gdGhlIGxhdGVzdAMJAQAAAAIhPQAAAAIJAAGRAAAAAgUAAAAEcmVzNgAAAAAAAAAAAAAAAAAAAAAAAQkAAAIAAAABAgAAABZJbnZhbGlkIHJlc29sdmUgc3RhdHVzBAAAAAhyZXNwb25zZQkBAAAAD2dldEFzQnl0ZVZlY3RvcgAAAAEFAAAABHJlczcEAAAABXByaWNlCQEAAAALZGVjb2RlSW50NjQAAAACBQAAAAhyZXNwb25zZQAAAAAAAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAZzeW1ib2wCAAAADi9sYXRlc3RfdXBkYXRlCQABkQAAAAIFAAAABHJlczUAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAGc3ltYm9sAgAAAAYvdmFsdWUJAAGRAAAAAgUAAAAFcHJpY2UAAAAAAAAAAAAFAAAAA25pbAAAAAB90Vt3", "chainId": 84, "height": 1071038, "spentComplexity": 0 } View: original | compacted Prev: 6SwbexSUr9XauwwD1BeEnogWD8tGAQG4tyZWboHBRE4n Next: bY23fk94CL4uyAjaw22xs8a9RbnvhofVhMewwQmmkzr Diff:
Old | New | Differences | |
---|---|---|---|
161 | 161 | if ((F[0] != 1)) | |
162 | 162 | then throw("Invalid oracle script") | |
163 | 163 | else if (if (if ((C != "BTC")) | |
164 | - | then | |
165 | - | else | |
166 | - | then | |
167 | - | else | |
164 | + | then (C != "WAVES") | |
165 | + | else false) | |
166 | + | then (C != "ETH") | |
167 | + | else false) | |
168 | 168 | then throw("Invalid symbol") | |
169 | 169 | else if ((T != 1000000)) | |
170 | 170 | then throw("Invalid multiplier") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b,c) = if ((1 > size(b))) | |
5 | 5 | then throw("decode u8 error, data must be at least 1 byte") | |
6 | 6 | else if ((c > size(b))) | |
7 | 7 | then throw("decode u8 error, decoding is finish") | |
8 | 8 | else { | |
9 | 9 | let d = take(drop(b, c), 1) | |
10 | 10 | let e = toInt((base58'1111111' + d), 0) | |
11 | 11 | [toInt((base58'1111111' + d), 0), (c + 1)] | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func f (b,c) = if ((2 > size(b))) | |
16 | 16 | then throw("decode u16 error, data must be at least 2 bytes") | |
17 | 17 | else if ((c > size(b))) | |
18 | 18 | then throw("decode u16 error, decoding is finish") | |
19 | 19 | else { | |
20 | 20 | let d = drop(b, c) | |
21 | 21 | let e = take(d, 2) | |
22 | 22 | [toInt((base58'111111' + e), 0), (c + 2)] | |
23 | 23 | } | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func g (b,c) = if ((4 > size(b))) | |
27 | 27 | then throw("decode u32 error, data must be at least 4 bytes") | |
28 | 28 | else if ((c > size(b))) | |
29 | 29 | then throw("decode u32 error, decoding is finish") | |
30 | 30 | else { | |
31 | 31 | let d = drop(b, c) | |
32 | 32 | let e = take(d, 4) | |
33 | 33 | [toInt((base58'1111' + e), 0), (c + 4)] | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func h (b,c) = if ((8 > size(b))) | |
38 | 38 | then throw("decode u32 error, data must be at least 8 bytes") | |
39 | 39 | else if ((c > size(b))) | |
40 | 40 | then throw("decode u32 error, decoding is finish") | |
41 | 41 | else { | |
42 | 42 | let d = drop(b, c) | |
43 | 43 | let e = take(d, 8) | |
44 | 44 | [toInt(e, 0), (c + 8)] | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | func i (b,c) = { | |
49 | 49 | let j = a(b, c) | |
50 | 50 | [DataEntry("bool", (j[0] != 0)), DataEntry("int", j[1])] | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | func k (b,c) = if ((32 > size(b))) | |
55 | 55 | then throw("decode bytes32 error, data must be at least 32 bytes") | |
56 | 56 | else [DataEntry("byte_vector", take(drop(b, c), 32)), DataEntry("int", (c + 32))] | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | func l (b,c) = if ((64 > size(b))) | |
60 | 60 | then throw("decode bytes64 error, data must be at least 64 bytes") | |
61 | 61 | else [DataEntry("byte_vector", take(drop(b, c), 64)), DataEntry("int", (c + 64))] | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func m (b,c) = if ((65 > size(b))) | |
65 | 65 | then throw("decode bytes65 error, data must be at least 65 bytes") | |
66 | 66 | else [DataEntry("byte_vector", take(drop(b, c), 65)), DataEntry("int", (c + 65))] | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func n (b,c) = { | |
70 | 70 | let j = g(b, c) | |
71 | 71 | let o = j[0] | |
72 | 72 | let p = j[1] | |
73 | 73 | [DataEntry("byte_vector", take(drop(b, p), o)), DataEntry("int", (p + o))] | |
74 | 74 | } | |
75 | 75 | ||
76 | 76 | ||
77 | 77 | func q (b,c) = { | |
78 | 78 | let j = g(b, c) | |
79 | 79 | let o = j[0] | |
80 | 80 | let p = j[1] | |
81 | 81 | [DataEntry("string", toUtf8String(take(drop(b, p), o))), DataEntry("int", (p + o))] | |
82 | 82 | } | |
83 | 83 | ||
84 | 84 | ||
85 | 85 | func r (s) = { | |
86 | 86 | let t = s[0].value | |
87 | 87 | if ($isInstanceOf(t, "Boolean")) | |
88 | 88 | then { | |
89 | 89 | let u = t | |
90 | 90 | u | |
91 | 91 | } | |
92 | 92 | else throw("not a Boolean") | |
93 | 93 | } | |
94 | 94 | ||
95 | 95 | ||
96 | 96 | func v (s) = { | |
97 | 97 | let t = s[0].value | |
98 | 98 | if ($isInstanceOf(t, "ByteVector")) | |
99 | 99 | then { | |
100 | 100 | let w = t | |
101 | 101 | w | |
102 | 102 | } | |
103 | 103 | else throw("not a ByteVector") | |
104 | 104 | } | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | func x (s) = { | |
108 | 108 | let t = s[0].value | |
109 | 109 | if ($isInstanceOf(t, "String")) | |
110 | 110 | then { | |
111 | 111 | let y = t | |
112 | 112 | y | |
113 | 113 | } | |
114 | 114 | else throw("not a String") | |
115 | 115 | } | |
116 | 116 | ||
117 | 117 | ||
118 | 118 | func z (s) = { | |
119 | 119 | let t = s[1].value | |
120 | 120 | if ($isInstanceOf(t, "Int")) | |
121 | 121 | then { | |
122 | 122 | let A = t | |
123 | 123 | A | |
124 | 124 | } | |
125 | 125 | else throw("not a Int") | |
126 | 126 | } | |
127 | 127 | ||
128 | 128 | ||
129 | 129 | func B (C) = { | |
130 | 130 | let t = getInteger(this, (C + "/latest_update")) | |
131 | 131 | if ($isInstanceOf(t, "Int")) | |
132 | 132 | then { | |
133 | 133 | let A = t | |
134 | 134 | A | |
135 | 135 | } | |
136 | 136 | else 0 | |
137 | 137 | } | |
138 | 138 | ||
139 | 139 | ||
140 | 140 | @Callable(D) | |
141 | 141 | func relayAndVerify (b) = if ((D.caller != this)) | |
142 | 142 | then throw("Unauthorized caller") | |
143 | 143 | else { | |
144 | 144 | let E = q(b, 0) | |
145 | 145 | let F = h(b, z(E)) | |
146 | 146 | let G = n(b, F[1]) | |
147 | 147 | let H = h(b, z(G)) | |
148 | 148 | let I = h(b, H[1]) | |
149 | 149 | let J = q(b, I[1]) | |
150 | 150 | let K = h(b, z(J)) | |
151 | 151 | let L = h(b, K[1]) | |
152 | 152 | let M = h(b, L[1]) | |
153 | 153 | let N = h(b, M[1]) | |
154 | 154 | let O = a(b, N[1]) | |
155 | 155 | let P = n(b, O[1]) | |
156 | 156 | let Q = v(G) | |
157 | 157 | let R = q(Q, 0) | |
158 | 158 | let S = h(Q, z(R)) | |
159 | 159 | let C = x(R) | |
160 | 160 | let T = S[0] | |
161 | 161 | if ((F[0] != 1)) | |
162 | 162 | then throw("Invalid oracle script") | |
163 | 163 | else if (if (if ((C != "BTC")) | |
164 | - | then | |
165 | - | else | |
166 | - | then | |
167 | - | else | |
164 | + | then (C != "WAVES") | |
165 | + | else false) | |
166 | + | then (C != "ETH") | |
167 | + | else false) | |
168 | 168 | then throw("Invalid symbol") | |
169 | 169 | else if ((T != 1000000)) | |
170 | 170 | then throw("Invalid multiplier") | |
171 | 171 | else if ((N[0] > B(C))) | |
172 | 172 | then throw("Not newer than the latest") | |
173 | 173 | else if ((O[0] != 1)) | |
174 | 174 | then throw("Invalid resolve status") | |
175 | 175 | else { | |
176 | 176 | let U = v(P) | |
177 | 177 | let V = h(U, 0) | |
178 | 178 | WriteSet([DataEntry((C + "/latest_update"), N[0]), DataEntry((C + "/value"), V[0])]) | |
179 | 179 | } | |
180 | 180 | } | |
181 | 181 | ||
182 | 182 |
github/deemru/w8io/169f3d6 46.02 ms ◑![]()