tx · 5Ln9XAMhfEkGpRgAQ9QrWs3BnfEHt6q8nzpEiw37hqJb

3PA8S4tqxVoSYcCXS5NDZqSqkBpy5NJy9pJ:  -0.01000000 Waves

2022.06.14 00:28 [3160757] smart account 3PA8S4tqxVoSYcCXS5NDZqSqkBpy5NJy9pJ > SELF 0.00000000 Waves

{ "type": 13, "id": "5Ln9XAMhfEkGpRgAQ9QrWs3BnfEHt6q8nzpEiw37hqJb", "fee": 1000000, "feeAssetId": null, "timestamp": 1655155700879, "version": 2, "chainId": 87, "sender": "3PA8S4tqxVoSYcCXS5NDZqSqkBpy5NJy9pJ", "senderPublicKey": "GxSHroFrU5q5NBBRuArgY4xjgE7d5MfC165kVQMo3pwR", "proofs": [ "4HdWDq11uUEQCK7QAxFa69wEb3awJ66889DyF4xHVpwabJSWNx8q8ffQXYRtz5pPuf6oGRb2mHdYaepYsgA5Wyv4" ], "script": "base64:AAIFAAAAAAAAAAkIAhIFCgMBBAEAAAAFAAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAAFYWRtaW4JAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQQThTNHRxeFZvU1ljQ1hTNU5EWnFTcWtCcHk1Tkp5OXBKAAAAAAxhc3NldFN0cmluZ3MJAARMAAAAAgIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoJAARMAAAAAgIAAAAsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoJAARMAAAAAgIAAAAsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAFAAAAA25pbAAAAAAIcmVzZXJ2ZXMJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BHQ2tySEJ4Rk1pN3R6MXhxbnhnQnBlTnZuNUU0TTRnOFMJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BFaUQxekpXVE1aTldTQ3l6aHZCdzlweHhBV2VFd2FnaFIJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BDd0ZYU3E4dmo4aUtpdEE1enJyTFJidXFlaGZtaW1wY2UFAAAAA25pbAEAAAAFYXNJbnQAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAAB13cm9uZyB0eXBlLCBleHBlY3RlZDogSW50ZWdlcgAAAAEAAAABaQEAAAABdwAAAAMAAAACYmIAAAABcAAAAAhtYXhMaW1pdAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAFYWRtaW4JAAACAAAAAQIAAAABIQQAAAANYXNzZXRJZFN0cmluZwkAAZEAAAACBQAAAAxhc3NldFN0cmluZ3MFAAAAAmJiBAAAAAdhc3NldElkCQACWQAAAAEFAAAADWFzc2V0SWRTdHJpbmcEAAAAB3Jlc2VydmUJAAGRAAAAAgUAAAAIcmVzZXJ2ZXMFAAAAAmJiBAAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAHcmVzZXJ2ZQUAAAAHYXNzZXRJZAQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAAhtYXhMaW1pdAUAAAAIbWF4TGltaXQFAAAACWF2YWlsYWJsZQQAAAAGYW1vdW50CQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAABG1haW4CAAAACHdpdGhkcmF3CQAETAAAAAIFAAAADWFzc2V0SWRTdHJpbmcJAARMAAAAAgUAAAABdgUAAAADbmlsBQAAAANuaWwDAwkAAGYAAAACBQAAAAZhbW91bnQAAAAAAAAPQkAGBQAAAAFwCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWFkbWluCQAAawAAAAMFAAAABmFtb3VudAAAAAAAAAAAIwAAAAAAAAAD6AUAAAAHYXNzZXRJZAUAAAADbmlsCQAAAgAAAAEJAAGkAAAAAQUAAAAGYW1vdW50AAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkACcgAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXk4iOlW", "height": 3160757, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GL6zPstZgu58ytM1Z9Rt6Vhz2pSccH6c1BrKMcnWSV8n Next: Bjd4QauPs8BA7FMCWknnR7m18Tw5U8kGnDRnhwwT2cVZ Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let viresMainAddress = base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'
4+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
55
6-let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
6+let admin = addressFromStringValue("3PA8S4tqxVoSYcCXS5NDZqSqkBpy5NJy9pJ")
7+
8+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
9+
10+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
11+
12+func asInt (value) = match value {
13+ case int: Int =>
14+ int
15+ case _ =>
16+ throw("wrong type, expected: Integer")
17+}
18+
719
820 @Callable(i)
9-func usdc_1000 (amount) = {
10- let admin = "3PA8S4tqxVoSYcCXS5NDZqSqkBpy5NJy9pJ"
11- if ((toString(i.caller) != admin))
12- then throw("only admin can do")
13- else {
14- let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), amount], nil)
15- if ((inv == inv))
16- then nil
17- else throw("Strict value is not equal to itself.")
18- }
19- }
21+func w (bb,p,maxLimit) = if ((i.caller != admin))
22+ then throw("!")
23+ else {
24+ let assetIdString = assetStrings[bb]
25+ let assetId = fromBase58String(assetIdString)
26+ let reserve = reserves[bb]
27+ let available = assetBalance(reserve, assetId)
28+ let v = if ((available > maxLimit))
29+ then maxLimit
30+ else available
31+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
32+ if (if ((amount > 1000000))
33+ then true
34+ else p)
35+ then [ScriptTransfer(admin, fraction(amount, 35, 1000), assetId)]
36+ else throw(toString(amount))
37+ }
2038
39+
40+@Verifier(tx)
41+func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
2142

github/deemru/w8io/6500d08 
32.71 ms