2022.06.18 13:39 [3167319] smart account 3PCFnTYnS8dEyAM3v2P4JHgTUiQjbaUYLdX > SELF 0.00000000 Waves

{ "type": 13, "id": "1Dwz3SRaVtGBKb7HTJhCChkBCA5MCefgvg2Nft7VvRc", "fee": 1400000, "feeAssetId": null, "timestamp": 1655548846132, "version": 2, "chainId": 87, "sender": "3PCFnTYnS8dEyAM3v2P4JHgTUiQjbaUYLdX", "senderPublicKey": "CpM2J4DJYXZJ3ceqPLqvnviSHMeL4aNecxbMKRzEFe3a", "proofs": [ "reffhPFsvWY952F853jHvNCkKiaPJ7cC3WiNqULmZ8WkCaNxwBi5QUiGVGo7N2wnVGSv9xFeioKm5DwiYnMeNWU" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEBAAAABAAAAAAQdmlyZXNNYWluQWRkcmVzcwEAAAAaAVdewZYZMMmiQ3hGadYm1vHmuEPQvfZMHrgAAAAABFVTREMBAAAAIFIz2eGXiCbl4h/C/eqINLiHdqOMsYPvyGAcfgoSVCYlAAAAABB2aXJlc1VzZGNBZGRyZXNzAQAAABoBV5yR1utW32Oxv3/kjTMk5Byo4/hA5zvtAwEAAAAYZ2V0QW1vdW50RnJvbVVzZXJCYWxhbmNlAAAAAQAAAAF2BAAAAAckbWF0Y2gwBQAAAAF2AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAACIoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEJvb2xlYW4pBAAAAAF4BQAAAAckbWF0Y2gwCAUAAAABeAAAAAJfMgQAAAABdAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAAAQjZXJyAAAAAQAAAAFpAQAAAAl1c2RjXzEwMDAAAAABAAAABmFtb3VudAQAAAAFYWRtaW4CAAAAIzNQNmdHc1ZRYkQyeGdtYU54TjdSajNhcm9oUHNCeHZvNUdDAwkBAAAAAiE9AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABWFkbWluCQAAAgAAAAECAAAAEW9ubHkgYWRtaW4gY2FuIGRvBAAAAAt1c2VyQmFsYW5jZQkBAAAAGGdldEFtb3VudEZyb21Vc2VyQmFsYW5jZQAAAAEJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABB2aXJlc1VzZGNBZGRyZXNzAgAAAAt1c2VyQmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMFAAAAA25pbAUAAAADbmlsAwkAAGYAAAACAAAAAAAAAAABBQAAAAt1c2VyQmFsYW5jZQkAAAIAAAABAgAAAAtiYWQgcmVxdWVzdAQAAAAJbmV3YW1vdW50AwkAAGYAAAACBQAAAAZhbW91bnQFAAAAC3VzZXJCYWxhbmNlBQAAAAt1c2VyQmFsYW5jZQUAAAAGYW1vdW50BAAAAANpbnYJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABB2aXJlc01haW5BZGRyZXNzAgAAAAh3aXRoZHJhdwkABEwAAAACCQACWAAAAAEFAAAABFVTREMJAARMAAAAAgUAAAAJbmV3YW1vdW50BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAADaW52BQAAAANpbnYFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAAgrmJyw==", "height": 3167319, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8NS8Grymoed4jxixJBZUDwnkeeeN5tTGAVprvXWRimsC Next: F7b2xmEjStg6KjsSPdHerkTjfLE5jj3QxpTFopnA2b8q Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let viresMainAddress = base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'
55
6+let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
7+
68 let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
79
8-let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
10+func getAmountFromUserBalance (v) = match v {
11+ case x: (Int, Int, Int, Int, Int, Boolean) =>
12+ x._2
13+ case t =>
14+ throw("#err")
15+}
916
10-let reserveAddress = base58'3PBEvXY6erPKwEijJU37UP4wKYECnr46PAU'
1117
1218 @Callable(i)
1319 func usdc_1000 (amount) = {
1521 if ((toString(i.caller) != admin))
1622 then throw("only admin can do")
1723 else {
18- let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), amount], nil)
19- if ((inv == inv))
20- then nil
21- else throw("Strict value is not equal to itself.")
24+ let userBalance = getAmountFromUserBalance(invoke(Address(viresUsdcAddress), "userBalance", [toString(this)], nil))
25+ if ((1 > userBalance))
26+ then throw("bad request")
27+ else {
28+ let newamount = if ((amount > userBalance))
29+ then userBalance
30+ else amount
31+ let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), newamount], nil)
32+ if ((inv == inv))
33+ then nil
34+ else throw("Strict value is not equal to itself.")
35+ }
2236 }
2337 }
2438
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let viresMainAddress = base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'
55
6+let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
7+
68 let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
79
8-let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
10+func getAmountFromUserBalance (v) = match v {
11+ case x: (Int, Int, Int, Int, Int, Boolean) =>
12+ x._2
13+ case t =>
14+ throw("#err")
15+}
916
10-let reserveAddress = base58'3PBEvXY6erPKwEijJU37UP4wKYECnr46PAU'
1117
1218 @Callable(i)
1319 func usdc_1000 (amount) = {
1420 let admin = "3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC"
1521 if ((toString(i.caller) != admin))
1622 then throw("only admin can do")
1723 else {
18- let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), amount], nil)
19- if ((inv == inv))
20- then nil
21- else throw("Strict value is not equal to itself.")
24+ let userBalance = getAmountFromUserBalance(invoke(Address(viresUsdcAddress), "userBalance", [toString(this)], nil))
25+ if ((1 > userBalance))
26+ then throw("bad request")
27+ else {
28+ let newamount = if ((amount > userBalance))
29+ then userBalance
30+ else amount
31+ let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), newamount], nil)
32+ if ((inv == inv))
33+ then nil
34+ else throw("Strict value is not equal to itself.")
35+ }
2236 }
2337 }
2438
2539

github/deemru/w8io/786bc32 
34.93 ms