tx · ErCTLWnFrjmsYTE2GboHXfo3bAGUF2iBAjZ7yKSBR5Yy

3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm:  -0.01400000 Waves

2023.04.14 09:33 [2533855] smart account 3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm > SELF 0.00000000 Waves

{ "type": 13, "id": "ErCTLWnFrjmsYTE2GboHXfo3bAGUF2iBAjZ7yKSBR5Yy", "fee": 1400000, "feeAssetId": null, "timestamp": 1681454053974, "version": 2, "chainId": 84, "sender": "3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm", "senderPublicKey": "EKmhAeU9yA52DSvBnr1WtWQWyyiCrauDYkmgnTns7ZkA", "proofs": [ "4pJ6qHnSJVrLrw9aSHh5gRf56DhKfC3drBKNgem5jPp9RuuLjNLHBxpNEcjCfRLAT4dwUzEwwEYZTn3zC9hsyj29" ], "script": "base64:AAIEAAAAAAAAABMIAhIFCgMIAQESAwoBARIDCgEBAAAABwAAAAAOQTRBU3Rha2luZ0RBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNKdmlXaHNjTm1VZHVFalRZTEJZb1BucmY0Yzh5ZWdQaTNQAAAAACJ2b3RpbmdfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AQAAACBgahSNYEUksLEiz8EnUh0j7pSeOkOfsuwSxXPB2otXIwAAAAASY29udHJvbGxlcl9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAACJ2b3RpbmdfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AAAAAAxsYXVuY2hfZXJyb3ICAAAAJERhcHAgd2lsbCBzdGFydCBWb3RpbmcgYXQgVGltZXN0YW1wIAAAAAADbXNnAgAAAC48aDE+WW91ciBWb3RlIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+AAAAABFBbHJlYWR5Vm90ZWRFcnJvcgIAAAA+VGhpcyBBZGRyZXNzIEFscmVhZHkgcGFydGljaXBhdGVkIGZvciBWb3RpbmcgaW4gdGhpcyBQcm9wb3NhbC4AAAAAB3ZvdGVFcnICAAAAHVZvdGluZyBpcyBPdmVyIGZvciB0aGlzIERhcHAuAAAAAwAAAAFpAQAAABNTZXRWb3RpbmdUaW1lU3RhbXBzAAAAAwAAAAhQcm9wb3NhbAAAABZWb3RpbmdfU3RhcnRfVGltZVN0YW1wAAAAFFZvdGluZ19FbmRfVGltZVN0YW1wBAAAAAdTdGFydFRTBQAAABZWb3RpbmdfU3RhcnRfVGltZVN0YW1wBAAAAAVFbmRUUwUAAAAUVm90aW5nX0VuZF9UaW1lU3RhbXAEAAAAEnJlYWR0b3RhbFN0YWtlZEE0QQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAOQTRBU3Rha2luZ0RBcHACAAAADVN0YWtlZF9BbW91bnQEAAAAC1F1b3J1bVZhbHVlCQAAawAAAAMFAAAAEnJlYWR0b3RhbFN0YWtlZEE0QQAAAAAAAAAAAQAAAAAAAAAAAwQAAAAGcHVia2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAFlByZXZpb3VzdG90YWxwcm9wb3NhbHMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAPVG90YWxfUHJvcG9zYWxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADnRvdGFscHJvcG9zYWxzCQAAZAAAAAIFAAAAFlByZXZpb3VzdG90YWxwcm9wb3NhbHMAAAAAAAAAAAEDCQAAZgAAAAIJAAExAAAAAQUAAAAIUHJvcG9zYWwAAAAAAAAAE+wJAAACAAAAAQIAAABAU3ViamVjdCBDaGFyIExpbWl0cyBhcmUgT3Zlci4gUmVkdWNlIGxlbmd0aCBsZXNzIHRoYW4gNTEwMCBDaGFyLgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAADlByb3Bvc2FsX1RleHRfCQABpAAAAAEFAAAADnRvdGFscHJvcG9zYWxzBQAAAAhQcm9wb3NhbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPVG90YWxfUHJvcG9zYWxzBQAAAA50b3RhbHByb3Bvc2FscwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACVByb3Bvc2VyXwkAAaQAAAABBQAAAA50b3RhbHByb3Bvc2FscwUAAAAGcHVia2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAF1ZvdGluZ19TdGFydF9UaW1lU3RhbXBfCQABpAAAAAEFAAAADnRvdGFscHJvcG9zYWxzBQAAAAdTdGFydFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVZvdGluZ19FbmRfVGltZVN0YW1wXwkAAaQAAAABBQAAAA50b3RhbHByb3Bvc2FscwUAAAAFRW5kVFMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAHUXVvcnVtXwkAAaQAAAABBQAAAA50b3RhbHByb3Bvc2FscwUAAAALUXVvcnVtVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfCQABpAAAAAEFAAAADnRvdGFscHJvcG9zYWxzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAACVRvdGFsX05vXwkAAaQAAAABBQAAAA50b3RhbHByb3Bvc2FscwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAApUb3RhbF9ZZXNfCQABpAAAAAEFAAAADnRvdGFscHJvcG9zYWxzAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAADWWVzAAAAAQAAAAtQb3Jwb3NhbF9JRAQAAAAHVm90ZUFzdAIAAAADWWVzBAAAAAdTdGFydFRTCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAF1ZvdGluZ19TdGFydF9UaW1lU3RhbXBfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEBAAAAAVFbmRUUwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVWb3RpbmdfRW5kX1RpbWVTdGFtcF8JAAGkAAAAAQUAAAALUG9ycG9zYWxfSUQEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABRyZWFkQTRBU3Rha2luZ0Ftb3VudAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAADkE0QVN0YWtpbmdEQXBwCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAGcHVia2V5AgAAACFBZGRyZXNzIG5vdCBmb3VuZCBpbiBBNEEgU3Rha2luZy4EAAAAElByZXZpb3VzdG90YWx2b3RlcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAp0b3RhbHZvdGVzCQAAZAAAAAIFAAAAElByZXZpb3VzdG90YWx2b3RlcwUAAAAUcmVhZEE0QVN0YWtpbmdBbW91bnQEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGVG90YWxfBQAAAAdWb3RlQXN0AgAAAAFfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABEFUVk8JAABkAAAAAgUAAAAERlRWTwUAAAAUcmVhZEE0QVN0YWtpbmdBbW91bnQEAAAAGlByZXZpb3VzVXNlckNvdW50Zm9yVm90aW5nBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAZwdWJrZXkCAAAAAV8JAAGkAAAAAQUAAAALUG9ycG9zYWxfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAYTGF0ZXN0VXNlckNvdW50Zm9yVm90aW5nCQAAZAAAAAIFAAAAGlByZXZpb3VzVXNlckNvdW50Zm9yVm90aW5nAAAAAAAAAAABAwkAAGYAAAACBQAAAAdTdGFydFRTCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAADGxhdW5jaF9lcnJvcgkAAaQAAAABBQAAAAdTdGFydFRTAwkAAGYAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAFRW5kVFMJAAACAAAAAQUAAAAHdm90ZUVycgMJAABmAAAAAgUAAAAYTGF0ZXN0VXNlckNvdW50Zm9yVm90aW5nAAAAAAAAAAABCQAAAgAAAAEFAAAAEUFscmVhZHlWb3RlZEVycm9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAUAAAAKdG90YWx2b3RlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGVG90YWxfBQAAAAdWb3RlQXN0AgAAAAFfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEBQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGcHVia2V5AgAAAAFfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEBQAAABhMYXRlc3RVc2VyQ291bnRmb3JWb3RpbmcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAADbXNnBQAAAANuaWwAAAABaQEAAAACTm8AAAABAAAAC1BvcnBvc2FsX0lEBAAAAAdWb3RlQXN0AgAAAAJObwQAAAAHU3RhcnRUUwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABdWb3RpbmdfU3RhcnRfVGltZVN0YW1wXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAQAAAAFRW5kVFMJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAVVm90aW5nX0VuZF9UaW1lU3RhbXBfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAUcmVhZEE0QVN0YWtpbmdBbW91bnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5BNEFTdGFraW5nREFwcAkAASwAAAACAgAAABJEZXBvc2l0X0Ftb3VudF9PZl8FAAAABnB1YmtleQIAAAAhQWRkcmVzcyBub3QgZm91bmQgaW4gQTRBIFN0YWtpbmcuBAAAABJQcmV2aW91c3RvdGFsdm90ZXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18JAAGkAAAAAQUAAAALUG9ycG9zYWxfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAKdG90YWx2b3RlcwkAAGQAAAACBQAAABJQcmV2aW91c3RvdGFsdm90ZXMFAAAAFHJlYWRBNEFTdGFraW5nQW1vdW50BAAAAARGVFZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABlRvdGFsXwUAAAAHVm90ZUFzdAIAAAABXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8FAAAAFHJlYWRBNEFTdGFraW5nQW1vdW50BAAAABpQcmV2aW91c1VzZXJDb3VudGZvclZvdGluZwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAGcHVia2V5AgAAAAFfCQABpAAAAAEFAAAAC1BvcnBvc2FsX0lEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGExhdGVzdFVzZXJDb3VudGZvclZvdGluZwkAAGQAAAACBQAAABpQcmV2aW91c1VzZXJDb3VudGZvclZvdGluZwAAAAAAAAAAAQMJAABmAAAAAgUAAAAHU3RhcnRUUwgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAAAxsYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAHU3RhcnRUUwMJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAABUVuZFRTCQAAAgAAAAEFAAAAB3ZvdGVFcnIDCQAAZgAAAAIFAAAAGExhdGVzdFVzZXJDb3VudGZvclZvdGluZwAAAAAAAAAAAQkAAAIAAAABBQAAABFBbHJlYWR5Vm90ZWRFcnJvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18JAAGkAAAAAQUAAAALUG9ycG9zYWxfSUQFAAAACnRvdGFsdm90ZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABlRvdGFsXwUAAAAHVm90ZUFzdAIAAAABXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAABnB1YmtleQIAAAABXwkAAaQAAAABBQAAAAtQb3Jwb3NhbF9JRAUAAAAYTGF0ZXN0VXNlckNvdW50Zm9yVm90aW5nCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmDgUdv", "height": 2533855, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: H5Sh86y8jsH9ZopMJbWqTUzyymxWDYo7KasFrso9J72q Next: CJjtMaHUefH1dSF8RES7Vatowpk5qgg5Hvbipr7xE8XF Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let Dapp_Address_pub_key = base58'515tSAyMUbAb8kKjcpGDpqALGfCgcwfWmWKKkcBKTcGB'
4+let A4AStakingDApp = addressFromStringValue("3JviWhscNmUduEjTYLBYoPnrf4c8yegPi3P")
55
6-let product_launch_timestamp = 1675209600000
6+let voting_timestamp_controller_pubkey = base58'7VMxW6Sdd9Bk2he7zPSuAcKEQ9XM8kyV71enGvHLhmN2'
77
8-let product_launch_error = "Product Launch Timestamp is set at "
8+let controller_address = addressFromPublicKey(voting_timestamp_controller_pubkey)
99
10-let no_payment_error = "No payment attached, Please Attach Token in payment[1]."
10+let launch_error = "Dapp will start Voting at Timestamp "
1111
12-let closed_oracle_eror = "Oracle is closed. Wait Until Oracle is Turned On."
12+let msg = "<h1>Your Vote Submitted Successfully!</h1><br>"
1313
14-let whitelist_address = addressFromPublicKey(Dapp_Address_pub_key)
14+let AlreadyVotedError = "This Address Already participated for Voting in this Proposal."
1515
16-let minimum_order_size = 10000000
17-
18-let maximum_order_size = 10000000000
16+let voteErr = "Voting is Over for this Dapp."
1917
2018 @Callable(i)
21-func placeoptionCall (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = {
22- let calleraddress = toBase58String(i.caller.bytes)
23- let pmt = if ((size(i.payments) == 1))
24- then i.payments[0]
25- else throw(no_payment_error)
26- let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
27- let read_start_order_permit_timestamp = Start_Order_Timestamp
28- let read_end_order_permit_timestamp = End_Order_Timestamp
29- let read_total_pool_liquidity = Total_Pool_Liquidity
30- let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount)
31- let read_OptionCounterID = OptionCounterID
32- let OpionExpireCounter = 1
33- let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter)
34- let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") {
19+func SetVotingTimeStamps (Proposal,Voting_Start_TimeStamp,Voting_End_TimeStamp) = {
20+ let StartTS = Voting_Start_TimeStamp
21+ let EndTS = Voting_End_TimeStamp
22+ let readtotalStakedA4A = getIntegerValue(A4AStakingDApp, "Staked_Amount")
23+ let QuorumValue = fraction(readtotalStakedA4A, 1, 3)
24+ let pubkey = toBase58String(i.caller.bytes)
25+ let Previoustotalproposals = match getInteger(this, "Total_Proposals") {
3526 case a: Int =>
3627 a
3728 case _ =>
3829 0
3930 }
40- let TotalOptionOrders = (PreviousOptionOrders + 1)
41- let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) {
31+ let totalproposals = (Previoustotalproposals + 1)
32+ if ((size(Proposal) > 5100))
33+ then throw("Subject Char Limits are Over. Reduce length less than 5100 Char.")
34+ else if ((i.caller != controller_address))
35+ then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it."))
36+ else [StringEntry(("Proposal_Text_" + toString(totalproposals)), Proposal), IntegerEntry("Total_Proposals", totalproposals), StringEntry(("Proposer_" + toString(totalproposals)), pubkey), IntegerEntry(("Voting_Start_TimeStamp_" + toString(totalproposals)), StartTS), IntegerEntry(("Voting_End_TimeStamp_" + toString(totalproposals)), EndTS), IntegerEntry(("Quorum_" + toString(totalproposals)), QuorumValue), IntegerEntry(("Total_Votes_" + toString(totalproposals)), 0), IntegerEntry(("Total_No_" + toString(totalproposals)), 0), IntegerEntry(("Total_Yes_" + toString(totalproposals)), 0)]
37+ }
38+
39+
40+
41+@Callable(i)
42+func Yes (Porposal_ID) = {
43+ let VoteAst = "Yes"
44+ let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID)))
45+ let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID)))
46+ let pubkey = toBase58String(i.caller.bytes)
47+ let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.")
48+ let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) {
4249 case a: Int =>
4350 a
4451 case _ =>
4552 0
4653 }
47- let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount)
48- let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) {
54+ let totalvotes = (Previoustotalvotes + readA4AStakingAmount)
55+ let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) {
4956 case a: Int =>
5057 a
5158 case _ =>
5259 0
5360 }
54- let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1)
55- let PreviousCall = match getInteger(this, "Total_Calls") {
61+ let ATVO = (FTVO + readA4AStakingAmount)
62+ let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) {
5663 case a: Int =>
5764 a
5865 case _ =>
5966 0
6067 }
61- let TotalCall = (PreviousCall + 1)
62- let PreviousCallinSpecificCounter = match getInteger(this, ("Total_Calls_" + toString(read_OptionCounterID))) {
68+ let LatestUserCountforVoting = (PreviousUserCountforVoting + 1)
69+ if ((StartTS > lastBlock.timestamp))
70+ then throw((launch_error + toString(StartTS)))
71+ else if ((lastBlock.timestamp > EndTS))
72+ then throw(voteErr)
73+ else if ((LatestUserCountforVoting > 1))
74+ then throw(AlreadyVotedError)
75+ else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)]
76+ }
77+
78+
79+
80+@Callable(i)
81+func No (Porposal_ID) = {
82+ let VoteAst = "No"
83+ let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID)))
84+ let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID)))
85+ let pubkey = toBase58String(i.caller.bytes)
86+ let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.")
87+ let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) {
6388 case a: Int =>
6489 a
6590 case _ =>
6691 0
6792 }
68- let TotalCallinSpecificCounter = (PreviousCallinSpecificCounter + 1)
69- let PreviousUserCall = match getInteger(this, (calleraddress + "_Total_Calls")) {
93+ let totalvotes = (Previoustotalvotes + readA4AStakingAmount)
94+ let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) {
7095 case a: Int =>
7196 a
7297 case _ =>
7398 0
7499 }
75- let TotalUserCall = (PreviousUserCall + 1)
76- let PreviousUserCallinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Calls_") + toString(read_OptionCounterID))) {
100+ let ATVO = (FTVO + readA4AStakingAmount)
101+ let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) {
77102 case a: Int =>
78103 a
79104 case _ =>
80105 0
81106 }
82- let TotalUserCallinSpecificCounter = (PreviousUserCallinSpecificCounter + 1)
83- let Funds_at_risk = House_risk
84- if ((i.caller != whitelist_address))
85- then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it."))
86- else if ((product_launch_timestamp > lastBlock.timestamp))
87- then throw((product_launch_error + toString(product_launch_timestamp)))
88- else if ((Oracle_Status == "CLOSE"))
89- then throw(closed_oracle_eror)
90- else if ((ifBlacklisted == "Yes"))
91- then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
92- else if (isDefined(pmt.assetId))
93- then throw("Only TN is allowed to deposit at the moment")
94- else if ((lastBlock.timestamp >= read_end_order_permit_timestamp))
95- then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
96- else if ((minimum_order_size > pmt.amount))
97- then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN."))
98- else if ((pmt.amount > maximum_order_size))
99- then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN."))
100- else [StringEntry(((("Call_" + calleraddress) + "_") + toString(TotalUserCall)), toString(Price)), IntegerEntry(((("Call_Amount_" + calleraddress) + "_") + toString(TotalUserCall)), pmt.amount), StringEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(TotalUserCall)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Option_Orders", TotalOptionOrders), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID)), TotalFundsAddedInSpecificOptionOrder), IntegerEntry("Total_Pool_Liquidity", new_total_pool_liquidity), IntegerEntry(("Funds_At_Risk_" + toString(read_OptionCounterID)), Funds_at_risk), IntegerEntry("Call_Limits", Call_Limits), IntegerEntry("Put_Limits", Put_Limits), IntegerEntry(("Total_Option_Orders_" + toString(read_OptionCounterID)), TotalOptionOrdersinSpecificCounter), IntegerEntry("Total_Calls", TotalCall), IntegerEntry(("Total_Calls_" + toString(read_OptionCounterID)), TotalCallinSpecificCounter), IntegerEntry((calleraddress + "_Total_Calls"), TotalUserCall), IntegerEntry(((calleraddress + "_Total_Calls_") + toString(read_OptionCounterID)), TotalUserCallinSpecificCounter)]
107+ let LatestUserCountforVoting = (PreviousUserCountforVoting + 1)
108+ if ((StartTS > lastBlock.timestamp))
109+ then throw((launch_error + toString(StartTS)))
110+ else if ((lastBlock.timestamp > EndTS))
111+ then throw(voteErr)
112+ else if ((LatestUserCountforVoting > 1))
113+ then throw(AlreadyVotedError)
114+ else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)]
101115 }
102116
103117
104-
105-@Callable(i)
106-func placeoptionPut (Total_Pool_Liquidity,OptionCounterID,House_risk,Price,Call_Limits,Put_Limits,Oracle_Status,Start_Order_Timestamp,End_Order_Timestamp) = {
107- let calleraddress = toBase58String(i.caller.bytes)
108- let pmt = if ((size(i.payments) == 1))
109- then i.payments[0]
110- else throw(no_payment_error)
111- let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
112- let read_start_order_permit_timestamp = Start_Order_Timestamp
113- let read_end_order_permit_timestamp = End_Order_Timestamp
114- let read_total_pool_liquidity = Total_Pool_Liquidity
115- let new_total_pool_liquidity = (read_total_pool_liquidity + pmt.amount)
116- let read_OptionCounterID = OptionCounterID
117- let OpionExpireCounter = 1
118- let OptionExpireCounterID = (read_OptionCounterID + OpionExpireCounter)
119- let PreviousOptionOrders = match getInteger(this, "Total_Option_Orders") {
120- case a: Int =>
121- a
122- case _ =>
123- 0
124- }
125- let TotalOptionOrders = (PreviousOptionOrders + 1)
126- let PreviousFundsAddedInSpecificOptionOrder = match getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID))) {
127- case a: Int =>
128- a
129- case _ =>
130- 0
131- }
132- let TotalFundsAddedInSpecificOptionOrder = (PreviousFundsAddedInSpecificOptionOrder + pmt.amount)
133- let PreviousOptionOrdersinSpecificCounter = match getInteger(this, ("Total_Option_Orders_" + toString(read_OptionCounterID))) {
134- case a: Int =>
135- a
136- case _ =>
137- 0
138- }
139- let TotalOptionOrdersinSpecificCounter = (PreviousOptionOrdersinSpecificCounter + 1)
140- let PreviousPut = match getInteger(this, "Total_Puts") {
141- case a: Int =>
142- a
143- case _ =>
144- 0
145- }
146- let TotalPut = (PreviousPut + 1)
147- let PreviousPutinSpecificCounter = match getInteger(this, ("Total_Puts_" + toString(read_OptionCounterID))) {
148- case a: Int =>
149- a
150- case _ =>
151- 0
152- }
153- let TotalPutinSpecificCounter = (PreviousPutinSpecificCounter + 1)
154- let PreviousUserPut = match getInteger(this, (calleraddress + "_Total_Puts")) {
155- case a: Int =>
156- a
157- case _ =>
158- 0
159- }
160- let TotalUserPut = (PreviousUserPut + 1)
161- let PreviousUserPutinSpecificCounter = match getInteger(this, ((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID))) {
162- case a: Int =>
163- a
164- case _ =>
165- 0
166- }
167- let TotalUserPutinSpecificCounter = (PreviousUserPutinSpecificCounter + 1)
168- let Funds_at_risk = House_risk
169- if ((i.caller != whitelist_address))
170- then throw((("This Address is not Authorized. Only " + toString(whitelist_address)) + " is Authorized Address to Sign it."))
171- else if ((product_launch_timestamp > lastBlock.timestamp))
172- then throw((product_launch_error + toString(product_launch_timestamp)))
173- else if ((Oracle_Status == "CLOSE"))
174- then throw(closed_oracle_eror)
175- else if ((ifBlacklisted == "Yes"))
176- then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
177- else if (isDefined(pmt.assetId))
178- then throw("Only TN is allowed to deposit at the moment")
179- else if ((lastBlock.timestamp >= read_end_order_permit_timestamp))
180- then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
181- else if ((minimum_order_size > pmt.amount))
182- then throw((("Placed Order Size is less than [" + toString(minimum_order_size)) + "/10^8] TN."))
183- else if ((pmt.amount > maximum_order_size))
184- then throw((("Placed Order Size is more than [" + toString(maximum_order_size)) + "/10^8] TN."))
185- else [StringEntry(((("Put_" + calleraddress) + "_") + toString(TotalUserPut)), toString(Price)), IntegerEntry(((("Put_Amount_" + calleraddress) + "_") + toString(TotalUserPut)), pmt.amount), StringEntry(((("Put_Start_End_" + calleraddress) + "_") + toString(TotalUserPut)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Option_Orders", TotalOptionOrders), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(read_OptionCounterID)), TotalFundsAddedInSpecificOptionOrder), IntegerEntry("Total_Pool_Liquidity", new_total_pool_liquidity), IntegerEntry(("Funds_At_Risk_" + toString(read_OptionCounterID)), Funds_at_risk), IntegerEntry("Call_Limits", Call_Limits), IntegerEntry("Put_Limits", Put_Limits), IntegerEntry(("Total_Option_Orders_" + toString(read_OptionCounterID)), TotalOptionOrdersinSpecificCounter), IntegerEntry("Total_Puts", TotalPut), IntegerEntry(("Total_Puts_" + toString(read_OptionCounterID)), TotalPutinSpecificCounter), IntegerEntry((calleraddress + "_Total_Puts"), TotalUserPut), IntegerEntry(((calleraddress + "_Total_Puts_") + toString(read_OptionCounterID)), TotalUserPutinSpecificCounter)]
186- }
187-
188-
189-
190-@Callable(i)
191-func AddFundsToPool () = {
192- let calleraddress = toBase58String(i.caller.bytes)
193- let Currency_ID = "TN"
194- let pmt = if ((size(i.payments) == 1))
195- then i.payments[0]
196- else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
197- let ifBlacklisted = getString(this, ("addr_BLACKLISTED_" + calleraddress))
198- let PreviousUserDeposit = match getInteger(this, ((Currency_ID + "_") + calleraddress)) {
199- case a: Int =>
200- a
201- case _ =>
202- 0
203- }
204- let TotalUserDeposit = (PreviousUserDeposit + pmt.amount)
205- let PreviousDepositCounterID = match getInteger(this, "Deposit_Counter_ID") {
206- case a: Int =>
207- a
208- case _ =>
209- 0
210- }
211- let TotalDepositCounterID = (PreviousDepositCounterID + 1)
212- if ((product_launch_timestamp > lastBlock.timestamp))
213- then throw((product_launch_error + toString(product_launch_timestamp)))
214- else if ((ifBlacklisted == "Yes"))
215- then throw((calleraddress + " Address is Blacklisted. Please contact Admin to Whitelist it."))
216- else if (isDefined(pmt.assetId))
217- then throw("Only TN is allowed to deposit at the moment")
218- else [IntegerEntry(((Currency_ID + "_") + calleraddress), TotalUserDeposit), IntegerEntry(((((toString(TotalDepositCounterID) + "_") + Currency_ID) + "_") + calleraddress), TotalUserDeposit), IntegerEntry("Deposit_Counter_ID", TotalDepositCounterID)]
219- }
220-
118+@Verifier(tx)
119+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
221120

github/deemru/w8io/873ac7e 
50.60 ms