Vaulta

priveosrules

Contract

{
  "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": []
}