This document describes APIs that Governance SCORE provides.
- Governance SCORE is a built-in SCORE that manages adjustable characteristics of ICON network.
- Address: cx0000000000000000000000000000000000000001
By default, Values in all JSON-RPC messages are in string form. The most commonly used Value types are as follows.
| Value Type | Description | Example |
|---|---|---|
| T_ADDR_EOA | "hx" + 40 digits HEX string | hxbe258ceb872e08851f1f59694dac2558708ece11 |
| T_ADDR_SCORE | "cx" + 40 digits HEX string | cxb0776ee37f5b45bfaea8cff1d8232fbb6122ec32 |
| T_HASH | "0x" + 64 digits HEX string | 0xc71303ef8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238 |
| T_INT | "0x" + lowercase HEX string | 0xa |
| T_STR | string | hello |
| T_IMPORT_STMT | Import statement string | "{'json': [], 'os': ['path'], 'base.exception': ['ExceptionCode']}" |
| T_BIN_DATA | "0x" + lowercase HEX string (the length of string should be even) | 0x34b2 |
| T_SIG | base64 encoded string | VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA= |
import_stmt: "{" import_element ("," import_element)* "}"
import_element: (import_name | import_from)
import_name: dotted_name ": []"
Import_from: dotted_name ": [" dotted_names "]"
dotted_names: dotted_name ("," dotted_name) *
dotted_name: "'"NAME ("." NAME)*"'"
NAME: Not an empty string
| python import | import statement |
|---|---|
| import json | { 'json' : [] } |
| from json import * | { 'json' : [] } |
| from os import path | { 'os' : ['path'] } |
| from base.exception import ExceptionCode | { 'base.exception' : ['ExceptionCode'] } |
| import json from os import path from base.exception import ExceptionCode |
{ 'json' : [], 'os' : ['path'], 'base.exception' : ['ExceptionCode'] } |
- Query methods
- Invoke methods
- acceptScore
- rejectScore
- addAuditor
- removeAuditor
setStepPrice(deprecated)setStepCost(deprecated)setMaxStepLimit(deprecated)addDeployer(deprecated)removeDeployer(deprecated)addToScoreBlackList(deprecated)removeFromScoreBlackList(deprecated)addImportWhiteList(deprecated)removeImportWhiteList(deprecated)updateServiceConfig(deprecated)setRevision(deprecated)- registerProposal
- cancelProposal
- voteProposal
- Eventlog
- Accepted
- Rejected
- StepPriceChanged
- StepCostChanged
MaxStepLimitChanged(deprecated)AddImportWhiteListLog(deprecated)RemoveImportWhiteList(deprecated)UpdateServiceConfigLog(deprecated)- RevisionChanged
- MaliciousScore
- PRepDisqualified
- IRepChanged
- NetworkProposalRegistered
- NetworkProposalCanceled
- NetworkProposalVoted
- NetworkProposalApproved
Query method does not change state. Read-only.
- Queries the current status of the given SCORE.
currentindicates the currently active SCORE instance, whilenextis the SCORE code that has been requested to install or update, but not activated yet.- [Fee 2.0] Checks the deposit information of the given SCORE.
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_SCORE | SCORE address whose status be checked |
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getScoreStatus",
"params": {
"address": "cxb0776ee37f5b45bfaea8cff1d8232fbb6122ec32"
}
}
}
}// Response - install requested: under auditing
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"next": {
"status": "pending",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b27"
}
}
}// Response - audit completed: accepted
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"current": {
"status": "active",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b27",
"auditTxHash": "0x644dd57fbb65b49a49bcaf5e7685e01d53dc321f1cfb7dbbf8f4306265745292"
}
}
}// Response - audit completed: rejected
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"next": {
"status": "rejected",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b27",
"auditTxHash": "0x644dd57fbb65b49a49bcaf5e7685e01d53dc321f1cfb7dbbf8f4306265745292"
}
}
}// Response - update requested: under auditing
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"current": {
"status": "active",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b207",
"auditTxHash": "0x644dd57fbb65b49a49bcaf5e7685e01d53dc321f1cfb7dbbf8f4306265745292"
},
"next": {
"status": "pending",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b207"
}
}
}// Response - update requested, audit completed: rejected
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"current": {
"status": "active",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b27",
"auditTxHash": "0x644dd57fbb65b49a49bcaf5e7685e01d53dc321f1cfb7dbbf8f4306265745292"
},
"next": {
"status": "rejected",
"deployTxHash": "0xe0f6dc6607aa9b5550cd1e6d57549f67fe9718654cde15258922d0f88ff58b27",
"auditTxHash": "0x644dd57fbb65b49a49bcaf5e7685e01d53dc321f1cfb7dbbf8f4306265745292"
}
}
}depositInfo field will be shown when there is a deposit in the SCORE.
{
"jsonrpc": "2.0",
"id": 100,
"result": {
"current": {
"status": "active",
"deployTxHash": "0x19793f41b8e64fc31190c6a70a103103da1f4bc81bc829fa72c852a5e388fe8c"
},
"depositInfo": {
"scoreAddress": "cx216e1468b780ac1b54c328d19ea23a35a6899e55",
"deposits": [
{
"id": "0x64b118d4a3c2b3b93362a0f3ea06e5519de42449523465265b85509041e69011",
"sender": "hxe7af5fcfd8dfc67530a01a0e403882687528dfcb",
"depositAmount": "0x10f0cf064dd59200000",
"depositUsed": "0x0",
"created": "0x16",
"expires": "0x13c696",
"virtualStepIssued": "0x9502f9000",
"virtualStepUsed": "0x329a6"
}
],
"availableVirtualStep": "0x9502c665a",
"availableDeposit": "0xf3f20b8dfa69d00000"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"error": {
"code": -32032,
"message": "SCORE not found"
}
}- Returns the current step price in loop.
None
T_INT - integer of the current step price in loop (1 ICX == 10^18 loop).
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getStepPrice"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": "0x2540be400"
}- Returns a table of the step costs for each actions.
None
T_DICT - a dict: key - camel-cased action strings, value - step costs in integer
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getStepCosts"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": {
"default": "0x186a0",
"contractCall": "0x61a8",
"contractCreate": "0x3b9aca00",
"contractUpdate": "0x5f5e1000",
"contractDestruct": "-0x11170",
"contractSet": "0x7530",
"get": "0x0",
"set": "0x140",
"replace": "0x50",
"delete": "-0xf0",
"input": "0xc8",
"eventLog": "0x64",
"apiCall": "0x2710"
}
}- Returns the maximum step limit value that any SCORE execution should be bounded by.
| Key | Value Type | Description |
|---|---|---|
| contextType | string | 'invoke' for sendTransaction, 'query' for call |
T_INT - integer of the maximum step limit
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getMaxStepLimit",
"params": {
"contextType": "invoke"
}
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": "0x9502f900"
}- Returns "0x1" if the given address is in the deployer list.
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_SCORE | SCORE address to query |
T_INT - "0x1" if the SCORE address is in the black list, otherwise "0x0"
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "isInScoreBlackList",
"params": {
"address": "cxb0776ee37f5b45bfaea8cff1d8232fbb6122ec32"
}
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": "0x1"
}- Returns the version of Governance SCORE
T_STR - version string
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getVersion"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": "0.0.7"
}- Returns True if import statement is in the import white list.
| Key | Value Type | Description |
|---|---|---|
| importStmt | T_IMPORT_STMT | Import statement |
T_INT - "0x1" if the import statement is in the import white list, otherwise "0x0"
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "isInImportWhiteList",
"params": {
"importStmt": "{'json': [], 'os': ['path'], 'base.exception': ['ExceptionCode']}"
}
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": "0x0"
}- Returns table about server config.
None
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getServiceConfig"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": {
"FEE": "0x1",
"AUDIT": "0x1",
"DEPLOYER_WHITE_LIST": "0x0",
"SCORE_PACKAGE_VALIDATOR": "0x1"
}
}- Returns info about revision.
None
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"to": "cx0000000000000000000000000000000000000001",
"dataType": "call",
"data": {
"method": "getRevision"
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": {
"code": "0x4",
"name": "1.3.0"
}
}- Query information about the network proposal.
| Key | Value Type | Description |
|---|---|---|
| id | T_HASH | Transaction hash of the registered network proposal |
T_DICT - Information of the network proposal in dict
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"version": "0x3",
"from": "hx8f21e5c54f006b6a5d5fe65486908592151a7c57",
"to": "cx0000000000000000000000000000000000000001",
"timestamp": "0x563a6cf330136",
"dataType": "call",
"data": {
"method": "getProposal",
"params": {
"id": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
}
}
}
}{
"jsonrpc": "2.0",
"id": 100,
"result": {
"id" : "0xb903239f8543d0..",
"proposer" : "hxbe258ceb872e08851f1f59694dac2558708ece11",
"proposerName" : "P-Rep A",
"status" : "0x0",
"startBlockHeight" : "0x1",
"endBlockHeight" : "0x65",
"vote": {
"agree": {
"list":[{
"id": "0xb903239f854..",
"timestamp": "0x563a6cf330136",
"address": "hxe7af5fcfd8dfc67530a01a0e403882687528dfcb",
"name": "P-Rep B",
"amount": "0x1"
}, .. ],
"amount": "0x12345"
},
"disagree": {
"list": [{
"id": "0xa803239f854..",
"timestamp": "0x563a6cf330136",
"address": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"name": "P-Rep C",
"amount": "0x1"
}, .. ],
"amount": "0x123"
},
"noVote": {
"list": ["hx31258ceb872e08851f1f59694dac2558708ece11", .. , "hx31258ceb872e08851f1f59694dac2558708eceff"],
"amount": "0x12312341234a"
},
},
"contents": {
"title": "Disqualify P-Rep C",
"description": "P-Rep C does not maintain node",
"type": "0x3",
"value": {
"address": "hxbe258ceb872e08851f1f59694dac2558708ece11"
}
}
}
}- Query the network proposals.
| Key | Value Type | Description |
|---|---|---|
| type | T_INT | Type for querying (optional) |
| status | T_INT | Status for querying (optional) |
| start | T_INT | Starting index for querying. Default is 0, which means the latest (optional) |
| size | T_INT | Size for querying. Default and maximum is 10 (optional) |
T_LIST - List of summarized information of network proposals in dict.
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_call",
"params": {
"version": "0x3",
"from": "hx8f21e5c54f006b6a5d5fe65486908592151a7c57",
"to": "cx0000000000000000000000000000000000000001",
"timestamp": "0x563a6cf330136",
"dataType": "call",
"data": {
"method": "getProposals",
"params": {
"type": "0x3",
"status": "0x0",
"start": "0x1",
"size": "0x3"
}
}
}
}{
"jsonrpc":"2.0",
"id":1234,
"result":{
"proposals":[
{
"id":"0xb903239f8543..",
"proposer":"hxbe258ceb872e08851f1f59694dac2558708ece11",
"proposerName":"P-Rep A",
"status":"0x0",
"startBlockHeight":"0x1",
"endBlockHeight":"0x65",
"vote":{
"agree":{
"count":"0x1",
"amount":"0x12312341234a"
},
"disagree":{
"count":"0x1",
"amount":"0x12312341234a"
},
"noVote":{
"count":"0x1",
"amount":"0x12312341234a"
}
},
"contents":{
"title":"Disqualify P-Rep C",
"description":"P-Rep C does not maintain node",
"type":"0x3",
"value":{
"address":"hxbe258ceb872e08851f1f59694dac2558708ece11"
}
}
}, .. ]
}
}Invoke method can initiate state transition.
- Accepts SCORE deployment request.
- This method can be invoked only from the addresses that are in the auditor list.
- The accepted SCORE will be executing from the next block.
| Key | Value Type | Description |
|---|---|---|
| txHash | T_HASH | Transaction hash of the SCORE deploy transaction. |
{
"jsonrpc": "2.0",
"id": 1234,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x12345",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "acceptScore",
"params": {
"txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
}
}
}
}- Rejects SCORE deployment request.
- This can be invoked only from the addresses that are in the auditor list.
| Key | Value Type | Description |
|---|---|---|
| txHash | T_HASH | Transaction hash of the SCORE deploy request. |
| reason | T_TEXT | Reason for rejecting |
{
"jsonrpc": "2.0",
"id": 1234,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x12345",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "rejectScore",
"params": {
"txHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
"reason": "SCORE cannot use network api"
}
}
}
}- Adds a new address to the auditor list.
- Only the addresses registered in the auditor list can call
acceptScoreandrejectScore. - Only the owner of the Governance SCORE can call this function.
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_EOA | New EOA address that will be added to the auditor list |
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x30000",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "addAuditor",
"params": {
"address": "hx2d54d5ca2a1dffbcfc3fb2c86cc07cb826f6b931"
}
}
}
}- Removes the address from the auditor list.
- The address removed from the auditor list cannot call
acceptScoreandrejectScoreafterward. - This function can be invoked only by either Governance SCORE owner or the auditor herself.
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_EOA | EOA address in the auditor list |
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x30000",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "removeAuditor",
"params": {
"address": "hx2d54d5ca2a1dffbcfc3fb2c86cc07cb826f6b931"
}
}
}
}- Register the network proposal
- This function can be invoked only by the main P-Reps.
| Key | Value Type | Description |
|---|---|---|
| title | T_STR | Title of the network proposal |
| description | T_STR | Description of the network proposal |
| type | T_INT | Type of the network proposal |
| value | T_DICT | Values for each type of network proposal. Hex string of UTF-8 encoded bytes data of JSON string ex. "0x" + bytes.hex(json.dumps(value_dict).encode()) |
| Value | Description |
|---|---|
| 0x0 | Text |
| 0x1 | Revision |
| 0x2 | Malicious SCORE |
| 0x3 | P-Rep disqualification |
| 0x4 | Step price |
| 0x5 | I-Rep |
| 0x6 | Step costs |
| 0x7 | Reward fund setting |
| 0x8 | Reward fund allocation |
Text
| Key | Value Type | Description |
|---|---|---|
| value | T_STR | Text value |
Revision
| Key | Value Type | Description |
|---|---|---|
| code | T_INT | Revision code |
| name | T_STR | Revision name |
Malicious SCORE
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_SCORE | SCORE address |
| type | T_INT | 0x0: Freeze, 0x1: Unfreeze |
P-Rep disqualification
| Key | Value Type | Description |
|---|---|---|
| address | T_ADDR_EOA | EOA address of main/sub P-Rep |
Step price
| Key | Value Type | Description |
|---|---|---|
| value | T_INT | An integer of the step price in loop |
I-Rep
| Key | Value Type | Description |
|---|---|---|
| value | T_INT | An integer of the I-Rep in loop |
Step Costs
| Key | Value Type | Description |
|---|---|---|
| costs | T_DICT | Step costs to set as a dict. All fields are optional but at least one field should be specified. |
| Key | Value Type | Description |
|---|---|---|
| schema | T_INT | Schema version |
| default | T_INT | Default cost charged each time transaction is executed |
| contractCall | T_INT | Cost to call the smart contract function |
| contractCreate | T_INT | Cost to call the smart contract code generation function |
| contractUpdate | T_INT | Cost to call the smart contract code update function |
| contractSet | T_INT | Cost to store the generated/updated smart contract code per byte |
| get | T_INT | Cost to get values from the state database per byte |
| getBase | T_INT | Default cost charged each time get is called |
| set | T_INT | Cost to set values newly in the state database per byte |
| setBase | T_INT | Default cost charged each time set is called |
| delete | T_INT | Cost to delete values in the state database per byte |
| deleteBase | T_INT | Default cost charged each time delete is called |
| input | T_INT | Cost charged for input data included in transaction per byte |
| log | T_INT | Cost to emit event logs per byte |
| logBase | T_INT | Default cost charged each time log is called |
| apiCall | T_INT | Cost charged for heavy API calls (e.g. hash functions) |
example
{"costs": {"default": "0x186a0", "set": "0x140"}}Monthly Reward Fund Setting
| Key | Value Type | Description |
|---|---|---|
| iglobal | T_INT | The total amount of monthly reward fund in loop |
Monthly Reward Fund Allocation
Determine the allocation of the monthly reward fund
| Key | Value Type | Description |
|---|---|---|
| rewardFunds | T_DICT | Reward fund values information to set. All values are required. |
| Key | Value Type | Description |
|---|---|---|
| iprep | T_INT | The percentage allocated to the P-Rep from the monthly reward fund |
| icps | T_INT | The percentage allocated to the CPS from the monthly reward fund |
| irelay | T_INT | The percentage allocated to the BTP relay from the monthly reward fund |
| ivoter | T_INT | The percentage allocated to the Voter from the monthly reward fund |
example
{"rewardFunds": {"iprep": "0x19", "icps": "0x17", "irelay": "0x1a", "ivoter": "0x1a"}}{
"jsonrpc": "2.0",
"id": 1234,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hx8f21e5c54f006b6a5d5fe65486908592151a7c57",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x12345",
"timestamp": "0x563a6cf330136",
"nid": "0x3",
"nonce": "0x0",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m5...",
"dataType": "call",
"data": {
"method": "registerProposal",
"params": {
"title": "Disqualify P-Rep A",
"description": "P-Rep A does not maintain node",
"type": "0x3",
"value": "0x7b2261646472657373223a2022.."
}
}
}
}- Cancel the network proposal
| Key | Value Type | Description |
|---|---|---|
| id | T_HASH | Transaction hash of network proposal to cancel |
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x30000",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "cancelProposal",
"params": {
"id": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
}
}
}
}- vote on the network proposal
| Key | Value Type | Description |
|---|---|---|
| id | T_HASH | Transaction hash of network proposal to vote |
| vote | T_INT | 0x0: Disagree, 0x1: Agree |
{
"jsonrpc": "2.0",
"id": 100,
"method": "icx_sendTransaction",
"params": {
"version": "0x3",
"from": "hxbe258ceb872e08851f1f59694dac2558708ece11",
"to": "cx0000000000000000000000000000000000000001",
"stepLimit": "0x30000",
"timestamp": "0x563a6cf330136",
"nonce": "0x1",
"signature": "VAia7YZ2Ji6igKWzjR2YsGa2m53nKPrfK7uXYW78QLE+ATehAVZPC40szvAiA6NEU5gCYB4c4qaQzqDh2ugcHgA=",
"dataType": "call",
"data": {
"method": "voteProposal",
"parmas": {
"id" : "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238",
"vote" : "0x1"
}
}
}
}Triggered on any successful acceptScore transaction.
@eventlog(indexed=1)
def Accepted(self, txHash: str):
passTriggered on any successful rejectScore transaction.
@eventlog(indexed=1)
def Rejected(self, txHash: str, reason: str):
passTriggered on vote transaction approving 'Step Price' network proposal.
@eventlog(indexed=1)
def StepPriceChanged(self, stepPrice: int):
passTriggered on vote transaction approving 'Step Costs' network proposal.
@eventlog(indexed=1)
def StepCostChanged(self, type: str, stepCost: int):
passTriggered on vote transaction approving 'Revision' network proposal.
@eventlog(indexed=0)
def RevisionChanged(self, revisionCode: int, revisionName: str):
passTriggered on vote transaction approving 'Malicious SCORE' network proposal.
@eventlog(indexed=0)
def MaliciousScore(self, address: Address, unfreeze: int):
passTriggered on vote transaction approving 'P-Rep Disqualification' network proposal.
@eventlog(indexed=0)
def PRepDisqualified(self, address: Address, success: bool, reason: str):
passTriggered on vote transaction approving 'I-Rep' network proposal.
@eventlog(indexed=1)
def IRepChanged(self, irep: int):
passTriggered on vote transaction approving 'Reward Fund Setting' network proposal.
@eventlog(indexed=0)
def RewardFundSettingChanged(self, iglobal: int):
passTriggered on vote transaction approving 'Reward Fund Allocation' network proposal.
@eventlog(indexed=0)
def RewardFundAllocationChanged(self, iprep: int, icps: int, irelay: int, ivoter: int):
passTriggered on any successful registerProposal transaction.
@eventlog(indexed=0)
def NetworkProposalRegistered(self, title: str, description: str, type: int, value: bytes, proposer: Address):
passTriggered on any successful cancelProposal transaction.
@eventlog(indexed=0)
def NetworkProposalCanceled(self, id: bytes):
passTriggered on any successful voteProposal transaction.
@eventlog(indexed=0)
def NetworkProposalVoted(self, id: bytes, vote: int, voter: Address):
passTriggered on any successful voteProposal transaction approving network proposal.
@eventlog(indexed=0)
def NetworkProposalApproved(self, id: bytes):
pass