tx · 2f5rrpzXBFCh2nCnNnQGkjYSicPyUA1vPHpcS6r16gWS 3N93XuDT7GvzMZdp8WGTbqYxiGY9JQmiWAG: -0.00300000 Waves 2023.09.01 02:16 [2735501] smart account 3N93XuDT7GvzMZdp8WGTbqYxiGY9JQmiWAG > SELF 0.00000000 Waves
{ "type": 13, "id": "2f5rrpzXBFCh2nCnNnQGkjYSicPyUA1vPHpcS6r16gWS", "fee": 300000, "feeAssetId": null, "timestamp": 1693523828867, "version": 2, "chainId": 84, "sender": "3N93XuDT7GvzMZdp8WGTbqYxiGY9JQmiWAG", "senderPublicKey": "3MV6QZNSjqH7Ctc3BGRQJJyZ3DJgCJ6Tqn7LXRgneZ5B", "proofs": [ "LYM2V8Rx2EMVX4bNb4os4KSXV3KukqpbFrZ2Xuyp9MtV1La78N86S6RvzDGcsh7Avh8gbZzzVsQJd9GNhCU2P23" ], "script": "base64:BgISCAISBAoCCAESABIGCgQIAQgICQAKbGltaXRSYXRpbwCgjQYAA2ZlZQBkAAZzY2FsZTUAoI0GAAxmZWVDb2xsZWN0b3ICAAEKZ2V0QXNzZXRJZAEDYXN0BAckbWF0Y2gwBQNhc3QDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBcAUHJG1hdGNoMAUDYXN0BQR1bml0AQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQ1nZXRBc3NldEJ5dGVzAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBCmdldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA8AcCBQR0aGlzBQFiCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQENdHJ5R2V0SW50ZWdlcgIDa2V5B2FkZHJlc3MEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAwFpAQZib3Jyb3cCB2Fzc2V0SWQGYW1vdW50BA5jdXJyZW50QmFsYW5jZQkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQDCQAAAgUOY3VycmVudEJhbGFuY2UFDmN1cnJlbnRCYWxhbmNlBAVsaW1pdAkAawMFDmN1cnJlbnRCYWxhbmNlBQpsaW1pdFJhdGlvBQZzY2FsZTUDCQBnAgUFbGltaXQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgIJYm9ycm93ZWRfCQClCAEIBQFpBmNhbGxlcgIBXwUHYXNzZXRJZAUGYW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50CQENZ2V0QXNzZXRCeXRlcwEFB2Fzc2V0SWQFA25pbAkAAgEJAKwCAgkArAICCQCsAgICEVJlcXVlc3RlZCBhbW91bnQgCQCkAwEFBmFtb3VudAIXIGlzIGJpZ2dlciB0aGFuIGxpbWl0OiAJAKQDAQUFbGltaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFcmVwYXkABAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAdhc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECGJvcnJvd2VkCQENdHJ5R2V0SW50ZWdlcgIJAKwCAgkArAICCQCsAgICCWJvcnJvd2VkXwkApQgBCAUBaQZjYWxsZXICAV8JAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SWQFBHRoaXMDCQBmAgUIYm9ycm93ZWQAAAQNdG9SZXBheUFtb3VudAkAlwMBCQDMCAIFBmFtb3VudAkAzAgCBQhib3Jyb3dlZAUDbmlsBA50b1JldHVybkFtb3VudAkAZQIFBmFtb3VudAUNdG9SZXBheUFtb3VudAQOcmV0dXJuVHJhbnNmZXIDCQBmAgUOdG9SZXR1cm5BbW91bnQAAAkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQ50b1JldHVybkFtb3VudAUHYXNzZXRJZAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgIJYm9ycm93ZWRfCQClCAEIBQFpBmNhbGxlcgIBXwkBDmdldEFzc2V0U3RyaW5nAQUHYXNzZXRJZAkAZQIFCGJvcnJvd2VkBQ10b1JlcGF5QW1vdW50BQNuaWwJAAIBAhNZb3Ugc2hvdWxkbid0IHJlcGF5AWkBBWZsYXNoBAdhc3NldElkBmFtb3VudA9jYWxsYmFja0FkZHJlc3MQY2FsbEJhY2tGdW5jdGlvbgQLY2FsbGJhY2tBZHIJAQdBZGRyZXNzAQkA2QQBBQ9jYWxsYmFja0FkZHJlc3MEDmN1cnJlbnRCYWxhbmNlCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAMJAAACBQ5jdXJyZW50QmFsYW5jZQUOY3VycmVudEJhbGFuY2UEBmJvcnJvdwkA/AcEBQR0aGlzAgZib3Jyb3cJAMwIAgUHYXNzZXRJZAkAzAgCBQZhbW91bnQFA25pbAUDbmlsAwkAAAIFBmJvcnJvdwUGYm9ycm93BAhjYWxsYmFjawkA/AcECQEHQWRkcmVzcwEJANkEAQUPY2FsbGJhY2tBZGRyZXNzBRBjYWxsQmFja0Z1bmN0aW9uBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQAAAgUIY2FsbGJhY2sFCGNhbGxiYWNrBAlmZWVBbW91bnQJAGsDBQZhbW91bnQFA2ZlZQUGc2NhbGU1BA1hbW91bnRUb1JlcGF5CQBkAgUGYW1vdW50BQlmZWVBbW91bnQECm5ld0JhbGFuY2UJAQpnZXRCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQdhc3NldElkAwkAAAIFCm5ld0JhbGFuY2UFCm5ld0JhbGFuY2UDCQBnAgUKbmV3QmFsYW5jZQUNYW1vdW50VG9SZXBheQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUMZmVlQ29sbGVjdG9yBQlmZWVBbW91bnQJAQ1nZXRBc3NldEJ5dGVzAQUHYXNzZXRJZAUDbmlsCQACAQkArAICCQCsAgIJAKwCAgIoUmVqZWN0ZWQgZHVlIHRvIGxvdyByZXBheSBhbW91bnQuIE5lZWQ6IAkApAMBBQ1hbW91bnRUb1JlcGF5AgwsIHByb3ZpZGVkOiAJAKQDAQkAZQIFCm5ld0JhbGFuY2UFDmN1cnJlbnRCYWxhbmNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAK8CrtM=", "height": 2735501, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5V6cDcYegLTCkEb3paZ8qocycrVxdr4MrzapLRuq8Jit Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = 100000 | |
5 | + | ||
6 | + | let b = 100 | |
7 | + | ||
8 | + | let c = 100000 | |
9 | + | ||
10 | + | let d = "" | |
11 | + | ||
12 | + | func e (f) = { | |
13 | + | let g = f | |
14 | + | if ($isInstanceOf(g, "ByteVector")) | |
15 | + | then { | |
16 | + | let h = g | |
17 | + | f | |
18 | + | } | |
19 | + | else unit | |
20 | + | } | |
21 | + | ||
22 | + | ||
23 | + | func i (j) = { | |
24 | + | let g = j | |
25 | + | if ($isInstanceOf(g, "ByteVector")) | |
26 | + | then { | |
27 | + | let k = g | |
28 | + | toBase58String(k) | |
29 | + | } | |
30 | + | else "WAVES" | |
31 | + | } | |
32 | + | ||
33 | + | ||
34 | + | func l (j) = if ((j == "WAVES")) | |
35 | + | then unit | |
36 | + | else fromBase58String(j) | |
37 | + | ||
38 | + | ||
39 | + | func m (j) = { | |
40 | + | let g = j | |
41 | + | if ($isInstanceOf(g, "ByteVector")) | |
42 | + | then { | |
43 | + | let k = g | |
44 | + | assetBalance(this, k) | |
45 | + | } | |
46 | + | else wavesBalance(this).available | |
47 | + | } | |
48 | + | ||
49 | + | ||
50 | + | func n (o,p) = { | |
51 | + | let g = getInteger(p, o) | |
52 | + | if ($isInstanceOf(g, "Int")) | |
53 | + | then { | |
54 | + | let k = g | |
55 | + | k | |
56 | + | } | |
57 | + | else 0 | |
58 | + | } | |
59 | + | ||
60 | + | ||
61 | + | @Callable(q) | |
62 | + | func borrow (j,r) = { | |
63 | + | let s = m(l(j)) | |
64 | + | if ((s == s)) | |
65 | + | then { | |
66 | + | let t = fraction(s, a, c) | |
67 | + | if ((t >= r)) | |
68 | + | then [IntegerEntry(((("borrowed_" + toString(q.caller)) + "_") + j), r), ScriptTransfer(q.caller, r, l(j))] | |
69 | + | else throw(((("Requested amount " + toString(r)) + " is bigger than limit: ") + toString(t))) | |
70 | + | } | |
71 | + | else throw("Strict value is not equal to itself.") | |
72 | + | } | |
73 | + | ||
74 | + | ||
75 | + | ||
76 | + | @Callable(q) | |
77 | + | func repay () = { | |
78 | + | let r = value(q.payments[0].amount) | |
79 | + | let j = q.payments[0].assetId | |
80 | + | let u = n(((("borrowed_" + toString(q.caller)) + "_") + i(j)), this) | |
81 | + | if ((u > 0)) | |
82 | + | then { | |
83 | + | let v = min([r, u]) | |
84 | + | let w = (r - v) | |
85 | + | let x = if ((w > 0)) | |
86 | + | then ScriptTransfer(q.caller, w, j) | |
87 | + | else unit | |
88 | + | [IntegerEntry(((("borrowed_" + toString(q.caller)) + "_") + i(j)), (u - v))] | |
89 | + | } | |
90 | + | else throw("You shouldn't repay") | |
91 | + | } | |
92 | + | ||
93 | + | ||
94 | + | ||
95 | + | @Callable(q) | |
96 | + | func flash (j,r,y,z) = { | |
97 | + | let A = Address(fromBase58String(y)) | |
98 | + | let s = m(l(j)) | |
99 | + | if ((s == s)) | |
100 | + | then { | |
101 | + | let B = invoke(this, "borrow", [j, r], nil) | |
102 | + | if ((B == B)) | |
103 | + | then { | |
104 | + | let C = invoke(Address(fromBase58String(y)), z, nil, [AttachedPayment(l(j), r)]) | |
105 | + | if ((C == C)) | |
106 | + | then { | |
107 | + | let D = fraction(r, b, c) | |
108 | + | let E = (r + D) | |
109 | + | let F = m(l(j)) | |
110 | + | if ((F == F)) | |
111 | + | then if ((F >= E)) | |
112 | + | then [ScriptTransfer(Address(fromBase58String(d)), D, l(j))] | |
113 | + | else throw(((("Rejected due to low repay amount. Need: " + toString(E)) + ", provided: ") + toString((F - s)))) | |
114 | + | else throw("Strict value is not equal to itself.") | |
115 | + | } | |
116 | + | else throw("Strict value is not equal to itself.") | |
117 | + | } | |
118 | + | else throw("Strict value is not equal to itself.") | |
119 | + | } | |
120 | + | else throw("Strict value is not equal to itself.") | |
121 | + | } | |
122 | + | ||
123 | + |
github/deemru/w8io/026f985 19.57 ms ◑