tx · Gs8gNDo52ebruJCoiaueamMTtZ8ksTPjtPM37kWppyL1

3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy:  -0.00900000 Waves

2022.09.23 15:22 [2241779] smart account 3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy > SELF 0.00000000 Waves

{ "type": 13, "id": "Gs8gNDo52ebruJCoiaueamMTtZ8ksTPjtPM37kWppyL1", "fee": 900000, "feeAssetId": null, "timestamp": 1663935743642, "version": 2, "chainId": 84, "sender": "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy", "senderPublicKey": "C3PaRKeL8AUKbwUqdniMQtThgcTh5DYHV1777Hkxy7rp", "proofs": [ "52ugCBKkLe2vtGXaf5ZVbUvR1a78e92NYCntUc1GM21X4erkTJD8n5BgGCTQ41VVg15AtKwE61fLVoiff6Voz299" ], "script": "base64:BgIoCAISBgoECAgBARIHCgUICAEBGBIECgIBCBIDCgEBEgMKAQESAwoBAS0AC3JldmlzaW9uTnVtAgAAA1NFUAICX18ADURFRkFVTFRRVU9SVU0AoMIeABBnb3ZJZHhQcm9wb3NhbElkAAEAEmdvdklkeFByb3Bvc2FsVHhJZAACAApnb3ZJZHhUeXBlAAMADGdvdklkeEF1dGhvcgAEAAlnb3ZJZHhVcmwABQALZ292SWR4VGl0bGUABgALZ292SWR4U3RhcnQABwAJZ292SWR4RW5kAAgADGdvdklkeFN0YXR1cwAJAAtnb3ZJZHhUeElkcwAKAQ9nZXRTdHJpbmdPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAEMZ2V0SW50T3JFbHNlAgNrZXkKZGVmYXVsdFZhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkFCmRlZmF1bHRWYWwAGUlkeENvbnRyb2xDZmdOZXV0cmlub0RhcHAAAQAYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwAAIAFElkeENvbnRyb2xDZmdScGREYXBwAAMAFUlkeENvbnRyb2xDZmdNYXRoRGFwcAAEABxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAUAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAGAB1JZHhDb250cm9sQ2ZnTm9kZVJlZ2lzdHJ5RGFwcAAHABxJZHhDb250cm9sQ2ZnTnNidFN0YWtpbmdEYXBwAAgAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAACQAcSWR4Q29udHJvbENmZ1N1cmZTdGFraW5nRGFwcAAKACBJZHhDb250cm9sQ2ZnR25zYnRDb250cm9sbGVyRGFwcAALARFrZXlDb250cm9sQWRkcmVzcwACHCVzJXNfX2NvbmZpZ19fY29udHJvbEFkZHJlc3MBDWtleUNvbnRyb2xDZmcAAhElc19fY29udHJvbENvbmZpZwEUcmVhZENvbnRyb2xDZmdPckZhaWwBB2NvbnRyb2wJALUJAgkBD2dldFN0cmluZ09yRmFpbAIFB2NvbnRyb2wJAQ1rZXlDb250cm9sQ2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCmNvbnRyb2xDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQpjb250cm9sQ2ZnBQNpZHgJAKwCAgItQ29udHJvbCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAAPY29udHJvbENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFrZXlDb250cm9sQWRkcmVzcwACIzNQNUJmZDU4UFBmTnZCTTJIeThRZmJjRHFNZU50emc3S2ZQAApjb250cm9sQ2ZnCQEUcmVhZENvbnRyb2xDZmdPckZhaWwBBQ9jb250cm9sQ29udHJhY3QAF2duc2J0Q29udHJvbGxlckNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUgSWR4Q29udHJvbENmZ0duc2J0Q29udHJvbGxlckRhcHABDWtleVByb3Bvc2FsSWQAAg4lc19fcHJvcG9zYWxJZAERa2V5UHJvcG9zYWxRdW9ydW0AAhIlc19fcXVvcnVtUmVxdWlyZWQBE2tleVByb3Bvc2FsRGF0YUJ5SWQBCnByb3Bvc2FsSWQJAKwCAgIUJXMlZF9fcHJvcG9zYWxEYXRhX18JAKQDAQUKcHJvcG9zYWxJZAEXa2V5UHJvcG9zYWxZZXNWb3Rlc0J5SWQBCnByb3Bvc2FsSWQJAKwCAgITJXMlZF9fcHJvcG9zYWxZZXNfXwkApAMBBQpwcm9wb3NhbElkARZrZXlQcm9wb3NhbE5vVm90ZXNCeUlkAQpwcm9wb3NhbElkCQCsAgICEiVzJWRfX3Byb3Bvc2FsTm9fXwkApAMBBQpwcm9wb3NhbElkARlrZXlQcm9wb3NhbFllc0J5SWRBbmRVc2VyAgpwcm9wb3NhbElkCHVzZXJBZGRyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICD3Byb3Bvc2FsVXNlclllcwkAzAgCCQCkAwEFCnByb3Bvc2FsSWQJAMwIAgUIdXNlckFkZHIFA25pbAUDU0VQARhrZXlQcm9wb3NhbE5vQnlJZEFuZFVzZXICCnByb3Bvc2FsSWQIdXNlckFkZHIJALkJAgkAzAgCAgYlcyVkJXMJAMwIAgIOcHJvcG9zYWxVc2VyTm8JAMwIAgkApAMBBQpwcm9wb3NhbElkCQDMCAIFCHVzZXJBZGRyBQNuaWwFA1NFUAEJYXNBbnlMaXN0AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQBbAUHJG1hdGNoMAUBbAkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAFpBQckbWF0Y2gwBQFpCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQxwcm9wb3NhbERhdGELCnByb3Bvc2FsSWQMcHJvcG9zYWxUeElkBHR5cGUGYXV0aG9yCWZvcnVtTGluawV0aXRsZQxwcm9wb3NhbFRpbWUPdm90aW5nU3RhcnRUaW1lDXZvdGluZ0VuZFRpbWUGc3RhdHVzBXR4SWRzCQC5CQIJAMwIAgIWJWQlcyVzJXMlcyVzJWQlZCVkJXMlcwkAzAgCCQCkAwEFCnByb3Bvc2FsSWQJAMwIAgUMcHJvcG9zYWxUeElkCQDMCAIFBHR5cGUJAMwIAgUGYXV0aG9yCQDMCAIFCWZvcnVtTGluawkAzAgCBQV0aXRsZQkAzAgCCQCkAwEFDHByb3Bvc2FsVGltZQkAzAgCCQCkAwEFD3ZvdGluZ1N0YXJ0VGltZQkAzAgCCQCkAwEFDXZvdGluZ0VuZFRpbWUJAMwIAgUGc3RhdHVzCQDMCAIJALkJAgUFdHhJZHMCAToFA25pbAUDU0VQAQ5pbml0aWF0ZVZvdGluZwkMcHJvcG9zYWxUeElkBHR5cGUGYXV0aG9yCWZvcnVtTGluawV0aXRsZQ92b3RpbmdTdGFydFRpbWUNdm90aW5nRW5kVGltZQZzdGF0dXMFdHhJZHMECnByb3Bvc2FsSWQJAGQCCQEMZ2V0SW50T3JFbHNlAgkBDWtleVByb3Bvc2FsSWQAAAAAAQQGcXVvcnVtCQEMZ2V0SW50T3JFbHNlAgkBEWtleVByb3Bvc2FsUXVvcnVtAAUNREVGQVVMVFFVT1JVTQQMcHJvcG9zYWxUaW1lCAkBBXZhbHVlAQkA7QcBBQZoZWlnaHQJdGltZXN0YW1wCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlQcm9wb3NhbElkAAUKcHJvcG9zYWxJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2tleVByb3Bvc2FsWWVzVm90ZXNCeUlkAQUKcHJvcG9zYWxJZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5UHJvcG9zYWxOb1ZvdGVzQnlJZAEFCnByb3Bvc2FsSWQAAAkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5UHJvcG9zYWxEYXRhQnlJZAEFCnByb3Bvc2FsSWQJAQxwcm9wb3NhbERhdGELBQpwcm9wb3NhbElkBQxwcm9wb3NhbFR4SWQFBHR5cGUFBmF1dGhvcgUJZm9ydW1MaW5rBQV0aXRsZQUMcHJvcG9zYWxUaW1lBQ92b3RpbmdTdGFydFRpbWUFDXZvdGluZ0VuZFRpbWUFBnN0YXR1cwUFdHhJZHMFA25pbAUMcHJvcG9zYWxUeElkAQhjYXN0Vm90ZQQKcHJvcG9zYWxJZA51c2VyQWRkcmVzc1N0cgd5ZXNEaWZmBm5vRGlmZgQKb2xkVXNlclllcwkBDGdldEludE9yRWxzZQIJARlrZXlQcm9wb3NhbFllc0J5SWRBbmRVc2VyAgUKcHJvcG9zYWxJZAUOdXNlckFkZHJlc3NTdHIAAAQJb2xkVXNlck5vCQEMZ2V0SW50T3JFbHNlAgkBGGtleVByb3Bvc2FsTm9CeUlkQW5kVXNlcgIFCnByb3Bvc2FsSWQFDnVzZXJBZGRyZXNzU3RyAAAEC29sZFRvdGFsWWVzCQEMZ2V0SW50T3JFbHNlAgkBF2tleVByb3Bvc2FsWWVzVm90ZXNCeUlkAQUKcHJvcG9zYWxJZAAABApvbGRUb3RhbE5vCQEMZ2V0SW50T3JFbHNlAgkBFmtleVByb3Bvc2FsTm9Wb3Rlc0J5SWQBBQpwcm9wb3NhbElkAAAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGWtleVByb3Bvc2FsWWVzQnlJZEFuZFVzZXICBQpwcm9wb3NhbElkBQ51c2VyQWRkcmVzc1N0cgUHeWVzRGlmZgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleVByb3Bvc2FsTm9CeUlkQW5kVXNlcgIFCnByb3Bvc2FsSWQFDnVzZXJBZGRyZXNzU3RyBQZub0RpZmYJAMwIAgkBDEludGVnZXJFbnRyeQIJARdrZXlQcm9wb3NhbFllc1ZvdGVzQnlJZAEFCnByb3Bvc2FsSWQJAGQCCQBlAgULb2xkVG90YWxZZXMFCm9sZFVzZXJZZXMFB3llc0RpZmYJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlQcm9wb3NhbE5vVm90ZXNCeUlkAQUKcHJvcG9zYWxJZAkAZAIJAGUCBQpvbGRUb3RhbE5vBQlvbGRVc2VyTm8FBm5vRGlmZgUDbmlsBQR1bml0BgFpARJpbml0aWF0ZUlkZWFWb3RpbmcECWZvcnVtTGluawV0aXRsZQ92b3RpbmdTdGFydFRpbWUNdm90aW5nRW5kVGltZQkBDmluaXRpYXRlVm90aW5nCQkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAgRJREVBCQClCAEIBQFpBmNhbGxlcgUJZm9ydW1MaW5rBQV0aXRsZQUPdm90aW5nU3RhcnRUaW1lBQ12b3RpbmdFbmRUaW1lAgdQRU5ESU5HBQNuaWwBaQEUaW5pdGlhdGVVcGRhdGVWb3RpbmcFCWZvcnVtTGluawV0aXRsZQ92b3RpbmdTdGFydFRpbWUNdm90aW5nRW5kVGltZQV0eElkcwkBDmluaXRpYXRlVm90aW5nCQkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAgZVUERBVEUJAKUIAQgFAWkGY2FsbGVyBQlmb3J1bUxpbmsFBXRpdGxlBQ92b3RpbmdTdGFydFRpbWUFDXZvdGluZ0VuZFRpbWUCB1BFTkRJTkcFBXR4SWRzAWkBDGNhbmNlbFZvdGluZwIKcHJvcG9zYWxJZAZyZWFzb24JAJQKAgUDbmlsBQR1bml0AWkBB3ZvdGVZZXMBCnByb3Bvc2FsSWQEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQJZ25zYnREYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRdnbnNidENvbnRyb2xsZXJDb250cmFjdAIUZ25zYnRJbmZvU1lTUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgAACQDMCAIAAAUDbmlsBQNuaWwECGduc2J0QW10CQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAACQEIY2FzdFZvdGUEBQpwcm9wb3NhbElkBQ51c2VyQWRkcmVzc1N0cgUIZ25zYnRBbXQAAAFpAQZ2b3RlTm8BCnByb3Bvc2FsSWQEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQJZ25zYnREYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRdnbnNidENvbnRyb2xsZXJDb250cmFjdAIUZ25zYnRJbmZvU1lTUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgAACQDMCAIAAAUDbmlsBQNuaWwECGduc2J0QW10CQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAACQEIY2FzdFZvdGUEBQpwcm9wb3NhbElkBQ51c2VyQWRkcmVzc1N0cgAABQhnbnNidEFtdAFpAQthcHBseVZvdGluZwEKcHJvcG9zYWxJZAkAlAoCBQNuaWwFBHVuaXQAtW/iiw==", "height": 2241779, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BZoUdp1G8t5XH8xGDSuxsNxVQNhBbw2Unj74AAgGiXS Next: HXDyrG1adHJ6Z78hcKyawZqaW8kTCFLxFfpuLjbXdhr3 Diff:
OldNewDifferences
8585 func keyProposalYesVotesById (proposalId) = ("%s%d__proposalYes__" + toString(proposalId))
8686
8787
88-func keyProposalNoVotesById (proposalId) = ("%s%d__proposalYes__" + toString(proposalId))
88+func keyProposalNoVotesById (proposalId) = ("%s%d__proposalNo__" + toString(proposalId))
8989
9090
9191 func keyProposalYesByIdAndUser (proposalId,userAddr) = makeString(["%s%d%s", "proposalUserYes", toString(proposalId), userAddr], SEP)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let revisionNum = ""
55
66 let SEP = "__"
77
88 let DEFAULTQUORUM = 500000
99
1010 let govIdxProposalId = 1
1111
1212 let govIdxProposalTxId = 2
1313
1414 let govIdxType = 3
1515
1616 let govIdxAuthor = 4
1717
1818 let govIdxUrl = 5
1919
2020 let govIdxTitle = 6
2121
2222 let govIdxStart = 7
2323
2424 let govIdxEnd = 8
2525
2626 let govIdxStatus = 9
2727
2828 let govIdxTxIds = 10
2929
3030 func getStringOrFail (address,key) = valueOrErrorMessage(getString(address, key), makeString(["mandatory ", toString(address), ".", key, " is not defined"], ""))
3131
3232
3333 func getIntOrElse (key,defaultVal) = valueOrElse(getInteger(this, key), defaultVal)
3434
3535
3636 let IdxControlCfgNeutrinoDapp = 1
3737
3838 let IdxControlCfgAuctionDapp = 2
3939
4040 let IdxControlCfgRpdDapp = 3
4141
4242 let IdxControlCfgMathDapp = 4
4343
4444 let IdxControlCfgLiquidationDapp = 5
4545
4646 let IdxControlCfgRestDapp = 6
4747
4848 let IdxControlCfgNodeRegistryDapp = 7
4949
5050 let IdxControlCfgNsbtStakingDapp = 8
5151
5252 let IdxControlCfgMediatorDapp = 9
5353
5454 let IdxControlCfgSurfStakingDapp = 10
5555
5656 let IdxControlCfgGnsbtControllerDapp = 11
5757
5858 func keyControlAddress () = "%s%s__config__controlAddress"
5959
6060
6161 func keyControlCfg () = "%s__controlConfig"
6262
6363
6464 func readControlCfgOrFail (control) = split(getStringOrFail(control, keyControlCfg()), SEP)
6565
6666
6767 func getContractAddressOrFail (controlCfg,idx) = valueOrErrorMessage(addressFromString(controlCfg[idx]), ("Control cfg doesn't contain address at index " + toString(idx)))
6868
6969
7070 let controlContract = addressFromStringValue(valueOrElse(getString(this, keyControlAddress()), "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP"))
7171
7272 let controlCfg = readControlCfgOrFail(controlContract)
7373
7474 let gnsbtControllerContract = getContractAddressOrFail(controlCfg, IdxControlCfgGnsbtControllerDapp)
7575
7676 func keyProposalId () = "%s__proposalId"
7777
7878
7979 func keyProposalQuorum () = "%s__quorumRequired"
8080
8181
8282 func keyProposalDataById (proposalId) = ("%s%d__proposalData__" + toString(proposalId))
8383
8484
8585 func keyProposalYesVotesById (proposalId) = ("%s%d__proposalYes__" + toString(proposalId))
8686
8787
88-func keyProposalNoVotesById (proposalId) = ("%s%d__proposalYes__" + toString(proposalId))
88+func keyProposalNoVotesById (proposalId) = ("%s%d__proposalNo__" + toString(proposalId))
8989
9090
9191 func keyProposalYesByIdAndUser (proposalId,userAddr) = makeString(["%s%d%s", "proposalUserYes", toString(proposalId), userAddr], SEP)
9292
9393
9494 func keyProposalNoByIdAndUser (proposalId,userAddr) = makeString(["%s%d%s", "proposalUserNo", toString(proposalId), userAddr], SEP)
9595
9696
9797 func asAnyList (v) = match v {
9898 case l: List[Any] =>
9999 l
100100 case _ =>
101101 throw("fail to cast into List[Any]")
102102 }
103103
104104
105105 func asInt (v) = match v {
106106 case i: Int =>
107107 i
108108 case _ =>
109109 throw("fail to cast into Int")
110110 }
111111
112112
113113 func proposalData (proposalId,proposalTxId,type,author,forumLink,title,proposalTime,votingStartTime,votingEndTime,status,txIds) = makeString(["%d%s%s%s%s%s%d%d%d%s%s", toString(proposalId), proposalTxId, type, author, forumLink, title, toString(proposalTime), toString(votingStartTime), toString(votingEndTime), status, makeString(txIds, ":")], SEP)
114114
115115
116116 func initiateVoting (proposalTxId,type,author,forumLink,title,votingStartTime,votingEndTime,status,txIds) = {
117117 let proposalId = (getIntOrElse(keyProposalId(), 0) + 1)
118118 let quorum = getIntOrElse(keyProposalQuorum(), DEFAULTQUORUM)
119119 let proposalTime = value(blockInfoByHeight(height)).timestamp
120120 $Tuple2([IntegerEntry(keyProposalId(), proposalId), IntegerEntry(keyProposalYesVotesById(proposalId), 0), IntegerEntry(keyProposalNoVotesById(proposalId), 0), StringEntry(keyProposalDataById(proposalId), proposalData(proposalId, proposalTxId, type, author, forumLink, title, proposalTime, votingStartTime, votingEndTime, status, txIds))], proposalTxId)
121121 }
122122
123123
124124 func castVote (proposalId,userAddressStr,yesDiff,noDiff) = {
125125 let oldUserYes = getIntOrElse(keyProposalYesByIdAndUser(proposalId, userAddressStr), 0)
126126 let oldUserNo = getIntOrElse(keyProposalNoByIdAndUser(proposalId, userAddressStr), 0)
127127 let oldTotalYes = getIntOrElse(keyProposalYesVotesById(proposalId), 0)
128128 let oldTotalNo = getIntOrElse(keyProposalNoVotesById(proposalId), 0)
129129 $Tuple2([IntegerEntry(keyProposalYesByIdAndUser(proposalId, userAddressStr), yesDiff), IntegerEntry(keyProposalNoByIdAndUser(proposalId, userAddressStr), noDiff), IntegerEntry(keyProposalYesVotesById(proposalId), ((oldTotalYes - oldUserYes) + yesDiff)), IntegerEntry(keyProposalNoVotesById(proposalId), ((oldTotalNo - oldUserNo) + noDiff))], unit)
130130 }
131131
132132
133133 @Callable(i)
134134 func initiateIdeaVoting (forumLink,title,votingStartTime,votingEndTime) = initiateVoting(toBase58String(i.transactionId), "IDEA", toString(i.caller), forumLink, title, votingStartTime, votingEndTime, "PENDING", nil)
135135
136136
137137
138138 @Callable(i)
139139 func initiateUpdateVoting (forumLink,title,votingStartTime,votingEndTime,txIds) = initiateVoting(toBase58String(i.transactionId), "UPDATE", toString(i.caller), forumLink, title, votingStartTime, votingEndTime, "PENDING", txIds)
140140
141141
142142
143143 @Callable(i)
144144 func cancelVoting (proposalId,reason) = $Tuple2(nil, unit)
145145
146146
147147
148148 @Callable(i)
149149 func voteYes (proposalId) = {
150150 let userAddressStr = toString(i.caller)
151151 let gnsbtData = asAnyList(invoke(gnsbtControllerContract, "gnsbtInfoSYSREADONLY", [userAddressStr, 0, 0], nil))
152152 let gnsbtAmt = asInt(gnsbtData[0])
153153 castVote(proposalId, userAddressStr, gnsbtAmt, 0)
154154 }
155155
156156
157157
158158 @Callable(i)
159159 func voteNo (proposalId) = {
160160 let userAddressStr = toString(i.caller)
161161 let gnsbtData = asAnyList(invoke(gnsbtControllerContract, "gnsbtInfoSYSREADONLY", [userAddressStr, 0, 0], nil))
162162 let gnsbtAmt = asInt(gnsbtData[0])
163163 castVote(proposalId, userAddressStr, 0, gnsbtAmt)
164164 }
165165
166166
167167
168168 @Callable(i)
169169 func applyVoting (proposalId) = $Tuple2(nil, unit)
170170
171171

github/deemru/w8io/873ac7e 
30.67 ms