tx · 63Uo5A7T67yeFUbesqio5riWhN1khNxm7a1e5175AEkT 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo: -0.01400000 Waves 2021.10.25 22:12 [1762247] smart account 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo > SELF 0.00000000 Waves
{ "type": 13, "id": "63Uo5A7T67yeFUbesqio5riWhN1khNxm7a1e5175AEkT", "fee": 1400000, "feeAssetId": null, "timestamp": 1635189182299, "version": 2, "chainId": 84, "sender": "3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo", "senderPublicKey": "AmXrJ1inc5jpKhf6D9aDcRU8QWHZXBJdBBvz9VsKDe9x", "proofs": [ "478tawkAFSNgFr53xHkf98dy5UHLHF9UEwZ1PAFmxqnKLiGiMASNCwpFLVff9YQRetza8sB3ow7YHjWfE4jdNksb" ], "script": "base64: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ZSBpbmNyZWFzZSBuby4gb2YgZGF5cyAoCQABpAAAAAEFAAAAD1VzZXJDbGFpbUFtb3VudAIAAAABLwkAAaQAAAABCAUAAAADcG10AAAABmFtb3VudAIAAAAMKS8xMF44IENPREUuAwkBAAAAAiE9AAAAAgUAAAALZ2Fwb2ZoZWlnaHQAAAAAAAAB+kAJAAACAAAAAQIAAABDWW91IGFyZSBOb3QgRWxpZ2libGUgdG8gTWludCBDT0RFLiBJdCBuZWVkIG1pbmltdW0gOTAgRGF5cyBTdGFraW5nLgMJAAAAAAAAAgUAAAAQVXNlck5vT2ZEZXBvc2l0cwAAAAAAAAAAAQkAAAIAAAABAgAAAD1Zb3UgQWxyZWFkeSBIYXZlIGFuIEFjdGl2ZSBTdGFraW5nLCBQbGVhc2UgV2FpdCB1bnRpbCBNYXR1cmUuCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAALQ09ERUFzc2V0SUQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9CdXJuZWRfQ09ERToFAAAAD1RvdGFsQnVybmVkQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALVG90YWxfVHhuczoFAAAADVRvdGFsVHhuc0NPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACUluZmxhdGlvbgUAAAALSW5mbGF0aW9uTm8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADEJsb2NrX1Bhc3NlZAUAAAAJYmxvY2tkaWZmCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAD05vX09mX0RlcG9zaXRzXwUAAAAKY3VycmVudEtleQUAAAAYU3VtcHVwb2ZVc2VyTm9PZkRlcG9zaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAANbmV3Q09ERUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQUAAAAPVXNlckNsYWltQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAJjxoMT5DT0RFIFN0YWtlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+BQAAAANuaWwAAAABaQEAAAAIV2l0aGRyYXcAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAEWNoZWNrZGVwb3NpdHZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQQAAAAQUHJldmlvdXNUeG5zQ09ERQQAAAAHJG1hdGNoMAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAALVG90YWxfVHhuczoDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANVG90YWxUeG5zQ09ERQkAAGQAAAACBQAAABBQcmV2aW91c1R4bnNDT0RFAAAAAAAAAAABBAAAAA9mZXRjaFJld2FyZERhdGEEAAAAByRtYXRjaDAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAE1RvdGFsX0NPREVfQ2xhaW1lZDoDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAASdG90YWxyZXdhcmRjbGFpbWVkCQAAZAAAAAIFAAAAD2ZldGNoUmV3YXJkRGF0YQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQQAAAASUHJldmlvdXNJc3N1ZWRDT0RFBAAAAAckbWF0Y2gwCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABJUb3RhbF9Jc3N1ZWRfQ09ERToDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPVG90YWxJc3N1ZWRDT0RFCQAAZAAAAAIFAAAAElByZXZpb3VzSXNzdWVkQ09ERQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQQAAAAUZmV0Y2h1c2Vyc3Rha2VoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAAtTdGFraW5nRGFwcAkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAJllvdXIgQWRkcmVzcyBub3QgRm91bmQgb24gU3Rha2luZyBEQXBwBAAAAAtnYXBvZmhlaWdodAkAAGUAAAACBQAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQFAAAAFGZldGNodXNlcnN0YWtlaGVpZ2h0AwkAAGYAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tz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", "height": 1762247, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C1rAx1PUirYAQ46tQjnzMDyAVMv59yxJAUYw3MUm5jqC Next: 5vnPSqepGQyw6JFsqmuHpE83kWn9vczpaXfrF9HRakFU Diff:
Old | New | Differences | |
---|---|---|---|
15 | 15 | ||
16 | 16 | let useramount = ((1000 - TreasuryFee) - devFee) | |
17 | 17 | ||
18 | - | let StartHeight = | |
18 | + | let StartHeight = 1850000 | |
19 | 19 | ||
20 | 20 | let minimumlockdays = 6 | |
21 | 21 | ||
27 | 27 | ||
28 | 28 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
29 | 29 | ||
30 | - | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
31 | - | case a: Int => | |
32 | - | a | |
33 | - | case _ => | |
34 | - | 0 | |
35 | - | } | |
36 | - | ||
37 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
38 | - | ||
39 | 30 | @Callable(i) | |
40 | 31 | func Deposit (days) = { | |
41 | 32 | let pmt = if ((size(i.payments) == 1)) | |
46 | 37 | let allowdedpymt = (blockdiff * 100000) | |
47 | 38 | let actualblocks = (oneday * days) | |
48 | 39 | let totallockblocks = (height + actualblocks) | |
40 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
41 | + | case a: Int => | |
42 | + | a | |
43 | + | case _ => | |
44 | + | 0 | |
45 | + | } | |
46 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
49 | 47 | let PreviousBurnedCODE = match getInteger(this, "Total_Burned_CODE:") { | |
50 | 48 | case a: Int => | |
51 | 49 | a | |
97 | 95 | func Withdraw () = { | |
98 | 96 | let currentKey = toBase58String(i.caller.bytes) | |
99 | 97 | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
98 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
99 | + | case a: Int => | |
100 | + | a | |
101 | + | case _ => | |
102 | + | 0 | |
103 | + | } | |
104 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
100 | 105 | let fetchRewardData = match getIntegerValue(this, "Total_CODE_Claimed:") { | |
101 | 106 | case a: Int => | |
102 | 107 | a | |
111 | 116 | 0 | |
112 | 117 | } | |
113 | 118 | let TotalIssuedCODE = (PreviousIssuedCODE + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
119 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
120 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
121 | + | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
114 | 122 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
115 | 123 | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + currentKey)))) + "/10^8 CODE are Still Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
116 | 124 | else if ((checkdepositvalue == 0)) | |
117 | 125 | then throw("You Have Already Withdraw your CODE Amount.") | |
118 | - | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
126 | + | else if ((gapofheight != 129600)) | |
127 | + | then throw("You are Not Eligible to Withdraw CODE. It need minimum 90 Days Staking.") | |
128 | + | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
119 | 129 | } | |
120 | 130 | ||
121 | 131 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let CODEAssetID = base58'ArPqXguhFLjJt5XwcNwhXMnCv2zSumrM19y5WgT34yRi' | |
5 | 5 | ||
6 | 6 | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
7 | 7 | ||
8 | 8 | let TreasuryFeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
9 | 9 | ||
10 | 10 | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
11 | 11 | ||
12 | 12 | let devFee = 1 | |
13 | 13 | ||
14 | 14 | let TreasuryFee = 9 | |
15 | 15 | ||
16 | 16 | let useramount = ((1000 - TreasuryFee) - devFee) | |
17 | 17 | ||
18 | - | let StartHeight = | |
18 | + | let StartHeight = 1850000 | |
19 | 19 | ||
20 | 20 | let minimumlockdays = 6 | |
21 | 21 | ||
22 | 22 | let maximumlockdays = 7 | |
23 | 23 | ||
24 | 24 | let oneday = 1440 | |
25 | 25 | ||
26 | 26 | let blockdiff = (height - StartHeight) | |
27 | 27 | ||
28 | 28 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
29 | 29 | ||
30 | - | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
31 | - | case a: Int => | |
32 | - | a | |
33 | - | case _ => | |
34 | - | 0 | |
35 | - | } | |
36 | - | ||
37 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
38 | - | ||
39 | 30 | @Callable(i) | |
40 | 31 | func Deposit (days) = { | |
41 | 32 | let pmt = if ((size(i.payments) == 1)) | |
42 | 33 | then i.payments[0] | |
43 | 34 | else throw((("No Payments Attached Please Attach " + toBase58String(CODEAssetID)) + " Asset Only.")) | |
44 | 35 | let currentKey = toBase58String(i.caller.bytes) | |
45 | 36 | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
46 | 37 | let allowdedpymt = (blockdiff * 100000) | |
47 | 38 | let actualblocks = (oneday * days) | |
48 | 39 | let totallockblocks = (height + actualblocks) | |
40 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
41 | + | case a: Int => | |
42 | + | a | |
43 | + | case _ => | |
44 | + | 0 | |
45 | + | } | |
46 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
49 | 47 | let PreviousBurnedCODE = match getInteger(this, "Total_Burned_CODE:") { | |
50 | 48 | case a: Int => | |
51 | 49 | a | |
52 | 50 | case _ => | |
53 | 51 | 0 | |
54 | 52 | } | |
55 | 53 | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
56 | 54 | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
57 | 55 | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
58 | 56 | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
59 | 57 | let currentCODEAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { | |
60 | 58 | case a: Int => | |
61 | 59 | a | |
62 | 60 | case _ => | |
63 | 61 | 0 | |
64 | 62 | } | |
65 | 63 | let newCODEAmount = (currentCODEAmount + pmt.amount) | |
66 | 64 | let UserNoOfDeposits = match getInteger(this, ("No_Of_Deposits_" + currentKey)) { | |
67 | 65 | case a: Int => | |
68 | 66 | a | |
69 | 67 | case _ => | |
70 | 68 | 0 | |
71 | 69 | } | |
72 | 70 | let SumpupofUserNoOfDeposits = (UserNoOfDeposits + 1) | |
73 | 71 | if ((StartHeight > height)) | |
74 | 72 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
75 | 73 | else if ((pmt.assetId != CODEAssetID)) | |
76 | 74 | then throw((("Incorrect asset attached, please attach " + toBase58String(CODEAssetID)) + " asset only")) | |
77 | 75 | else if ((minimumlockdays >= days)) | |
78 | 76 | then throw(((("Choose Locking days in between " + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
79 | 77 | else if ((days > maximumlockdays)) | |
80 | 78 | then throw(((((("You Entered days to " + toString(days)) + ", Please Enter no. of days in between ") + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
81 | 79 | else if ((100000 > pmt.amount)) | |
82 | 80 | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
83 | 81 | else if ((pmt.amount > allowdedpymt)) | |
84 | 82 | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
85 | 83 | else if ((pmt.amount > UserClaimAmount)) | |
86 | 84 | then throw((((("Your Stake Output is lower than input, please increase no. of days (" + toString(UserClaimAmount)) + "/") + toString(pmt.amount)) + ")/10^8 CODE.")) | |
87 | 85 | else if ((gapofheight != 129600)) | |
88 | 86 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
89 | 87 | else if ((UserNoOfDeposits == 1)) | |
90 | 88 | then throw("You Already Have an Active Staking, Please Wait until Mature.") | |
91 | 89 | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry("Block_Passed", blockdiff), IntegerEntry(("No_Of_Deposits_" + currentKey), SumpupofUserNoOfDeposits), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newCODEAmount), IntegerEntry(("Rewards_Of_" + currentKey), UserClaimAmount), StringEntry("message", "<h1>CODE Staked Successfully!</h1><br>")] | |
92 | 90 | } | |
93 | 91 | ||
94 | 92 | ||
95 | 93 | ||
96 | 94 | @Callable(i) | |
97 | 95 | func Withdraw () = { | |
98 | 96 | let currentKey = toBase58String(i.caller.bytes) | |
99 | 97 | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
98 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
99 | + | case a: Int => | |
100 | + | a | |
101 | + | case _ => | |
102 | + | 0 | |
103 | + | } | |
104 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
100 | 105 | let fetchRewardData = match getIntegerValue(this, "Total_CODE_Claimed:") { | |
101 | 106 | case a: Int => | |
102 | 107 | a | |
103 | 108 | case _ => | |
104 | 109 | 0 | |
105 | 110 | } | |
106 | 111 | let totalrewardclaimed = (fetchRewardData + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
107 | 112 | let PreviousIssuedCODE = match getIntegerValue(this, "Total_Issued_CODE:") { | |
108 | 113 | case a: Int => | |
109 | 114 | a | |
110 | 115 | case _ => | |
111 | 116 | 0 | |
112 | 117 | } | |
113 | 118 | let TotalIssuedCODE = (PreviousIssuedCODE + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
119 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
120 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
121 | + | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
114 | 122 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
115 | 123 | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + currentKey)))) + "/10^8 CODE are Still Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
116 | 124 | else if ((checkdepositvalue == 0)) | |
117 | 125 | then throw("You Have Already Withdraw your CODE Amount.") | |
118 | - | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
126 | + | else if ((gapofheight != 129600)) | |
127 | + | then throw("You are Not Eligible to Withdraw CODE. It need minimum 90 Days Staking.") | |
128 | + | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
119 | 129 | } | |
120 | 130 | ||
121 | 131 | ||
122 | 132 | @Verifier(tx) | |
123 | 133 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
124 | 134 |
github/deemru/w8io/169f3d6 48.41 ms ◑