tx · BhsbaTsch4WvYCtzFbxnjrdYREVKZ4nXx274upinc1RB

3P32KGEZqhNghPFjTPztpJMMWLcpiZJPwdP:  -0.01400000 Waves

2022.09.16 12:57 [3297009] smart account 3P32KGEZqhNghPFjTPztpJMMWLcpiZJPwdP > SELF 0.00000000 Waves

{ "type": 13, "id": "BhsbaTsch4WvYCtzFbxnjrdYREVKZ4nXx274upinc1RB", "fee": 1400000, "feeAssetId": null, "timestamp": 1663321832390, "version": 2, "chainId": 87, "sender": "3P32KGEZqhNghPFjTPztpJMMWLcpiZJPwdP", "senderPublicKey": "5YjkiF9jfJb3fxMshx2fMLv6kF4Qf6CXRwfHxeJm8f89", "proofs": [ "5VtuGpD3weT9SCcK1wLGKXAQzwBTDBLQovXM9ZKfQvwD4vC7RHFhMa4eZVofrRiuTERuXVL7gPMchv5ZYr8JPAtW" ], "script": "base64:AAIEAAAAAAAAABAIAhIDCgEBEgASAwoBARIAAAAAAQAAAAAVbG9hbmVsaWdpYmlsaXR5ZmFjdG9yCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABFlbGlnaWJpbGl0eWZhY3RvcgAAAAQAAAABaQEAAAALUmVxdWVzdExvYW4AAAABAAAABGRheXMEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAPbWF4aW11bWxvYW5kYXlzAAAAAAAAAABaBAAAAApsb2FuYW1vdW50CQAAaQAAAAIJAABoAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAFWxvYW5lbGlnaWJpbGl0eWZhY3RvcgAAAAAAAAAD6AQAAAALVVNEVEFzc2V0SUQBAAAAIB6UBxNSdqEllf3IYaiCXxB/3zpPKbv8mkY/Wv02T5+RBAAAABBjaGVja1VTRFRiYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAAC1VTRFRBc3NldElEAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAEJJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQgZm9yIENvbGxhdGVyYWwsIHBsZWFzZSBhdHRhY2ggV0FWRVMgb25seS4DCQAAZwAAAAIAAAAAAAAAAAAFAAAABGRheXMJAAACAAAAAQIAAAAlRW50ZXIgbm8uIG9mIGRheXMgaW4gYmV0d2VlbiAxIHRvIDkwLgMJAABmAAAAAgUAAAAEZGF5cwUAAAAPbWF4aW11bWxvYW5kYXlzCQAAAgAAAAECAAAATVlvdSBFbnRlcmVkIGRheXMgZ3JlYXRlciB0aGFuIDkwIHBsZWFzZSBFbnRlciBuby4gb2YgZGF5cyBpbiBiZXR3ZWVuIDEgdG8gOTAuAwkAAGYAAAACAAAAAAAL68IACAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAAB5QbGVhc2UgQXR0YWNoIG1pbmltdW0gMiBXQVZFUy4DCQAAZgAAAAIFAAAACmxvYW5hbW91bnQFAAAAEGNoZWNrVVNEVGJhbGFuY2UJAAACAAAAAQIAAAB/U29ycnkhIFJlcXVpcmVkIExvYW4gYW1vdW50IGlzIGdyZWF0ZXIgdGhhbiBhdmFpbGFibGUgb24gREFwcCBBZGRyZXNzLCBDaGVjayBEQXBwIFVTRFQgYmFsYW5jZSBvciBUcnkgZm9yIGEgbGVzcyBhbW91bnQgUGxlYXNlLgQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABB1c2VyYm9ycm93aGVpZ2h0CQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFCb3Jyb3dfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQUAAAAGaGVpZ2h0BAAAAApsb2Fuc3RhdHVzAgAAAAlMT0FOX1BBSUQEAAAAD2xvYW5zdGF0dXNlbnRyeQkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAA9Mb2FuX1N0YXR1c19PZl8FAAAACmN1cnJlbnRLZXkFAAAACmxvYW5zdGF0dXMEAAAAEGNvbGxhdGVyYWxhbW91bnQJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFUNvbGxhdGVyYWxfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAD2xvYW5hbW91bnRlbnRyeQkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9hbl9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5BQAAAApsb2FuYW1vdW50BAAAAAZvbmVkYXkAAAAAAAAABaAEAAAAD3RvdGFsbG9hbmJsb2NrcwkAAGgAAAACBQAAAAZvbmVkYXkFAAAABGRheXMEAAAAFHRvdGFsbG9hbmJsb2Nrc2VudHJ5CQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2FuX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAAD3RvdGFsbG9hbmJsb2NrcwQAAAAQcGVyYmxvY2tpbnRlcmVzdAAAAAAAAAAARAQAAAAMbG9hbmludGVyZXN0CQAAaAAAAAIJAABoAAAAAgUAAAAQcGVyYmxvY2tpbnRlcmVzdAUAAAAPdG90YWxsb2FuYmxvY2tzCQAA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Qm9ycm93X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkEAAAAC2dyYWNlcGVyaW9kBQAAABJnZXR0b3RhbGxvYW5ibG9ja3MEAAAADnJlcGF5dGltZWxpbWl0CQAAZAAAAAIFAAAAD2dldGJvcnJvd2hlaWdodAUAAAALZ3JhY2VwZXJpb2QDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAOcmVwYXl0aW1lbGltaXQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAKFlvdXIgTG9hbiBSZXBheWJhY2sgcGVyaW9kIGlzIG92ZXIgd2l0aCAJAAGkAAAAAQUAAAALZ3JhY2VwZXJpb2QCAAAAByBibG9ja3MEAAAAD2dldGxvYW5pbnRlcmVzdAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFMb2FuX0ludGVyZXN0X09mXwUAAAAKY3VycmVudEtleQQAAAATZ2V0Y29sbGF0ZXJhbGFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVDb2xsYXRlcmFsX0Ftb3VudF9PZl8FAAAACmN1cnJlbnRLZXkEAAAAF2NvbGxhdGVyYWxyZWxlYXNlYW1vdW50CQAAZQAAAAIFAAAAE2dldGNvbGxhdGVyYWxhbW91bnQFAAAAD2dldGxvYW5pbnRlcmVzdAQAAAAQdXBkYXRlbG9hbnN0YXR1cwkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAA9Mb2FuX1N0YXR1c19PZl8FAAAACmN1cnJlbnRLZXkCAAAAAAQAAAAQdXBkYXRlbG9hbmFtb3VudAkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTG9hbl9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAABAAAABV1cGRhdGV0b3RhbGxvYW5ibG9ja3MJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvYW5fQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAQAAAAWdXBkYXRlY29sbGF0ZXJhbGFtb3VudAkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVQ29sbGF0ZXJhbF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAABAAAABJ1cGRhdGVib3Jyb3doZWlnaHQJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEUJvcnJvd19oZWlnaHRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAABAAAABJ1cGRhdGVsb2FuaW50ZXJlc3QJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEUxvYW5fSW50ZXJlc3RfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAABAAAAAtsb2FubWVzc2FnZQkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAnPGgxPkxvYW4gUmVwYXllZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+CQAETAAAAAIFAAAAEHVwZGF0ZWxvYW5zdGF0dXMJAARMAAAAAgUAAAAQdXBkYXRlbG9hbmFtb3VudAkABEwAAAACBQAAABV1cGRhdGV0b3RhbGxvYW5ibG9ja3MJAARMAAAAAgUAAAAWdXBkYXRlY29sbGF0ZXJhbGFtb3VudAkABEwAAAACBQAAABJ1cGRhdGVib3Jyb3doZWlnaHQJAARMAAAAAgUAAAASdXBkYXRlbG9hbmludGVyZXN0CQAETAAAAAIFAAAAC2xvYW5tZXNzYWdlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAXY29sbGF0ZXJhbHJlbGVhc2VhbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAAhTZXRQcmljZQAAAAEAAAAFUHJpY2UEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALYWRtaW5yaWdodHMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAAEURBcHBfQWRtaW5fUmlnaHRzAwkBAAAAAiE9AAAAAgUAAAALYWRtaW5yaWdodHMFAAAADWNhbGxlcmFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkkga25vdyBZb3UgYXJlIG5vdCBBbiBBZG1pbi4gT25seSAFAAAAC2FkbWlucmlnaHRzAgAAACAgaGFzIHJpZ2h0cyB0byBzZXQgUHJpY2UgZm9yIGl0LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARZWxpZ2liaWxpdHlmYWN0b3IFAAAABVByaWNlBQAAAANuaWwAAAABaQEAAAAUU2V0QWRtaW5SaWdodEFkZHJlc3MAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAEURBcHBfQWRtaW5fUmlnaHRzAgAAACMzUDMyS0dFWnFoTmdoUEZqVFB6dHBKTU1XTGNwaVpKUHdkUAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5DZ3DXg==", "height": 3297009, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GDSfW8tLnDn4h5usFX1HSZuivJMFdnyCMh7978Lrzqbx Next: none Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let loaneligibilityfactor = getIntegerValue(this, "eligibilityfactor")
55
6-@Callable(inv)
6+@Callable(i)
77 func RequestLoan (days) = {
8- let pmt = extract(inv.payment)
8+ let pmt = value(i.payments[0])
99 let maximumloandays = 90
1010 let loanamount = ((pmt.amount * loaneligibilityfactor) / 1000)
1111 let USDTAssetID = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
2121 else if ((loanamount > checkUSDTbalance))
2222 then throw("Sorry! Required Loan amount is greater than available on DApp Address, Check DApp USDT balance or Try for a less amount Please.")
2323 else {
24- let currentKey = toBase58String(inv.caller.bytes)
25- let userborrowheight = DataEntry(("Borrow_height_Of_" + currentKey), height)
24+ let currentKey = toBase58String(i.caller.bytes)
25+ let userborrowheight = IntegerEntry(("Borrow_height_Of_" + currentKey), height)
2626 let loanstatus = "LOAN_PAID"
27- let loanstatusentry = DataEntry(("Loan_Status_Of_" + currentKey), loanstatus)
28- let collateralamount = DataEntry(("Collateral_Amount_Of_" + currentKey), pmt.amount)
29- let loanamountentry = DataEntry(("Loan_Amount_Of_" + currentKey), loanamount)
27+ let loanstatusentry = StringEntry(("Loan_Status_Of_" + currentKey), loanstatus)
28+ let collateralamount = IntegerEntry(("Collateral_Amount_Of_" + currentKey), pmt.amount)
29+ let loanamountentry = IntegerEntry(("Loan_Amount_Of_" + currentKey), loanamount)
3030 let oneday = 1440
3131 let totalloanblocks = (oneday * days)
32- let totalloanblocksentry = DataEntry(("Total_Loan_Blocks_Of_" + currentKey), totalloanblocks)
32+ let totalloanblocksentry = IntegerEntry(("Total_Loan_Blocks_Of_" + currentKey), totalloanblocks)
3333 let perblockinterest = 68
3434 let loaninterest = ((perblockinterest * totalloanblocks) * (pmt.amount / 100000000))
35- let loaninterestentry = DataEntry(("Loan_Interest_Of_" + currentKey), loaninterest)
35+ let loaninterestentry = IntegerEntry(("Loan_Interest_Of_" + currentKey), loaninterest)
3636 let previousloanbalance = getIntegerValue(this, "Total_Loan_Paid:")
3737 let totalloanpaid = (previousloanbalance + (pmt.amount / 100000000))
38- let TLP = DataEntry("Total_Loan_Paid:", totalloanpaid)
39- let loanmessage = DataEntry("message", "<h1>Loan Issued Successfully!</h1><br>")
40- ScriptResult(WriteSet([userborrowheight, loanstatusentry, collateralamount, loanamountentry, totalloanblocksentry, loaninterestentry, TLP, loanmessage]), TransferSet([ScriptTransfer(inv.caller, loanamount, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'), ScriptTransfer(addressFromPublicKey(base58'59q1hHBmeQgfSRst9Dn52VTBbtCu4SQ7AujhGDjHCqn6'), loaninterest, unit)]))
38+ let TLP = IntegerEntry("Total_Loan_Paid:", totalloanpaid)
39+ let loanmessage = StringEntry("message", "<h1>Loan Issued Successfully!</h1><br>")
40+[userborrowheight, loanstatusentry, collateralamount, loanamountentry, totalloanblocksentry, loaninterestentry, TLP, loanmessage, ScriptTransfer(i.caller, loanamount, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'), ScriptTransfer(addressFromPublicKey(base58'59q1hHBmeQgfSRst9Dn52VTBbtCu4SQ7AujhGDjHCqn6'), loaninterest, unit)]
4141 }
4242 }
4343
4444
4545
46-@Callable(inv)
46+@Callable(i)
4747 func RepayLoan () = {
48- let pmt = extract(inv.payment)
49- let userkey = toBase58String(inv.caller.bytes)
48+ let pmt = value(i.payments[0])
49+ let userkey = toBase58String(i.caller.bytes)
5050 let assetid = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
5151 let getloanamount = getIntegerValue(this, ("Loan_Amount_Of_" + userkey))
5252 let gettotalloanblocks = getIntegerValue(this, ("Total_Loan_Blocks_Of_" + userkey))
5555 else if ((pmt.amount != getloanamount))
5656 then throw((("Your Input USDT Amount is not equal to Loan Amount:=> " + toString(getloanamount)) + " Divide Your 'Loan Amount:=>' with 1,000,000 to get value in USDT decimals."))
5757 else {
58- let currentKey = toBase58String(inv.caller.bytes)
58+ let currentKey = toBase58String(i.caller.bytes)
5959 let getborrowheight = getIntegerValue(this, ("Borrow_height_Of_" + currentKey))
6060 let graceperiod = gettotalloanblocks
6161 let repaytimelimit = (getborrowheight + graceperiod)
6565 let getloaninterest = getIntegerValue(this, ("Loan_Interest_Of_" + currentKey))
6666 let getcollateralamount = getIntegerValue(this, ("Collateral_Amount_Of_" + currentKey))
6767 let collateralreleaseamount = (getcollateralamount - getloaninterest)
68- ScriptResult({
69- let updateloanstatus = DataEntry(("Loan_Status_Of_" + currentKey), "")
70- let updateloanamount = DataEntry(("Loan_Amount_Of_" + currentKey), 0)
71- let updatetotalloanblocks = DataEntry(("Total_Loan_Blocks_Of_" + currentKey), 0)
72- let updatecollateralamount = DataEntry(("Collateral_Amount_Of_" + currentKey), 0)
73- let updateborrowheight = DataEntry(("Borrow_height_Of_" + currentKey), 0)
74- let updateloaninterest = DataEntry(("Loan_Interest_Of_" + currentKey), 0)
75- let loanmessage = DataEntry("message", "<h1>Loan Repayed Successfully!</h1><br>")
76- WriteSet([updateloanstatus, updateloanamount, updatetotalloanblocks, updatecollateralamount, updateborrowheight, updateloaninterest, loanmessage])
77- }, TransferSet([ScriptTransfer(inv.caller, collateralreleaseamount, unit)]))
68+ let updateloanstatus = StringEntry(("Loan_Status_Of_" + currentKey), "")
69+ let updateloanamount = IntegerEntry(("Loan_Amount_Of_" + currentKey), 0)
70+ let updatetotalloanblocks = IntegerEntry(("Total_Loan_Blocks_Of_" + currentKey), 0)
71+ let updatecollateralamount = IntegerEntry(("Collateral_Amount_Of_" + currentKey), 0)
72+ let updateborrowheight = IntegerEntry(("Borrow_height_Of_" + currentKey), 0)
73+ let updateloaninterest = IntegerEntry(("Loan_Interest_Of_" + currentKey), 0)
74+ let loanmessage = StringEntry("message", "<h1>Loan Repayed Successfully!</h1><br>")
75+[updateloanstatus, updateloanamount, updatetotalloanblocks, updatecollateralamount, updateborrowheight, updateloaninterest, loanmessage, ScriptTransfer(i.caller, collateralreleaseamount, unit)]
7876 }
7977 }
8078 }
79+
80+
81+
82+@Callable(i)
83+func SetPrice (Price) = {
84+ let calleraddress = toBase58String(i.caller.bytes)
85+ let adminrights = getStringValue(this, "DApp_Admin_Rights")
86+ if ((adminrights != calleraddress))
87+ then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to set Price for it."))
88+ else [IntegerEntry("eligibilityfactor", Price)]
89+ }
90+
91+
92+
93+@Callable(i)
94+func SetAdminRightAddress () = [StringEntry("DApp_Admin_Rights", "3P32KGEZqhNghPFjTPztpJMMWLcpiZJPwdP")]
8195
8296
8397 @Verifier(tx)
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let loaneligibilityfactor = getIntegerValue(this, "eligibilityfactor")
55
6-@Callable(inv)
6+@Callable(i)
77 func RequestLoan (days) = {
8- let pmt = extract(inv.payment)
8+ let pmt = value(i.payments[0])
99 let maximumloandays = 90
1010 let loanamount = ((pmt.amount * loaneligibilityfactor) / 1000)
1111 let USDTAssetID = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
1212 let checkUSDTbalance = assetBalance(this, USDTAssetID)
1313 if (isDefined(pmt.assetId))
1414 then throw("Incorrect asset attached for Collateral, please attach WAVES only.")
1515 else if ((0 >= days))
1616 then throw("Enter no. of days in between 1 to 90.")
1717 else if ((days > maximumloandays))
1818 then throw("You Entered days greater than 90 please Enter no. of days in between 1 to 90.")
1919 else if ((200000000 > pmt.amount))
2020 then throw("Please Attach minimum 2 WAVES.")
2121 else if ((loanamount > checkUSDTbalance))
2222 then throw("Sorry! Required Loan amount is greater than available on DApp Address, Check DApp USDT balance or Try for a less amount Please.")
2323 else {
24- let currentKey = toBase58String(inv.caller.bytes)
25- let userborrowheight = DataEntry(("Borrow_height_Of_" + currentKey), height)
24+ let currentKey = toBase58String(i.caller.bytes)
25+ let userborrowheight = IntegerEntry(("Borrow_height_Of_" + currentKey), height)
2626 let loanstatus = "LOAN_PAID"
27- let loanstatusentry = DataEntry(("Loan_Status_Of_" + currentKey), loanstatus)
28- let collateralamount = DataEntry(("Collateral_Amount_Of_" + currentKey), pmt.amount)
29- let loanamountentry = DataEntry(("Loan_Amount_Of_" + currentKey), loanamount)
27+ let loanstatusentry = StringEntry(("Loan_Status_Of_" + currentKey), loanstatus)
28+ let collateralamount = IntegerEntry(("Collateral_Amount_Of_" + currentKey), pmt.amount)
29+ let loanamountentry = IntegerEntry(("Loan_Amount_Of_" + currentKey), loanamount)
3030 let oneday = 1440
3131 let totalloanblocks = (oneday * days)
32- let totalloanblocksentry = DataEntry(("Total_Loan_Blocks_Of_" + currentKey), totalloanblocks)
32+ let totalloanblocksentry = IntegerEntry(("Total_Loan_Blocks_Of_" + currentKey), totalloanblocks)
3333 let perblockinterest = 68
3434 let loaninterest = ((perblockinterest * totalloanblocks) * (pmt.amount / 100000000))
35- let loaninterestentry = DataEntry(("Loan_Interest_Of_" + currentKey), loaninterest)
35+ let loaninterestentry = IntegerEntry(("Loan_Interest_Of_" + currentKey), loaninterest)
3636 let previousloanbalance = getIntegerValue(this, "Total_Loan_Paid:")
3737 let totalloanpaid = (previousloanbalance + (pmt.amount / 100000000))
38- let TLP = DataEntry("Total_Loan_Paid:", totalloanpaid)
39- let loanmessage = DataEntry("message", "<h1>Loan Issued Successfully!</h1><br>")
40- ScriptResult(WriteSet([userborrowheight, loanstatusentry, collateralamount, loanamountentry, totalloanblocksentry, loaninterestentry, TLP, loanmessage]), TransferSet([ScriptTransfer(inv.caller, loanamount, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'), ScriptTransfer(addressFromPublicKey(base58'59q1hHBmeQgfSRst9Dn52VTBbtCu4SQ7AujhGDjHCqn6'), loaninterest, unit)]))
38+ let TLP = IntegerEntry("Total_Loan_Paid:", totalloanpaid)
39+ let loanmessage = StringEntry("message", "<h1>Loan Issued Successfully!</h1><br>")
40+[userborrowheight, loanstatusentry, collateralamount, loanamountentry, totalloanblocksentry, loaninterestentry, TLP, loanmessage, ScriptTransfer(i.caller, loanamount, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'), ScriptTransfer(addressFromPublicKey(base58'59q1hHBmeQgfSRst9Dn52VTBbtCu4SQ7AujhGDjHCqn6'), loaninterest, unit)]
4141 }
4242 }
4343
4444
4545
46-@Callable(inv)
46+@Callable(i)
4747 func RepayLoan () = {
48- let pmt = extract(inv.payment)
49- let userkey = toBase58String(inv.caller.bytes)
48+ let pmt = value(i.payments[0])
49+ let userkey = toBase58String(i.caller.bytes)
5050 let assetid = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
5151 let getloanamount = getIntegerValue(this, ("Loan_Amount_Of_" + userkey))
5252 let gettotalloanblocks = getIntegerValue(this, ("Total_Loan_Blocks_Of_" + userkey))
5353 if ((pmt.assetId != assetid))
5454 then throw("Choose USDT Asset Only for Repay or Your Input USDT Amount is not equal to Loan You Took.")
5555 else if ((pmt.amount != getloanamount))
5656 then throw((("Your Input USDT Amount is not equal to Loan Amount:=> " + toString(getloanamount)) + " Divide Your 'Loan Amount:=>' with 1,000,000 to get value in USDT decimals."))
5757 else {
58- let currentKey = toBase58String(inv.caller.bytes)
58+ let currentKey = toBase58String(i.caller.bytes)
5959 let getborrowheight = getIntegerValue(this, ("Borrow_height_Of_" + currentKey))
6060 let graceperiod = gettotalloanblocks
6161 let repaytimelimit = (getborrowheight + graceperiod)
6262 if ((height > repaytimelimit))
6363 then throw((("Your Loan Repayback period is over with " + toString(graceperiod)) + " blocks"))
6464 else {
6565 let getloaninterest = getIntegerValue(this, ("Loan_Interest_Of_" + currentKey))
6666 let getcollateralamount = getIntegerValue(this, ("Collateral_Amount_Of_" + currentKey))
6767 let collateralreleaseamount = (getcollateralamount - getloaninterest)
68- ScriptResult({
69- let updateloanstatus = DataEntry(("Loan_Status_Of_" + currentKey), "")
70- let updateloanamount = DataEntry(("Loan_Amount_Of_" + currentKey), 0)
71- let updatetotalloanblocks = DataEntry(("Total_Loan_Blocks_Of_" + currentKey), 0)
72- let updatecollateralamount = DataEntry(("Collateral_Amount_Of_" + currentKey), 0)
73- let updateborrowheight = DataEntry(("Borrow_height_Of_" + currentKey), 0)
74- let updateloaninterest = DataEntry(("Loan_Interest_Of_" + currentKey), 0)
75- let loanmessage = DataEntry("message", "<h1>Loan Repayed Successfully!</h1><br>")
76- WriteSet([updateloanstatus, updateloanamount, updatetotalloanblocks, updatecollateralamount, updateborrowheight, updateloaninterest, loanmessage])
77- }, TransferSet([ScriptTransfer(inv.caller, collateralreleaseamount, unit)]))
68+ let updateloanstatus = StringEntry(("Loan_Status_Of_" + currentKey), "")
69+ let updateloanamount = IntegerEntry(("Loan_Amount_Of_" + currentKey), 0)
70+ let updatetotalloanblocks = IntegerEntry(("Total_Loan_Blocks_Of_" + currentKey), 0)
71+ let updatecollateralamount = IntegerEntry(("Collateral_Amount_Of_" + currentKey), 0)
72+ let updateborrowheight = IntegerEntry(("Borrow_height_Of_" + currentKey), 0)
73+ let updateloaninterest = IntegerEntry(("Loan_Interest_Of_" + currentKey), 0)
74+ let loanmessage = StringEntry("message", "<h1>Loan Repayed Successfully!</h1><br>")
75+[updateloanstatus, updateloanamount, updatetotalloanblocks, updatecollateralamount, updateborrowheight, updateloaninterest, loanmessage, ScriptTransfer(i.caller, collateralreleaseamount, unit)]
7876 }
7977 }
8078 }
79+
80+
81+
82+@Callable(i)
83+func SetPrice (Price) = {
84+ let calleraddress = toBase58String(i.caller.bytes)
85+ let adminrights = getStringValue(this, "DApp_Admin_Rights")
86+ if ((adminrights != calleraddress))
87+ then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to set Price for it."))
88+ else [IntegerEntry("eligibilityfactor", Price)]
89+ }
90+
91+
92+
93+@Callable(i)
94+func SetAdminRightAddress () = [StringEntry("DApp_Admin_Rights", "3P32KGEZqhNghPFjTPztpJMMWLcpiZJPwdP")]
8195
8296
8397 @Verifier(tx)
8498 func verify () = match tx {
8599 case _ =>
86100 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
87101 }
88102

github/deemru/w8io/3ef1775 
47.50 ms