tx · 3VUJVVtAv1rzSqtUdvYrNrfcjVfcu4qJeSRMZe5rAnFR 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo: -0.01400000 Waves 2021.10.14 07:49 [1745490] smart account 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo > SELF 0.00000000 Waves
{ "type": 13, "id": "3VUJVVtAv1rzSqtUdvYrNrfcjVfcu4qJeSRMZe5rAnFR", "fee": 1400000, "feeAssetId": null, "timestamp": 1634187032583, "version": 2, "chainId": 84, "sender": "3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo", "senderPublicKey": "AmXrJ1inc5jpKhf6D9aDcRU8QWHZXBJdBBvz9VsKDe9x", "proofs": [ "5ihFyAsoh35ryQp8tvqtfPDAxfVTgA5rqtGiKHq3Ay28cyBuEjGnuW5m9nST2ZZFfXTFFjPmba7Rtzv49DD2ZWgG" ], "script": "base64:AAIEAAAAAAAAAAcIAhIDCgEBAAAACgAAAAALQ09ERUFzc2V0SUQBAAAAINAEYRpFnLQZXHk7APbo5tWij1YQ2cG3R/UN12TTTH73AAAAAAtTdGFydEhlaWdodAAAAAAAABqh+AAAAAAGb25lZGF5AAAAAAAAAAWgAAAAAA9taW5pbXVtbG9ja2RheXMAAAAAAAAAAB4AAAAAD21heGltdW1sb2NrZGF5cwAAAAAAAAAAyAAAAAAJYmxvY2tkaWZmCQAAZQAAAAIFAAAABmhlaWdodAUAAAALU3RhcnRIZWlnaHQAAAAAC0luZmxhdGlvbk5vCQAAZAAAAAIJAABrAAAAAwAAAAACVAvkAAAAAAAAAAAAAQUAAAAJYmxvY2tkaWZmAAAAAAAAABdwAAAAAAtTdGFraW5nRGFwcAEAAAAgo7WknlFYQG5NE/mpBZyxqA4fl+GkedKP+NopRLlOBBYAAAAACkZlZUFkZHJlc3MBAAAAIFKD2aCL15CSOzPl4EBEchtzseD8Xh+YHSzFnrJIx+IgAAAAAApkZXZBZGRyZXNzAQAAACBxPzntQa7CXqUpHrNREofekMqtlOVQyxdZBdjFyNZ4GwAAAAEAAAABaQEAAAAHRGVwb3NpdAAAAAEAAAAEZGF5cwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAM05vIFBheW1lbnRzIEF0dGFjaGVkIFBsZWFzZSBBdHRhY2ggQ09ERSBBc3NldCBPbmx5LgQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA9Vc2VyQ2xhaW1BbW91bnQJAABpAAAAAgkAAGkAAAACCQAAaAAAAAIJAABoAAAAAgUAAAALSW5mbGF0aW9uTm8IBQAAAANwbXQAAAAGYW1vdW50BQAAAARkYXlzAAAAAAAAAAFtAAAAAAAAAAPoBAAAAAxhbGxvd2RlZHB5bXQJAABoAAAAAgUAAAAJYmxvY2tkaWZmAAAAAAAAAYagBAAAAAxhY3R1YWxibG9ja3MJAABoAAAAAgUAAAAGb25lZGF5BQAAAARkYXlzBAAAAA90b3RhbGxvY2tibG9ja3MJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAxhY3R1YWxibG9ja3MEAAAAElByZXZpb3VzSXNzdWVkQ09ERQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfSXNzdWVkX0NPREU6BAAAAA9Ub3RhbElzc3VlZENPREUJAABkAAAAAgUAAAASUHJldmlvdXNJc3N1ZWRDT0RFBQAAAA9Vc2VyQ2xhaW1BbW91bnQEAAAAElByZXZpb3VzQnVybmVkQ09ERQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAASVG90YWxfQnVybmVkX0NPREU6BAAAAA9Ub3RhbEJ1cm5lZENPREUJAABkAAAAAgUAAAASUHJldmlvdXNCdXJuZWRDT0RFCAUAAAADcG10AAAABmFtb3VudAQAAAAQUHJldmlvdXNUeG5zQ09ERQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAALVG90YWxfVHhuczoEAAAADVRvdGFsVHhuc0NPREUJAABkAAAAAgUAAAAQUHJldmlvdXNUeG5zQ09ERQAAAAAAAAAAAQQAAAAUZmV0Y2h1c2Vyc3Rha2VoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAAAtnYXBvZmhlaWdodAkAAGUAAAACBQAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQFAAAAFGZldGNodXNlcnN0YWtlaGVpZ2h0AwkAAGYAAAACBQAAAAtTdGFydEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACpEQXBwIGlzIE5vdCBTdGFydGVkIFlldCBwbGVhc2UgV2FpdCB1bnRpbCAJAAGkAAAAAQkAAGUAAAACBQAAAAtTdGFydEhlaWdodAUAAAAGaGVpZ2h0AgAAAAcgYmxvY2tzAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAtDT0RFQXNzZXRJRAkAAAIAAAABCQABLAAAAAICAAAAKEluY29ycmVjdCBhc3NldCBhdHRhY2hlZCwgcGxlYXNlIGF0dGFjaCAJAAJYAAAAAQUAAAALQ09ERUFzc2V0SUQDCQAAZwAAAAIFAAAAD21pbmltdW1sb2NrZGF5cwUAAAAEZGF5cwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB9DaG9vc2UgTG9ja2luZyBkYXlzIGluIGJldHdlZW4gCQABpAAAAAEFAAAAD21pbmltdW1sb2NrZGF5cwIAAAAEIHRvIAkAAaQAAAABBQAAAA9tYXhpbXVtbG9ja2RheXMDCQAAZgAAAAIFAAAABGRheXMFAAAAD21heGltdW1sb2NrZGF5cwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEZZb3UgRW50ZXJlZCBkYXlzIGdyZWF0ZXIgdGhhbiAyMDAgcGxlYXNlIEVudGVyIG5vLiBvZiBkYXlzIGluIGJldHdlZW4gCQABpAAAAAEFAAAAD21pbmltdW1sb2NrZGF5cwIAAAAEIHRvIAkAAaQAAAABBQAAAA9tYXhpbXVtbG9ja2RheXMDCQAAZgAAAAIAAAAAAAABhqAIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAANVBsZWFzZSBBdHRhY2ggbWluaW11bSAwLjAwMSBDT0RFIFRvIElzc3VlIENPREUgQXNzZXQuAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAMYWxsb3dkZWRweW10CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABdZb3UgY2FuIGF0dGFjaCBtYXhpbXVtIAkAAaQAAAABBQAAAAxhbGxvd2RlZHB5bXQCAAAACy8xMF44IENPREUuAwkBAAAAAiE9AAAAAgUAAAALZ2Fwb2ZoZWlnaHQAAAAAAAAB+kAJAAACAAAAAQIAAABDWW91IGFyZSBOb3QgRWxpZ2libGUgdG8gTWludCBDT0RFLiBJdCBuZWVkIG1pbmltdW0gOTAgRGF5cyBTdGFraW5nLgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAC0NPREVBc3NldElECAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASVG90YWxfSXNzdWVkX0NPREU6BQAAAA9Ub3RhbElzc3VlZENPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0J1cm5lZF9DT0RFOgUAAAAPVG90YWxCdXJuZWRDT0RFCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9UeG5zOgUAAAANVG90YWxUeG5zQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJSW5mbGF0aW9uBQAAAAtJbmZsYXRpb25ObwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAAD3RvdGFsbG9ja2Jsb2NrcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA1DbGFpbV9BbW91bnRfBQAAAApjdXJyZW50S2V5BQAAAA9Vc2VyQ2xhaW1BbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAmPGgxPkNPREUgSXNzdWVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA9Vc2VyQ2xhaW1BbW91bnQFAAAAC0NPREVBc3NldElEBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleS4oGSo=", "height": 1745490, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3QTsnogQozcQLZa5KowFnT5mSyxbXdjeRKqE4TJxoxWA Next: Geg1BbitSSiWvA95XJFaEw8izVxv1MKzazWt63xFPgcX Diff:
Old | New | Differences | |
---|---|---|---|
4 | 4 | let CODEAssetID = base58'F11g74azdw3SZN83raygbu9useimfTwSQ7HmTLggAq26' | |
5 | 5 | ||
6 | 6 | let StartHeight = 1745400 | |
7 | + | ||
8 | + | let oneday = 1440 | |
9 | + | ||
10 | + | let minimumlockdays = 30 | |
11 | + | ||
12 | + | let maximumlockdays = 200 | |
7 | 13 | ||
8 | 14 | let blockdiff = (height - StartHeight) | |
9 | 15 | ||
16 | 22 | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
17 | 23 | ||
18 | 24 | @Callable(i) | |
19 | - | func Deposit ( | |
25 | + | func Deposit (days) = { | |
20 | 26 | let pmt = if ((size(i.payments) == 1)) | |
21 | 27 | then i.payments[0] | |
22 | 28 | else throw("No Payments Attached Please Attach CODE Asset Only.") | |
23 | 29 | let currentKey = toBase58String(i.caller.bytes) | |
24 | - | let UserClaimAmount = ((((InflationNo * pmt.amount) * | |
30 | + | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
25 | 31 | let allowdedpymt = (blockdiff * 100000) | |
32 | + | let actualblocks = (oneday * days) | |
33 | + | let totallockblocks = (height + actualblocks) | |
26 | 34 | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
27 | 35 | let TotalIssuedCODE = (PreviousIssuedCODE + UserClaimAmount) | |
28 | 36 | let PreviousBurnedCODE = getIntegerValue(this, "Total_Burned_CODE:") | |
36 | 44 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
37 | 45 | else if ((pmt.assetId != CODEAssetID)) | |
38 | 46 | then throw(("Incorrect asset attached, please attach " + toBase58String(CODEAssetID))) | |
39 | - | else if ((100000 > pmt.amount)) | |
40 | - | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
41 | - | else if ((pmt.amount > allowdedpymt)) | |
42 | - | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
43 | - | else if ((gapofheight != 129600)) | |
44 | - | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
45 | - | else [IntegerEntry("Inflation", InflationNo), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry(("Claim_Amount_" + currentKey), UserClaimAmount), Burn(CODEAssetID, pmt.amount), ScriptTransfer(i.caller, UserClaimAmount, CODEAssetID), StringEntry("message", "<h1>CODE Issued Successfully!</h1><br>")] | |
47 | + | else if ((minimumlockdays >= days)) | |
48 | + | then throw(((("Choose Locking days in between " + toString(minimumlockdays)) + " to ") + toString(maximumlockdays))) | |
49 | + | else if ((days > maximumlockdays)) | |
50 | + | then throw(((("You Entered days greater than 200 please Enter no. of days in between " + toString(minimumlockdays)) + " to ") + toString(maximumlockdays))) | |
51 | + | else if ((100000 > pmt.amount)) | |
52 | + | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
53 | + | else if ((pmt.amount > allowdedpymt)) | |
54 | + | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
55 | + | else if ((gapofheight != 129600)) | |
56 | + | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
57 | + | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), IntegerEntry(("Claim_Amount_" + currentKey), UserClaimAmount), StringEntry("message", "<h1>CODE Issued Successfully!</h1><br>"), ScriptTransfer(i.caller, UserClaimAmount, CODEAssetID)] | |
46 | 58 | } | |
47 | 59 | ||
48 | 60 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let CODEAssetID = base58'F11g74azdw3SZN83raygbu9useimfTwSQ7HmTLggAq26' | |
5 | 5 | ||
6 | 6 | let StartHeight = 1745400 | |
7 | + | ||
8 | + | let oneday = 1440 | |
9 | + | ||
10 | + | let minimumlockdays = 30 | |
11 | + | ||
12 | + | let maximumlockdays = 200 | |
7 | 13 | ||
8 | 14 | let blockdiff = (height - StartHeight) | |
9 | 15 | ||
10 | 16 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
11 | 17 | ||
12 | 18 | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
13 | 19 | ||
14 | 20 | let FeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
15 | 21 | ||
16 | 22 | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
17 | 23 | ||
18 | 24 | @Callable(i) | |
19 | - | func Deposit ( | |
25 | + | func Deposit (days) = { | |
20 | 26 | let pmt = if ((size(i.payments) == 1)) | |
21 | 27 | then i.payments[0] | |
22 | 28 | else throw("No Payments Attached Please Attach CODE Asset Only.") | |
23 | 29 | let currentKey = toBase58String(i.caller.bytes) | |
24 | - | let UserClaimAmount = ((((InflationNo * pmt.amount) * | |
30 | + | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
25 | 31 | let allowdedpymt = (blockdiff * 100000) | |
32 | + | let actualblocks = (oneday * days) | |
33 | + | let totallockblocks = (height + actualblocks) | |
26 | 34 | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
27 | 35 | let TotalIssuedCODE = (PreviousIssuedCODE + UserClaimAmount) | |
28 | 36 | let PreviousBurnedCODE = getIntegerValue(this, "Total_Burned_CODE:") | |
29 | 37 | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
30 | 38 | let PreviousTxnsCODE = getIntegerValue(this, "Total_Txns:") | |
31 | 39 | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
32 | 40 | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
33 | 41 | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
34 | 42 | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
35 | 43 | if ((StartHeight > height)) | |
36 | 44 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
37 | 45 | else if ((pmt.assetId != CODEAssetID)) | |
38 | 46 | then throw(("Incorrect asset attached, please attach " + toBase58String(CODEAssetID))) | |
39 | - | else if ((100000 > pmt.amount)) | |
40 | - | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
41 | - | else if ((pmt.amount > allowdedpymt)) | |
42 | - | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
43 | - | else if ((gapofheight != 129600)) | |
44 | - | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
45 | - | else [IntegerEntry("Inflation", InflationNo), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry(("Claim_Amount_" + currentKey), UserClaimAmount), Burn(CODEAssetID, pmt.amount), ScriptTransfer(i.caller, UserClaimAmount, CODEAssetID), StringEntry("message", "<h1>CODE Issued Successfully!</h1><br>")] | |
47 | + | else if ((minimumlockdays >= days)) | |
48 | + | then throw(((("Choose Locking days in between " + toString(minimumlockdays)) + " to ") + toString(maximumlockdays))) | |
49 | + | else if ((days > maximumlockdays)) | |
50 | + | then throw(((("You Entered days greater than 200 please Enter no. of days in between " + toString(minimumlockdays)) + " to ") + toString(maximumlockdays))) | |
51 | + | else if ((100000 > pmt.amount)) | |
52 | + | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
53 | + | else if ((pmt.amount > allowdedpymt)) | |
54 | + | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
55 | + | else if ((gapofheight != 129600)) | |
56 | + | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
57 | + | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), IntegerEntry(("Claim_Amount_" + currentKey), UserClaimAmount), StringEntry("message", "<h1>CODE Issued Successfully!</h1><br>"), ScriptTransfer(i.caller, UserClaimAmount, CODEAssetID)] | |
46 | 58 | } | |
47 | 59 | ||
48 | 60 | ||
49 | 61 | @Verifier(tx) | |
50 | 62 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
51 | 63 |
github/deemru/w8io/169f3d6 31.33 ms ◑