tx · 2g2F2FXG3PLJB1tcxKnpofafG2f21suZvo314munWLYh
3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx: -0.01000000 Waves
2022.05.22 10:54 [3128081] smart account 3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx > SELF 0.00000000 Waves
{
"type": 13,
"id": "2g2F2FXG3PLJB1tcxKnpofafG2f21suZvo314munWLYh",
"fee": 1000000,
"feeAssetId": null,
"timestamp": 1653206045516,
"version": 2,
"chainId": 87,
"sender": "3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx",
"senderPublicKey": "4613XFozFm1Nc8jhYYFisKKAzjau7tRhD4TyVKaE6srm",
"proofs": [
"56eet8Vfsjf9XyasPCFdvuoRCM2DKmAbVa9giQ288pMVEn7tg17b5m742dL86UUtcwLQbQeA79UUkFtKKUusdkoC"
],
"script": "base64:AAIFAAAAAAAAAA4IAhIECgIBARIECgIBAQAAAAgAAAAABG1haW4JAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQQVp2OXRnSzFQWDdkS1I3YjRrY2hxNXFkcFVTM0c1c1lUAAAAAA5hc3NldFN0cmluZ0JUQwIAAAAsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMAAAAACnJlc2VydmVCVEMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQQTdRTUZ5SE10SGVQNjZTVVFud0Nnd0tRSEtwQ3lYV3dkAAAAAA9hc3NldFN0cmluZ1VTRFQCAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAAAAAAtyZXNlcnZlVVNEVAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BFaUQxekpXVE1aTldTQ3l6aHZCdzlweHhBV2VFd2FnaFIAAAAAD2Fzc2V0U3RyaW5nVVNEQwIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoAAAAAC3Jlc2VydmVVU0RDCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEdDa3JIQnhGTWk3dHoxeHFueGdCcGVOdm41RTRNNGc4UwAAAAABYwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1AzRUwydnZQNkp0WHljanZvS0IyOWFSTmFRV3d4TmpqUFEAAAACAAAAAWkBAAAADHdpdGhkcmF3VVNEQwAAAAIAAAAJbWluQW1vdW50AAAACW1heEFtb3VudAQAAAAOcmVzZXJ2ZUJhbGFuY2UJAAPwAAAAAgUAAAALcmVzZXJ2ZVVTREMJAAJZAAAAAQUAAAAPYXNzZXRTdHJpbmdVU0RDAwkAAGcAAAACBQAAAA5yZXNlcnZlQmFsYW5jZQUAAAAJbWluQW1vdW50BAAAAA53aXRoZHJhd0Ftb3VudAMJAABmAAAAAgUAAAAOcmVzZXJ2ZUJhbGFuY2UFAAAACW1heEFtb3VudAUAAAAJbWF4QW1vdW50BQAAAA5yZXNlcnZlQmFsYW5jZQQAAAAPd2l0aGRyYXduQW1vdW50CgAAAAABQAkAA/wAAAAEBQAAAARtYWluAgAAAAh3aXRoZHJhdwkABEwAAAACBQAAAA9hc3NldFN0cmluZ1VTREMJAARMAAAAAgUAAAAOd2l0aGRyYXdBbW91bnQFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAFAAgAAAANJbnQFAAAAAUAJAAACAAAAAQIAAAAYQ291bGRuJ3QgY2FzdCBBbnkgdG8gSW50BAAAAAFyCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAFjCQAAaQAAAAIFAAAAD3dpdGhkcmF3bkFtb3VudAAAAAAAAAAAGQkAAlkAAAABBQAAAA9hc3NldFN0cmluZ1VTREMDCQAAAAAAAAIFAAAAAXIFAAAAAXIJAARMAAAAAgUAAAABcgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAABdSZXNlcnZlIGJhbGFuY2UgdG9vIGxvdwAAAAFpAQAAAAx3aXRoZHJhd1VTRFQAAAACAAAACW1pbkFtb3VudAAAAAltYXhBbW91bnQEAAAADnJlc2VydmVCYWxhbmNlCQAD8AAAAAIFAAAAC3Jlc2VydmVVU0RUCQACWQAAAAEFAAAAD2Fzc2V0U3RyaW5nVVNEVAMJAABnAAAAAgUAAAAOcmVzZXJ2ZUJhbGFuY2UFAAAACW1pbkFtb3VudAQAAAAOd2l0aGRyYXdBbW91bnQDCQAAZgAAAAIFAAAADnJlc2VydmVCYWxhbmNlBQAAAAltYXhBbW91bnQFAAAACW1heEFtb3VudAUAAAAOcmVzZXJ2ZUJhbGFuY2UEAAAAD3dpdGhkcmF3bkFtb3VudAoAAAAAAUAJAAP8AAAABAUAAAAEbWFpbgIAAAAId2l0aGRyYXcJAARMAAAAAgUAAAAPYXNzZXRTdHJpbmdVU0RUCQAETAAAAAIFAAAADndpdGhkcmF3QW1vdW50BQAAAANuaWwFAAAAA25pbAMJAAABAAAAAgUAAAABQAIAAAADSW50BQAAAAFACQAAAgAAAAECAAAAGENvdWxkbid0IGNhc3QgQW55IHRvIEludAQAAAABcgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAABYwkAAGkAAAACBQAAAA93aXRoZHJhd25BbW91bnQAAAAAAAAAABkJAAJZAAAAAQUAAAAPYXNzZXRTdHJpbmdVU0RUAwkAAAAAAAACBQAAAAFyBQAAAAFyCQAETAAAAAIFAAAAAXIFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAXUmVzZXJ2ZSBiYWxhbmNlIHRvbyBsb3cAAAAAZ/OA3Q==",
"height": 3128081,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 6ZuMkZCAKjCdrEELrSN61Sxt7wQnZizqzFfCB2Zftfgb
Next: 8fanqgbo6fccezGhPoa3Jk4d3dR4MxCrJSxmESve4AFX
Diff:
Old | New | | Differences |
---|
17 | 17 | | |
---|
18 | 18 | | let c = addressFromStringValue("3P3EL2vvP6JtXycjvoKB29aRNaQWwxNjjPQ") |
---|
19 | 19 | | |
---|
20 | | - | func aI (a) = match a { |
---|
21 | | - | case a: Int => |
---|
22 | | - | a |
---|
23 | | - | case _ => |
---|
24 | | - | throw("NO") |
---|
25 | | - | } |
---|
26 | | - | |
---|
27 | | - | |
---|
28 | 20 | | @Callable(i) |
---|
29 | 21 | | func withdrawUSDC (minAmount,maxAmount) = { |
---|
30 | 22 | | let reserveBalance = assetBalance(reserveUSDC, fromBase58String(assetStringUSDC)) |
---|
|
33 | 25 | | let withdrawAmount = if ((reserveBalance > maxAmount)) |
---|
34 | 26 | | then maxAmount |
---|
35 | 27 | | else reserveBalance |
---|
36 | | - | let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil)) |
---|
| 28 | + | let withdrawnAmount = { |
---|
| 29 | + | let @ = invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil) |
---|
| 30 | + | if ($isInstanceOf(@, "Int")) |
---|
| 31 | + | then @ |
---|
| 32 | + | else throw("Couldn't cast Any to Int") |
---|
| 33 | + | } |
---|
37 | 34 | | let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDC)) |
---|
38 | | - | nil |
---|
| 35 | + | if ((r == r)) |
---|
| 36 | + | then [r] |
---|
| 37 | + | else throw("Strict value is not equal to itself.") |
---|
39 | 38 | | } |
---|
40 | 39 | | else throw("Reserve balance too low") |
---|
41 | 40 | | } |
---|
|
50 | 49 | | let withdrawAmount = if ((reserveBalance > maxAmount)) |
---|
51 | 50 | | then maxAmount |
---|
52 | 51 | | else reserveBalance |
---|
53 | | - | let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil)) |
---|
| 52 | + | let withdrawnAmount = { |
---|
| 53 | + | let @ = invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil) |
---|
| 54 | + | if ($isInstanceOf(@, "Int")) |
---|
| 55 | + | then @ |
---|
| 56 | + | else throw("Couldn't cast Any to Int") |
---|
| 57 | + | } |
---|
54 | 58 | | let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDT)) |
---|
55 | | - | nil |
---|
| 59 | + | if ((r == r)) |
---|
| 60 | + | then [r] |
---|
| 61 | + | else throw("Strict value is not equal to itself.") |
---|
56 | 62 | | } |
---|
57 | 63 | | else throw("Reserve balance too low") |
---|
58 | 64 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") |
---|
5 | 5 | | |
---|
6 | 6 | | let assetStringBTC = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS" |
---|
7 | 7 | | |
---|
8 | 8 | | let reserveBTC = addressFromStringValue("3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd") |
---|
9 | 9 | | |
---|
10 | 10 | | let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" |
---|
11 | 11 | | |
---|
12 | 12 | | let reserveUSDT = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR") |
---|
13 | 13 | | |
---|
14 | 14 | | let assetStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" |
---|
15 | 15 | | |
---|
16 | 16 | | let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S") |
---|
17 | 17 | | |
---|
18 | 18 | | let c = addressFromStringValue("3P3EL2vvP6JtXycjvoKB29aRNaQWwxNjjPQ") |
---|
19 | 19 | | |
---|
20 | | - | func aI (a) = match a { |
---|
21 | | - | case a: Int => |
---|
22 | | - | a |
---|
23 | | - | case _ => |
---|
24 | | - | throw("NO") |
---|
25 | | - | } |
---|
26 | | - | |
---|
27 | | - | |
---|
28 | 20 | | @Callable(i) |
---|
29 | 21 | | func withdrawUSDC (minAmount,maxAmount) = { |
---|
30 | 22 | | let reserveBalance = assetBalance(reserveUSDC, fromBase58String(assetStringUSDC)) |
---|
31 | 23 | | if ((reserveBalance >= minAmount)) |
---|
32 | 24 | | then { |
---|
33 | 25 | | let withdrawAmount = if ((reserveBalance > maxAmount)) |
---|
34 | 26 | | then maxAmount |
---|
35 | 27 | | else reserveBalance |
---|
36 | | - | let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil)) |
---|
| 28 | + | let withdrawnAmount = { |
---|
| 29 | + | let @ = invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil) |
---|
| 30 | + | if ($isInstanceOf(@, "Int")) |
---|
| 31 | + | then @ |
---|
| 32 | + | else throw("Couldn't cast Any to Int") |
---|
| 33 | + | } |
---|
37 | 34 | | let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDC)) |
---|
38 | | - | nil |
---|
| 35 | + | if ((r == r)) |
---|
| 36 | + | then [r] |
---|
| 37 | + | else throw("Strict value is not equal to itself.") |
---|
39 | 38 | | } |
---|
40 | 39 | | else throw("Reserve balance too low") |
---|
41 | 40 | | } |
---|
42 | 41 | | |
---|
43 | 42 | | |
---|
44 | 43 | | |
---|
45 | 44 | | @Callable(i) |
---|
46 | 45 | | func withdrawUSDT (minAmount,maxAmount) = { |
---|
47 | 46 | | let reserveBalance = assetBalance(reserveUSDT, fromBase58String(assetStringUSDT)) |
---|
48 | 47 | | if ((reserveBalance >= minAmount)) |
---|
49 | 48 | | then { |
---|
50 | 49 | | let withdrawAmount = if ((reserveBalance > maxAmount)) |
---|
51 | 50 | | then maxAmount |
---|
52 | 51 | | else reserveBalance |
---|
53 | | - | let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil)) |
---|
| 52 | + | let withdrawnAmount = { |
---|
| 53 | + | let @ = invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil) |
---|
| 54 | + | if ($isInstanceOf(@, "Int")) |
---|
| 55 | + | then @ |
---|
| 56 | + | else throw("Couldn't cast Any to Int") |
---|
| 57 | + | } |
---|
54 | 58 | | let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDT)) |
---|
55 | | - | nil |
---|
| 59 | + | if ((r == r)) |
---|
| 60 | + | then [r] |
---|
| 61 | + | else throw("Strict value is not equal to itself.") |
---|
56 | 62 | | } |
---|
57 | 63 | | else throw("Reserve balance too low") |
---|
58 | 64 | | } |
---|
59 | 65 | | |
---|
60 | 66 | | |
---|