Telos

free.tf

Contract

{
  "version": "eosio::abi/1.1",
  "types": [],
  "structs": [
    {
      "name": "configure",
      "base": "",
      "fields": [
        {
          "name": "max_accounts_per_hour",
          "type": "int16"
        },
        {
          "name": "stake_cpu_tlos_amount",
          "type": "int64"
        },
        {
          "name": "stake_net_tlos_amount",
          "type": "int64"
        }
      ]
    },
    {
      "name": "conflisted",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "total_accounts",
          "type": "uint32"
        },
        {
          "name": "max_accounts",
          "type": "uint32"
        },
        {
          "name": "stake_cpu_tlos_amount",
          "type": "uint64"
        },
        {
          "name": "stake_net_tlos_amount",
          "type": "uint64"
        },
        {
          "name": "ram_bytes",
          "type": "uint32"
        }
      ]
    },
    {
      "name": "create",
      "base": "",
      "fields": [
        {
          "name": "account_creator",
          "type": "name"
        },
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "owner_key",
          "type": "public_key"
        },
        {
          "name": "active_key",
          "type": "public_key"
        },
        {
          "name": "key_prefix",
          "type": "string"
        }
      ]
    },
    {
      "name": "createby",
      "base": "",
      "fields": [
        {
          "name": "account_creator",
          "type": "name"
        },
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "owner_key",
          "type": "public_key"
        },
        {
          "name": "active_key",
          "type": "public_key"
        }
      ]
    },
    {
      "name": "createconf",
      "base": "",
      "fields": [
        {
          "name": "account_creator",
          "type": "name"
        },
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "auth_creator",
          "type": "bool"
        },
        {
          "name": "owner_key",
          "type": "public_key"
        },
        {
          "name": "active_key",
          "type": "public_key"
        }
      ]
    },
    {
      "name": "freeacctcfg",
      "base": "",
      "fields": [
        {
          "name": "publisher",
          "type": "name"
        },
        {
          "name": "max_accounts_per_hour",
          "type": "int16"
        },
        {
          "name": "stake_cpu_tlos_amount",
          "type": "int64"
        },
        {
          "name": "stake_net_tlos_amount",
          "type": "int64"
        }
      ]
    },
    {
      "name": "freeacctlog",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "created_on",
          "type": "uint32"
        }
      ]
    },
    {
      "name": "removewlist",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        }
      ]
    },
    {
      "name": "rmvconflist",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        }
      ]
    },
    {
      "name": "setconflist",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "total_accounts",
          "type": "uint32"
        },
        {
          "name": "max_accounts",
          "type": "uint32"
        },
        {
          "name": "stake_cpu_tlos_amount",
          "type": "uint64"
        },
        {
          "name": "stake_net_tlos_amount",
          "type": "uint64"
        },
        {
          "name": "ram_bytes",
          "type": "uint32"
        }
      ]
    },
    {
      "name": "setwhitelist",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "total_accounts",
          "type": "uint32"
        },
        {
          "name": "max_accounts",
          "type": "uint32"
        }
      ]
    },
    {
      "name": "whitelisted",
      "base": "",
      "fields": [
        {
          "name": "account_name",
          "type": "name"
        },
        {
          "name": "total_accounts",
          "type": "uint32"
        },
        {
          "name": "max_accounts",
          "type": "uint32"
        }
      ]
    }
  ],
  "actions": [
    {
      "name": "configure",
      "type": "configure",
      "ricardian_contract": "This human-language contract for the telos.free action CONFIGURE is legally binding and can be used in the event of a dispute. Disputes shall be settled through arbitration by Telos Elected Arbitrators as described in the Telos Blockchain Network Operating Agreement and the Telos Blockchain Network Arbitration Rules and Procedures.\n\n### Parameters\n\nInput parameters:\n\n* **max_accounts_per_hour** (maximum number of accounts that the system will create in an hour)\n\n* **stake_cpu_tlos_amount** (amount of TLOS tokens to stake to each new account for CPU resources)\n\n* **stake_net_tlos_amount** (amount of TLOS tokens to stake to each new account for NET resources)\n\nImplied parameters:\n\n* **signer** (account name of the account signing this contract)\n\n### Intent\n\nINTENT. The intention of the authors and the invoker of this contract is to configure the number of new accounts that the `{{telos.free }}` account can create every 60 minutes as well as the number of TLOS tokens allocated to CPU and NET resources for each account. It shall have no other effect.\n\n### Contract Text\n\nI attest that I am the owner or authorized user of this account {{signer}} and that I intend to configure the `{{ telos.free }}` account to be able to create a maximum of {{max_accounts_per_hour}} new accounts per 60 minutes and that each account created will have {{stake_cpu_tlos_amount}} TLOS staked for CPU resources and {{stake_net_tlos_amount}} TLOS staked for NET resources."
    },
    {
      "name": "create",
      "type": "create",
      "ricardian_contract": "This human-language contract for the telos.free action CREATE is legally binding and can be used in the event of a dispute. Disputes shall be settled through arbitration by Telos Elected Arbitrators as described in the Telos Blockchain Network Operating Agreement and the Telos Blockchain Network Arbitration Rules and Procedures.\n\n### Parameters\n\nInput parameters:\n\n* **new_account** (12-character name of the new account\n\n* **owner_key** (owner public key used to associate with the account)\n\n* **active_key** (active public key used to associate with the account)\n\n* **key_prefix** (prefix for the owner and active public keys. Set to 'EOS' for chains using EOS public key prefixes)\n\n### Intent\n\nThe intention of the authors and the invoker of this contract is to create a new Telos account without cost to the invoker. **The authors intend that only one account ever per individual shall be created using this contract with future accounts being created from the invoker's one free account at invoker's own expense.** This contract shall have no other effect.\n\n### Body\n\nI attest that I am the intended owner or authorized user of the new account to be created: {{new_account}} and that I have not previously used this contract to create a free account for myself or for the same individual for whom I am creating {{new_account}}. **I agree that if I am found by a Telos Elected Arbitrator of having violated this limitation, that I may be held liable for damages in excess of the amount of TLOS used to create the accounts including the full cost of the arbitral trail and arbitrator's fees.**\n\nIn invoking this action, I intend to create the account {{new_account}} with the owner public key of {{owner_key}} and the active public key of {{active_key}} for which I control and safely retain the corresponding private keys. The key prefix for the Telos Blockchain Network is `EOS` and I have input {{key_prefix}}."
    },
    {
      "name": "createby",
      "type": "createby",
      "ricardian_contract": ""
    },
    {
      "name": "createconf",
      "type": "createconf",
      "ricardian_contract": ""
    },
    {
      "name": "removewlist",
      "type": "removewlist",
      "ricardian_contract": ""
    },
    {
      "name": "rmvconflist",
      "type": "rmvconflist",
      "ricardian_contract": ""
    },
    {
      "name": "setconflist",
      "type": "setconflist",
      "ricardian_contract": ""
    },
    {
      "name": "setwhitelist",
      "type": "setwhitelist",
      "ricardian_contract": ""
    }
  ],
  "tables": [
    {
      "name": "config",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "freeacctcfg"
    },
    {
      "name": "conflstacts",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "conflisted"
    },
    {
      "name": "freeacctlogs",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "freeacctlog"
    },
    {
      "name": "whitelstacts",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "whitelisted"
    }
  ],
  "ricardian_clauses": [
    {
      "id": "Intent",
      "body": "The intention of the authors and invoker of this smart contract is to enable the creation of a first Telos account for a person who has no current account. It solves the problem of needing an existing Telos account to create a new one. It is not intended to ever create more than one account per individual. Additional accounts should be created by Telos Members from their own accounts. Creating multiple new free accounts is abuse of this smart contract. \n\n It is also intended that authorized Members may configure the number of new accounts that the `{{telos.free }}` account can create every 60 minutes as well as the number of TLOS tokens allocated to CPU and NET resources for each account.\n\nAll actions of this smart contract are governed by the Telos Blockchain Network Core Governance Documents referenced below and inherits the defined terms of those documents. Any person invoking this contract accepts these documents as binding agreements in all matters related to the use or recording of information on the Telos Blockchain Network.\n\n**The \"Telos Blockchain Network Core Governance Documents\" are comprised of:**\n\n* [Telos Blockchain Network Operating Agreement](https://web.ipfs.telosfoundation.io/Qmexc2Uejr2f5f8bCQxTkt5CfTAC9szXLpG6mu6No7pmVs)\n\n* [Telos Blockchain Network Arbitration Rules and Procedures](https://web.ipfs.telosfoundation.io/QmWZEpPcudrAmQ9tzi8rCpdqAFfVjuAKc6vkpMRRa2hXsz) \n\n* [Telos Regproducer contract](https://web.ipfs.telosfoundation.io/QmSwzSPZf2xpvjKV6qWRodAVD8uYZpKZ1WfzTEA825RjfR) \n\n* [Telos Regarb contract](https://web.ipfs.telosfoundation.io/QmWXmx9KAZZ6dcxT67Ap4WHivfJ5s1nFgMFXpHyriCkNCR) \n\n* [Telos Block Producer Minimum Requirements](https://web.ipfs.telosfoundation.io/QmUvx45rtKr3H4SYf3Kei7AjEPEfKvxspBV4AXAEqWsyXU) \n\n* [Telos Arbitrator Minimum Requirements](https://web.ipfs.telosfoundation.io/QmfW8UGVUKLVsacy58eTmFLqLMaT1STxaycJFnCpNfhV82) \n\n* [Telos Blockchain Network Data Protection Policy](https://web.ipfs.telosfoundation.io/QmeYV6f4B5S2z3CycASNVHSLtMzcJzWRyam4Q1WzFAtsLe) \n\n**Translations:**\n\n* [TBNOA - Chinese language version](https://web.ipfs.telosfoundation.io/QmTWZG5moSZbH63Hk5oH4KRYshMDwH7kjyktqHa65jZUvA) \n\n* [TBNOA - Korean language version](https://web.ipfs.telosfoundation.io/QmVGMcfWsGqFi9TR1QEk6W8thRY4f9et9nX8WJLXQvWtqb)"
    },
    {
      "id": "Term",
      "body": "This Contract expires at the conclusion of code execution."
    },
    {
      "id": "Warranty",
      "body": "{{ name }} shall uphold its Obligations under this Contract in a timely and workmanlike manner, using knowledge and recommendations for performing the services which meet generally acceptable standards set forth by Telos Blockchain Network Block Producers."
    },
    {
      "id": "Default",
      "body": "The occurrence of any of the following shall constitute a material default under this Contract:"
    },
    {
      "id": "Remedies",
      "body": "In addition to any and all other rights a party may have available according to law, if a party defaults by failing to substantially perform any provision, term or condition of this Contract, the other party may terminate the Contract by providing written notice to the defaulting party. This notice shall describe with sufficient detail the nature of the default. The party receiving such notice shall promptly be removed from being a Block Producer and this Contract shall be automatically terminated.\""
    },
    {
      "id": "Force Majeure",
      "body": "If performance of this Contract or any obligation under this Contract is prevented, restricted, or interfered with by causes beyond either party's reasonable control (\\\"Force Majeure\\\"), and if the party unable to carry out its obligations gives the other party prompt written notice of such event, then the obligations of the party invoking this provision shall be suspended to the extent necessary by such event. The term Force Majeure shall include, without limitation, acts of God, fire, explosion, vandalism, storm or other similar occurrence, orders or acts of military or civil authority, or by national emergencies, insurrections, riots, or wars, or strikes, lock-outs, work stoppages, or supplier failures. The excused party shall use reasonable efforts under the circumstances to avoid or remove such causes of non-performance and shall proceed to perform with reasonable dispatch whenever such causes are removed or ceased. An act or omission shall be deemed within the reasonable control of a party if committed, omitted, or caused by such party, or its employees, officers, agents, or affiliates.\""
    },
    {
      "id": "Dispute Resolution",
      "body": "Any controversies or disputes arising out of or relating to this Contract will be resolved by binding arbitration under Telos Blockchain Network Arbitration Rules and Procedures. The arbitrator's award will be final.\""
    },
    {
      "id": "Entire Agreement",
      "body": "This Contract contains the entire agreement of the parties, and there are no other promises or conditions in any other agreement whether oral or written concerning the subject matter of this Contract. This Contract supersedes any prior written or oral agreements between the parties, except for the Telos Blockchain Network Core Governance Documents\""
    },
    {
      "id": "Severability",
      "body": "If any provision of this Contract will be held to be invalid or unenforceable for any reason, the remaining provisions will continue to be valid and enforceable. If a court finds that any provision of this Contract is invalid or unenforceable, but that by limiting such provision it would become valid and enforceable, then such provision will be deemed to be written, construed, and enforced as so limited.\""
    },
    {
      "id": "Governing Law",
      "body": "This Contract shall be construed in accordance with the Telos Blockchain Network Core Governance Documents, previously referenced."
    },
    {
      "id": "Notice",
      "body": "Any notice or communication required or permitted under this Contract shall be sufficiently given if delivered to a verifiable email address or to such other email address as one party may have publicly furnished in writing, or published on a broadcast contract provided by this blockchain for purposes of providing notices of this type."
    },
    {
      "id": "Waiver of Contractual Right",
      "body": "The failure of either party to enforce any provision of this Contract shall not be construed as a waiver or limitation of that party's right to subsequently enforce and compel strict compliance with every provision of this Contract."
    },
    {
      "id": "Arbitrator's Fees to Prevailing Party",
      "body": "In any action arising hereunder or any separate action pertaining to the validity of this Agreement, both sides shall pay half the initial cost of arbitration, and the prevailing party shall be awarded reasonable arbitrator's fees and costs."
    },
    {
      "id": "Construction and Interpretation",
      "body": "The rule requiring construction or interpretation against the drafter is waived. The document shall be deemed as if it were drafted by both parties in a mutual effort.\""
    },
    {
      "id": "In Witness Whereof",
      "body": "IN WITNESS WHEREOF, the parties hereto have caused this Agreement to be executed by themselves or their duly authorized representatives as of the date of execution, and authorized as proven by the cryptographic signature on the transaction that invokes this contract."
    }
  ],
  "error_messages": [],
  "abi_extensions": [],
  "variants": [],
  "action_results": []
}