{
"version": "eosio::abi/1.1",
"types": [],
"structs": [
{
"name": "accessgrant",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "contract",
"type": "name"
},
{
"name": "file",
"type": "string"
},
{
"name": "public_key",
"type": "public_key"
},
{
"name": "token",
"type": "symbol"
},
{
"name": "contractpays",
"type": "bool"
}
]
},
{
"name": "addcurrency",
"base": "",
"fields": [
{
"name": "currency",
"type": "symbol"
},
{
"name": "contract",
"type": "name"
}
]
},
{
"name": "admactivate",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "admdisable",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "admsetprice",
"base": "",
"fields": [
{
"name": "price",
"type": "asset"
},
{
"name": "action",
"type": "string"
}
]
},
{
"name": "approveleave",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "balance",
"base": "",
"fields": [
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "currency_t",
"base": "",
"fields": [
{
"name": "currency",
"type": "symbol"
},
{
"name": "contract",
"type": "name"
}
]
},
{
"name": "dacrewards",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "currency",
"type": "symbol"
}
]
},
{
"name": "delegate",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "value",
"type": "asset"
}
]
},
{
"name": "delegation",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "feebal",
"base": "",
"fields": [
{
"name": "funds",
"type": "asset"
},
{
"name": "lifetime",
"type": "asset"
}
]
},
{
"name": "founderbal",
"base": "",
"fields": [
{
"name": "founder",
"type": "name"
},
{
"name": "funds",
"type": "asset"
},
{
"name": "locked_until",
"type": "uint32"
}
]
},
{
"name": "founderstake",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "quantity",
"type": "asset"
},
{
"name": "locked_until",
"type": "uint32"
}
]
},
{
"name": "founderunsta",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "quantity",
"type": "asset"
}
]
},
{
"name": "freebal",
"base": "",
"fields": [
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "global",
"base": "",
"fields": [
{
"name": "unique_files",
"type": "uint64"
},
{
"name": "files",
"type": "float64"
},
{
"name": "registered_nodes",
"type": "uint64"
},
{
"name": "active_nodes",
"type": "uint64"
},
{
"name": "dac_activated",
"type": "bool"
}
]
},
{
"name": "holderpayinfo",
"base": "",
"fields": [
{
"name": "last_claimed_at",
"type": "time_point"
},
{
"name": "last_claim_balance",
"type": "asset"
},
{
"name": "user",
"type": "name"
}
]
},
{
"name": "init",
"base": "",
"fields": []
},
{
"name": "nodebal",
"base": "",
"fields": [
{
"name": "funds",
"type": "asset"
},
{
"name": "lifetime",
"type": "asset"
}
]
},
{
"name": "nodedelegat",
"base": "",
"fields": [
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "nodeinfo",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "node_key",
"type": "public_key"
},
{
"name": "url",
"type": "string"
},
{
"name": "is_active",
"type": "bool"
},
{
"name": "files",
"type": "float64"
},
{
"name": "bond",
"type": "asset"
},
{
"name": "wants_to_leave",
"type": "bool"
},
{
"name": "cleared_for_leaving",
"type": "bool"
}
]
},
{
"name": "nodepayinfo",
"base": "",
"fields": [
{
"name": "last_claimed_at",
"type": "time_point"
},
{
"name": "last_claim_balance",
"type": "asset"
}
]
},
{
"name": "noderewards",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "currency",
"type": "symbol"
}
]
},
{
"name": "nodetokenbal",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "nodewithdraw",
"base": "",
"fields": [
{
"name": "last_claimed_at",
"type": "time_point"
},
{
"name": "last_claim_balance",
"type": "asset"
},
{
"name": "user",
"type": "name"
}
]
},
{
"name": "peerappr",
"base": "",
"fields": [
{
"name": "sender",
"type": "name"
},
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "peerapproval",
"base": "",
"fields": [
{
"name": "node",
"type": "name"
},
{
"name": "approved_by",
"type": "name[]"
},
{
"name": "created_at",
"type": "uint32"
}
]
},
{
"name": "peerdisappr",
"base": "",
"fields": [
{
"name": "sender",
"type": "name"
},
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "peerdisapproval",
"base": "",
"fields": [
{
"name": "node",
"type": "name"
},
{
"name": "disapproved_by",
"type": "name[]"
},
{
"name": "created_at",
"type": "uint32"
}
]
},
{
"name": "postbond",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "amount",
"type": "asset"
}
]
},
{
"name": "prepare",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "currency",
"type": "symbol"
}
]
},
{
"name": "read_pricefeed",
"base": "",
"fields": [
{
"name": "node",
"type": "name"
},
{
"name": "price",
"type": "asset"
}
]
},
{
"name": "readprice",
"base": "",
"fields": [
{
"name": "money",
"type": "asset"
}
]
},
{
"name": "regnode",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "node_key",
"type": "public_key"
},
{
"name": "url",
"type": "string"
}
]
},
{
"name": "setprice",
"base": "",
"fields": [
{
"name": "node",
"type": "name"
},
{
"name": "price",
"type": "asset"
},
{
"name": "action",
"type": "string"
}
]
},
{
"name": "stake",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "quantity",
"type": "asset"
}
]
},
{
"name": "stakedbal",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "funds",
"type": "asset"
}
]
},
{
"name": "store",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "contract",
"type": "name"
},
{
"name": "file",
"type": "string"
},
{
"name": "data",
"type": "string"
},
{
"name": "auditable",
"type": "bool"
},
{
"name": "token",
"type": "symbol"
},
{
"name": "contractpays",
"type": "bool"
}
]
},
{
"name": "store_pricefeed",
"base": "",
"fields": [
{
"name": "node",
"type": "name"
},
{
"name": "price",
"type": "asset"
}
]
},
{
"name": "storeprice",
"base": "",
"fields": [
{
"name": "money",
"type": "asset"
}
]
},
{
"name": "undelegate",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "value",
"type": "asset"
}
]
},
{
"name": "unregnode",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
}
]
},
{
"name": "unstake",
"base": "",
"fields": [
{
"name": "user",
"type": "name"
},
{
"name": "quantity",
"type": "asset"
}
]
},
{
"name": "vote",
"base": "",
"fields": [
{
"name": "dappcontract",
"type": "name"
},
{
"name": "votees",
"type": "name[]"
}
]
},
{
"name": "voterinfo",
"base": "",
"fields": [
{
"name": "dappcontract",
"type": "name"
},
{
"name": "nodes",
"type": "name[]"
},
{
"name": "offset",
"type": "uint32"
}
]
}
],
"actions": [
{
"name": "accessgrant",
"type": "accessgrant",
"ricardian_contract": ""
},
{
"name": "addcurrency",
"type": "addcurrency",
"ricardian_contract": ""
},
{
"name": "admactivate",
"type": "admactivate",
"ricardian_contract": ""
},
{
"name": "admdisable",
"type": "admdisable",
"ricardian_contract": ""
},
{
"name": "admsetprice",
"type": "admsetprice",
"ricardian_contract": ""
},
{
"name": "approveleave",
"type": "approveleave",
"ricardian_contract": ""
},
{
"name": "dacrewards",
"type": "dacrewards",
"ricardian_contract": ""
},
{
"name": "delegate",
"type": "delegate",
"ricardian_contract": ""
},
{
"name": "founderstake",
"type": "founderstake",
"ricardian_contract": ""
},
{
"name": "founderunsta",
"type": "founderunsta",
"ricardian_contract": ""
},
{
"name": "init",
"type": "init",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Initialize the priveos contract\nsummary: 'Initialize the priveos contract with global singletons and distribute tokens to the node operator pool'\nicon: https://ipfs.eternum.io/ipfs/QmaiQujFe2U6padXesF9ehcMvKgc2zf24ZkFVhRoyXdWFc/priveos.png#e62d312e69b5b1cd46894e147e87a82dad3d181087b72de9c2c084077bd82aef\n---\n\nThe priveos contract initializes itself.\n\nAction may only be called once upon lifetime of contract.\n\nFollowing global singleton values are set:\n\n1. unique_files=0\n1. files=0\n1. registered_nodes=0\n1. dac_activated=false\n\nIt creates a global singleton `node_delegation_singleton` storing the amount of tokens dedicated to node operators set in `delegation_amount` and distributes that amount to the it.\n\nIn case that the global singleton `free_balance_singleton` exists, that amount is subtracted from it by calling the `free_priveos_balance_sub` action with `delegation_amount`."
},
{
"name": "noderewards",
"type": "noderewards",
"ricardian_contract": ""
},
{
"name": "peerappr",
"type": "peerappr",
"ricardian_contract": ""
},
{
"name": "peerdisappr",
"type": "peerdisappr",
"ricardian_contract": ""
},
{
"name": "postbond",
"type": "postbond",
"ricardian_contract": ""
},
{
"name": "prepare",
"type": "prepare",
"ricardian_contract": ""
},
{
"name": "regnode",
"type": "regnode",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Register as a Node Operator\nsummary: 'Register {{nowrap owner}} account as a node operator'\nicon: https://ipfs.eternum.io/ipfs/QmaiQujFe2U6padXesF9ehcMvKgc2zf24ZkFVhRoyXdWFc/priveos.png#e62d312e69b5b1cd46894e147e87a82dad3d181087b72de9c2c084077bd82aef\n---\n\n{{owner}} registers or updates itself as a node on the priveos network.\n\nIt is required to additionally set a {{node_key}} (public key) used for encryption in information exchange as well as a {{url}} pointing to its broker component.\n\n## Unknown/new node\nIn case the node was not previously registered within the contract, default values are attached to it:\n\n1. the node will be set to inactive\n1. the node is initialized with a bond of 0\n\nIn case the node has been successfully added to the table, the global stats for registered nodes are increased by 1.\n\nIn case that the node does not have a balance entry in the nodetoken_balances table yet, an entry is created with funds set to 0.\n\nFinally, the registration fee is charged by calling the actions `sub_balance` as well as `add_fee_balance`.\n\n## Node known already/Update mechanism\nIn case the {{owner}} is already stored inside the nodes table, the properties {{url}} and {{node_key}} are updated based on the action parameters. Additionally, the properties `wants_to_leave` and `cleared_for_leaving` are overwritten and set to false to indicate, that the node does no longer want to leave the system."
},
{
"name": "setprice",
"type": "setprice",
"ricardian_contract": ""
},
{
"name": "stake",
"type": "stake",
"ricardian_contract": ""
},
{
"name": "store",
"type": "store",
"ricardian_contract": ""
},
{
"name": "undelegate",
"type": "undelegate",
"ricardian_contract": ""
},
{
"name": "unregnode",
"type": "unregnode",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Indicate the wish to unregister as node operator\nsummary: '{{nowrap owner}} no longer wants to be a node operator'\nicon: https://ipfs.eternum.io/ipfs/QmaiQujFe2U6padXesF9ehcMvKgc2zf24ZkFVhRoyXdWFc/priveos.png#e62d312e69b5b1cd46894e147e87a82dad3d181087b72de9c2c084077bd82aef\n---\n\n'{{nowrap owner}} no longer wants to be a node operator on the privEOS network.\nSets the node to inactive (is_active -> false) and sets the flag wants_to_leave to true."
},
{
"name": "unstake",
"type": "unstake",
"ricardian_contract": ""
},
{
"name": "vote",
"type": "vote",
"ricardian_contract": ""
}
],
"tables": [
{
"name": "balances",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "balance"
},
{
"name": "currencies",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "currency_t"
},
{
"name": "delegation",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "delegation"
},
{
"name": "feebal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "feebal"
},
{
"name": "founderbal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "founderbal"
},
{
"name": "freebal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "freebal"
},
{
"name": "global",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "global"
},
{
"name": "holderpay",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "holderpayinfo"
},
{
"name": "nodebal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodebal"
},
{
"name": "nodedelegat",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodedelegat"
},
{
"name": "nodepay",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodepayinfo"
},
{
"name": "nodes",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodeinfo"
},
{
"name": "nodetokenbal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodetokenbal"
},
{
"name": "nodewithdraw",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "nodewithdraw"
},
{
"name": "peerapproval",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "peerapproval"
},
{
"name": "peerdisappr",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "peerdisapproval"
},
{
"name": "readprice",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "readprice"
},
{
"name": "readpricef",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "read_pricefeed"
},
{
"name": "stakedbal",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "stakedbal"
},
{
"name": "storeprice",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "storeprice"
},
{
"name": "storepricef",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "store_pricefeed"
},
{
"name": "voters",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "voterinfo"
}
],
"ricardian_clauses": [],
"error_messages": [],
"abi_extensions": [],
"variants": [],
"action_results": []
}