tx · FYs5DExCeJpz8FRhLg1BppbUMfXNNCwWn15qgvuc2KaE

3P4x6kpsu63wHbqAVxB6DWN5CzSqNSrtQaK:  -0.00200000 Waves

2022.08.30 11:26 [3272454] smart account 3P4x6kpsu63wHbqAVxB6DWN5CzSqNSrtQaK > SELF 0.00000000 Waves

{ "type": 13, "id": "FYs5DExCeJpz8FRhLg1BppbUMfXNNCwWn15qgvuc2KaE", "fee": 200000, "feeAssetId": null, "timestamp": 1661848026669, "version": 2, "chainId": 87, "sender": "3P4x6kpsu63wHbqAVxB6DWN5CzSqNSrtQaK", "senderPublicKey": "ibrKsGF9M8wvjvpmNGtwTNkoC1jk26QJQSzJr8pd2ZW", "proofs": [ "4kizEGR4ypFuk3p7MMibLhBjBriPMWvqkBdoKCMsqY9inJMouyYbBvm6kMZE8C38PiHXQvPrimE8k3HMoWXfq83v" ], "script": "base64:BgIJCAISABIDCgEBBwAQdmlyZXNNYWluQWRkcmVzcwkBB0FkZHJlc3MBARoBV17BlhkwyaJDeEZp1ibW8ea4Q9C99kweuAAJdmlyZXNVc2RjAiMzUEdDa3JIQnhGTWk3dHoxeHFueGdCcGVOdm41RTRNNGc4UwAQdmlyZXNVc2RjQWRkcmVzcwEaAVeckdbrVt9jsb9/5I0zJOQcqOP4QOc77QMADGFkbWluQWRkcmVzcwkBB0FkZHJlc3MBARoBVyCEU85mysa8UdQT1/EB2+MPqFaE3CmnLwAEVVNEQwEgUjPZ4ZeIJuXiH8L96og0uId2o4yxg+/IYBx+ChJUJiUAC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEBAAEYZ2V0QW1vdW50RnJvbVVzZXJCYWxhbmNlAQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACIihJbnQsIEludCwgSW50LCBJbnQsIEludCwgQm9vbGVhbikEAXgFByRtYXRjaDAIBQF4Al8yBAF0BQckbWF0Y2gwCQACAQIEI2VycgIBaQEBZAAEA2ludgkA/AcEBRB2aXJlc01haW5BZGRyZXNzAgdkZXBvc2l0CQDMCAIFCXZpcmVzVXNkYwkAzAgCBwUDbmlsCAUBaQhwYXltZW50cwMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCXVzZGNfMTAwMAEGYW1vdW50AwkBAiE9AggFAWkGY2FsbGVyBQxhZG1pbkFkZHJlc3MJAAIBAhFvbmx5IGFkbWluIGNhbiBkbwQLdXNlckJhbGFuY2UJARhnZXRBbW91bnRGcm9tVXNlckJhbGFuY2UBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCXZpcmVzVXNkYwILdXNlckJhbGFuY2UJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAGYCAAEFC3VzZXJCYWxhbmNlCQACAQILYmFkIHJlcXVlc3QECW5ld2Ftb3VudAMJAGYCBQZhbW91bnQFC3VzZXJCYWxhbmNlBQt1c2VyQmFsYW5jZQUGYW1vdW50BANpbnYJAPwHBAUQdmlyZXNNYWluQWRkcmVzcwIId2l0aGRyYXcJAMwIAgkA2AQBBQRVU0RDCQDMCAIFCW5ld2Ftb3VudAUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYEB2FBbW91bnQJAPAHAgUEdGhpcwUEVVNEQwQLYWRtaW5BbW91bnQJAGsDBQdhQW1vdW50ABkA6AcECnVzZXJBbW91bnQJAGUCBQdhQW1vdW50BQthZG1pbkFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQxhZG1pbkFkZHJlc3MFC2FkbWluQW1vdW50BQRVU0RDCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFC3VzZXJBZGRyZXNzBQp1c2VyQW1vdW50BQRVU0RDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AvMJu7A==", "height": 3272454, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5FUmPa8M3Jdw7ovWsqM8mUB6izAmoaPREyQGFoLjoVjw Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let viresMainAddress = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT')
5+
6+let viresUsdc = "3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"
7+
8+let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
9+
10+let adminAddress = Address(base58'3P4tpsekFhiPmVYAiUMKAALJDqJMtEfTJx6')
11+
412 let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
513
6-let viresMainAddress = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT')
14+let userAddress = Address(base58'')
15+
16+func getAmountFromUserBalance (v) = match v {
17+ case x: (Int, Int, Int, Int, Int, Boolean) =>
18+ x._2
19+ case t =>
20+ throw("#err")
21+}
22+
723
824 @Callable(i)
9-func wd (dest,amount) = if ((i.caller != this))
25+func d () = {
26+ let inv = invoke(viresMainAddress, "deposit", [viresUsdc, false], i.payments)
27+ if ((inv == inv))
28+ then nil
29+ else throw("Strict value is not equal to itself.")
30+ }
31+
32+
33+
34+@Callable(i)
35+func usdc_1000 (amount) = if ((i.caller != adminAddress))
1036 then throw("only admin can do")
1137 else {
12- let destAddress = addressFromStringValue(dest)
13- if ((destAddress == this))
14- then throw("bad address")
38+ let userBalance = getAmountFromUserBalance(invoke(addressFromStringValue(viresUsdc), "userBalance", [toString(this)], nil))
39+ if ((1 > userBalance))
40+ then throw("bad request")
1541 else {
16- let invDeposit = invoke(destAddress, "d", nil, [AttachedPayment(USDC, amount)])
17- if ((invDeposit == invDeposit))
42+ let newamount = if ((amount > userBalance))
43+ then userBalance
44+ else amount
45+ let inv = invoke(viresMainAddress, "withdraw", [toBase58String(USDC), newamount], nil)
46+ if ((inv == inv))
1847 then {
19- let invWithdraw = invoke(viresMainAddress, "withdraw", [toBase58String(USDC), amount], nil)
20- if ((invWithdraw == invWithdraw))
21- then nil
22- else throw("Strict value is not equal to itself.")
48+ let aAmount = assetBalance(this, USDC)
49+ let adminAmount = fraction(aAmount, 25, 1000)
50+ let userAmount = (aAmount - adminAmount)
51+[ScriptTransfer(adminAddress, adminAmount, USDC), ScriptTransfer(userAddress, userAmount, USDC)]
2352 }
2453 else throw("Strict value is not equal to itself.")
2554 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let viresMainAddress = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT')
5+
6+let viresUsdc = "3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"
7+
8+let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
9+
10+let adminAddress = Address(base58'3P4tpsekFhiPmVYAiUMKAALJDqJMtEfTJx6')
11+
412 let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
513
6-let viresMainAddress = Address(base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT')
14+let userAddress = Address(base58'')
15+
16+func getAmountFromUserBalance (v) = match v {
17+ case x: (Int, Int, Int, Int, Int, Boolean) =>
18+ x._2
19+ case t =>
20+ throw("#err")
21+}
22+
723
824 @Callable(i)
9-func wd (dest,amount) = if ((i.caller != this))
25+func d () = {
26+ let inv = invoke(viresMainAddress, "deposit", [viresUsdc, false], i.payments)
27+ if ((inv == inv))
28+ then nil
29+ else throw("Strict value is not equal to itself.")
30+ }
31+
32+
33+
34+@Callable(i)
35+func usdc_1000 (amount) = if ((i.caller != adminAddress))
1036 then throw("only admin can do")
1137 else {
12- let destAddress = addressFromStringValue(dest)
13- if ((destAddress == this))
14- then throw("bad address")
38+ let userBalance = getAmountFromUserBalance(invoke(addressFromStringValue(viresUsdc), "userBalance", [toString(this)], nil))
39+ if ((1 > userBalance))
40+ then throw("bad request")
1541 else {
16- let invDeposit = invoke(destAddress, "d", nil, [AttachedPayment(USDC, amount)])
17- if ((invDeposit == invDeposit))
42+ let newamount = if ((amount > userBalance))
43+ then userBalance
44+ else amount
45+ let inv = invoke(viresMainAddress, "withdraw", [toBase58String(USDC), newamount], nil)
46+ if ((inv == inv))
1847 then {
19- let invWithdraw = invoke(viresMainAddress, "withdraw", [toBase58String(USDC), amount], nil)
20- if ((invWithdraw == invWithdraw))
21- then nil
22- else throw("Strict value is not equal to itself.")
48+ let aAmount = assetBalance(this, USDC)
49+ let adminAmount = fraction(aAmount, 25, 1000)
50+ let userAmount = (aAmount - adminAmount)
51+[ScriptTransfer(adminAddress, adminAmount, USDC), ScriptTransfer(userAddress, userAmount, USDC)]
2352 }
2453 else throw("Strict value is not equal to itself.")
2554 }
2655 }
2756
2857

github/deemru/w8io/6500d08 
24.18 ms