tx · 2q6zYwVuDTeVHdNGgMaBiXudUG8VF5PRZCMvNbkFRsHy

3PM9SV8qsubjwfxENgsLJvP1BG2Wc2VAd7b:  -0.01100000 Waves

2023.10.13 16:32 [3862751] smart account 3PM9SV8qsubjwfxENgsLJvP1BG2Wc2VAd7b > SELF 0.00000000 Waves

{ "type": 13, "id": "2q6zYwVuDTeVHdNGgMaBiXudUG8VF5PRZCMvNbkFRsHy", "fee": 1100000, "feeAssetId": null, "timestamp": 1697203910211, "version": 1, "sender": "3PM9SV8qsubjwfxENgsLJvP1BG2Wc2VAd7b", "senderPublicKey": "FTQkMdCbr2PCN4TSfAom6UTonzkrV1EEVrbK9u2zk3zD", "proofs": [ "4RLrSfkgcmpX7EJ1iLwmK95MpJYfhz3j3EM4upfN5GVBg5rYm9YcCzzqkuiPdeQnEF4S4ciCAZFkrNmjCufGFxbr" ], "script": "base64:AAIFAAAAAAAAACQIAhIDCgEIEgMKAQESBAoCCAESBAoCCAESBAoCCAESBAoCCAEAAAATAAAAAAV2aXJlcwAAAAAABfXhAAAAAAABSwAAAAAAAAAD6AAAAAAHTUlOVENBUAkAAGgAAAACCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAACgUAAAABSwUAAAABSwUAAAAFdmlyZXMBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAVYWxyZWFkeSBpbml0aWFsaXplZDogBQAAAANrZXkAAAAAE2xwTG9ja2VyTWludGVkU3RvcmUCAAAAD2xwbG9ja2VyX21pbnRlZAAAAAAWZGlzdHJpYnV0b3JNaW50ZWRTdG9yZQIAAAASZGlzdHJpYnV0b3JfbWludGVkAAAAABFzdGFrZXJNaW50ZWRTdG9yZQIAAAANc3Rha2VyX21pbnRlZAAAAAANZWJNaW50ZWRTdG9yZQIAAAAJZWJfbWludGVkAAAAABF2aXJlc0Fzc2V0SWRTdG9yZQIAAAAHYXNzZXRJZAAAAAALY29uZmlnU3RvcmUCAAAABmNvbmZpZwAAAAAMdmlyZXNBc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAEXZpcmVzQXNzZXRJZFN0b3JlAgAAABFhc3NldElkIG5vdCBmb3VuZAIAAAAPaW52YWxpZCBhc3NldElkAAAAAA1jb25maWdBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAC2NvbmZpZ1N0b3JlAgAAAB52aXJlcy1taW50ZXI6IG5vIGNvbmZpZ0FkZHJlc3MCAAAAFmludmFsaWQgY29uZmln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AQAAAAZhbW91bnQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAGZGVuaWVkCQEAAAAEbWludAAAAAMCAAAACXYyX21pbnRlZAIAAAAjM1BEVGNXQlhTaXJ4UmpTODFWOE5FVnVoM2RyV3lLbUY5dWoFAAAABmFtb3VudAAAAAFpAQAAAAhtaW50VG9FQgAAAAIAAAAJcmVjaXBpZW50AAAABmFtb3VudAQAAAAGY2hlY2tzCQEAAAAJYWRtaW5Pbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAQAAAARtaW50AAAAAwUAAAANZWJNaW50ZWRTdG9yZQUAAAAJcmVjaXBpZW50BQAAAAZhbW91bnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADGxwTG9ja2VyTWludAAAAAIAAAAJcmVjaXBpZW50AAAABmFtb3VudAQAAAAGY2hlY2tzCQEAAAAMbHBMb2NrZXJPbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAQAAAARtaW50AAAAAwUAAAATbHBMb2NrZXJNaW50ZWRTdG9yZQUAAAAJcmVjaXBpZW50BQAAAAZhbW91bnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAD2Rpc3RyaWJ1dG9yTWludAAAAAIAAAAJcmVjaXBpZW50AAAABmFtb3VudAQAAAAGY2hlY2tzCQEAAAAPZGlzdHJpYnV0b3JPbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAQAAAARtaW50AAAAAwUAAAAWZGlzdHJpYnV0b3JNaW50ZWRTdG9yZQUAAAAJcmVjaXBpZW50BQAAAAZhbW91bnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACnN0YWtlck1pbnQAAAACAAAACXJlY2lwaWVudAAAAAZhbW91bnQEAAAABmNoZWNrcwkBAAAACnN0YWtlck9ubHkAAAABBQAAAAFpAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkBAAAABG1pbnQAAAADBQAAABFzdGFrZXJNaW50ZWRTdG9yZQUAAAAJcmVjaXBpZW50BQAAAAZhbW91bnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAASbWF5YmVPcmFjbGVBZGRyZXNzBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADWNvbmZpZ0FkZHJlc3MCAAAADm9yYWNsZV9hZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAQmAAAAAQUAAAABcwUAAAAEdW5pdAQAAAAGSEVJR0hUBQAAAAZoZWlnaHQEAAAABEJBU0UAAAAAAAAAA+gEAAAAC3F1b3J1bVJhdGlvCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAAVcHJvcG9zYWxfcXVvcnVtX3JhdGlvAgAAACJwcm9wb3NhbFF1b3J1bVJhdGlvIGlzIG5vdCBkZWZpbmVkBAAAAAtwYXNzZWRSYXRpbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAADWNvbmZpZ0FkZHJlc3MCAAAAFXByb3Bvc2FsX3Bhc3NlZF9yYXRpbwIAAAAlcHJvcG9zYWxUaHJlc2hvbGRSYXRpbyBpcyBub3QgZGVmaW5lZAQAAAAOZ1ZpcmVzQ29udHJhY3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAASZGl2aWRlbmRzX2NvbnRyYWN0AgAAABVubyBkaXZpZGVuZHNfY29udHJhY3QCAAAAGmludmFsaWQgZGl2aWRlbmRzX2NvbnRyYWN0BAAAAA52b3RpbmdDb250cmFjdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA1jb25maWdBZGRyZXNzAgAAAA92b3RpbmdfY29udHJhY3QCAAAAEm5vIHZvdGluZ19jb250cmFjdAIAAAAXaW52YWxpZCB2b3RpbmdfY29udHJhY3QEAAAAAmlkCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAQAAAAIdm90ZXNZZXMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAOdm90aW5nQ29udHJhY3QJAAEsAAAAAgIAAAANcHJvcG9zYWxfeWVzXwUAAAACaWQAAAAAAAAAAAAEAAAAB3ZvdGVzTm8JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAOdm90aW5nQ29udHJhY3QJAAEsAAAAAgIAAAAMcHJvcG9zYWxfbm9fBQAAAAJpZAAAAAAAAAAAAAQAAAAOcHJvcG9zYWxIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA52b3RpbmdDb250cmFjdAkAASwAAAACAgAAABBwcm9wb3NhbF9oZWlnaHRfBQAAAAJpZAIAAAAXcHJvcG9zYWwgbm90IHJlZ2lzdGVyZWQEAAAACmFwcGx5U3RhcnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAOdm90aW5nQ29udHJhY3QJAAEsAAAAAgIAAAAUcHJvcG9zYWxfYXBwbHlzdGFydF8FAAAAAmlkAAAAAAAAAAAABAAAAAhhcHBseUVuZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA52b3RpbmdDb250cmFjdAkAASwAAAACAgAAABJwcm9wb3NhbF9hcHBseWVuZF8FAAAAAmlkAAAAAAAAAAAABAAAAAt0b3RhbEdWaXJlcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA52b3RpbmdDb250cmFjdAkAASwAAAACAgAAABBwcm9wb3NhbF9ndmlyZXNfBQAAAAJpZAAAAAAAAAAAAAQAAAAHZW5hYmxlZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAA1jb25maWdBZGRyZXNzAgAAAB1vcF9nb3Zlcm5hbmNlX2FwcGx5X3R4X3BhdXNlZAcEAAAAB3ZvdGVZZXMFAAAACHZvdGVzWWVzBAAAAAZ2b3RlTm8FAAAAB3ZvdGVzTm8EAAAACnRvdGFsVm90ZXMJAABkAAAAAgUAAAAHdm90ZVllcwUAAAAGdm90ZU5vBAAAAAloYXNRdW9ydW0JAABnAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAACnRvdGFsVm90ZXMFAAAABEJBU0UFAAAAC3RvdGFsR1ZpcmVzBQAAAAtxdW9ydW1SYXRpbwQAAAAJaGFzUGFzc2VkCQAAZwAAAAIJAABpAAAAAgkAAGgAAAACBQAAAAd2b3RlWWVzBQAAAARCQVNFBQAAAAp0b3RhbFZvdGVzBQAAAAtwYXNzZWRSYXRpbwQAAAAIdG9vRWFybHkJAABnAAAAAgUAAAAKYXBwbHlTdGFydAUAAAAGSEVJR0hUBAAAAAd0b29MYXRlCQAAZwAAAAIFAAAABkhFSUdIVAUAAAAIYXBwbHlFbmQEAAAACXRpbWVEZWJ1ZwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABFwcm9wb3NhbEhlaWdodCA9IAkAAaQAAAABBQAAAA5wcm9wb3NhbEhlaWdodAIAAAAPLCBhcHBseVN0YXJ0ID0gCQABpAAAAAEFAAAACmFwcGx5U3RhcnQCAAAADSwgYXBwbHlFbmQgPSAJAAGkAAAAAQUAAAAIYXBwbHlFbmQCAAAACywgSEVJR0hUID0gCQABpAAAAAEFAAAABkhFSUdIVAQAAAAIYnlWb3RpbmcDCQEAAAABIQAAAAEFAAAAB2VuYWJsZWQJAAACAAAAAQIAAAArdHggYXBwbGljYXRpb24gdGhyb3cgZ292ZXJuYW5jZSBub3QgZW5hYmxlZAMFAAAACHRvb0Vhcmx5CQAAAgAAAAEJAAEsAAAAAgIAAAAucHJvcG9zYWwgY2FuJ3QgYmUgZXhlY3V0ZWQgYXMgaXQncyB0b28gZWFybHk6IAUAAAAJdGltZURlYnVnAwUAAAAHdG9vTGF0ZQkAAAIAAAABCQABLAAAAAICAAAALHByb3Bvc2FsIGNhbid0IGJlIGV4ZWN1dGVkIGFzIGl0J3MgdG9vIGxhdGU6BQAAAAl0aW1lRGVidWcDCQEAAAABIQAAAAEFAAAACWhhc1F1b3J1bQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtubyBxdW9ydW06IAIAAAAMdG90YWxWb3RlczogCQABpAAAAAEFAAAACnRvdGFsVm90ZXMCAAAADywgdG90YWxHVmlyZXM6IAkAAaQAAAABBQAAAAt0b3RhbEdWaXJlcwIAAAAPLCBxdW9ydW1SYXRpbzogCQABpAAAAAEFAAAAC3F1b3J1bVJhdGlvAwkBAAAAASEAAAABBQAAAAloYXNQYXNzZWQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXbm8gdGhyZXNob2xkIGFjaGlldmVkOiACAAAACXZvdGVZZXM6IAkAAaQAAAABBQAAAAd2b3RlWWVzAgAAAAosIHZvdGVObzogCQABpAAAAAEFAAAABnZvdGVObwIAAAAPLCBwYXNzZWRSYXRpbzogCQABpAAAAAEFAAAAC3Bhc3NlZFJhdGlvBgMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BgUAAAAIYnlWb3RpbmeO35SP", "chainId": 87, "height": 3862751, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CFwjseftqCt1ApjQoXX1MyarbCdQ8QNaVCnuksM1HHJD Next: none Diff:
OldNewDifferences
6767 let assetId = calculateAssetId(viresTokenIssue)
6868 [viresTokenIssue, writeConstString(configStore, configAddress), writeConstString(viresAssetIdStore, toBase58String(assetId))]
6969 }
70+
71+
72+
73+@Callable(i)
74+func mintToV2 (amount) = if ((i.caller != this))
75+ then throw("denied")
76+ else mint("v2_minted", "3PDTcWBXSirxRjS81V8NEVuh3drWyKmF9uj", amount)
7077
7178
7279
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let vires = 100000000
55
66 let K = 1000
77
88 let MINTCAP = (((10 * K) * K) * vires)
99
1010 func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
1111 then StringEntry(key, value)
1212 else throw(("already initialized: " + key))
1313
1414
1515 let lpLockerMintedStore = "lplocker_minted"
1616
1717 let distributorMintedStore = "distributor_minted"
1818
1919 let stakerMintedStore = "staker_minted"
2020
2121 let ebMintedStore = "eb_minted"
2222
2323 let viresAssetIdStore = "assetId"
2424
2525 let configStore = "config"
2626
2727 let viresAssetId = valueOrErrorMessage(fromBase58String(valueOrErrorMessage(getString(this, viresAssetIdStore), "assetId not found")), "invalid assetId")
2828
2929 let configAddress = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, configStore), "vires-minter: no configAddress")), "invalid config address")
3030
3131 func throwIf (condition,error) = if (condition)
3232 then throw(error)
3333 else true
3434
3535
3636 func checkCaller (a,i,store) = if ((i.caller != valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(a, store), (("no " + store) + " in config"))), (("invalid " + store) + " address"))))
3737 then throw((("only " + store) + " can do"))
3838 else true
3939
4040
4141 func lpLockerOnly (i) = checkCaller(configAddress, i, "lp_locker")
4242
4343
4444 func distributorOnly (i) = checkCaller(configAddress, i, "vires_distributor")
4545
4646
4747 func stakerOnly (i) = checkCaller(configAddress, i, "vires_staker")
4848
4949
5050 func adminOnly (i) = checkCaller(configAddress, i, "admin")
5151
5252
5353 func mint (store,recipient,amount) = {
5454 let totalStore = "total_minted"
5555 let alreadyMinted = valueOrElse(getInteger(this, totalStore), 0)
5656 if (((alreadyMinted + amount) > MINTCAP))
5757 then throw("breaching MINTCAP = 10M")
5858 else if ((0 >= amount))
5959 then throw("mint amount must be > 0")
6060 else [IntegerEntry(totalStore, (alreadyMinted + amount)), IntegerEntry(store, (valueOrElse(getInteger(this, store), 0) + amount)), Reissue(viresAssetId, amount, true), ScriptTransfer(addressFromStringValue(recipient), amount, viresAssetId)]
6161 }
6262
6363
6464 @Callable(i)
6565 func init (configAddress) = {
6666 let viresTokenIssue = Issue("VIRES", "Vires.Finance Protocol Governance Token", 0, 8, true)
6767 let assetId = calculateAssetId(viresTokenIssue)
6868 [viresTokenIssue, writeConstString(configStore, configAddress), writeConstString(viresAssetIdStore, toBase58String(assetId))]
6969 }
70+
71+
72+
73+@Callable(i)
74+func mintToV2 (amount) = if ((i.caller != this))
75+ then throw("denied")
76+ else mint("v2_minted", "3PDTcWBXSirxRjS81V8NEVuh3drWyKmF9uj", amount)
7077
7178
7279
7380 @Callable(i)
7481 func mintToEB (recipient,amount) = {
7582 let checks = adminOnly(i)
7683 if ((checks == checks))
7784 then mint(ebMintedStore, recipient, amount)
7885 else throw("Strict value is not equal to itself.")
7986 }
8087
8188
8289
8390 @Callable(i)
8491 func lpLockerMint (recipient,amount) = {
8592 let checks = lpLockerOnly(i)
8693 if ((checks == checks))
8794 then mint(lpLockerMintedStore, recipient, amount)
8895 else throw("Strict value is not equal to itself.")
8996 }
9097
9198
9299
93100 @Callable(i)
94101 func distributorMint (recipient,amount) = {
95102 let checks = distributorOnly(i)
96103 if ((checks == checks))
97104 then mint(distributorMintedStore, recipient, amount)
98105 else throw("Strict value is not equal to itself.")
99106 }
100107
101108
102109
103110 @Callable(i)
104111 func stakerMint (recipient,amount) = {
105112 let checks = stakerOnly(i)
106113 if ((checks == checks))
107114 then mint(stakerMintedStore, recipient, amount)
108115 else throw("Strict value is not equal to itself.")
109116 }
110117
111118
112119 @Verifier(tx)
113120 func verify () = {
114121 let maybeOracleAddress = match getString(configAddress, "oracle_address") {
115122 case s: String =>
116123 addressFromString(s)
117124 case _ =>
118125 unit
119126 }
120127 let HEIGHT = height
121128 let BASE = 1000
122129 let quorumRatio = valueOrErrorMessage(getInteger(configAddress, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
123130 let passedRatio = valueOrErrorMessage(getInteger(configAddress, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
124131 let gViresContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
125132 let votingContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "voting_contract"), "no voting_contract")), "invalid voting_contract")
126133 let id = toBase58String(tx.id)
127134 let votesYes = valueOrElse(getInteger(votingContract, ("proposal_yes_" + id)), 0)
128135 let votesNo = valueOrElse(getInteger(votingContract, ("proposal_no_" + id)), 0)
129136 let proposalHeight = valueOrErrorMessage(getInteger(votingContract, ("proposal_height_" + id)), "proposal not registered")
130137 let applyStart = valueOrElse(getInteger(votingContract, ("proposal_applystart_" + id)), 0)
131138 let applyEnd = valueOrElse(getInteger(votingContract, ("proposal_applyend_" + id)), 0)
132139 let totalGVires = valueOrElse(getInteger(votingContract, ("proposal_gvires_" + id)), 0)
133140 let enabled = valueOrElse(getBoolean(configAddress, "op_governance_apply_tx_paused"), false)
134141 let voteYes = votesYes
135142 let voteNo = votesNo
136143 let totalVotes = (voteYes + voteNo)
137144 let hasQuorum = (((totalVotes * BASE) / totalGVires) >= quorumRatio)
138145 let hasPassed = (((voteYes * BASE) / totalVotes) >= passedRatio)
139146 let tooEarly = (applyStart >= HEIGHT)
140147 let tooLate = (HEIGHT >= applyEnd)
141148 let timeDebug = ((((((("proposalHeight = " + toString(proposalHeight)) + ", applyStart = ") + toString(applyStart)) + ", applyEnd = ") + toString(applyEnd)) + ", HEIGHT = ") + toString(HEIGHT))
142149 let byVoting = if (!(enabled))
143150 then throw("tx application throw governance not enabled")
144151 else if (tooEarly)
145152 then throw(("proposal can't be executed as it's too early: " + timeDebug))
146153 else if (tooLate)
147154 then throw(("proposal can't be executed as it's too late:" + timeDebug))
148155 else if (!(hasQuorum))
149156 then throw((((((("no quorum: " + "totalVotes: ") + toString(totalVotes)) + ", totalGVires: ") + toString(totalGVires)) + ", quorumRatio: ") + toString(quorumRatio)))
150157 else if (!(hasPassed))
151158 then throw((((((("no threshold achieved: " + "voteYes: ") + toString(voteYes)) + ", voteNo: ") + toString(voteNo)) + ", passedRatio: ") + toString(passedRatio)))
152159 else true
153160 if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
154161 then true
155162 else byVoting
156163 }
157164

github/deemru/w8io/3ef1775 
45.04 ms