
{ "version": "eosio::abi/1.1", "types": [], "structs": [ { "name": "accperm", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "public_key", "type": "string" }, { "name": "permissions", "type": "string" } ] }, { "name": "addaccperm", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "account", "type": "name" }, { "name": "publicKey", "type": "string" }, { "name": "permissions", "type": "string" } ] }, { "name": "addblckbyte", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "byteInHex", "type": "string" }, { "name": "packedTransaction", "type": "bytes" } ] }, { "name": "addblock", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "block", "type": "blockheaders" } ] }, { "name": "addcandidate", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "candidate", "type": "name" }, { "name": "publicKey", "type": "string" }, { "name": "secretHash", "type": "checksum256" }, { "name": "producerType", "type": "uint8" }, { "name": "softwareVersion", "type": "uint32" } ] }, { "name": "addencryptip", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "name", "type": "name" }, { "name": "encryptedIps", "type": "string[]" } ] }, { "name": "addhistsig", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "producerToValidade", "type": "name" }, { "name": "verifySignature", "type": "string" }, { "name": "packedTransaction", "type": "bytes" } ] }, { "name": "addreseats", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "seatsToAdd", "type": "reservedseat[]" } ] }, { "name": "addsecret", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "secret", "type": "checksum256" } ] }, { "name": "addversig", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "account", "type": "name" }, { "name": "blockHash", "type": "string" }, { "name": "verifySignature", "type": "string" }, { "name": "packedTransaction", "type": "bytes" } ] }, { "name": "alterconfig", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "infoChangeJson", "type": "configchange" } ] }, { "name": "blacklist", "base": "", "fields": [ { "name": "key", "type": "name" } ] }, { "name": "blacklistprod", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "blockcheck", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "block_hash", "type": "string" }, { "name": "timestamp", "type": "uint64" } ] }, { "name": "blockheaders", "base": "", "fields": [ { "name": "producer", "type": "string" }, { "name": "block_hash", "type": "string" }, { "name": "previous_block_hash", "type": "string" }, { "name": "last_trx_sequence_number", "type": "uint64" }, { "name": "sequence_number", "type": "uint64" }, { "name": "timestamp", "type": "uint64" }, { "name": "transactions_count", "type": "uint64" }, { "name": "producer_signature", "type": "string" }, { "name": "merkletree_root_hash", "type": "string" }, { "name": "is_verified", "type": "bool" }, { "name": "is_latest_block", "type": "bool" }, { "name": "block_size_in_bytes", "type": "uint64" } ] }, { "name": "blockscount", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "num_blocks_failed", "type": "uint8" }, { "name": "num_blocks_produced", "type": "uint8" } ] }, { "name": "candidates", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "public_key", "type": "string" }, { "name": "producer_type", "type": "uint8" }, { "name": "secret_hash", "type": "checksum256" }, { "name": "secret", "type": "checksum256" }, { "name": "work_duration_in_seconds", "type": "uint64" } ] }, { "name": "changecprod", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "client", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "public_key", "type": "string" }, { "name": "sidechain_creation_timestamp", "type": "uint64$" } ] }, { "name": "configchain", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "infoJson", "type": "contractinfo" }, { "name": "reservedSeats", "type": "reservedseat[]" }, { "name": "softwareVersion", "type": "uint32" }, { "name": "startingBlock", "type": "blockheaders$" } ] }, { "name": "configchange", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "max_payment_per_block_validator_producers", "type": "uint64" }, { "name": "max_payment_per_block_history_producers", "type": "uint64" }, { "name": "max_payment_per_block_full_producers", "type": "uint64" }, { "name": "min_payment_per_block_validator_producers", "type": "uint64" }, { "name": "min_payment_per_block_history_producers", "type": "uint64" }, { "name": "min_payment_per_block_full_producers", "type": "uint64" }, { "name": "min_candidature_stake", "type": "uint64" }, { "name": "number_of_validator_producers_required", "type": "uint32" }, { "name": "number_of_history_producers_required", "type": "uint32" }, { "name": "number_of_full_producers_required", "type": "uint32" }, { "name": "block_time_in_seconds", "type": "uint32" }, { "name": "num_blocks_between_settlements", "type": "uint32" }, { "name": "block_size_in_bytes", "type": "uint64" }, { "name": "config_changed_time_in_seconds", "type": "uint64" } ] }, { "name": "contractinfo", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "max_payment_per_block_validator_producers", "type": "uint64" }, { "name": "max_payment_per_block_history_producers", "type": "uint64" }, { "name": "max_payment_per_block_full_producers", "type": "uint64" }, { "name": "min_payment_per_block_validator_producers", "type": "uint64" }, { "name": "min_payment_per_block_history_producers", "type": "uint64" }, { "name": "min_payment_per_block_full_producers", "type": "uint64" }, { "name": "min_candidature_stake", "type": "uint64" }, { "name": "number_of_validator_producers_required", "type": "uint32" }, { "name": "number_of_history_producers_required", "type": "uint32" }, { "name": "number_of_full_producers_required", "type": "uint32" }, { "name": "candidature_phase_duration_in_seconds", "type": "uint32" }, { "name": "secret_sending_phase_duration_in_seconds", "type": "uint32" }, { "name": "ip_sending_phase_duration_in_seconds", "type": "uint32" }, { "name": "ip_retrieval_phase_duration_in_seconds", "type": "uint32" }, { "name": "candidature_phase_end_date_in_seconds", "type": "uint32" }, { "name": "secret_sending_phase_end_date_in_seconds", "type": "uint32" }, { "name": "ip_sending_phase_end_date_in_seconds", "type": "uint32" }, { "name": "ip_retrieval_phase_end_date_in_seconds", "type": "uint32" }, { "name": "block_time_in_seconds", "type": "uint32" }, { "name": "num_blocks_between_settlements", "type": "uint32" }, { "name": "block_size_in_bytes", "type": "uint64" } ] }, { "name": "contractst", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "has_chain_started", "type": "bool" }, { "name": "is_configuration_phase", "type": "bool" }, { "name": "is_candidature_phase", "type": "bool" }, { "name": "is_secret_sending_phase", "type": "bool" }, { "name": "is_ip_sending_phase", "type": "bool" }, { "name": "is_ip_retrieving_phase", "type": "bool" }, { "name": "is_production_phase", "type": "bool" } ] }, { "name": "currentprod", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "production_start_date_in_seconds", "type": "uint64" }, { "name": "has_produced_block", "type": "bool" } ] }, { "name": "endservice", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "exitrequest", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "account", "type": "name" } ] }, { "name": "histval", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "block_hash", "type": "string" }, { "name": "signed_producers", "type": "name[]" }, { "name": "verify_signatures", "type": "string[]" }, { "name": "packed_transaction", "type": "bytes" }, { "name": "block_byte_in_hex", "type": "string" } ] }, { "name": "histvalidate", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "blockHash", "type": "string" } ] }, { "name": "iamready", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" } ] }, { "name": "ipaddress", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "public_key", "type": "string" }, { "name": "encrypted_ips", "type": "string[]" } ] }, { "name": "pendingrewards", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "reward", "type": "uint64" } ] }, { "name": "producers", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "public_key", "type": "string" }, { "name": "producer_type", "type": "uint8" }, { "name": "work_duration_in_seconds", "type": "uint64" }, { "name": "sidechain_start_date_in_seconds", "type": "uint64" }, { "name": "is_ready_to_produce", "type": "bool" } ] }, { "name": "rcandidate", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "name", "type": "name" } ] }, { "name": "remaccperm", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "account", "type": "name" } ] }, { "name": "removeblisted", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" } ] }, { "name": "reqhistval", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "blockHash", "type": "string" } ] }, { "name": "reservedseat", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "producer_type", "type": "uint8" } ] }, { "name": "resetreward", "base": "", "fields": [ { "name": "sidechain", "type": "name" }, { "name": "claimer", "type": "name" } ] }, { "name": "rreservseats", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "seatsToRemove", "type": "name[]" } ] }, { "name": "secrettime", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "startcandtime", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "startchain", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "publicKey", "type": "string" } ] }, { "name": "startprodtime", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "startrectime", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "startsendtime", "base": "", "fields": [ { "name": "owner", "type": "name" } ] }, { "name": "stopproducing", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" } ] }, { "name": "updatekey", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "publicKey", "type": "string" } ] }, { "name": "verifyblock", "base": "", "fields": [ { "name": "owner", "type": "name" }, { "name": "producer", "type": "name" }, { "name": "blockHash", "type": "string" } ] }, { "name": "verifysig", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "block_hash", "type": "string" }, { "name": "verify_signature", "type": "string" }, { "name": "packed_transaction", "type": "bytes" } ] }, { "name": "version", "base": "", "fields": [ { "name": "key", "type": "name" }, { "name": "software_version", "type": "uint32" } ] }, { "name": "warnings", "base": "", "fields": [ { "name": "key", "type": "uint64" }, { "name": "producer", "type": "name" }, { "name": "warning_type", "type": "uint8" }, { "name": "warning_creation_date_in_seconds", "type": "uint64" }, { "name": "producer_exit_date_in_seconds", "type": "uint64" } ] } ], "actions": [ { "name": "addaccperm", "type": "addaccperm", "ricardian_contract": "" }, { "name": "addblckbyte", "type": "addblckbyte", "ricardian_contract": "" }, { "name": "addblock", "type": "addblock", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add Block\nsummary: 'Inserts sidechain block header'\nicon:\n---\n\nThis action will allow the selected producers to submit block headers to the smart contract. This action will receive the {{ owner }}, the {{ produer }} and a {{ block }} as a json. This action will validade the block and all the data submited by the {{ producer }}, and only after the validation will the data be inserted in to the block multi-index table that will be paid by the {{ producer }}." }, { "name": "addcandidate", "type": "addcandidate", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add candidate to chain\nsummary: 'Adds a candidate to the sidechain'\nicon:\n---\n\nThis transaction will insert or update the candidatures of the producers. This action will receive the {{ owner }}, the {{ candidate }}, the {{ worktimeinseconds }}, his {{ publickey }} and the {{ secrethash }}. It will also validate every parameter and only then, if the candidature is valid, it will insert the values into the table. This action is only available after the candidature time is started for the first time. The ram cost will be paid by the {{ candidate }}." }, { "name": "addencryptip", "type": "addencryptip", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add encrypted ip\nsummary: 'Inserts encrypted ips by the producer'\nicon:\n---\n\nThis action allow the producer to insert the ecrypted ips in the dedicated multi index table. This action will receive the {{ owner }}, {{ producer }}, and a list of encrypted ip's to submit. It also will validate every paramenter and only then, if valid, it will insert the values in the multi index table. The inserted list of encrypted ips will allow the other producers to decrypth and obtain the other producer ip for connection proposes. The ram cost will be paid by the producer." }, { "name": "addhistsig", "type": "addhistsig", "ricardian_contract": "" }, { "name": "addreseats", "type": "addreseats", "ricardian_contract": "" }, { "name": "addsecret", "type": "addsecret", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add secret\nsummary: 'Inserts producer's secret'\nicon:\n---\n\nThis action allow the candidates to insert the secrets in the candidate multi index table. This action will receive the {{ owner }}, the {{ producer }}, and a {{ secret }}. It also will validate the paramenters and only then, if valid, it will insert the secret in the multi index table. This secret will be used to randomly choose the candidates for the block production. The ram cost will be paid by the {{ producer }}." }, { "name": "addversig", "type": "addversig", "ricardian_contract": "" }, { "name": "alterconfig", "type": "alterconfig", "ricardian_contract": "" }, { "name": "blacklistprod", "type": "blacklistprod", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Black list bad producer\nsummary: 'Insert bad producer in contract black list'\nicon:\n---\n\nAction ran in the smartcontract, that verifies if bad producer actualy did a bad job and them insert in smart contract multi index table for future proof of the bad behavior. This action will receive as paramenter the {{ owner }} of the chain, the {{ producer }} to be able to sucessfully insert the bad producer." }, { "name": "changecprod", "type": "changecprod", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Change current producer\nsummary: 'Updates sidechain to current producer'\nicon:\n---\n\nThis action will be triggered when the deffered transction is executed. It will be responsible for the producer changing, for the state changing, the block count and when it is time for the settlement it will reward the producers, kick the bad producers and for all the block and block count managing. All the ram needed for the multi index table managing will be paid by {{ owner }}." }, { "name": "configchain", "type": "configchain", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Configure BlockBase Chain\nsummary: 'Configure the requested blockbase service,'\nicon:\n---\n\nInsert the {{ owner }} and the {{ configurations }} json as parameter. \n\nThe {{ owner }} name will used to identify his chain, in the smart contract and the json will be used to store the information in a multi-index table to be visible to all interested parties. The ram cost will be paid by the {{ owner }}." }, { "name": "endservice", "type": "endservice", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: End Service\nsummary: 'Allows confirmation of latest block header added to sidechain'\nicon:\n---\n\nThis action will allow the {{ owner }} to end the service of the chain. This action enables a sidechain owner to delete the sidechain and clear the tables of their data. This action will receive and be paid by the {{ owner }}" }, { "name": "exitrequest", "type": "exitrequest", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Exit Request\nsummary: 'Enables producer request to leave sidechain'\nicon:\n---\n\nThis action allow the {{ producer }} to submit a request to leave the chain. This action will receive the {{ owner }} and the {{ producer }}. It will validate both the {{ owner }} and the {{ producer }}, and only if it is valid it will be executed and therefore the {{ worktimeinseconds}} will be updated for the next settlement." }, { "name": "histvalidate", "type": "histvalidate", "ricardian_contract": "" }, { "name": "iamready", "type": "iamready", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Ready check\nsummary: 'Enables producer to signal they are ready for production'\nicon:\n---\n\nThis action will allow the {{ producer }} to notify the contract that he is ready to produce blocks. This action will receive the {{ owner }} and the {{ producer }} checking if all is right for the block production. The {{ producer }} won't be required to produce blocks, unless if he is ready. The Ram cost of this action will be paid by the {{ producer }}." }, { "name": "rcandidate", "type": "rcandidate", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Remove Candidate\nsummary: 'Remove candidate from sidechain'\nicon:\n---\n\nThis action will allow the user to remove is candidature from the sidechain. This action will receive the {{ owner }} and the {{ producer }}. This action will only allow the non selected {{ candidate }} to remove his candidature. Also it will validate the paramenters receive and only them it will save them in the multi index table." }, { "name": "remaccperm", "type": "remaccperm", "ricardian_contract": "" }, { "name": "removeblisted", "type": "removeblisted", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Black List Removal \nsummary: 'Remove producer from sidechain blacklist'\nicon:\n---\n\nThis action will allow the {{ owner }} to remove a {{ producer }} from the blacklist of his sidechain. This action will receive the {{ owner }} and the {{ producer }}, beeing only able to be executed by the {{ owner }} This action will check if the {{ producer }} is eligeble for removal from the blacklist and them, if verified, he will be removed from the multi index table. Beeing the ram payer of this action the {{ owner }}." }, { "name": "reqhistval", "type": "reqhistval", "ricardian_contract": "" }, { "name": "resetreward", "type": "resetreward", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Reset Reward\nsummary: 'Reset candidate reward'\nicon:\n---\n\nThis action will be responsible for the rewards reset. It will receive the {{ owner }} and the {{ producer }} and will be called by the token account This action will reset the reward from a {{ producer }} by modifying the multi index table." }, { "name": "rreservseats", "type": "rreservseats", "ricardian_contract": "" }, { "name": "secrettime", "type": "secrettime", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start Secret time \nsummary: 'Starts the period where candidates must send their secret string'\nicon:\n---\n\nTriggered when the cadidature time ends. Changes the states from candidature time to secret time, allowing the selected producers to send their secret to qualify for the productors selection.\n\nWhen this action is executed, the candidates will be choosen and it will schedule a deferred transaction to be executed when the time defined in the configuration ends." }, { "name": "startcandtime", "type": "startcandtime", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start Candidature time \nsummary: 'Starts the period where candidates can join the chain'\nicon:\n---\n\nAction triggered after the {{ owner }} configures the chain. \n\nThe state will change from configure time to candidature time, allowing the interested producers to submit their candidature.\n\nLaunches a scheduled deferred transaction to be executed when the time defined in the configuration ends." }, { "name": "startchain", "type": "startchain", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start BlockBase Chain\nsummary: 'Start the blockbase service'\nicon:\n---\n\nThe {{ owner }} inserts his public key and his account name as parameters. \n\nHis account name will be used to identify his chain in the smart contract and his {{ publickey }} will be used to be visible to participants and to use futher down the line. The {{ owner }} and states data will be saved in a multi-index table, where the ram cost will be paid by the {{ owner }}." }, { "name": "startprodtime", "type": "startprodtime", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start production time\nsummary: 'Starts the sidechain production'\nicon:\n---\n\nTriggered when the receive time ends and the transaction is executed. This action will change the states from ip receive time to production time, starting the service and allowing the producers to produce their blocks with the requested DB transactions.\n\nThe ram cost will be paid by the {{ owner }}." }, { "name": "startrectime", "type": "startrectime", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start ip recieve time\nsummary: 'Starts the period where candidates can check tables with encrypted ips and get ready for production'\nicon:\n---\n\nTriggered when the ip send time ends and the transaction is executed. This action will change the states from ip send time to ip receive time, giving the producers time to decrypt the ips they must use and to execute the ready action making them ready for production. \n\nLaunches a scheduled deferred transaction to be executed when the time defined in the configuration ends." }, { "name": "startsendtime", "type": "startsendtime", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Start ip send time\nsummary: 'Starts the period where candidates must send their encrypted ip'\nicon:\n---\n\nTriggered when the secret time ends and the transaction is executed. Changes the states from secret time to ip send time, allowing the selected producers to submit their encrypted ip addresses.\n\nLaunches a scheduled deferred transaction to be executed when the time defined in the configuration ends." }, { "name": "stopproducing", "type": "stopproducing", "ricardian_contract": "" }, { "name": "updatekey", "type": "updatekey", "ricardian_contract": "" }, { "name": "verifyblock", "type": "verifyblock", "ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Verify block header\nsummary: 'Allows confirmation of latest block header added to sidechain'\nicon:\n---\n\nAction ran by a multi sig transaction sent by the producers to confirm that the block header is valid. This action will receive as paramenter the {{ owner }} of the chain, the {{ producer }} and the {{ blockhash }} of the submited block." } ], "tables": [ { "name": "accperm", "index_type": "i64", "key_names": [], "key_types": [], "type": "accperm" }, { "name": "blacklist", "index_type": "i64", "key_names": [], "key_types": [], "type": "blacklist" }, { "name": "blockcheck", "index_type": "i64", "key_names": [], "key_types": [], "type": "blockcheck" }, { "name": "blockheaders", "index_type": "i64", "key_names": [], "key_types": [], "type": "blockheaders" }, { "name": "blockscount", "index_type": "i64", "key_names": [], "key_types": [], "type": "blockscount" }, { "name": "candidates", "index_type": "i64", "key_names": [], "key_types": [], "type": "candidates" }, { "name": "client", "index_type": "i64", "key_names": [], "key_types": [], "type": "client" }, { "name": "configchange", "index_type": "i64", "key_names": [], "key_types": [], "type": "configchange" }, { "name": "contractinfo", "index_type": "i64", "key_names": [], "key_types": [], "type": "contractinfo" }, { "name": "contractst", "index_type": "i64", "key_names": [], "key_types": [], "type": "contractst" }, { "name": "currentprod", "index_type": "i64", "key_names": [], "key_types": [], "type": "currentprod" }, { "name": "histval", "index_type": "i64", "key_names": [], "key_types": [], "type": "histval" }, { "name": "ipaddress", "index_type": "i64", "key_names": [], "key_types": [], "type": "ipaddress" }, { "name": "producers", "index_type": "i64", "key_names": [], "key_types": [], "type": "producers" }, { "name": "reservedseat", "index_type": "i64", "key_names": [], "key_types": [], "type": "reservedseat" }, { "name": "rewards", "index_type": "i64", "key_names": [], "key_types": [], "type": "pendingrewards" }, { "name": "verifysig", "index_type": "i64", "key_names": [], "key_types": [], "type": "verifysig" }, { "name": "version", "index_type": "i64", "key_names": [], "key_types": [], "type": "version" }, { "name": "warnings", "index_type": "i64", "key_names": [], "key_types": [], "type": "warnings" } ], "ricardian_clauses": [ { "id": "Data Storage", "body": "---\nspec-version: 0.0.1\ntitle: General Data Storage\nsummary: This smart contract will store data added by the user. The user consents to the storage of this data by signing the transaction.\nicon:" }, { "id": "Data Usage", "body": "---\nspec-version: 0.0.1\ntitle: General Data Use\nsummary: This smart contract will store user data. The smart contract will not use the stored data for any purpose outside store and delete.\nicon:" }, { "id": "Data Ownership", "body": "---\nspec-version: 0.0.1\ntitle: Data Ownership\nsummary: The user of this smart contract verifies that the data is owned by the smart contract, and that the smart contract can use the data in accordance to the terms defined in the Ricardian Contract.\nicon:" }, { "id": "Data Distirbution", "body": "---\nspec-version: 0.0.1\ntitle: Data Ownership\nsummary: The smart contract promises to not actively share or distribute the address data. The user of the smart contract understands that data stored in a multi index table is not private data and can be accessed by any user of the blockchain. \nicon:" }, { "id": "Data Future", "body": "---\nspec-version: 0.0.1\ntitle: Data Ownership\nsummary: The smart contract promises to only use the data in accordance of the terms defined in the Ricardian Contract, now and at all future dates. \nicon:" } ], "error_messages": [], "abi_extensions": [], "variants": [], "action_results": [] }