tx · CQTrskqBtKpbvN9Ej2o6xXpE67m3reaxqBiXdVkszvod 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua: -0.01400000 Waves 2021.03.12 12:28 [1434290] smart account 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua > SELF 0.00000000 Waves
{ "type": 13, "id": "CQTrskqBtKpbvN9Ej2o6xXpE67m3reaxqBiXdVkszvod", "fee": 1400000, "feeAssetId": null, "timestamp": 1615541343300, "version": 2, "chainId": 84, "sender": "3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua", "senderPublicKey": "CTyHhnVTxf16Z4CmGGneAK8WB5g2QyT4MB8kUn8vPPcu", "proofs": [ "UbrZpDABnHSWUtkAbtHn1qDw8ymDdprdeJqwCnrviVQhxqEcwVpLjkbPTpkC3dD6LyvhSk9v1SAo5Cj6FxHk3hW" ], "script": "base64:AAIEAAAAAAAAAAQIAhIAAAAAAwAAAAANZEFwcEFzc2V0TmFtZQIAAAAFdGVzdDEAAAAAC2RBcHBBc3NldElkAQAAACCx5KflqCsiGQbrCbZgC9tbr9doFa+psA0nMlMpy8SliwEAAAATZ2V0TGVuZGluZ1Bvb2xTdGFjawAAAAAEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAQbGVuZGluZ1Bvb2xTdGFjawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAAAAAQAAAAFpAQAAABBhZGRUb0xlbmRpbmdQb29sAAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAATTm8gcGF5bWVudCBhdHRhY2hlZAMJAQAAAAIhPQAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQFAAAAC2RBcHBBc3NldElkCQAAAgAAAAECAAAAEFdyb25nIGFzc2V0IHNlbnQDCQAAZgAAAAIAAAAAAAAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAkAAAIAAAABAgAAABVJbnN1ZmZpc2VudCBsaXF1aWRpdHkEAAAADXR4QmxvY2tIZWlnaHQEAAAAByRtYXRjaDAJAAPpAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFoBQAAAAckbWF0Y2gwBQAAAAFoCQAAAgAAAAECAAAAGlVuYWJsZSB0byBnZXQgYmxvY2sgaGVpZ2h0BAAAAAxjb250cmFjdERhdGEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA10eEJsb2NrSGVpZ2h0AgAAAAFfCQACWAAAAAEFAAAAC2RBcHBBc3NldElkAgAAAAFfCQABpAAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAATbmV3TGVuZGluZ1Bvb2xTdGFjawkAAGQAAAACCQEAAAATZ2V0TGVuZGluZ1Bvb2xTdGFjawAAAAAICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAANaXNzdWVDb250cmFjdAkABEIAAAAFCQABLAAAAAICAAAACUNvbnRyYWN0XwUAAAANZEFwcEFzc2V0TmFtZQUAAAAMY29udHJhY3REYXRhAAAAAAAAAAABAAAAAAAAAAAABwQAAAAPaXNzdWVDb250cmFjdElkCQAEOAAAAAEFAAAADWlzc3VlQ29udHJhY3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEGxlbmRpbmdQb29sU3RhY2sFAAAAE25ld0xlbmRpbmdQb29sU3RhY2sJAARMAAAAAgUAAAANaXNzdWVDb250cmFjdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIIBQAAAA1pc3N1ZUNvbnRyYWN0AAAACHF1YW50aXR5BQAAAA9pc3N1ZUNvbnRyYWN0SWQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5/FFUUA==", "height": 1434290, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: JE1YzsMhTYbHuvzCRfU1vrjVArhv1gmryKHPrx2EvQsP Next: D31hse2TQj5t4dNuDkdHDbgcV9C3ZHRDRZ7J8jmjfhW6 Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let dAppAssetName = "test1" | |
5 | + | ||
6 | + | let dAppAssetId = base58'CyRPSWqSzLmynv4W4REGjqhEefZVg2ZobVbvTLi71UzN' | |
7 | + | ||
4 | 8 | func getLendingPoolStack () = match getInteger(this, "lendingPoolStack") { | |
5 | 9 | case a: Int => | |
6 | 10 | a | |
11 | 15 | ||
12 | 16 | @Callable(i) | |
13 | 17 | func addToLendingPool () = if ((size(i.payments) != 1)) | |
14 | - | then throw("Must contain 1 payment") | |
15 | - | else { | |
16 | - | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
17 | - | let issueContract = Issue("LenderContract", "Fuck you all", 1, 0, false) | |
18 | - | let issueContractId = calculateAssetId(issueContract) | |
18 | + | then throw("No payment attached") | |
19 | + | else if ((i.payments[0].assetId != dAppAssetId)) | |
20 | + | then throw("Wrong asset sent") | |
21 | + | else if ((1 > i.payments[0].amount)) | |
22 | + | then throw("Insuffisent liquidity") | |
23 | + | else { | |
24 | + | let txBlockHeight = match transactionHeightById(i.transactionId) { | |
25 | + | case h: Int => | |
26 | + | h | |
27 | + | case _ => | |
28 | + | throw("Unable to get block height") | |
29 | + | } | |
30 | + | let contractData = ((((toString(txBlockHeight) + "_") + toBase58String(dAppAssetId)) + "_") + toString(i.payments[0].amount)) | |
31 | + | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
32 | + | let issueContract = Issue(("Contract_" + dAppAssetName), contractData, 1, 0, false) | |
33 | + | let issueContractId = calculateAssetId(issueContract) | |
19 | 34 | [IntegerEntry("lendingPoolStack", newLendingPoolStack), issueContract, ScriptTransfer(i.caller, issueContract.quantity, issueContractId)] | |
20 | - | } | |
35 | + | } | |
21 | 36 | ||
22 | 37 | ||
23 | 38 | @Verifier(tx) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let dAppAssetName = "test1" | |
5 | + | ||
6 | + | let dAppAssetId = base58'CyRPSWqSzLmynv4W4REGjqhEefZVg2ZobVbvTLi71UzN' | |
7 | + | ||
4 | 8 | func getLendingPoolStack () = match getInteger(this, "lendingPoolStack") { | |
5 | 9 | case a: Int => | |
6 | 10 | a | |
7 | 11 | case _ => | |
8 | 12 | 0 | |
9 | 13 | } | |
10 | 14 | ||
11 | 15 | ||
12 | 16 | @Callable(i) | |
13 | 17 | func addToLendingPool () = if ((size(i.payments) != 1)) | |
14 | - | then throw("Must contain 1 payment") | |
15 | - | else { | |
16 | - | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
17 | - | let issueContract = Issue("LenderContract", "Fuck you all", 1, 0, false) | |
18 | - | let issueContractId = calculateAssetId(issueContract) | |
18 | + | then throw("No payment attached") | |
19 | + | else if ((i.payments[0].assetId != dAppAssetId)) | |
20 | + | then throw("Wrong asset sent") | |
21 | + | else if ((1 > i.payments[0].amount)) | |
22 | + | then throw("Insuffisent liquidity") | |
23 | + | else { | |
24 | + | let txBlockHeight = match transactionHeightById(i.transactionId) { | |
25 | + | case h: Int => | |
26 | + | h | |
27 | + | case _ => | |
28 | + | throw("Unable to get block height") | |
29 | + | } | |
30 | + | let contractData = ((((toString(txBlockHeight) + "_") + toBase58String(dAppAssetId)) + "_") + toString(i.payments[0].amount)) | |
31 | + | let newLendingPoolStack = (getLendingPoolStack() + i.payments[0].amount) | |
32 | + | let issueContract = Issue(("Contract_" + dAppAssetName), contractData, 1, 0, false) | |
33 | + | let issueContractId = calculateAssetId(issueContract) | |
19 | 34 | [IntegerEntry("lendingPoolStack", newLendingPoolStack), issueContract, ScriptTransfer(i.caller, issueContract.quantity, issueContractId)] | |
20 | - | } | |
35 | + | } | |
21 | 36 | ||
22 | 37 | ||
23 | 38 | @Verifier(tx) | |
24 | 39 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
25 | 40 |
github/deemru/w8io/169f3d6 28.58 ms ◑![]()