tx · JDno8wau2CowpCgfeQLNsXH9NxctGKoth6S1VgaCQDhM 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua: -0.01400000 Waves 2021.03.12 01:34 [1433629] smart account 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua > SELF 0.00000000 Waves
{ "type": 13, "id": "JDno8wau2CowpCgfeQLNsXH9NxctGKoth6S1VgaCQDhM", "fee": 1400000, "feeAssetId": null, "timestamp": 1615502089461, "version": 2, "chainId": 84, "sender": "3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua", "senderPublicKey": "CTyHhnVTxf16Z4CmGGneAK8WB5g2QyT4MB8kUn8vPPcu", "proofs": [ "2BtTt2qy5p4NKTVAeZcGvCNWbTEry2QuK51qDmy2RW2pY1PjoXYSUXkM2jW2pTuWGX8tsx4dEmFaq21JVSfqC191" ], "script": "base64:AAIEAAAAAAAAAAQIAhIAAAAAAQEAAAATZ2V0TGVuZGluZ1Bvb2xTdGFjawAAAAAEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAQbGVuZGluZ1Bvb2xTdGFjawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAAAAAQAAAAFpAQAAABBhZGRUb0xlbmRpbmdQb29sAAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAWTXVzdCBjb250YWluIDEgcGF5bWVudAQAAAATbmV3TGVuZGluZ1Bvb2xTdGFjawkAAGQAAAACCQEAAAATZ2V0TGVuZGluZ1Bvb2xTdGFjawAAAAAICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAQbGVuZGluZ1Bvb2xTdGFjawUAAAATbmV3TGVuZGluZ1Bvb2xTdGFjawkABEwAAAACCQAEQgAAAAUCAAAADkxlbmRlckNvbnRyYWN0AgAAAAxGdWNrIHlvdSBhbGwAAAAAAAAAAAEAAAAAAAAAAAAHBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleWC+XSs=", "height": 1433629, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5vS5Sh4WbU4DNxJzrP1ZQSskqSQBFkPmRcC3FxWg63vF Next: JE1YzsMhTYbHuvzCRfU1vrjVArhv1gmryKHPrx2EvQsP Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func isAdmin (addr) = (addr == this) | |
5 | - | ||
6 | - | ||
7 | - | func isAsset (assetId) = match assetInfo(assetId) { | |
8 | - | case _: Asset => | |
9 | - | true | |
10 | - | case _ => | |
11 | - | false | |
12 | - | } | |
13 | - | ||
14 | - | ||
15 | - | func getLendingPoolAssetsList () = match getString(this, "lendingPoolAssets") { | |
16 | - | case a: String => | |
4 | + | func getLendingPoolStack () = match getInteger(this, "lendingPoolStack") { | |
5 | + | case a: Int => | |
17 | 6 | a | |
18 | 7 | case _ => | |
19 | - | | |
8 | + | 0 | |
20 | 9 | } | |
21 | 10 | ||
22 | 11 | ||
23 | 12 | @Callable(i) | |
24 | - | func | |
25 | - | then throw(" | |
13 | + | func addToLendingPool () = if ((size(i.payments) != 1)) | |
14 | + | then throw("Must contain 1 payment") | |
26 | 15 | else { | |
27 | - | let assetId = fromBase58String(assetIdString) | |
28 | - | let assetsList = getLendingPoolAssetsList() | |
29 | - | if ((contains(assetsList, assetIdString) != true)) | |
30 | - | then throw("Asset not listed") | |
31 | - | else { | |
32 | - | let assetsArray = split(assetsList, "_") | |
33 | - | let assetIndex = match indexOf(assetsList, assetIdString) { | |
34 | - | case a: Int => | |
35 | - | a | |
36 | - | case _ => | |
37 | - | throw("Asset not found in list") | |
38 | - | } | |
39 | - | [StringEntry("lendingPoolAssets", makeString(removeByIndex(assetsArray, assetIndex), "_"))] | |
40 | - | } | |
41 | - | } | |
42 | - | ||
43 | - | ||
44 | - | ||
45 | - | @Callable(i) | |
46 | - | func addAssetToLendingPool (assetIdString) = if ((isAdmin(i.caller) != true)) | |
47 | - | then throw("Access denied") | |
48 | - | else { | |
49 | - | let assetId = fromBase58String(assetIdString) | |
50 | - | if ((isAsset(assetId) != true)) | |
51 | - | then throw("Asset not found") | |
52 | - | else { | |
53 | - | let assetsList = getLendingPoolAssetsList() | |
54 | - | if ((contains(assetsList, assetIdString) == true)) | |
55 | - | then throw("Asset already on list") | |
56 | - | else if ((1 > size(assetsList))) | |
57 | - | then [StringEntry("lendingPoolAssets", assetIdString)] | |
58 | - | else [StringEntry("lendingPoolAssets", ((assetsList + "_") + assetIdString))] | |
59 | - | } | |
16 | + | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
17 | + | [IntegerEntry("lendingPoolStack", newLendingPoolStack), Issue("LenderContract", "Fuck you all", 1, 0, false)] | |
60 | 18 | } | |
61 | 19 | ||
62 | 20 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func isAdmin (addr) = (addr == this) | |
5 | - | ||
6 | - | ||
7 | - | func isAsset (assetId) = match assetInfo(assetId) { | |
8 | - | case _: Asset => | |
9 | - | true | |
10 | - | case _ => | |
11 | - | false | |
12 | - | } | |
13 | - | ||
14 | - | ||
15 | - | func getLendingPoolAssetsList () = match getString(this, "lendingPoolAssets") { | |
16 | - | case a: String => | |
4 | + | func getLendingPoolStack () = match getInteger(this, "lendingPoolStack") { | |
5 | + | case a: Int => | |
17 | 6 | a | |
18 | 7 | case _ => | |
19 | - | | |
8 | + | 0 | |
20 | 9 | } | |
21 | 10 | ||
22 | 11 | ||
23 | 12 | @Callable(i) | |
24 | - | func | |
25 | - | then throw(" | |
13 | + | func addToLendingPool () = if ((size(i.payments) != 1)) | |
14 | + | then throw("Must contain 1 payment") | |
26 | 15 | else { | |
27 | - | let assetId = fromBase58String(assetIdString) | |
28 | - | let assetsList = getLendingPoolAssetsList() | |
29 | - | if ((contains(assetsList, assetIdString) != true)) | |
30 | - | then throw("Asset not listed") | |
31 | - | else { | |
32 | - | let assetsArray = split(assetsList, "_") | |
33 | - | let assetIndex = match indexOf(assetsList, assetIdString) { | |
34 | - | case a: Int => | |
35 | - | a | |
36 | - | case _ => | |
37 | - | throw("Asset not found in list") | |
38 | - | } | |
39 | - | [StringEntry("lendingPoolAssets", makeString(removeByIndex(assetsArray, assetIndex), "_"))] | |
40 | - | } | |
41 | - | } | |
42 | - | ||
43 | - | ||
44 | - | ||
45 | - | @Callable(i) | |
46 | - | func addAssetToLendingPool (assetIdString) = if ((isAdmin(i.caller) != true)) | |
47 | - | then throw("Access denied") | |
48 | - | else { | |
49 | - | let assetId = fromBase58String(assetIdString) | |
50 | - | if ((isAsset(assetId) != true)) | |
51 | - | then throw("Asset not found") | |
52 | - | else { | |
53 | - | let assetsList = getLendingPoolAssetsList() | |
54 | - | if ((contains(assetsList, assetIdString) == true)) | |
55 | - | then throw("Asset already on list") | |
56 | - | else if ((1 > size(assetsList))) | |
57 | - | then [StringEntry("lendingPoolAssets", assetIdString)] | |
58 | - | else [StringEntry("lendingPoolAssets", ((assetsList + "_") + assetIdString))] | |
59 | - | } | |
16 | + | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
17 | + | [IntegerEntry("lendingPoolStack", newLendingPoolStack), Issue("LenderContract", "Fuck you all", 1, 0, false)] | |
60 | 18 | } | |
61 | 19 | ||
62 | 20 | ||
63 | 21 | @Verifier(tx) | |
64 | 22 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
65 | 23 |
github/deemru/w8io/169f3d6 23.93 ms ◑![]()