├── Deletion diff from EOSIO
├── eosio.system-delband-rc.md
├── eosio.system-deleteauth-rc.md
├── eosio.system-global-rc.md
├── eosio.system-linkauth-rc.md
├── eosio.system-onerror-rc.md
├── eosio.system-producers-rc.md
├── eosio.system-rammarket-rc.md
├── eosio.system-refunds-rc.md
├── eosio.system-regproxy-rc.md
├── eosio.system-reqauth-rc.md
├── eosio.system-rmvproducer-rc.md
├── eosio.system-setabi-rc.md
├── eosio.system-setalimits-rc.md
├── eosio.system-setcode-rc.md
├── eosio.system-setglimits-rc.md
├── eosio.system-setparams-rc.md
├── eosio.system-setpriv-rc.md
├── eosio.system-setram-rc.md
├── eosio.system-unlinkauth-rc.md
├── eosio.system-updateauth-rc.md
├── eosio.system-userres-rc.md
└── eosio.system-voters-rc.md
├── README.md
├── checksums.txt
├── eosio.system
├── abi
│ ├── eosio.system.jungle.abi
│ ├── eosio.system.kylin.abi
│ └── eosio.system.mainnet.abi
├── eosio.system-bidname-rc.md
├── eosio.system-buyram-rc.md
├── eosio.system-buyrambytes-rc.md
├── eosio.system-buyrex-rc.md
├── eosio.system-canceldelay-rc.md
├── eosio.system-claimrewards-rc.md
├── eosio.system-clause-constitution-rc.md
├── eosio.system-closerex-rc.md
├── eosio.system-cnclrexorder-rc.md
├── eosio.system-consolidate-rc.md
├── eosio.system-defcpuloan-rc.md
├── eosio.system-defnetloan-rc.md
├── eosio.system-delegatebw-rc.md
├── eosio.system-deleteauth-rc.md
├── eosio.system-deposit-rc.md
├── eosio.system-fundcpuloan-rc.md
├── eosio.system-fundnetloan-rc.md
├── eosio.system-linkauth-rc.md
├── eosio.system-mvfrsavings-rc.md
├── eosio.system-mvtosavings-rc.md
├── eosio.system-newaccount-rc.md
├── eosio.system-refund-rc.md
├── eosio.system-regproducer-rc.md
├── eosio.system-regproxy-rc.md
├── eosio.system-rentcpu-rc.md
├── eosio.system-rentnet-rc.md
├── eosio.system-rexexec-rc.md
├── eosio.system-rmvproducer-rc.md
├── eosio.system-sellram-rc.md
├── eosio.system-sellrex-rc.md
├── eosio.system-setabi-rc.md
├── eosio.system-setcode-rc.md
├── eosio.system-undelegatebw-rc.md
├── eosio.system-unlinkauth-rc.md
├── eosio.system-unregprod-rc.md
├── eosio.system-unstaketorex-rc.md
├── eosio.system-updateauth-rc.md
├── eosio.system-updaterex-rc.md
├── eosio.system-voteproducer-rc.md
├── eosio.system-withdraw-rc.md
├── eosio.system.abi
└── eosio.system.contracts.md
├── eosio.token
├── eosio.token-close-rc.md
├── eosio.token-transfer-rc.md
└── eosio.token.abi
├── ipfs.txt
├── proposed-constitution
├── EOS_Amsterdam_CHARTER1.md
└── v2.md
└── scripts
├── abi_to_rc
├── README.md
├── abi_to_rc.py
├── rc-action-template.md
└── rc-overview-template.md
├── create-checksums.sh
├── export-rc.sh
├── import-rc.sh
├── ricardeos
├── README.md
├── ricardeos.py
└── ricardinject.py
└── upload-ipfs.sh
/Deletion diff from EOSIO/eosio.system-delband-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ delband }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
7 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-deleteauth-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ deleteauth }}`
2 |
3 | ### Description
4 |
5 | The `{{ deleteauth }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ deleteauth }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ deleteauth }}` | `{{ accountVar }}`
`{{ permissionVar }}` | `{{ account_name }}`
`{{ permission_name }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-global-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ global }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-linkauth-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ linkauth }}`
2 |
3 | ### Description
4 |
5 | The `{{ linkauth }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ linkauth }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ linkauth }}` | `{{ accountVar }}`
`{{ codeVar }}`
`{{ typeVar }}`
`{{ requirementVar }}` | `{{ account_name }}`
`{{ account_name }}`
`{{ action_name }}`
`{{ permission_name }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-onerror-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ onerror }}`
2 |
3 | ### Description
4 |
5 | The `{{ onerror }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ onerror }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ onerror }}` | `{{ sender_idVar }}`
`{{ sent_trxVar }}` | `{{ uint128 }}`
`{{ bytes }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-producers-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ producers }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-rammarket-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ rammarket }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-refunds-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ refunds }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-regproxy-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ regproxy }}`
2 |
3 | ### Description
4 |
5 | The `{{ regproxy }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ regproxy }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ regproxy }}` | `{{ proxyVar }}`
`{{ isproxyVar }}` | `{{ account_name }}`
`{{ bool }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-reqauth-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ reqauth }}`
2 |
3 | ### Description
4 |
5 | The `{{ reqauth }}` action...
6 |
7 | ### Input and Input Type
8 |
9 | The `{{ reqauth }}` action requires the following `input` and `input type`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ reqauth }}` | `{{ fromVar }}` | `{{ account_name }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-rmvproducer-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ rmvproducer }}`
2 |
3 | ### Description
4 |
5 | This action will remove a producer from the schedule. Should be called by other scheduled producers only sparingly and for the purpose of maintaining chain integrity and network stability.
6 |
7 | Producers who call this without appropriate justification, such as a mutually agreed SLA or other objective criteria, can be liable for lost revenue and lost reputation suffered by the target of this call.
8 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setabi-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setabi }}`
2 |
3 | ### Description
4 |
5 | The intention of the `{{ setabi }}` action is to...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ setabi }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ setabi }}` | `{{ accountVar }}`
`{{ abiVar }}` | `{{ account_name }}`
`{{ bytes }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setalimits-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setalimits }}`
2 |
3 | ### Description
4 |
5 | The `{{ setalimits }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ setalimits }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ setalimits }}` | `{{ accountVar }}`
`{{ ram_bytesVar }}`
`{{ net_weightVar }}`
`{{ cpu_weightVar }}` | `{{ account_name }}`
`{{ int64 }}`
`{{ int64 }}`
`{{ int64 }}` |
14 |
15 |
16 | As an authorized party I {{ signer }} wish to UNKNOWN
17 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setcode-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setcode }}`
2 |
3 | ### Description
4 |
5 | This action updates the code that will run in response to delivered actions. It may be performed by the account upon which the code is being deployed.
6 |
7 | By deploying this code you certify that:
8 |
9 | 1. the code is not malicious
10 | 2. you are authorized to perform the actions automated by the code
11 | 3. the code is consistant with the ABI deployed and intent of the contract
12 | 4. updates to the code are consistant with the prior code's intent
13 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setglimits-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setglimits }}`
2 |
3 | ### Description
4 |
5 | The intention of the `{{ setglimits }}` action is to ...
6 |
7 | ### Input and Input Type
8 |
9 | The `{{ setglimits }}` action requires the following `input` and `input type`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ setglimits }}` | `{{ cpu_usec_per_periodVar }}` | `{{ int64 }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setparams-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setparams }}`
2 |
3 | ### Description
4 |
5 | This action will set system parameters.
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setpriv-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setpriv }}`
2 |
3 | ### Description
4 |
5 | The intention of the `{{ setpriv }}` action is to ...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ setpriv }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ setpriv }}` | `{{ accountVar }}`
`{{ is_privVar }}` | `{{ account_name }}`
`{{ int8 }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-setram-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ setram }}`
2 |
3 | ### Description
4 |
5 | This action sets the total RAM that may be allocated for use by accounts. It may only increase.
6 |
7 | Only the controller of this contract may update the RAM availablity. If the owner is a multi-sig collective, the
8 | parties to the multi-sig each certify that off-the-shelf machines exist capable of supporting the available RAM.
9 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-unlinkauth-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ unlinkauth }}`
2 |
3 | ### Description
4 |
5 | The `{{ unlinkauth }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ unlinkauth }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ unlinkauth }}` | `{{ accountVar }}`
`{{ codeVar }}`
`{{ typeVar }}` | `{{ account_name }}`
`{{ account_name }}`
`{{ action_name }}` |
14 |
15 |
16 | As an authorized party I {{ signer }} wish to UNKNOWN
17 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-updateauth-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ updateauth }}`
2 |
3 | ### Description
4 |
5 | The `{{ updateauth }}` action...
6 |
7 | ### Inputs and Input Types
8 |
9 | The `{{ updateauth }}` action requires the following `inputs` and `input types`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 | | `{{ updateauth }}` | `{{ accountVar }}`
`{{ permissionVar }}`
`{{ parentVar }}`
`{{ authVar }}` | `{{ account_name }}`
`{{ permission_name }}`
`{{ permission_name }}`
`{{ authority }}` |
14 |
15 | As an authorized party I {{ signer }} wish to UNKNOWN
16 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-userres-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ userres }}`
2 |
3 | ### Description
4 |
5 | This action will (something) user resources __...
6 |
--------------------------------------------------------------------------------
/Deletion diff from EOSIO/eosio.system-voters-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ voters }}`
2 |
3 | ### Description
4 |
5 | This action will ...
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Governance
2 |
3 | ## Community Launch Docs
4 |
5 | - [EOS Constitution](eosio.system/eosio.system-clause-constitution-rc.md)
6 | - [EOS BP Agreement](eosio.system/eosio.system-regproducer-rc.md)
7 |
8 | ## ABI with Ricardian Contracts
9 |
10 | ### [`eosio.system.abi`](https://raw.githubusercontent.com/EOS-Mainnet/governance/master/eosio.system/eosio.system.abi)
11 |
12 | ### [`eosio.token.abi`](https://raw.githubusercontent.com/EOS-Mainnet/governance/master/eosio.token/eosio.token.abi)
13 |
--------------------------------------------------------------------------------
/checksums.txt:
--------------------------------------------------------------------------------
1 | 627a2d910594ff3226a25de50edc92a587d5756191880c7990c3a8e388fc1635 ./eosio.system/eosio.system.abi
2 | 804533704bfa098d2399808a806cb37cc4256da3ce9b0d9a777b3ab21c4fe778 ./eosio.token/eosio.token.abi
3 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-bidname-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Bidname
4 | summary: Place a bid of {{ bid }} EOS by account {{ bidder }} on the account name {{ newname }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ bidder }}, wish to bid the amount of {{ bid }} toward purchase of the account name {{ newname }}.
9 |
10 | I am aware that I cannot revoke my bid of {{ bid }} EOS. I will only receive it back if I am outbid by at least 10% by another user.
11 |
12 | My bid of {{ bid }} EOS for the account name {{ newname }} will only be awarded if it holds the highest bid for any new account name, for a period of consecutive 24 hours.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-buyram-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Buy RAM
4 | summary: Account {{ payer }} will purchase RAM for account {{ receiver }} using {{ quant }} EOS as payment
5 | icon: NEED TO ADD
6 | ---
7 |
8 | This action will purchase RAM for account {{ receiver }} by using {{ quant }} EOS from account {{ payer }}.
9 |
10 | The purchase amount of {{ quant }} EOS will have 0.5% removed as a fee, to be sent to the account `eosio.ramfee`.
11 |
12 | The remaining portion of the purchase amount will be sent to the account `eosio.ram`.
13 |
14 | Only the account {{ receiver }} will be able to authorize a sale of this RAM in the future, and that it is completely non-transferable.
15 |
16 | The price of RAM is determined by the RAM market, and I, {{ payer }}, acknowledge that this price can fluctuate between time of purchase and time of sale.
17 |
18 | {{ payer }} accepts that the quantity of RAM available in the network can be modified by the network's Block Producers.
19 |
20 | {{ receiver }} will be unable to sell any utilized RAM until any information stored in that RAM has been freed. Ths process of freeing RAM will be subject to the terms of the other smart contracts with which {{ receiver }} will interact.
21 |
22 | {{ receiver }} accepts that rounding errors resulting from limits of computational precision may result in less RAM being allocated.
23 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-buyrambytes-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Buy RAM Bytes
4 | summary: Account {{ payer }} will purchase {{ bytes }} bytes of RAM for account {{ receiver }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | This action will purchase {{ bytes }} bytes of RAM for account {{ receiver }} by using EOS tokens from account {{ payer }}, at the rate determined by the system's RAM market.
9 |
10 | There will be a fee of 0.5% added to the purchase price determined by the system's RAM market. This fee will be sent to the account `eosio.ramfee`.
11 |
12 | Only the account {{ receiver }} will be able to authorize a sale of this RAM in the future, and that it is completely non-transferable.
13 |
14 | The price of RAM is determined by the RAM market, and I, {{ payer }}, acknowledge that this price can fluctuate between time of purchase and time of sale.
15 |
16 | {{ payer }} accepts that the quantity of RAM available in the network can be modified by the network's Block Producers.
17 |
18 | {{ receiver }} will be unable to sell any utilized RAM until any information stored in that RAM has been freed. Ths process of freeing RAM will be subject to the terms of the other smart contracts with which {{ receiver }} will interact.
19 |
20 | {{ receiver }} accepts that rounding errors resulting from limits of computational precision may result in less RAM being allocated.
21 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-buyrex-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Buy REX
4 | summary: Exchange {{ amount }} EOS from the REX fund of {{ from }} account for REX tokens
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `buyrex` action allows an account to exchange EOS tokens from their REX fund for REX tokens.
9 |
10 | As an authorized party I, {{ signer }}, wish to buy REX on the account {{ from }} with {{ amount }} EOS.
11 |
12 | I am aware of, and have fulfilled, all voting requirements needed to participate in the REX marketplace.
13 |
14 | I am aware that I will need to satify the maturing period before being able to transfer these REX tokens back into EOS tokens.
15 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-canceldelay-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Cancel Delay
4 | summary: Cancel a pending deferred transaction with ID {{ trx_id }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to invoke the authority of {{ canceling_auth }} to cancel the transaction with ID {{ trx_id }}.
9 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-claimrewards-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Claim Rewards
4 | summary: Claim Block Rewards and Vote Rewards due to Block Producer {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to have the rewards earned by {{ owner }} deposited into the account {{ owner }}.
9 |
10 | By calling the `claimrewards` action, I, {{ owner }} agree to abide by any and all rules described in the Constitution, or any other governing documents, that are in effect at this time.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-clause-constitution-rc.md:
--------------------------------------------------------------------------------
1 | # EOS User Agreement
2 |
3 | ## Definitions
4 |
5 | All capitalized, italicized, or inline code terms in *The EOS User Agreement* will be given the same effect and meaning as in *Definitions*.
6 |
7 | * EOS User Agreement: This document (*EUA*)
8 |
9 | * Chain ID: `chain_id` - aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
10 |
11 | * User: Any person or organization of persons who maintain(s) direct or indirect ownership of an EOS account, or EOS-based property connected to an EOS account.
12 |
13 | * Ownership: Direct or indirect access to an EOS account through one or more valid permissions checks. Ownership may be partially shared between Users through the use of multi-signature permissions.
14 |
15 | * Block Producer: Users who have called `regproducer` and receive rewards from eosio.vpay.
16 |
17 | * `eosio.prods`: An EOS account with a dynamic permissions structure that can assume the privileges of the `eosio` account when 15/21 Block Producers agree to do so.
18 |
19 | * Network Funds: Tokens contained within the following accounts: `eosio.names`, `eosio.ramfee`, `eosio.saving`.
20 |
21 | * Governing Documents: *regproducer* is considered a governing document.
22 |
23 | * On-Chain: Any transaction, smart contract, or Ricardian contract which is located within a block that is irreversible and appended to the EOS blockchain `chain_id`.
24 |
25 | * EOS-based Property: Anything that requires a valid permission in order to directly manipulate, alter, transfer, influence, or otherwise effect on the EOS Blockchain
26 |
27 | * Call: To submit an action to the EOS Blockchain `chain_id`.
28 |
29 | * Authorizations & Permissions: Permissions are arbitrary names used to define the requirements for a transaction sent on behalf of that permission. Permissions can be assigned for authority over specific contract actions.
30 |
31 | * Ricardian Contract: A contract that places the defining elements of a legal agreement in a format that can be expressed and executed in software.
32 |
33 | ## Article I - User Acknowledgement of Risks
34 | If User loses access to their EOS account on `chain_id` and has not taken appropriate measures to secure access to their EOS account by other means, the User acknowledges and agrees that that EOS account will become inaccessible. Users acknowledge that the User has an adequate understanding of the risks, usage and intricacies of cryptographic tokens and blockchain-based software. The User acknowledges and agrees that the User is using the EOS blockchain at their sole risk.
35 |
36 | ## Article II - Special User Types
37 | Users who call `regproducer` agree to, and are bound by, the *regproducer* Ricardian Contract.
38 |
39 | ## Article III - Consent of the EUA
40 | The nature of the *EOS User Agreement* is such that it serves as a description of the current EOS Mainnet governance functions that are in place. These functions, enforced by code, do not require the consent of Users as these functions are inherent and systemic to the EOS Mainnet itself.
41 |
42 | ## Article IV - Governing Documents
43 | Any modifications to the *EUA* and *governing documents* may be made by `eosio.prods`. It is admonished that a statement be crafted and issued through `eosio.prods` via eosio.forum referendum contract describing such a modification in advance.
44 |
45 | ## Article V - Native Unit of Value
46 | The native unit of value on EOS chain_id shall be the EOS token as defined and created by the `eosio.token` smart contract.
47 |
48 | ## Article VI - Maintaining the EOS blockchain
49 | `eosio.prods` will maintain the active blockchain codebase which includes, but is not limited to, the implementation of all modifications of all features, optimizations, and upgrades: present and future.
50 |
51 | ## Article VII - Network Funds
52 | It is admonished that any altering of the state of any tokens contained within network fund accounts, or altering any pre-existing code that directly or indirectly governs the allocation, fulfillment, or distribution of any *network funds* be preceded by a statement crafted and issued by `eosio.prods` to the *eosio.forum* referendum system contract describing the effect in advance.
53 |
54 | ## Article VIII - Freedom of Account Creation
55 | Any current or future User is able to create an EOS Account without the permission by any other User. `eosio.prods` may never affect an EOS User Account(s) without valid permission(s) which have been shared with `eosio.prods` by an EOS account. `eosio.prods` may charge a fee for any actions that are requested by other Users pertaining to an EOS account where permissions are shared.
56 |
57 | ## Article IX - No Fiduciary
58 | No User shall have a fiduciary purpose to support the value of the EOS token. No User can authorize anyone to hold assets, borrow, speak, contract on behalf of other EOS Users or the EOS blockchain `chain_id` collectively. This EOS blockchain shall have no owners, managers, or fiduciaries.
59 |
60 | ## Article X - User Security
61 | All items pertaining to personal account security, including but not limited to the safekeeping of private keys, is solely the responsibility of the User to secure.
62 |
63 | ## Article XI - `eosio.prods` Limited Liability
64 | The User acknowledges and agrees that, to the fullest extent permitted by any applicable law, this disclaimer of liability applies to any and all damages or injury whatsoever caused by or related to risks of, use of, or inability to use, the EOS token or the EOS blockchain `chain_id` under any cause of action whatsoever of any kind in any jurisdiction, including, without limitation, actions for breach of warranty, breach of contract or tort (including negligence) and that `eosio.prods`, nor the individual permissions that operate it, shall not be liable for any indirect, incidental, special, exemplary or consequential damages, including for loss of profits, goodwill or data.
65 |
66 | # EOS 사용자 동의서
67 |
68 | ## 정의
69 |
70 | EOS 사용자 동의서의 모든 대문자, 기울임 꼴, 또는 인라인 코드 용어는 정의에서와 동일한 효과와 의미가 부여됩니다.
71 |
72 | - EOS 사용자 동의서: 본 문서 (EUA)
73 | - 체인 ID: chain_id --- aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
74 | - 사용자: EOS 계정을 직접 또는 간접적으로 소유하거나 EOS 계정에 연결된 EOS 기반 속성을 유지하거나 관리하는 사람, 조직, 또는 조직의 모든 사람.
75 | - 소유권: 하나 이상의 유효한 사용권한 확인을 통해 EOS 계정에 직접 또는 간접적으로 접근합니다. 소유권은 다중 서명권한을 사용하여 사용자간에 부분적으로 공유 될 수 있습니다.
76 | - 블록 프로듀서: regproducer를 실행하고 eosio.vpay로부터 보상을 받는 사용자.
77 | - eosio.prods: 15/21 블록 프로듀서들이 동의 할 때 eosio 계정의 권한을 가질 수 있는 동적 권한 구조를 가진 EOS 계정.
78 | - 네트워크 자금: 다음 계정에 포함 된 토큰: eosio.names, eosio.ramfee, eosio.saving.
79 | - 관리 문서: regproducer는 관리 문서로 간주됩니다.
80 | - 온체인: EOS 블록체인 chain_id에 비가역적이며 추가 할 수 있는 블록 내에 위치한 모든 거래, 스마트 계약 또는 리카르디안 계약.
81 | - EOS 기반 속성: EOS 블록체인을 직접 조작, 변경, 전송, 영향 또는 달리 적용하기 위해 유효한 사용 권한이 필요한 모든 것
82 | - 콜: EOS 블록체인 chain_id에 작업을 신청하는 것.
83 | - 허가 및 권한: '허가'는 해당 권한을 대신하여 전송되는 트랜잭션의 요구사항을 정의하는 데 사용됩니다. '권한'은 특정 계약 조치에 대한 권한을 부여합니다.
84 | - 리카르디안 계약: 합법적 계약의 정의 요소를 소프트웨어로 표현하고 실행할 수 있는 형식으로 배치하는 계약.
85 |
86 | ## 제 1조 --- 위험에 대한 사용자들의 인지
87 |
88 | 사용자가 chain_id에서 EOS 계정에 대한 접근 권한을 잃고, 다른 방법으로 EOS 계정에 대한 접근을 보호하기 위해 적절한 조치를 취하지 않는 경우에는 EOS 계정에 접근할 수 없게 된다는 것을 인정하고 동의합니다. 사용자는 암호화 토큰과 블록체인 기반 소프트웨어의 위험, 사용법, 그리고 복잡성에 대해 충분히 이해하고 있음을 인정합니다. 사용자는 EOS 블록체인의 사용에 대한 전적인 책임을 진다는 것에 인정하고 동의합니다.
89 |
90 | ## 제 2조 --- 특별한 사용자 유형
91 |
92 | regproducer를 실행하는 사용자는 regproducer 리카르디안 계약에 동의하고, 이에 구속됩니다.
93 |
94 | ## 제 3조 --- EUA의 동의
95 |
96 | EOS 사용자 동의서는 현재 시행중인 EOS 메인넷 거버넌스에 대한 설명으로 사용됩니다. 코드에 의해 시행되는 이러한 기능은 EOS 메인넷 자체의 체계적이고 고유한 기능이므로 사용자의 동의를 필요로 하지 않습니다.
97 |
98 | ## 제 4조 --- 관리 문서
99 |
100 | EUA와 관리 문서는 eosio.prods를 통해 수정이 가능합니다. 특정 변경사항을 사전에 설명하는 eosio.forum 투표 계약을 통해 eosio.prods가 성명서를 작성하고 발급할 것을 권고합니다.
101 |
102 | ## 제 5조 --- 가치의 기본 단위
103 |
104 | EOS chain_id의 기본 단위는 eosio.token 스마트 계약에 의해 정의되고 작성된 EOS 토큰입니다.
105 |
106 | ## 제 6조 --- EOS 블록체인 유지
107 |
108 | eosio.prods는 모든 기능, 최적화, 그리고 업그레이드의 현재와 미래의 모든 수정사항을 구현하는 것을 포함하되, 이에 국한되지 않는 활성화된 블록체인 코드베이스를 유지합니다
109 |
110 | ## 제 7조 --- 네트워크 자금
111 |
112 | 네트워크 자금 계정에 포함된 토큰의 상태를 변경하거나, 네트워크 자금의 배분, 이행, 또는 배포를 직/간접적으로 관리하는 기존 코드를 변경하는 경우에는 eosio.prods를 eosio.forum 총 투표 시스템 계약에 추가하여 사전에 충분한 설명이 이루어져야 합니다.
113 |
114 | ## 제 8조 --- 계정 생성의 자유
115 |
116 | 현재, 또는 미래의 사용자는 다른 사용자의 허가 없이 EOS 계정을 만들 수 있습니다. eosio.prods는 EOS 계정에 의해 공유된 유효한 허가 없이는 EOS 사용자 계정에 영향을 줄 수 없습니다. eosio.prods는 권한이 공유되는 EOS 계정과 관련하여 다른 사용자가 요청한 모든 작업에 대해 요금을 부과할 수 있습니다.
117 |
118 | ## 제 9조 --- 신탁 불가
119 |
120 | 사용자는 EOS 토큰의 가치를 뒷받침할 수 있는 신탁 목적을 가져서는 안됩니다. 사용자는 EOS 사용자 또는 EOS 블록체인 chain_id를 대표하여 누구에게도 자산을 보유하거나, 대여하거나, 자산에 대해 얘기하거나, 계약을 맺을 권한을 부여할 수 없습니다. EOS 블록체인에는 소유자, 관리자, 그리고 수탁자가 없어야 합니다.
121 |
122 | ## 제 10조 --- 사용자 보안
123 |
124 | 비공개 키의 보관을 포함하되, 이에 국한되지 않는 개인 계좌 보안과 관련된 모든 항목들 또한 전적으로 사용자가 안전하게 보관해야 합니다.
125 |
126 | ## 제 11조 --- eosio.prods 유한책임
127 |
128 | 사용자는 법률이 허용하는 한도 내에서 EOS 토큰의 위험, 사용, 또는 사용 불가로 인해 발생하는 모든 손해에 대해 책임의 면책 조항이 적용된다는 것을 인정하고, 동의합니다. 계약 위반, 불법 행위, 그리고 위반 행위 (관리 태만 포함)와 eosio.prods 또는 이를 운영하는 개별 사용 권한을 포함하되, 이에 국한하지 않고 모든 관할 지역에서의 모든 종류의 사유로 인한 EOS 블록체인 chain_id 이익, 영업권, 또는 데이터의 손실을 포함하여 간접적, 우발적, 특수한, 대표적, 그리고 파생적인 손해에 대한 책임을 지지 않습니다.
129 |
130 | # EOS用户协议
131 |
132 | ## **定义**
133 |
134 | EOS用户协议中的所有大写,斜体或内联代码术语将具有与以下定义相同的效果和含义。
135 |
136 | - EOS用户协议:即本文档(EUA)
137 |
138 | - 链上ID: chain_id - aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
139 |
140 | - 用户:任意满足下列要求的个人或组织:直接或者间接拥有EOS账户或与EOS账户关联的基于EOS发行的财产。
141 |
142 | - 所有权:直接或者间接通过一个或多个有效的权限检查访问一个EOS账户。所有权可以通过多签权限许可在用户间共享。
143 |
144 | - 执行了regproduce,并且从eosio.vpay领取收入的用户。
145 |
146 | - eosio.prods:具有动态权限结构的EOS帐户,当15/21 Block Producers同意时,该帐户可以承担eosio帐户的权限。
147 |
148 | - 网络资产:包含在以下账户中的代币:eosio.names、eosio.ramfee、 eosio.saving。
149 |
150 | - 治理文档:regproducer是治理文档。
151 |
152 | - 任何交易、智能合约或者李嘉图合约,它们已经位于一个区块中,并且这个区块是不可逆转的、已附加到名为chain_id的EOS区块链中。
153 |
154 | - 基于EOS资产:任何需要有效许可来操作、改变、转移、影响或者进行其他操作的东西。
155 |
156 | - 执行:在名为chain_id的EOS区块链中提交一个行动。
157 |
158 | - 授权和权限:权限(Permissions)是用来定义代表该权限发送的交易的要求的任意名字。可以给特定的合约操作的授权(Authorizations)分配权限(Permissions)。
159 |
160 | - 李嘉图合约:将法律协议中的定义要素以能在软件中表达和执行的格式表达的合约。
161 |
162 | ## **条款一****用****户风险确认**
163 |
164 | 如果用户丢失账户访问权限或者没有采取合适的方式保护账户访问权限,用户应知悉并同意,EOS账户将无法访问。用户应确认用户对加密代币和区块链软件的风险、用法和复杂性有充分了解。用户承认并同意用户自行承担使用EOS区块链的风险。
165 |
166 | ## **条款二****特殊用****户类型**
167 |
168 | 执行regproduce,同意并且受regproducer李嘉图合约约束的用户。
169 |
170 | ## **条款三****同意****EOS****用****户协议**
171 |
172 | EOS用户协议的实质是对当前EOS主网治理功能的描述。由代码强制执行的功能不需要用户的同意,因为这些功能是EOS主网系统自带的。
173 |
174 | ## **条款四** - **治理文档**
175 |
176 | eosio.prods可以对EOS用户协议和治理文档进行任何修改。严正提醒,提前用eosio.forum公投合约,通过eosio.prods编写、发布一个声明来描述那个修改。
177 |
178 | ## **条款五****原生价****值单位**
179 |
180 | EOS公链上的原生价值单位应为eosio.token智能合约定义和创建的EOS通证。
181 |
182 | ## **条款六****维护****EOS****区****块链**
183 |
184 | 无论现在或将来将来,eosio.prods将维护活跃的区块链代码库,包括但不限于所有功能、优化、升级的所有修改、实现。
185 |
186 | ## 条款七 - ****定****义****EOS****网络资产
187 |
188 | 更改网络资产账户中的任何代币的状态,更改任何现存的直接或间接管理任何网络资产的分配、实现或分发的代码,需要事先用eosio.prods在eosio.forum公投合约上编写和发布效果描述的声明。
189 |
190 | ## **条款八-创建账户自由**
191 |
192 | 任何现在或将来的用户都可以在未经任何其他用户许可的情况下创建EOS帐户。 如何没有收到EOS帐户的有效许可(permission),eosio.prods永远不会影响EOS用户帐户。 对于共享权限的EOS帐户的其他用户请求的任何操作,eosio.prods可能会收取费用。
193 |
194 | ## **条款九没有受托人**
195 |
196 | 没有用户承担信托责任来维持EOS代币的价值。没有用户可以代表EOS用户或者代表名为chain_ID的EOS区块链授权任何人共同持有资产、借款、发言或定合同。此区块链不存在拥有者、管理者或者受托人。
197 |
198 | ## **条款十个人安全**
199 |
200 | 所有有关个人账户安全的事项,包括但不限于私钥的安全保存,都由用户自己负责。
201 |
202 | ## **条款十一 eosio.prods的有限责任**
203 |
204 | 用户应知悉和同意,在任何适用法律允许的最大范围内,本免责声明适用于与EOS代币风险,使用或无法使用EOS代币有关或导致的任何或所有损害或伤害,也适用于任何司法管辖区内的任何任何行为下的EOS区块链chain_id,包括但不限于违反担保、违反合同或侵权行为(包括疏忽)。eosio.prods以及操作它的个人权限对于任何间接的,偶然的,特殊的,示例性的或后果性的损害,包括利润损失,商誉或数据,不承担任何责任。
205 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-closerex-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Close Rex
4 | summary: Free up any REX-related database entries in RAM from the account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `closerex` action allows an account to delete unused REX-related database entries and frees occupied RAM associated with its storage.
9 |
10 | As an authorized party, I {{ signer }}, wish to delete all unused REX-related database entries from the account {{ owner }}.
11 |
12 | I will not be able to succesfully call `closerex` unless all checks for CPU loans, NET loans or refunds pending refunds are still processing on the account {{ owner }}.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-cnclrexorder-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Cancel REX Order
4 | summary: Cancel any queued REX sell orders for account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `cnclrexorder` action cancels a queued REX sell order if one exists for an account.
9 |
10 | As an authorized party I, {{ signer }}, wish to cancel any unfilled and queued REX sell orders that exist for the account {{ owner }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-consolidate-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Consolidate Maturity Buckets
4 | summary: Consolidate any open maturity buckets for account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `consolidate` action will consolidate all REX maturity buckets for an account into one that matures 4 days from 00:00 UTC.
9 |
10 | As an authorized party I, {{ signer }}, wish to consolidate any open REX maturity buckets for the account {{ owner }} into one that matures 4 days from the following 00:00 UTC.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-defcpuloan-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Defund CPU Loan
4 | summary: Remove {{ amount }} EOS tokens previously assigned by {{ from }} to renew CPU loan {{ loan_num }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `defcpuloan` action allows an account to withdraw tokens from the fund of a specific CPU loan and adds them to REX fund.
9 |
10 | As an authorized party I, {{ signer }}, wish to withdraw from the CPU loan fund identified by loan number {{ loan_num }} on the account {{ from }} in the amount of {{ amount }} EOS and have those tokens allocated to the REX fund of {{ from }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-defnetloan-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Defund Network Loan
4 | summary: Remove {{ amount }} EOS tokens previously set by {{ from }} to renew Network loan {{ loan_num }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `defnetloan` action allows an account to withdraw tokens from the fund of a specific Network loan and adds them to REX fund.
9 |
10 | As an authorized party I, {{ signer }}, wish to withdraw from the Network loan fund identified by loan number {{ loan_num }} on the account {{ from }} in the amount of {{ amount }} and have those tokens allocated to the REX fund of {{ from }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-delegatebw-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Delegate Bandwidth
4 | summary: {{ from }} stakes EOS tokens for the account {{ receiver }}, {{ stake_net_quantity }} for Network and {{ stake_cpu_quantity }} for CPU
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to stake {{ stake_net_quantity }} EOS for Network and {{ stake_cpu_quantity }} EOS for CPU from the liquid tokens of {{ from }} for the use of {{ receiver }}.
9 |
10 | By including the `--transfer` flag, {{ from }} would like to permanently transfer the tokens to {{ receiver }} and not just temporarily delegate their resources.
11 |
12 | I understand that should I wish to unstake these tokens and relinquish the claim on resources that I shall be restricted by the wait period as described in `undelegatebw`.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-deleteauth-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Delete Authority
4 | summary: Delete the permission authority {{ permission }} of account {{ account }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to delete the permission authority {{ permission }} of account {{ account }}.
9 |
10 | I understand that this action, once called, cannot be revoked.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-deposit-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Deposit to REX Fund
4 | summary: Deposit {{ amount }} EOS tokens from the liquid balance of {{ owner }} into their REX Fund.
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `deposit` action allows an account to deposit EOS tokens into their REX fund by transfering from their liquid token balance.
9 |
10 | As an authorized party I, {{ signer }}, wish to deposit {{ amount }} EOS tokens into the REX fund of the account {{ owner }} from the liquid token balance of {{ owner }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-fundcpuloan-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Fund CPU Loan
4 | summary: Assign {{ payment }} EOS tokens for the renewal of CPU loan {{ loan_num }} upon expiry.
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `fundcpuloan` action allows an account to transfer tokens from its REX fund to the fund of a specific CPU loan in order for those tokens to be used for loan renewal at the loan's expiry.
9 |
10 | As an authorized party I, {{ signer }}, wish to transfer the amount of {{ payment }} tokens into the CPU loan fund of the loan identified by loan number {{ loan_num }} from the account {{ from }} to be used for loan renewal at the expiry of {{ loan_num }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-fundnetloan-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Fund Network Loan
4 | summary: Assign {{ payment }} EOS tokens for the renewal of Network loan {{ loan_num }} upon expiry.
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `fundnetloan` action allows an account to transfer tokens from its REX fund to the fund of a specific Network loan in order for those tokens to be used for loan renewal at the loan's expiry.
9 |
10 | As an authorized party I, {{ signer }}, wish to transfer the amount of {{ payment }} tokens into the Network loan fund of the loan identified by loan number {{ loan_num }} from the account {{ from }} to be used for loan renewal at the expiry of {{ loan_num }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-linkauth-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Link Authority
4 | summary: Link permission authority {{ requirement }} of account {{ account }} to a specific contract's action
5 | icon: NEED TO ADD
6 | ---
7 |
8 | I, {{ signer }}, wish to link the permission authority {{ requirement }} of {{ account }} to the action {{ type }} of the smart contract {{ code }}.
9 |
10 | I can only remove this link by calling the `unlinkauth` action, and will need to do so before being able to call `deleteauth`.
11 |
12 | I can specify a specific action from contract {{ code }}, or I can use a wildcard to link all actions within a contract to the authority {{ requirement }}. If new actions are added to contract {{ code }}, my account {{ account }} will be able to call those new actions.
13 |
14 | I acknowledge that I cannot use `linkauth` for the following actions: `updateauth`, `deleteauth`, `linkauth`, `unlinkauth`, and `canceldelay`.
15 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-mvfrsavings-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Move REX From Savings
4 | summary: Commence maturing {{ rex }} REX tokens from the savings bucket of account {{ owner }}.
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `mvfrsavings` action allows an account to move REX tokens from its savings bucket to a bucket with a maturity date that is 4 days after 00:00 UTC.
9 |
10 | As an authorized party I, {{ signer }}, wish to move {{ rex }} tokens from the savings bucket of the account {{ owner }}. Those tokens shall become available to {{ owner }} 4 days from 00:00 UTC.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-mvtosavings-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Move REX to savings
4 | summary: Move {{ rex }} REX tokens into the savings bucket of account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `mvtosavings` action allows an account to move REX tokens into a savings bucket.
9 |
10 | As an authorized party I, {{ signer }}, wish to move {{ rex }} tokens to a savings bucket associated to the account {{ owner }}. I acknowledge that those tokens will then be subject to any maturity restrictions described in the `mvfrsavings` action.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-newaccount-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Create New Account
4 | summary: Account {{ creator }} creates the account {{ name }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `newaccount` action creates a new account.
9 |
10 | As an authorized party I, {{ signer }}, wish to exercise the authority of {{ creator }} to create a new account on this blockchain named {{ name }}, such that the new account's `owner` permission's public key shall be {{ owner }} and the `active` permission's public key shall be {{ active }}.
11 |
12 | The account name {{ name }} must conform to the standards of only utilizing lowercase characters `a` through `z`, and `1` through `5`.
13 |
14 | Should there be a `.` in {{ name }}, then only the account who has won the `bidname` auction for that suffix may call the `newaccount` action.
15 |
16 | Should the account name {{ name }} be fewer than 12 characters and not contain a `.`, the `newaccount` action may only be called by the winner of the `bidname` auction for that suffix by using the same account that cast the winning bid.
17 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-refund-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Refund
4 | summary: Manually trigger a refund after the undelegation period for account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `refund` action will manually trigger a return of EOS tokens that should have been automatically allocated from `eosio.stake` to {{ owner }} at the end of the 72-hour undelegation period after calling `undelegatebw`.
9 |
10 | As an authorized party I, {{ signer }}, wish to have the any unstaked tokens due to {{ owner }} returned as liquid EOS tokens into the account {{ owner }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-regproducer-rc.md:
--------------------------------------------------------------------------------
1 | # Action - `{{ regproducer }}`
2 |
3 | ## Description
4 |
5 | The intent of the `{{ regproducer }}` action is to register an account as a BP candidate.
6 |
7 | I, {{producer}}, hereby nominate myself for consideration as an elected block producer.
8 |
9 | If {{producer}} is selected to produce blocks by the eosio contract, I will sign blocks with {{producer_key}} and I hereby attest that I will keep this key secret and secure.
10 |
11 | If {{producer}} is unable to perform obligations under this contract I will resign my position by resubmitting this contract with the null producer key.
12 |
13 | I acknowledge that a block is 'objectively valid' if it conforms to the deterministic blockchain rules in force at the time of its creation, and is 'objectively invalid' if it fails to conform to those rules.
14 |
15 | {{producer}} hereby agrees to only use {{producer_key}} to sign messages under the following scenarios:
16 | proposing an objectively valid block at the time appointed by the block scheduling algorithm
17 | pre-confirming a block produced by another producer in the schedule when I find said block objectively valid
18 | confirming a block for which {{producer}} has received 2/3+ pre-confirmation messages from other producers
19 |
20 | I hereby accept liability for any and all provable damages that result from my:
21 | signing two different block proposals with the same timestamp with {{producer_key}}
22 | signing two different block proposals with the same block number with {{producer_key}}
23 | signing any block proposal which builds off of an objectively invalid block
24 | signing a pre-confirmation for an objectively invalid block
25 | signing a confirmation for a block for which I do not possess pre-confirmation messages from 2/3+ other producers
26 |
27 | I hereby agree that double-signing for a timestamp or block number in concert with 2 or more other producers shall automatically be deemed malicious and subject to a fine equal to the past year of compensation received and imediate disqualification from being a producer, and other damages. An exception may be made if {{producer}} can demonstrate that the double-signing occured due to a bug in the reference software; the burden of proof is on {{producer}}.
28 |
29 | I hereby agree not to interfere with the producer election process. I agree to process all producer election transactions that occur in blocks I create, to sign all objectively valid blocks I create that contain election transactions, and to sign all pre-confirmations and confirmations necessary to facilitate transfer of control to the next set of producers as determined by the system contract.
30 |
31 | I hereby acknowledge that 2/3+ other elected producers may vote to disqualify {{producer}} in the event {{producer}} is unable to produce blocks or is unable to be reached, according to criteria agreed to among producers.
32 |
33 | If {{producer}} qualifies for and chooses to collect compensation due to votes received, {{producer}} will provide a public endpoint allowing at least 100 peers to maintain synchronization with the blockchain and/or submit transactions to be included. {{producer}} shall maintain at least 1 validating node with full state and signature checking and shall report any objectively invalid blocks produced by the active block producers. Reporting shall be via a method to be agreed to among producers, said method and reports to be made public.
34 |
35 | The community agrees to allow {{producer}} to authenticate peers as necessary to prevent abuse and denial of service attacks; however, {{producer}} agrees not to discriminate against non-abusive peers.
36 |
37 | I agree to process transactions on a FIFO best-effort basis and to honestly bill transactions for measured execution time.
38 |
39 | I {{producer}} agree not to manipulate the contents of blocks in order to derive profit from:
40 | the order in which transactions are included
41 | the hash of the block that is produced
42 |
43 | I, {{producer}}, hereby agree to disclose and attest under penalty of perjury all ultimate beneficial owners of my company who own more than 10% and all direct shareholders.
44 |
45 | I, {{producer}}, hereby agree to cooperate with other block producers to carry out our respective and mutual obligations under this agreement, including but not limited to maintaining network stability and a valid blockchain.
46 |
47 | I, {{producer}}, agree to maintain a website hosted at {{url}} which contains up-to-date information on all disclosures required by this contract.
48 |
49 | I, {{producer}}, agree to set {{location}} such that {{producer}} is scheduled with minimal latency between my previous and next peer.
50 |
51 | I, {{producer}}, agree to maintain time synchronization within 10 ms of global atomic clock time, using a method agreed to among producers.
52 |
53 | I, {{producer}}, agree not to produce blocks before my scheduled time unless I have received all blocks produced by the prior producer.
54 |
55 | I, {{producer}}, agree not to publish blocks with timestamps more than 500ms in the future unless the prior block is more than 75% full by either CPU or network bandwidth metrics.
56 |
57 | I, {{producer}}, agree not to set the RAM supply to more RAM than my nodes contain and to resign if I am unable to provide the RAM approved by 2/3+ producers, as shown in the system parameters.
58 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-regproxy-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Register Proxy
4 | summary: Register account {{ proxy }} as a proxy
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, would like to register the account {{ proxy }} as a proxy by having the {{ isproxy }} value updated to `1`.
9 |
10 | As a proxy, the vote weight of all accounts who proxy to {{ proxy }} will be delegated along with its own. For all proposals created within `eosio.forum`, their vote weight will also be delegated to {{ proxy }}, unless that account chooses to cast their own vote for a proposal.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-rentcpu-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Rent CPU
4 | summary: Rent CPU for account {{ receiver }} using payment of {{ loan_payment }} EOS tokens
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `rentcpu` action allows an account to rent CPU bandwidth for 30 days at a market-determined price.
9 |
10 | As an authorized party I, {{ signer }}, wish to rent CPU bandwidth for 30 days for the use of the account {{ receiver }} in exchange for the loan payment of {{ loan_payment }}, which shall be taken from the account {{ from }}. The loan fund amount {{ loan_fund }} is set for automatic renewal of the loan at the expiry of said loan.
11 |
12 | The amount of CPU bandwidth shall be determined by the market at time of loan execution and shall be recalculated at time of renewal, should I wish to automatically renew the loan at that time. I acknowledge that the amount of CPU bandwidth received in exchange of {{ loan_payment }} for the benefit of {{ receiver }} at loan renewal may be different from the current amount of bandwidth received.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-rentnet-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Rent Network
4 | summary: Rent Network for account {{ receiver }} using payment of {{ loan_payment }} EOS tokens
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `rentnet` action allows an account to rent Network bandwidth for 30 days at a market-determined price.
9 |
10 | As an authorized party I, {{ signer }}, wish to rent Network bandwidth for 30 days for the use of the account {{ receiver }} in exchange for the loan payment of {{ loan_payment }}, which shall be taken from the account {{ from }}. The loan fund amount {{ loan_fund }} is set for automatic renewal of the loan at the expiry of said loan.
11 |
12 | The amount of Network bandwidth shall be determined by the market at time of loan execution and shall be recalculated at time of renewal, should I wish to automatically renew the loan at that time. I acknowledge that the amount of Network bandwidth received in exchange of {{ loan_payment }} for the benefit of {{ receiver }} at loan renewal may be different from the current amount of bandwidth received.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-rexexec-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Execute REX Maintenance
4 | summary: Execute up to {{ max }} REX maintenance actions that may be pending
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `rexexec` action allows any account to perform REX maintenance by processing expired loans and unfilled sell orders.
9 |
10 | I, {{ signer }}, wish to process up to {{ max }} of any CPU loans, Network loans, and sell orders that may currently be pending.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-rmvproducer-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Remove Producer
4 | summary: Remove {{ producer }} from the list of Block Producer Candidates
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `rmvproducer` action can only be executed with the authority of `eosio.prods`. As such, it takes approval of a multisig proposal
9 | by 15 of the top 21 Block Producers. While they will not call this action directly themselves, this the description of what they are agreeing to.
10 | The `rmvproducer` action should only be called if the rules described within the `regproducer` Ricardian are followed.
11 |
12 | By executing the `rmvproducer` action, the account {{ producer }} will no longer be considered a Block Producer Candidate. Any votes
13 | that they have received will still be attached to their account, but they will be unable to call `claimrewards` or produce any blocks
14 | until such time that they have successfully called `regproducer` again.
15 |
16 | Before approving the multisig proposal to execute the `rmvproducer` action, the requested actor stipulates that they will only do so with
17 | the best interests of the blockchain in mind, and not for any malicious purpose. The requested actors shall adhere to guidelines found
18 | within `regproducer`, or any other governing documents which may make reference to `rmvproducer`.
--------------------------------------------------------------------------------
/eosio.system/eosio.system-sellram-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Sell RAM
4 | summary: Sell {{ bytes }} bytes of RAM from account {{ account }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `sellram` action sells currently unused RAM for EOS tokens.
9 |
10 | As an authorized party I, {{ signer }}, wish to sell {{ bytes }} of unused RAM from account {{ account }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-sellrex-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Sell REX
4 | summary: Create an order to sell {{ rex }} tokens held by {{ from }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `sellrex` action allows an account to sell REX tokens held by the account.
9 |
10 | As an authorized party I, {{ signer }}, wish to sell {{ rex }} REX tokens held on the account {{ from }} in exchange for core EOS tokens. If there is an insufficient amount of EOS tokens available at this time, I acknowledge that my order will be placed in a queue to be processed.
11 |
12 | If there is an open `sellrex` order for the account {{ from }}, then this amount of {{ rex }} REX shall be added to the existing order and the order shall move to the back of the queue.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-setabi-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Set ABI
4 | summary: Set an ABI file on the account {{ account }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, would like to set the ABI file corresponding to the sha256 hash {{ abi }} to the account {{ account }}.
9 | The ABI data will be stored in the RAM of {{ account }}.
--------------------------------------------------------------------------------
/eosio.system/eosio.system-setcode-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Set Code
4 | summary: Set the contract code for account {{ account }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, would like to set the Smart Contract file corresponding to the sha256 hash {{ code }} to the account {{ account }}.
9 | The ABI data will be stored in the RAM of {{ account }}.
10 |
11 | When calling `setcode`, I shall produce suitable Ricaridan Contracts within the ABI file when calling `setabi` for the account {{ account }}.
--------------------------------------------------------------------------------
/eosio.system/eosio.system-undelegatebw-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Undelegate Bandwidth
4 | summary: Undelegate {{ unstake_cpu_quantity }} CPU and {{ unstake_net_quantity }} Network bandwidth from {{ receiver }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to unstake {{ unstake_cpu_quantity }} from CPU and {{ unstake_net_quantity }} from Network bandwidth from the tokens owned by {{ from }} previously delegated for the use of delegatee {{ receiver }}.
9 |
10 | I acknlowedge that I do not expect to have access to these tokens until at least 72 hours have passed since calling the `undelegatebw` action.
11 |
12 | The CPU and Network bandwidth resources that have been unstaked will be immediately revoked from {{ receiver }}. Any voting weights based on staked resources will become immediately effected.
13 |
14 | If I, {{ signer }} am not the beneficial owner of these tokens I stipulate I have been authorized to take this action by their beneficial owner(s).
15 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-unlinkauth-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Unlink Authority
4 | summary: Unlink authority for {{ code }}::{{ type }} on account {{ account }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, would like to unlink the authority attached to {{ code }}::{{ type }} for the account {{ account }}.
9 | This will remove any restrictions that may have previously existed for other authority permission's of {{ account }} to call {{ code }}::{{ type }}.
--------------------------------------------------------------------------------
/eosio.system/eosio.system-unregprod-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Unregister Block Producer
4 | summary: Unregister the Block Producer Canadidate {{ producer }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `unregprod` action unregisters a previously registered Block Producer Candidate.
9 |
10 | As an authorized party I, {{ signer }}, wish to unregister the Block Producer Candidate {{ producer }}, rendering that candidate no longer able to receive votes.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-unstaketorex-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Unstake to REX
4 | summary: Purchase REX tokens using EOS tokens staked to CPU or Network Bandwidth
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `unstaketorex` action allows an account to buy REX using EOS tokens which are currently staked for either CPU or Network bandwidth.
9 |
10 | As an authorized party I, {{ signer }}, wish to buy REX tokens by unstaking {{ from_cpu }} EOS from CPU bandwidth and {{ from_net }} EOS from Network bandwidth from account {{ owner }} that are staked to account {{ receiver }}.
11 |
12 | I am aware of, and have fulfilled, all voting requirements needed to participate in the REX marketplace.
13 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-updateauth-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Update Authroity
4 | summary: Update the authority structure of {{ account }} by adding the permission {{ permission }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | As an authorized party I, {{ signer }}, wish to add the new authority permission {{ permission }}, which will be a child to the permission
9 | {{ parent }}. The authority of permission {{ permission }} shall match the provided information in {{ auth }}.
10 |
11 | The authority {{ permission }} will not be able to call any actions linked specifically to any authorities to which it is a child of, or
12 | a sibling to.
13 |
14 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-updaterex-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Update REX
4 | summary: Update the REX voting weight of the account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `updaterex` action allows an account to update its vote weight.
9 |
10 | As an authorized party I, {{ signer }}, wish to update the REX vote stake and vote weight of the account {{ owner }}.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-voteproducer-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Vote Producer
4 | summary: {{ voter }} casts a vote for their preferred Block Producers
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `voteproducer` action casts a valid vote for up to 30 Block Producer Candidates.
9 |
10 | As an authorized party I, {{ signer }}, wish to vote on behalf of the account {{ voter }} in favor of the Block Producer Candidates {{ producers }} with a voting weight equal to all EOS tokens currently owned by {{ voter }} and staked for CPU or Network bandwidth, and the equivalent value of REX tokens that {{ voter }} holds.
11 |
12 | If I am not the beneficial owner of these shares I stipulate that I have been authorized to vote these shares by their beneficial owner(s).
13 |
14 | I stipulate I have not, and will not, accept anything of value in exchange for these votes, on penalty of confiscation of these tokens, and other penalties.
15 |
16 | I acknowledge that using any system of automatic voting, re-voting, or vote refreshing, or allowing such a system to be used on my behalf or on behalf of another, is forbidden and doing so violates this contract.
17 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system-withdraw-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Withdraw
4 | summary: Withdraw {{ amount }} EOS tokens from the REX fund of {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `withdraw` action allows an account to withdraw EOS tokens from their REX fund into their liquid token balance.
9 |
10 | As an authorized party I, {{ signer }}, wish to withdraw {{ amount }} of EOS tokens from the REX fund for the account {{ owner }} into its liquid token balance.
11 |
--------------------------------------------------------------------------------
/eosio.system/eosio.system.contracts.md:
--------------------------------------------------------------------------------
1 |
bidname
2 |
3 | ---
4 | spec_version: 0.2.0
5 | title: Bidname
6 | summary: Place a bid of {{ bid }} EOS by account {{ bidder }} on the account name {{ newname }}
7 | icon: NEED TO ADD
8 | ---
9 |
10 | As an authorized party I, {{ bidder }}, wish to bid the amount of {{ bid }} toward purchase of the account name {{ newname }}.
11 |
12 | I am aware that I cannot revoke my bid of {{ bid }} EOS. I will only receive it back if I am outbid by at least 10% by another account.
13 |
14 | My bid of {{ bid }} EOS for the account name {{ newname }} will only be awarded if it holds the highest bid for any new account name, for a period of 24 consecutive hours.
15 |
16 | buyram
17 |
18 | ---
19 | spec_version: 0.2.0
20 | title: Buy RAM
21 | summary: Account {{ payer }} will purchase RAM for account {{ receiver }} using {{ quant }} EOS as payment
22 | icon: NEED TO ADD
23 | ---
24 |
25 | This action will purchase RAM for account {{ receiver }} by using {{ quant }} EOS from account {{ payer }}.
26 |
27 | The purchase amount of {{ quant }} EOS will have 0.5% removed as a fee, to be sent to the account `eosio.ramfee`.
28 |
29 | The remaining portion of the purchase amount will be sent to the account `eosio.ram`.
30 |
31 | Only the account {{ receiver }} will be able to authorize a sale of this RAM in the future, and that it is completely non-transferable.
32 |
33 | The price of RAM is determined by the RAM market, and I, {{ payer }}, acknowledge that this price can fluctuate between time of purchase and time of sale.
34 |
35 | {{ payer }} accepts that the quantity of RAM available in the network can be modified by the network's Block Producers.
36 |
37 | {{ receiver }} will be unable to sell any utilized RAM until any information stored in that RAM has been freed. The process of freeing RAM will be subject to the terms of the other smart contracts with which {{ receiver }} will interact.
38 |
39 | {{ receiver }} accepts that rounding errors resulting from limits of computational precision may result in less RAM being allocated.
40 |
41 | buyrambytes
42 |
43 | ---
44 | spec_version: 0.2.0
45 | title: Buy RAM Bytes
46 | summary: Account {{ payer }} will purchase {{ bytes }} bytes of RAM for account {{ receiver }}
47 | icon: NEED TO ADD
48 | ---
49 |
50 | This action will purchase {{ bytes }} bytes of RAM for account {{ receiver }} by using EOS tokens from account {{ payer }}, at the rate determined by the system's RAM market.
51 |
52 | There will be a fee of 0.5% added to the purchase price determined by the system's RAM market. This fee will be sent to the account `eosio.ramfee`.
53 |
54 | Only the account {{ receiver }} will be able to authorize a sale of this RAM in the future, and that it is completely non-transferable.
55 |
56 | The price of RAM is determined by the RAM market, and I, {{ payer }}, acknowledge that this price can fluctuate between time of purchase and time of sale.
57 |
58 | {{ payer }} accepts that the quantity of RAM available in the network can be modified by the network's Block Producers.
59 |
60 | {{ receiver }} will be unable to sell any utilized RAM until any information stored in that RAM has been freed. The process of freeing RAM will be subject to the terms of the other smart contracts with which {{ receiver }} will interact.
61 |
62 | {{ receiver }} accepts that rounding errors resulting from limits of computational precision may result in less RAM being allocated.
63 |
64 | buyrex
65 |
66 | ---
67 | spec_version: 0.2.0
68 | title: Buy REX
69 | summary: Exchange {{ amount }} EOS from the REX fund of {{ from }} account for REX tokens
70 | icon: NEED TO ADD
71 | ---
72 |
73 | The `buyrex` action allows an account to exchange EOS tokens from their REX fund for REX tokens.
74 |
75 | As an authorized party I, {{ signer }}, wish to buy REX on the account {{ from }} with {{ amount }} EOS.
76 |
77 | I am aware of, and have fulfilled, all voting requirements needed to participate in the REX marketplace.
78 |
79 | I am aware that I will need to satify the maturing period before being able to transfer these REX tokens back into EOS tokens.
80 |
81 | canceldelay
82 |
83 | ---
84 | spec_version: 0.2.0
85 | title: Cancel Delay
86 | summary: Cancel a pending deferred transaction with ID {{ trx_id }}
87 | icon: NEED TO ADD
88 | ---
89 |
90 | As an authorized party I, {{ signer }}, wish to invoke the authority of {{ canceling_auth }} to cancel the transaction with ID {{ trx_id }}.
91 |
92 | claimrewards
93 |
94 | ---
95 | spec_version: 0.2.0
96 | title: Claim Rewards
97 | summary: Claim Block Rewards and Vote Rewards due to Block Producer {{ owner }}
98 | icon: NEED TO ADD
99 | ---
100 |
101 | As an authorized party I, {{ signer }}, wish to have the rewards earned by {{ owner }} deposited into the account {{ owner }}.
102 |
103 | By calling the `claimrewards` action, I, {{ owner }} agree to abide by any and all rules described in the Constitution, or any other governing documents, that are in effect at this time.
104 |
105 | EOS User Agreement
106 |
107 | ---
108 | spec_version: 0.2.0
109 | title: EOS User Agreement
110 | summary: EOS User Agreement
111 | icon: NEED TO ADD
112 | ---
113 |
114 | ## Definitions
115 |
116 | All capitalized, italicized, or inline code terms in *The EOS User Agreement* will be given the same effect and meaning as in *Definitions*.
117 |
118 | * EOS User Agreement: This document (*EUA*)
119 |
120 | * Chain ID: `chain_id` - aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
121 |
122 | * User: Any person or organization of persons who maintain(s) direct or indirect ownership of an EOS account, or EOS-based property connected to an EOS account.
123 |
124 | * Ownership: Direct or indirect access to an EOS account through one or more valid permissions checks. Ownership may be partially shared between Users through the use of multi-signature permissions.
125 |
126 | * Block Producer: Users who have called `regproducer` and receive rewards from eosio.vpay.
127 |
128 | * `eosio.prods`: An EOS account with a dynamic permissions structure that can assume the privileges of the `eosio` account when 15/21 Block Producers agree to do so.
129 |
130 | * Network Funds: Tokens contained within the following accounts: `eosio.names`, `eosio.ramfee`, `eosio.saving`.
131 |
132 | * Governing Documents: *regproducer* is considered a governing document.
133 |
134 | * On-Chain: Any transaction, smart contract, or Ricardian contract which is located within a block that is irreversible and appended to the EOS blockchain `chain_id`.
135 |
136 | * EOS-based Property: Anything that requires a valid permission in order to directly manipulate, alter, transfer, influence, or otherwise effect on the EOS Blockchain
137 |
138 | * Call: To submit an action to the EOS Blockchain `chain_id`.
139 |
140 | * Authorizations & Permissions: Permissions are arbitrary names used to define the requirements for a transaction sent on behalf of that permission. Permissions can be assigned for authority over specific contract actions.
141 |
142 | * Ricardian Contract: A contract that places the defining elements of a legal agreement in a format that can be expressed and executed in software.
143 |
144 | ## Article I - User Acknowledgement of Risks
145 | If User loses access to their EOS account on `chain_id` and has not taken appropriate measures to secure access to their EOS account by other means, the User acknowledges and agrees that that EOS account will become inaccessible. Users acknowledge that the User has an adequate understanding of the risks, usage and intricacies of cryptographic tokens and blockchain-based software. The User acknowledges and agrees that the User is using the EOS blockchain at their sole risk.
146 |
147 | ## Article II - Special User Types
148 | Users who call `regproducer` agree to, and are bound by, the *regproducer* Ricardian Contract.
149 |
150 | ## Article III - Consent of the EUA
151 | The nature of the *EOS User Agreement* is such that it serves as a description of the current EOS Mainnet governance functions that are in place. These functions, enforced by code, do not require the consent of Users as these functions are inherent and systemic to the EOS Mainnet itself.
152 |
153 | ## Article IV - Governing Documents
154 | Any modifications to the *EUA* and *governing documents* may be made by `eosio.prods`. It is admonished that a statement be crafted and issued through `eosio.prods` via eosio.forum referendum contract describing such a modification in advance.
155 |
156 | ## Article V - Native Unit of Value
157 | The native unit of value on EOS chain_id shall be the EOS token as defined and created by the `eosio.token` smart contract.
158 |
159 | ## Article VI - Maintaining the EOS blockchain
160 | `eosio.prods` will maintain the active blockchain codebase which includes, but is not limited to, the implementation of all modifications of all features, optimizations, and upgrades: present and future.
161 |
162 | ## Article VII - Network Funds
163 | It is admonished that any altering of the state of any tokens contained within network fund accounts, or altering any pre-existing code that directly or indirectly governs the allocation, fulfillment, or distribution of any *network funds* be preceded by a statement crafted and issued by `eosio.prods` to the *eosio.forum* referendum system contract describing the effect in advance.
164 |
165 | ## Article VIII - Freedom of Account Creation
166 | Any current or future User is able to create an EOS Account without the permission by any other User. `eosio.prods` may never affect an EOS User Account(s) without valid permission(s) which have been shared with `eosio.prods` by an EOS account. `eosio.prods` may charge a fee for any actions that are requested by other Users pertaining to an EOS account where permissions are shared.
167 |
168 | ## Article IX - No Fiduciary
169 | No User shall have a fiduciary purpose to support the value of the EOS token. No User can authorize anyone to hold assets, borrow, speak, contract on behalf of other EOS Users or the EOS blockchain `chain_id` collectively. This EOS blockchain shall have no owners, managers, or fiduciaries.
170 |
171 | ## Article X - User Security
172 | All items pertaining to personal account security, including but not limited to the safekeeping of private keys, is solely the responsibility of the User to secure.
173 |
174 | ## Article XI - `eosio.prods` Limited Liability
175 | The User acknowledges and agrees that, to the fullest extent permitted by any applicable law, this disclaimer of liability applies to any and all damages or injury whatsoever caused by or related to risks of, use of, or inability to use, the EOS token or the EOS blockchain `chain_id` under any cause of action whatsoever of any kind in any jurisdiction, including, without limitation, actions for breach of warranty, breach of contract or tort (including negligence) and that `eosio.prods`, nor the individual permissions that operate it, shall not be liable for any indirect, incidental, special, exemplary or consequential damages, including for loss of profits, goodwill or data.
176 |
177 | # EOS 사용자 동의서
178 |
179 | ## 정의
180 |
181 | EOS 사용자 동의서의 모든 대문자, 기울임 꼴, 또는 인라인 코드 용어는 정의에서와 동일한 효과와 의미가 부여됩니다.
182 |
183 | - EOS 사용자 동의서: 본 문서 (EUA)
184 | - 체인 ID: chain_id --- aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
185 | - 사용자: EOS 계정을 직접 또는 간접적으로 소유하거나 EOS 계정에 연결된 EOS 기반 속성을 유지하거나 관리하는 사람, 조직, 또는 조직의 모든 사람.
186 | - 소유권: 하나 이상의 유효한 사용권한 확인을 통해 EOS 계정에 직접 또는 간접적으로 접근합니다. 소유권은 다중 서명권한을 사용하여 사용자간에 부분적으로 공유 될 수 있습니다.
187 | - 블록 프로듀서: regproducer를 실행하고 eosio.vpay로부터 보상을 받는 사용자.
188 | - eosio.prods: 15/21 블록 프로듀서들이 동의 할 때 eosio 계정의 권한을 가질 수 있는 동적 권한 구조를 가진 EOS 계정.
189 | - 네트워크 자금: 다음 계정에 포함 된 토큰: eosio.names, eosio.ramfee, eosio.saving.
190 | - 관리 문서: regproducer는 관리 문서로 간주됩니다.
191 | - 온체인: EOS 블록체인 chain_id에 비가역적이며 추가 할 수 있는 블록 내에 위치한 모든 거래, 스마트 계약 또는 리카르디안 계약.
192 | - EOS 기반 속성: EOS 블록체인을 직접 조작, 변경, 전송, 영향 또는 달리 적용하기 위해 유효한 사용 권한이 필요한 모든 것
193 | - 콜: EOS 블록체인 chain_id에 작업을 신청하는 것.
194 | - 허가 및 권한: '허가'는 해당 권한을 대신하여 전송되는 트랜잭션의 요구사항을 정의하는 데 사용됩니다. '권한'은 특정 계약 조치에 대한 권한을 부여합니다.
195 | - 리카르디안 계약: 합법적 계약의 정의 요소를 소프트웨어로 표현하고 실행할 수 있는 형식으로 배치하는 계약.
196 |
197 | ## 제 1조 --- 위험에 대한 사용자들의 인지
198 |
199 | 사용자가 chain_id에서 EOS 계정에 대한 접근 권한을 잃고, 다른 방법으로 EOS 계정에 대한 접근을 보호하기 위해 적절한 조치를 취하지 않는 경우에는 EOS 계정에 접근할 수 없게 된다는 것을 인정하고 동의합니다. 사용자는 암호화 토큰과 블록체인 기반 소프트웨어의 위험, 사용법, 그리고 복잡성에 대해 충분히 이해하고 있음을 인정합니다. 사용자는 EOS 블록체인의 사용에 대한 전적인 책임을 진다는 것에 인정하고 동의합니다.
200 |
201 | ## 제 2조 --- 특별한 사용자 유형
202 |
203 | regproducer를 실행하는 사용자는 regproducer 리카르디안 계약에 동의하고, 이에 구속됩니다.
204 |
205 | ## 제 3조 --- EUA의 동의
206 |
207 | EOS 사용자 동의서는 현재 시행중인 EOS 메인넷 거버넌스에 대한 설명으로 사용됩니다. 코드에 의해 시행되는 이러한 기능은 EOS 메인넷 자체의 체계적이고 고유한 기능이므로 사용자의 동의를 필요로 하지 않습니다.
208 |
209 | ## 제 4조 --- 관리 문서
210 |
211 | EUA와 관리 문서는 eosio.prods를 통해 수정이 가능합니다. 특정 변경사항을 사전에 설명하는 eosio.forum 투표 계약을 통해 eosio.prods가 성명서를 작성하고 발급할 것을 권고합니다.
212 |
213 | ## 제 5조 --- 가치의 기본 단위
214 |
215 | EOS chain_id의 기본 단위는 eosio.token 스마트 계약에 의해 정의되고 작성된 EOS 토큰입니다.
216 |
217 | ## 제 6조 --- EOS 블록체인 유지
218 |
219 | eosio.prods는 모든 기능, 최적화, 그리고 업그레이드의 현재와 미래의 모든 수정사항을 구현하는 것을 포함하되, 이에 국한되지 않는 활성화된 블록체인 코드베이스를 유지합니다
220 |
221 | ## 제 7조 --- 네트워크 자금
222 |
223 | 네트워크 자금 계정에 포함된 토큰의 상태를 변경하거나, 네트워크 자금의 배분, 이행, 또는 배포를 직/간접적으로 관리하는 기존 코드를 변경하는 경우에는 eosio.prods를 eosio.forum 총 투표 시스템 계약에 추가하여 사전에 충분한 설명이 이루어져야 합니다.
224 |
225 | ## 제 8조 --- 계정 생성의 자유
226 |
227 | 현재, 또는 미래의 사용자는 다른 사용자의 허가 없이 EOS 계정을 만들 수 있습니다. eosio.prods는 EOS 계정에 의해 공유된 유효한 허가 없이는 EOS 사용자 계정에 영향을 줄 수 없습니다. eosio.prods는 권한이 공유되는 EOS 계정과 관련하여 다른 사용자가 요청한 모든 작업에 대해 요금을 부과할 수 있습니다.
228 |
229 | ## 제 9조 --- 신탁 불가
230 |
231 | 사용자는 EOS 토큰의 가치를 뒷받침할 수 있는 신탁 목적을 가져서는 안됩니다. 사용자는 EOS 사용자 또는 EOS 블록체인 chain_id를 대표하여 누구에게도 자산을 보유하거나, 대여하거나, 자산에 대해 얘기하거나, 계약을 맺을 권한을 부여할 수 없습니다. EOS 블록체인에는 소유자, 관리자, 그리고 수탁자가 없어야 합니다.
232 |
233 | ## 제 10조 --- 사용자 보안
234 |
235 | 비공개 키의 보관을 포함하되, 이에 국한되지 않는 개인 계좌 보안과 관련된 모든 항목들 또한 전적으로 사용자가 안전하게 보관해야 합니다.
236 |
237 | ## 제 11조 --- eosio.prods 유한책임
238 |
239 | 사용자는 법률이 허용하는 한도 내에서 EOS 토큰의 위험, 사용, 또는 사용 불가로 인해 발생하는 모든 손해에 대해 책임의 면책 조항이 적용된다는 것을 인정하고, 동의합니다. 계약 위반, 불법 행위, 그리고 위반 행위 (관리 태만 포함)와 eosio.prods 또는 이를 운영하는 개별 사용 권한을 포함하되, 이에 국한하지 않고 모든 관할 지역에서의 모든 종류의 사유로 인한 EOS 블록체인 chain_id 이익, 영업권, 또는 데이터의 손실을 포함하여 간접적, 우발적, 특수한, 대표적, 그리고 파생적인 손해에 대한 책임을 지지 않습니다.
240 |
241 | # EOS用户协议
242 |
243 | ## **定义**
244 |
245 | EOS用户协议中的所有大写,斜体或内联代码术语将具有与以下定义相同的效果和含义。
246 |
247 | - EOS用户协议:即本文档(EUA)
248 |
249 | - 链上ID: chain_id - aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
250 |
251 | - 用户:任意满足下列要求的个人或组织:直接或者间接拥有EOS账户或与EOS账户关联的基于EOS发行的财产。
252 |
253 | - 所有权:直接或者间接通过一个或多个有效的权限检查访问一个EOS账户。所有权可以通过多签权限许可在用户间共享。
254 |
255 | - 执行了regproduce,并且从eosio.vpay领取收入的用户。
256 |
257 | - eosio.prods:具有动态权限结构的EOS帐户,当15/21 Block Producers同意时,该帐户可以承担eosio帐户的权限。
258 |
259 | - 网络资产:包含在以下账户中的代币:eosio.names、eosio.ramfee、 eosio.saving。
260 |
261 | - 治理文档:regproducer是治理文档。
262 |
263 | - 任何交易、智能合约或者李嘉图合约,它们已经位于一个区块中,并且这个区块是不可逆转的、已附加到名为chain_id的EOS区块链中。
264 |
265 | - 基于EOS资产:任何需要有效许可来操作、改变、转移、影响或者进行其他操作的东西。
266 |
267 | - 执行:在名为chain_id的EOS区块链中提交一个行动。
268 |
269 | - 授权和权限:权限(Permissions)是用来定义代表该权限发送的交易的要求的任意名字。可以给特定的合约操作的授权(Authorizations)分配权限(Permissions)。
270 |
271 | - 李嘉图合约:将法律协议中的定义要素以能在软件中表达和执行的格式表达的合约。
272 |
273 | ## **条款一****用****户风险确认**
274 |
275 | 如果用户丢失账户访问权限或者没有采取合适的方式保护账户访问权限,用户应知悉并同意,EOS账户将无法访问。用户应确认用户对加密代币和区块链软件的风险、用法和复杂性有充分了解。用户承认并同意用户自行承担使用EOS区块链的风险。
276 |
277 | ## **条款二****特殊用****户类型**
278 |
279 | 执行regproduce,同意并且受regproducer李嘉图合约约束的用户。
280 |
281 | ## **条款三****同意****EOS****用****户协议**
282 |
283 | EOS用户协议的实质是对当前EOS主网治理功能的描述。由代码强制执行的功能不需要用户的同意,因为这些功能是EOS主网系统自带的。
284 |
285 | ## **条款四** - **治理文档**
286 |
287 | eosio.prods可以对EOS用户协议和治理文档进行任何修改。严正提醒,提前用eosio.forum公投合约,通过eosio.prods编写、发布一个声明来描述那个修改。
288 |
289 | ## **条款五****原生价****值单位**
290 |
291 | EOS公链上的原生价值单位应为eosio.token智能合约定义和创建的EOS通证。
292 |
293 | ## **条款六****维护****EOS****区****块链**
294 |
295 | 无论现在或将来将来,eosio.prods将维护活跃的区块链代码库,包括但不限于所有功能、优化、升级的所有修改、实现。
296 |
297 | ## 条款七 - ****定****义****EOS****网络资产
298 |
299 | 更改网络资产账户中的任何代币的状态,更改任何现存的直接或间接管理任何网络资产的分配、实现或分发的代码,需要事先用eosio.prods在eosio.forum公投合约上编写和发布效果描述的声明。
300 |
301 | ## **条款八-创建账户自由**
302 |
303 | 任何现在或将来的用户都可以在未经任何其他用户许可的情况下创建EOS帐户。 如何没有收到EOS帐户的有效许可(permission),eosio.prods永远不会影响EOS用户帐户。 对于共享权限的EOS帐户的其他用户请求的任何操作,eosio.prods可能会收取费用。
304 |
305 | ## **条款九没有受托人**
306 |
307 | 没有用户承担信托责任来维持EOS代币的价值。没有用户可以代表EOS用户或者代表名为chain_ID的EOS区块链授权任何人共同持有资产、借款、发言或定合同。此区块链不存在拥有者、管理者或者受托人。
308 |
309 | ## **条款十个人安全**
310 |
311 | 所有有关个人账户安全的事项,包括但不限于私钥的安全保存,都由用户自己负责。
312 |
313 | ## **条款十一 eosio.prods的有限责任**
314 |
315 | 用户应知悉和同意,在任何适用法律允许的最大范围内,本免责声明适用于与EOS代币风险,使用或无法使用EOS代币有关或导致的任何或所有损害或伤害,也适用于任何司法管辖区内的任何任何行为下的EOS区块链chain_id,包括但不限于违反担保、违反合同或侵权行为(包括疏忽)。eosio.prods以及操作它的个人权限对于任何间接的,偶然的,特殊的,示例性的或后果性的损害,包括利润损失,商誉或数据,不承担任何责任。
316 |
317 | closerex
318 |
319 | ---
320 | spec_version: 0.2.0
321 | title: Close Rex
322 | summary: Free up any REX-related database entries in RAM from the account {{ owner }}
323 | icon: NEED TO ADD
324 | ---
325 |
326 | The `closerex` action allows an account to delete unused REX-related database entries and frees occupied RAM associated with its storage.
327 |
328 | As an authorized party, I {{ signer }}, wish to delete all unused REX-related database entries from the account {{ owner }}.
329 |
330 | I will not be able to succesfully call `closerex` unless all checks for CPU loans, NET loans or refunds pending refunds are still processing on the account {{ owner }}.
331 |
332 | cnclrexorder
333 |
334 | ---
335 | spec_version: 0.2.0
336 | title: Cancel REX Order
337 | summary: Cancel any queued REX sell orders for account {{ owner }}
338 | icon: NEED TO ADD
339 | ---
340 |
341 | The `cnclrexorder` action cancels a queued REX sell order if one exists for an account.
342 |
343 | As an authorized party I, {{ signer }}, wish to cancel any unfilled and queued REX sell orders that exist for the account {{ owner }}.
344 |
345 | consolidate
346 |
347 | ---
348 | spec_version: 0.2.0
349 | title: Consolidate Maturity Buckets
350 | summary: Consolidate any open maturity buckets for account {{ owner }}
351 | icon: NEED TO ADD
352 | ---
353 |
354 | The `consolidate` action will consolidate all REX maturity buckets for an account into one that matures 4 days from 00:00 UTC.
355 |
356 | As an authorized party I, {{ signer }}, wish to consolidate any open REX maturity buckets for the account {{ owner }} into one that matures 4 days from the following 00:00 UTC.
357 |
358 | defcpuloan
359 |
360 | ---
361 | spec_version: 0.2.0
362 | title: Defund CPU Loan
363 | summary: Remove {{ amount }} EOS tokens previously assigned by {{ from }} to renew CPU loan {{ loan_num }}
364 | icon: NEED TO ADD
365 | ---
366 |
367 | The `defcpuloan` action allows an account to withdraw tokens from the fund of a specific CPU loan and adds them to REX fund.
368 |
369 | As an authorized party I, {{ signer }}, wish to withdraw from the CPU loan fund identified by loan number {{ loan_num }} on the account {{ from }} in the amount of {{ amount }} EOS and have those tokens allocated to the REX fund of {{ from }}.
370 |
371 | defnetloan
372 |
373 | ---
374 | spec_version: 0.2.0
375 | title: Defund Network Loan
376 | summary: Remove {{ amount }} EOS tokens previously set by {{ from }} to renew Network loan {{ loan_num }}
377 | icon: NEED TO ADD
378 | ---
379 |
380 | The `defnetloan` action allows an account to withdraw tokens from the fund of a specific Network loan and adds them to REX fund.
381 |
382 | As an authorized party I, {{ signer }}, wish to withdraw from the Network loan fund identified by loan number {{ loan_num }} on the account {{ from }} in the amount of {{ amount }} and have those tokens allocated to the REX fund of {{ from }}.
383 |
384 | delegatebw
385 |
386 | ---
387 | spec_version: 0.2.0
388 | title: Delegate Bandwidth
389 | summary: {{ from }} stakes EOS tokens for the account {{ receiver }}, {{ stake_net_quantity }} for Network and {{ stake_cpu_quantity }} for CPU
390 | icon: NEED TO ADD
391 | ---
392 |
393 | As an authorized party I, {{ signer }}, wish to stake {{ stake_net_quantity }} EOS for Network and {{ stake_cpu_quantity }} EOS for CPU from the liquid tokens of {{ from }} for the use of {{ receiver }}.
394 |
395 | By including the `--transfer` flag, {{ from }} would like to permanently transfer the tokens to {{ receiver }} and not just temporarily delegate their resources.
396 |
397 | I understand that should I wish to unstake these tokens and relinquish the claim on resources that I shall be restricted by the wait period as described in `undelegatebw`.
398 |
399 | deleteauth
400 |
401 | ---
402 | spec_version: 0.2.0
403 | title: Delete Authority
404 | summary: Delete the permission authority {{ permission }} of account {{ account }}
405 | icon: NEED TO ADD
406 | ---
407 |
408 | As an authorized party I, {{ signer }}, wish to delete the permission authority {{ permission }} of account {{ account }}.
409 |
410 | I understand that this action, once called, cannot be revoked.
411 |
412 | deposit
413 |
414 | ---
415 | spec_version: 0.2.0
416 | title: Deposit to REX Fund
417 | summary: Deposit {{ amount }} EOS tokens from the liquid balance of {{ owner }} into their REX Fund.
418 | icon: NEED TO ADD
419 | ---
420 |
421 | The `deposit` action allows an account to deposit EOS tokens into their REX fund by transfering from their liquid token balance.
422 |
423 | As an authorized party I, {{ signer }}, wish to deposit {{ amount }} EOS tokens into the REX fund of the account {{ owner }} from the liquid token balance of {{ owner }}.
424 |
425 | fundcpuloan
426 |
427 | ---
428 | spec_version: 0.2.0
429 | title: Fund CPU Loan
430 | summary: Assign {{ payment }} EOS tokens for the renewal of CPU loan {{ loan_num }} upon expiry.
431 | icon: NEED TO ADD
432 | ---
433 |
434 | The `fundcpuloan` action allows an account to transfer tokens from its REX fund to the fund of a specific CPU loan in order for those tokens to be used for loan renewal at the loan's expiry.
435 |
436 | As an authorized party I, {{ signer }}, wish to transfer the amount of {{ payment }} tokens into the CPU loan fund of the loan identified by loan number {{ loan_num }} from the account {{ from }} to be used for loan renewal at the expiry of {{ loan_num }}.
437 |
438 | fundnetloan
439 |
440 | ---
441 | spec_version: 0.2.0
442 | title: Fund Network Loan
443 | summary: Assign {{ payment }} EOS tokens for the renewal of Network loan {{ loan_num }} upon expiry.
444 | icon: NEED TO ADD
445 | ---
446 |
447 | The `fundnetloan` action allows an account to transfer tokens from its REX fund to the fund of a specific Network loan in order for those tokens to be used for loan renewal at the loan's expiry.
448 |
449 | As an authorized party I, {{ signer }}, wish to transfer the amount of {{ payment }} tokens into the Network loan fund of the loan identified by loan number {{ loan_num }} from the account {{ from }} to be used for loan renewal at the expiry of {{ loan_num }}.
450 |
451 | linkauth
452 |
453 | ---
454 | spec_version: 0.2.0
455 | title: Link Authority
456 | summary: Link permission authority {{ requirement }} of account {{ account }} to a specific contract's action
457 | icon: NEED TO ADD
458 | ---
459 |
460 | I, {{ signer }}, wish to link the permission authority {{ requirement }} of {{ account }} to the action {{ type }} of the smart contract {{ code }}.
461 |
462 | I can only remove this link by calling the `unlinkauth` action, and will need to do so before being able to call `deleteauth`.
463 |
464 | I can specify a specific action from contract {{ code }}, or I can use a wildcard to link all actions within a contract to the authority {{ requirement }}. If new actions are added to contract {{ code }}, my account {{ account }} will be able to call those new actions.
465 |
466 | I acknowledge that I cannot use `linkauth` for the following actions: `updateauth`, `deleteauth`, `linkauth`, `unlinkauth`, and `canceldelay`.
467 |
468 | mvfrsavings
469 |
470 | ---
471 | spec_version: 0.2.0
472 | title: Move REX From Savings
473 | summary: Commence maturing {{ rex }} REX tokens from the savings bucket of account {{ owner }}.
474 | icon: NEED TO ADD
475 | ---
476 |
477 | The `mvfrsavings` action allows an account to move REX tokens from its savings bucket to a bucket with a maturity date that is 4 days after 00:00 UTC.
478 |
479 | As an authorized party I, {{ signer }}, wish to move {{ rex }} tokens from the savings bucket of the account {{ owner }}. Those tokens shall become available to {{ owner }} 4 days from 00:00 UTC.
480 |
481 | mvtosavings
482 |
483 | ---
484 | spec_version: 0.2.0
485 | title: Move REX to savings
486 | summary: Move {{ rex }} REX tokens into the savings bucket of account {{ owner }}
487 | icon: NEED TO ADD
488 | ---
489 |
490 | The `mvtosavings` action allows an account to move REX tokens into a savings bucket.
491 |
492 | As an authorized party I, {{ signer }}, wish to move {{ rex }} tokens to a savings bucket associated to the account {{ owner }}. I acknowledge that those tokens will then be subject to any maturity restrictions described in the `mvfrsavings` action.
493 |
494 | newaccount
495 |
496 | ---
497 | spec_version: 0.2.0
498 | title: Create New Account
499 | summary: Account {{ creator }} creates the account {{ name }}
500 | icon: NEED TO ADD
501 | ---
502 |
503 | The `newaccount` action creates a new account.
504 |
505 | As an authorized party I, {{ signer }}, wish to exercise the authority of {{ creator }} to create a new account on this blockchain named {{ name }}, such that the new account's `owner` permission's public key shall be {{ owner }} and the `active` permission's public key shall be {{ active }}.
506 |
507 | The account name {{ name }} must conform to the standards of only utilizing lowercase characters `a` through `z`, and `1` through `5`.
508 |
509 | Should there be a `.` in {{ name }}, then only the account who has won the `bidname` auction for that suffix may call the `newaccount` action.
510 |
511 | Should the account name {{ name }} be fewer than 12 characters and not contain a `.`, the `newaccount` action may only be called by the winner of the `bidname` auction for that suffix by using the same account that cast the winning bid.
512 |
513 | refund
514 |
515 | ---
516 | spec_version: 0.2.0
517 | title: Refund
518 | summary: Manually trigger a refund after the undelegation period for account {{ owner }}
519 | icon: NEED TO ADD
520 | ---
521 |
522 | The `refund` action will manually trigger a return of EOS tokens that should have been automatically allocated from `eosio.stake` to {{ owner }} at the end of the 72-hour undelegation period after calling `undelegatebw`.
523 |
524 | As an authorized party I, {{ signer }}, wish to have the any unstaked tokens due to {{ owner }} returned as liquid EOS tokens into the account {{ owner }}.
525 |
526 | regproducer
527 |
528 | ---
529 | spec_version: 0.2.0
530 | title: Register Producer
531 | summary: Register a Block Producer Candidate on the account {{ producer }}
532 | icon: NEED TO ADD
533 | ---
534 |
535 | ### 1. The intent of regproducer
536 | The intent of the `regproducer` action is to register a block producer candidacy. This contract is considered a governing document as defined by the EOS User Agreement (EUA).
537 |
538 | regproducer의 목적
539 |
540 | `regproducer` 작업의 목적은 블록생산자 입후보 등록을 하는 것입니다. 이 계약은 EOS 사용자 계약서 (EUA)에 정의된 바와 같이 관리 문서로 간주됩니다.
541 |
542 | regproducer 的目的
543 |
544 | `regproducer`操作的目的是注册成为出块节点候选者。根据 EOS 用户协议(EUA)的定义,本合约属于治理文本(governing document)
545 |
546 | ### 2. Nomination
547 | I, {{ producer }}, hereby nominate myself for consideration as a block producer candidate. This nomination includes agreement to the terms of this contract by my block producer candidate entity, including all of its shareholders, owners, employees, staff, members, and any individual working in official, direct, or affiliated capacity for my Block Producer entity.
548 |
549 | 지명
550 |
551 | 나, {{ producer }}는 블록프로듀서 후보로 고려되도록 자신을 지명합니다. 이 지명에는 블록프로듀서회사의 모든 주주, 소유자, 직원, 멤버, 회원 및 공식인원, 직접 또는 계열사에서 일하는 모든 개인을 포함한 블록프로듀서 회사가 계약 조건에 대해 동의함을 인정합니다.
552 |
553 | 提名
554 |
555 | 本人,{{ producer }},特此提名本人为出块节点候选人。本提名包括了本出块节点候选人实体对本合约中所有条款的明确同意,包含其所有者、雇员、员工、成员,以及任何以正式方式、直接或附属方式为本出块节点实体工作的个人。
556 |
557 | ### 3. Resignation and Removal for Inability to Perform Obligations.
558 |
559 | If I, {{ producer }}, am unable to perform any of the obligations stipulated in this contract, I will resign my position by calling the `unregprod` action.
560 |
561 | If I, {{ producer }}, fail to resign when unable to perform said obligations, I understand that procedures enumerated in this contract shall be enacted.
562 |
563 | 의무의 불이행에 대한 사임 및 철회
564 |
565 | {{ producer }}가 본 계약서에 명시된 의무를 수행 할 수 없는 경우, 생산자 키를 null 로 함으로써 본인의 지위를 사임합니다.
566 |
567 | 만약 내가 {{producer}}의 의무를 이행 할 수 없을 때 사임하지 않는다면, 나는 본 계약에 열거된 절차가 집행됨을 동의합니다.
568 |
569 | 因不能履行义务而退出或被取消出块资格
570 |
571 | 如果我,{{ producer }},不能履行本合约中所规定的所有义务,我将使用 `unregprod` 操作来自我退出(resign)。
572 |
573 | 如果我 {{ producer }}, 在无法履行上述义务时未能退出(resign),我知晓本合约将会按照所有列举的程序对我实行制裁或处罚程序。
574 |
575 | ### 4. EOS Accounts
576 |
577 | Block Producers may never affect an account on the EOS blockchain, except for the reasons specifically cited in this contract that pertain to Block Producer accounts. User accounts can only be affected on the basis of Article VIII in the EOS User Agreement.
578 |
579 | EOS 계정
580 |
581 | 블록프로듀서는 본 계약에서 해당하는 블록프로듀서의 계정 차단에 관련하여 특별히 언급한 이유를 제외하고는 EOS 블록체인의 계정에 결코 영향을 미치지 않습니다. 사용자 계정은 EOS 사용자 계약서의 8조에 근거할 때만 영향을 받을 수 있습니다.
582 |
583 | EOS 账号
584 |
585 | 出块节点永远不会对 EOS 区块链上的帐户造成影响,除非是本合约中特别提到与出块节点帐户有关的原因。只有基于 EOS用户协议中的第八条的情形下,用户的账号才会受到影响.
586 |
587 | ### 5. Producer Key
588 |
589 | I, {{ producer }}, will sign blocks with {{ producer_key }}
590 |
591 | If I, {{ producer }} suspect my key has been compromised I will alert the other Block Producers immediately.
592 |
593 | I, {{ producer }}, acknowledge that any and all actions executed with my {{ producer_key }} is my responsibility, regardless of the account being compromised.
594 |
595 | 프로듀서 키
596 |
597 | 나, {{ producer }}는 {{ producer _ key }} 로 블록에 서명 할 것입니다.
598 | 만약 내, {{producer}} 가 본인의 키가 손상되었다고 의심되면 즉시 다른 블록프로듀서에게 알려줄 것입니다.
599 | 나, {{producer}}는 EOS 블록체인에서 본인의 블록프로듀서 계정이 실행하는 모든 작업에 대해, 계정 이상 유무와 관련 없이, 책임이 있음을 인정합니다.
600 |
601 | 出块节点公钥
602 |
603 | 我, {{ producer }}, 将使用 {{ producer_key }} 对区块签名。
604 | 如果我, {{ producer }}, 怀疑我的密钥已被泄露,我将立即通知其他节点。
605 | 我,{{ producer }},承认我的出块节点帐户在EOS区块链上所执行的任何操作都是我的责任,无论该帐户是否被盗。
606 |
607 | ### 6. API Endpoints
608 |
609 | If I, {{ producer }}, qualify for, and choose to claim rewards due to votes received, and/or blocks produced, I, {{ producer }}, will provide functioning and queryable public P2P and API endpoints to maintain synchronization with the blockchain and submit transactions to be included. API endpoints must be updated to a recent functional version that does not have known security vulnerabilities.
610 |
611 | I, {{ producer }}, hereby acknowledge that if I am unable to do so within 30 minutes of being alerted by another block producer candidate, I can be removed by use of the `rmvproducer` action.
612 |
613 | API 엔드포인트
614 |
615 | 만약 내, {{ producer }} 가 투표를 받아 블록 보상을 청구할 수 있는 자격을 얻으면, 나 {{ producer }}는 작동 및 쿼리 가능한 공개 P2P 및 API 엔드포인트를 블록체인과의 동기화 및 트랜잭션을 제출할 수 있게 유지관리합니다. API 엔드포인트는 알려진 보안 취약성이 없는 최신버전으로 업데이트해야 합니다.
616 |
617 | 나, {{ producer }} 는 다른 block producer candidate 가 경고 한 후, 30분 이내에 바로잡을 수 없다면 `rmvproducer` 조치를 통해 자격이 제거 될 수 있음을 인정합니다.
618 |
619 | API 端点
620 |
621 | 如果我,{{ producer }} 由于得到投票和/或出块的原因,符合领取奖励的条件并选择接受奖励,那么我, {{ producer }},将提供功能正常的公共 P2P 和 API 端点来维护与区块链的同步,并提交要打包入块的事务。API 端点必须更新到最新的可用版本,并且该版本没有已知的安全漏洞
622 |
623 | 我,{{producer}},在此确认,如果我在收到另一个 block producer candidate的警告后30分钟内仍不能符合上述要求,可以使用`rmvproducer`操作移除我的账户。
624 |
625 | ### 7. Execution time
626 |
627 | I, {{ producer }}, will deploy and run network infrastructure capable of maintaining 2ms or less CPU execution times.
628 |
629 | I, {{ producer }}, hereby acknowledge that if I am unable to do so within 30 minutes of being alerted by another block producer candidate, I can be removed by use of the `rmvproducer` action.
630 |
631 | 실행 시간
632 |
633 | 나, {{ producer }}는 2ms 또는 그 이하의 CPU 실행 시간을 유지할 수 있는 네트워크 인프라를 배포하고 실행합니다.
634 |
635 | 나, {{ producer }} 는 다른 block producer candidate가 경고 한 후, 30분 이내에 바로잡을 수 없다면 `rmvproducer` 조치를 통해 자격이 제거 될 수 있음을 인정합니다.
636 |
637 | 执行时间
638 |
639 | 我, {{ producer }},将部署和运行网络基础设施,能够将 CPU 执行时间维持在 2ms 或更少的水平。
640 |
641 | 我,{{ producer }},在此确认,如果我在收到另一个block producer candidate的警告后30分钟内不能符合上述条件,可以使用 `rmvproducer` 操作将我移除。
642 |
643 | ### 8. Ordering
644 | I {{ producer }} agree to process transactions on a first-in-first-out (FIFO) basis, and not to manipulate the contents of blocks in order to derive profit from the order in which transactions are included: the hash of the block that is produced.
645 |
646 | 생산
647 | 나, {{ producer }}는 선입 선출법 (FIFO) 방식으로 거래를 처리하고 거래가 블록의 해시에 포함되는 순서에서 이익을 얻으려는 목적으로 생산하는 블록의 내용을 조작하지 않기로 동의합니다.
648 |
649 | 顺序
650 |
651 | 我, {{ producer }} ,同意根据先进先出(FIFO)的方式处理事务,并且绝不会为了牟利而利用区块内容、操纵区块中交易处理的顺序。
652 |
653 | ### 9. Random Rotation of Standbys
654 | I, {{ producer }}, agree that if I am in a paid standby position, I can be randomly called into a producing position. Upon failure to produce blocks, code may self-execute penalties regarding future vpay rewards.
655 |
656 | 유급 대기 블록프로듀서의 무작위 로테이션
657 |
658 | 나, {{ producer }}는 본인이 유급 대기직에 있을 때, 무작위로 생산직으로 부름 받을 수 있다는 것에 동의합니다. 이때 블록을 생성하지 못하면 코드는 향후 vpay 보상에 대한 처벌을 집행할 수 있습니다.
659 |
660 | 备选节点随机轮换
661 |
662 | 我,{{ producer }},同意若本节点处于有偿备选状态,可被随机调入出块状态。如果我无法出块,合约代码可能会自动执行就未来的 vpay 报酬进行处罚。
663 |
664 | ### 10. Missing Two or More Rounds of Blocks
665 | I, {{ producer }}, acknowledge that if after missing 2 or more rounds of blocks in succession I am unable to be contacted within 20 minutes, I, {{ producer }}, acknowledge that I may be removed from a producing position by use of the `rmvproducer` action.
666 |
667 | I, {{ producer }}, acknowledge that after missing two or more rounds of blocks in succession, standard practice stipulates removing my producer by using the `unregprod` action until the given issue is resolved.
668 |
669 | 두 라운드 이상의 블록 누락
670 |
671 | 나, {{ producer }}는 두 라운드 이상 연속하여 블록을 누락 한 후, 20분 이내에 연락 할 수 없다면 {{ producer }} 가 `rmvproducer` 액션의 사용되어 생산 위치에서 제거 될 수 있음을 인정합니다.
672 |
673 | {{ producer }}는 두 라운드 이상으로 블록을 연속적으로 누락한다면, 주어진 문제가 해결 될 때까지 `unregprod` 작업을 사용하여 본인이 생산 위치에서 제거됨이 표준 관행으로 규정되어 있음을 인정합니다.
674 |
675 | 两轮或更多轮丢块的情形
676 |
677 | 我,{{ producer }}, 确认如果连续两轮或更多轮丢块且无法在20分钟内联系到我,我,{{ producer }}, 同意可能会用 `rmvproducer` 操作将我移除。
678 | 我,{{ producer }}, 如果连续两轮或更多轮丢块,根据标准实践会发起 `unregprod` 操作将我移除出块资格,直到问题解决。
679 |
680 | ### 11. Urgent Security Patches
681 | I, {{ producer }}, acknowledge that if I am not able to be contacted in any form after an urgent security patch is announced, I may be removed by use of the `rmvproducer` action.
682 |
683 | 긴급 보안 패치
684 | 긴급 보안 패치가 발표 된 후, 어떤 형태로든 연락 할 수 없는 경우 `rmvproducer` 작업을 사용하여 제거 될 수 있음을 나, {{ producer }}는 인정합니다.
685 |
686 | 紧急安全补丁
687 |
688 | 我,{{ producer }},确认如果在紧急安全补丁发布后用任何方式都无法联系到我,可能会用 `rmvproducer` 指令将我移除。
689 |
690 | ### 12. Disclosure of Entity and Server Information
691 | I, {{ producer }}, attest that I have disclosed the approximate geolocation for my main production node as being {{ location }}.
692 |
693 | 법인 및 서버 정보의 공개
694 |
695 | 나, {{ producer }} 는 주 생산 노드에 대한 위치 정보를 공개했음을 증명합니다.
696 |
697 | 实体和服务器的信息披露
698 |
699 | 我,{{ producer }},确认我已经披露了主出块节点服务器地理位置的准确信息。其地址为 {{ location }}。
700 |
701 | ### 13. Establishes the penalty and procedure for unwillingness to comply with penalties or procedures
702 |
703 | I, {{ producer }}, acknowledge that failing to comply with penalties or procedures enacted against me will result in Block Producers executing the `rmvproducer` contract to remove me.
704 |
705 | I, {{ producer }}, will not execute the `regproducer` contract until serving or fulfilling the requirements from a penalty or procedure that results in having the `rmvproducer` contract executed to remove me.
706 |
707 | I, {{ producer }}, acknowledge that if I continue to call the `regproducer` action without serving or fulfilling the requirements from breach of `regproducer`, my account keys associated with the registered Block Producer in question may be nulled by Block Producers by using `eosio.wrap`.
708 |
709 | 페널티를 준수하지 않을 경우 벌칙
710 |
711 | 나, {{ producer }} 는 나에게 제재된 처벌을 준수하지 않으면 블록프로듀서들이 `rmvproducer` 계약을 집행하게 될 것이라고 인정합니다. 나, {{ producer }} 는 `rmvproducer` 계약이 집행된다면 요구 사항을 충족될 때까지 `regproducer` 계약을 이행하지 않을 것입니다.
712 | `regproducer` 계약 위반으로 인한 요구 사항을 충족시키지 않고 `regproducer` 계약을 계속 호출하면 해당 블록프로듀서와 관련된 계정 키가 `eosio.wrap` 을 사용하여 블록프로듀서들에 의해 무효화 될 수 있음을 인정합니다.
713 |
714 | 对不愿遵守处罚的行为予以处罚
715 |
716 | 我,{{ producer }},承认若不遵守对本人制裁的处罚,BP 可以实施 `rmvproducer` 合约,我接受投票的资格将被取消。若有针对我实施 `rmvproducer` 合约的情况发生,我, {{ producer }} 在遵守/履行所收到的处罚之前,不会再次执行 `regproducer` 合约。
717 |
718 | 我,{{ producer }},在履行惩罚程序的要求之前,不会执行 `regproducer` 合同。我知晓如不履行此程序, `rmvproducer` 合同将会再次将我移除。
719 |
720 | 我,{{ producer }}, 承认如果没有遵守或履行因违反 `regproducer` 而受到的惩罚要求却继续调用`regproducer`操作,BP 可以调用 `eosio.wrap` 合约将我用来注册出块节点的账号密钥设置为无效值。
721 |
722 | regproxy
723 |
724 | ---
725 | spec_version: 0.2.0
726 | title: Register Proxy
727 | summary: Register account {{ proxy }} as a proxy
728 | icon: NEED TO ADD
729 | ---
730 |
731 | As an authorized party I, {{ signer }}, would like to register the account {{ proxy }} as a proxy by having the {{ isproxy }} value updated to `1`.
732 |
733 | As a proxy, the vote weight of all accounts who proxy to {{ proxy }} will be delegated along with its own. For all proposals created within `eosio.forum`, their vote weight will also be delegated to {{ proxy }}, unless that account chooses to cast their own vote for a proposal.
734 |
735 | rentcpu
736 |
737 | ---
738 | spec_version: 0.2.0
739 | title: Rent CPU
740 | summary: Rent CPU for account {{ receiver }} using payment of {{ loan_payment }} EOS tokens
741 | icon: NEED TO ADD
742 | ---
743 |
744 | The `rentcpu` action allows an account to rent CPU bandwidth for 30 days at a market-determined price.
745 |
746 | As an authorized party I, {{ signer }}, wish to rent CPU bandwidth for 30 days for the use of the account {{ receiver }} in exchange for the loan payment of {{ loan_payment }}, which shall be taken from the account {{ from }}. The loan fund amount {{ loan_fund }} is set for automatic renewal of the loan at the expiry of said loan.
747 |
748 | The amount of CPU bandwidth shall be determined by the market at time of loan execution and shall be recalculated at time of renewal, should I wish to automatically renew the loan at that time. I acknowledge that the amount of CPU bandwidth received in exchange of {{ loan_payment }} for the benefit of {{ receiver }} at loan renewal may be different from the current amount of bandwidth received.
749 |
750 | rentnet
751 |
752 | ---
753 | spec_version: 0.2.0
754 | title: Rent Network
755 | summary: Rent Network for account {{ receiver }} using payment of {{ loan_payment }} EOS tokens
756 | icon: NEED TO ADD
757 | ---
758 |
759 | The `rentnet` action allows an account to rent Network bandwidth for 30 days at a market-determined price.
760 |
761 | As an authorized party I, {{ signer }}, wish to rent Network bandwidth for 30 days for the use of the account {{ receiver }} in exchange for the loan payment of {{ loan_payment }}, which shall be taken from the account {{ from }}. The loan fund amount {{ loan_fund }} is set for automatic renewal of the loan at the expiry of said loan.
762 |
763 | The amount of Network bandwidth shall be determined by the market at time of loan execution and shall be recalculated at time of renewal, should I wish to automatically renew the loan at that time. I acknowledge that the amount of Network bandwidth received in exchange of {{ loan_payment }} for the benefit of {{ receiver }} at loan renewal may be different from the current amount of bandwidth received.
764 |
765 | rexexec
766 |
767 | ---
768 | spec_version: 0.2.0
769 | title: Execute REX Maintenance
770 | summary: Execute up to {{ max }} REX maintenance actions that may be pending
771 | icon: NEED TO ADD
772 | ---
773 |
774 | The `rexexec` action allows any account to perform REX maintenance by processing expired loans and unfilled sell orders.
775 |
776 | I, {{ signer }}, wish to process up to {{ max }} of any CPU loans, Network loans, and sell orders that may currently be pending.
777 |
778 | rmvproducer
779 |
780 | ---
781 | spec_version: 0.2.0
782 | title: Remove Producer
783 | summary: Remove {{ producer }} from the list of Block Producer Candidates
784 | icon: NEED TO ADD
785 | ---
786 |
787 | The `rmvproducer` action can only be executed with the authority of `eosio.prods`. As such, it takes approval of a multisig proposal
788 | by 15 of the top 21 Block Producers. While they will not call this action directly themselves, this the description of what they are agreeing to.
789 | The `rmvproducer` action should only be called if the rules described within the `regproducer` Ricardian are followed.
790 |
791 | By executing the `rmvproducer` action, the account {{ producer }} will no longer be considered a Block Producer Candidate. Any votes
792 | that they have received will still be attached to their account, but they will be unable to call `claimrewards` or produce any blocks
793 | until such time that they have successfully called `regproducer` again.
794 |
795 | Before approving the multisig proposal to execute the `rmvproducer` action, the requested actor stipulates that they will only do so with
796 | the best interests of the blockchain in mind, and not for any malicious purpose. The requested actors shall adhere to guidelines found
797 | within `regproducer`, or any other governing documents which may make reference to `rmvproducer`.
798 |
799 | sellram
800 |
801 | ---
802 | spec_version: 0.2.0
803 | title: Sell RAM
804 | summary: Sell {{ bytes }} bytes of RAM from account {{ account }}
805 | icon: NEED TO ADD
806 | ---
807 |
808 | The `sellram` action sells currently unused RAM for EOS tokens.
809 |
810 | As an authorized party I, {{ signer }}, wish to sell {{ bytes }} of unused RAM from account {{ account }}.
811 |
812 | sellrex
813 |
814 | ---
815 | spec_version: 0.2.0
816 | title: Sell REX
817 | summary: Create an order to sell {{ rex }} tokens held by {{ from }}
818 | icon: NEED TO ADD
819 | ---
820 |
821 | The `sellrex` action allows an account to sell REX tokens held by the account.
822 |
823 | As an authorized party I, {{ signer }}, wish to sell {{ rex }} REX tokens held on the account {{ from }} in exchange for core EOS tokens. If there is an insufficient amount of EOS tokens available at this time, I acknowledge that my order will be placed in a queue to be processed.
824 |
825 | If there is an open `sellrex` order for the account {{ from }}, then this amount of {{ rex }} REX shall be added to the existing order and the order shall move to the back of the queue.
826 |
827 | setabi
828 |
829 | ---
830 | spec_version: 0.2.0
831 | title: Set ABI
832 | summary: Set an ABI file on the account {{ account }}
833 | icon: NEED TO ADD
834 | ---
835 |
836 | As an authorized party I, {{ signer }}, would like to set the ABI file corresponding to the sha256 hash {{ abi }} to the account {{ account }}.
837 | The ABI data will be stored in the RAM of {{ account }}.
838 |
839 | setcode
840 |
841 | ---
842 | spec_version: 0.2.0
843 | title: Set Code
844 | summary: Set the contract code for account {{ account }}
845 | icon: NEED TO ADD
846 | ---
847 |
848 | As an authorized party I, {{ signer }}, would like to set the Smart Contract file corresponding to the sha256 hash {{ code }} to the account {{ account }}.
849 | The ABI data will be stored in the RAM of {{ account }}.
850 |
851 | When calling `setcode`, I shall produce suitable Ricaridan Contracts within the ABI file when calling `setabi` for the account {{ account }}.
852 |
853 | undelegatebw
854 |
855 | ---
856 | spec_version: 0.2.0
857 | title: Undelegate Bandwidth
858 | summary: Undelegate {{ unstake_cpu_quantity }} CPU and {{ unstake_net_quantity }} Network bandwidth from {{ receiver }}
859 | icon: NEED TO ADD
860 | ---
861 |
862 | As an authorized party I, {{ signer }}, wish to unstake {{ unstake_cpu_quantity }} from CPU and {{ unstake_net_quantity }} from Network bandwidth from the tokens owned by {{ from }} previously delegated for the use of delegatee {{ receiver }}.
863 |
864 | I acknlowedge that I do not expect to have access to these tokens until at least 72 hours have passed since calling the `undelegatebw` action.
865 |
866 | The CPU and Network bandwidth resources that have been unstaked will be immediately revoked from {{ receiver }}. Any voting weights based on staked resources will become immediately effected.
867 |
868 | If I, {{ signer }} am not the beneficial owner of these tokens I stipulate I have been authorized to take this action by their beneficial owner(s).
869 |
870 | unlinkauth
871 |
872 | ---
873 | spec_version: 0.2.0
874 | title: Unlink Authority
875 | summary: Unlink authority for {{ code }}::{{ type }} on account {{ account }}
876 | icon: NEED TO ADD
877 | ---
878 |
879 | As an authorized party I, {{ signer }}, would like to unlink the authority attached to {{ code }}::{{ type }} for the account {{ account }}.
880 | This will remove any restrictions that may have previously existed for other authority permission's of {{ account }} to call {{ code }}::{{ type }}.
881 |
882 | unregprod
883 |
884 | ---
885 | spec_version: 0.2.0
886 | title: Unregister Block Producer
887 | summary: Unregister the Block Producer Canadidate {{ producer }}
888 | icon: NEED TO ADD
889 | ---
890 |
891 | The `unregprod` action unregisters a previously registered Block Producer Candidate.
892 |
893 | As an authorized party I, {{ signer }}, wish to unregister the Block Producer Candidate {{ producer }}, rendering that candidate no longer able to receive votes.
894 |
895 | unstaketorex
896 |
897 | ---
898 | spec_version: 0.2.0
899 | title: Unstake to REX
900 | summary: Purchase REX tokens using EOS tokens staked to CPU or Network Bandwidth
901 | icon: NEED TO ADD
902 | ---
903 |
904 | The `unstaketorex` action allows an account to buy REX using EOS tokens which are currently staked for either CPU or Network bandwidth.
905 |
906 | As an authorized party I, {{ signer }}, wish to buy REX tokens by unstaking {{ from_cpu }} EOS from CPU bandwidth and {{ from_net }} EOS from Network bandwidth from account {{ owner }} that are staked to account {{ receiver }}.
907 |
908 | I am aware of, and have fulfilled, all voting requirements needed to participate in the REX marketplace.
909 |
910 | updateauth
911 |
912 | ---
913 | spec_version: 0.2.0
914 | title: Update Authroity
915 | summary: Update the authority structure of {{ account }} by adding the permission {{ permission }}
916 | icon: NEED TO ADD
917 | ---
918 |
919 | As an authorized party I, {{ signer }}, wish to add the new authority permission {{ permission }}, which will be a child to the permission
920 | {{ parent }}. The authority of permission {{ permission }} shall match the provided information in {{ auth }}.
921 |
922 | The authority {{ permission }} will not be able to call any actions linked specifically to any authorities to which it is a child of, or
923 | a sibling to.
924 |
925 | updaterex
926 |
927 | ---
928 | spec_version: 0.2.0
929 | title: Update REX
930 | summary: Update the REX voting weight of the account {{ owner }}
931 | icon: NEED TO ADD
932 | ---
933 |
934 | The `updaterex` action allows an account to update its vote weight.
935 |
936 | As an authorized party I, {{ signer }}, wish to update the REX vote stake and vote weight of the account {{ owner }}.
937 |
938 | voteproducer
939 |
940 | ---
941 | spec_version: 0.2.0
942 | title: Vote Producer
943 | summary: {{ voter }} casts a vote for their preferred Block Producers
944 | icon: NEED TO ADD
945 | ---
946 |
947 | The `voteproducer` action casts a valid vote for up to 30 Block Producer Candidates.
948 |
949 | As an authorized party I, {{ signer }}, wish to vote on behalf of the account {{ voter }} in favor of the Block Producer Candidates {{ producers }} with a voting weight equal to all EOS tokens currently owned by {{ voter }} and staked for CPU or Network bandwidth, and the equivalent value of REX tokens that {{ voter }} holds.
950 |
951 | If I am not the beneficial owner of these shares I stipulate that I have been authorized to vote these shares by their beneficial owner(s).
952 |
953 | I stipulate I have not, and will not, accept anything of value in exchange for these votes, on penalty of confiscation of these tokens, and other penalties.
954 |
955 | I acknowledge that using any system of automatic voting, re-voting, or vote refreshing, or allowing such a system to be used on my behalf or on behalf of another, is forbidden and doing so violates this contract.
956 |
957 | withdraw
958 |
959 | ---
960 | spec_version: 0.2.0
961 | title: Withdraw
962 | summary: Withdraw {{ amount }} EOS tokens from the REX fund of {{ owner }}
963 | icon: NEED TO ADD
964 | ---
965 |
966 | The `withdraw` action allows an account to withdraw EOS tokens from their REX fund into their liquid token balance.
967 |
968 | As an authorized party I, {{ signer }}, wish to withdraw {{ amount }} of EOS tokens from the REX fund for the account {{ owner }} into its liquid token balance.
969 |
--------------------------------------------------------------------------------
/eosio.token/eosio.token-close-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Close
4 | summary: Close the balance row of account {{ owner }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | By calling the `close` action, the RAM used to store the balance information for {{ owner }} for the token {{ symbol }} shall be freed.
9 |
10 | The `close` action can only be executed if the balance row for {{ owner }} is 0.0000.
11 |
--------------------------------------------------------------------------------
/eosio.token/eosio.token-transfer-rc.md:
--------------------------------------------------------------------------------
1 | ---
2 | spec_version: 0.1.1
3 | title: Transfer
4 | summary: Transfer {{ quantity }} EOS tokens from {{ from }} to {{ to }}
5 | icon: NEED TO ADD
6 | ---
7 |
8 | The `transfer` action transfers core EOS tokens between two accounts.
9 |
10 | As an authorized party I, {{ signer }}, wish to transfer {{ quantity }} EOS tokens from {{ from }} to {{ to }} with the memo {{ memo }}.
11 |
12 | If I am not the beneficial owner of these tokens, I stipulate that I have been authorized to transfer ownership of these tokens by their beneficial owner(s).
13 |
14 | I understand that transfers are irreversible after any pre-configured delays have elapsed.
15 |
16 | If this action fails to be irreversibly confirmed after receiving goods or services from {{ to }}, I agree to either return the goods or services or resend {{ quantity }} in a timely manner.
17 |
--------------------------------------------------------------------------------
/eosio.token/eosio.token.abi:
--------------------------------------------------------------------------------
1 | {
2 | "version": "eosio::abi/1.0",
3 | "types": [
4 | {
5 | "new_type_name": "account_name",
6 | "type": "name"
7 | }
8 | ],
9 | "structs": [
10 | {
11 | "name": "transfer",
12 | "base": "",
13 | "fields": [
14 | {
15 | "name": "from",
16 | "type": "account_name"
17 | },
18 | {
19 | "name": "to",
20 | "type": "account_name"
21 | },
22 | {
23 | "name": "quantity",
24 | "type": "asset"
25 | },
26 | {
27 | "name": "memo",
28 | "type": "string"
29 | }
30 | ]
31 | },
32 | {
33 | "name": "create",
34 | "base": "",
35 | "fields": [
36 | {
37 | "name": "issuer",
38 | "type": "account_name"
39 | },
40 | {
41 | "name": "maximum_supply",
42 | "type": "asset"
43 | }
44 | ]
45 | },
46 | {
47 | "name": "issue",
48 | "base": "",
49 | "fields": [
50 | {
51 | "name": "to",
52 | "type": "account_name"
53 | },
54 | {
55 | "name": "quantity",
56 | "type": "asset"
57 | },
58 | {
59 | "name": "memo",
60 | "type": "string"
61 | }
62 | ]
63 | },
64 | {
65 | "name": "account",
66 | "base": "",
67 | "fields": [
68 | {
69 | "name": "balance",
70 | "type": "asset"
71 | }
72 | ]
73 | },
74 | {
75 | "name": "currency_stats",
76 | "base": "",
77 | "fields": [
78 | {
79 | "name": "supply",
80 | "type": "asset"
81 | },
82 | {
83 | "name": "max_supply",
84 | "type": "asset"
85 | },
86 | {
87 | "name": "issuer",
88 | "type": "account_name"
89 | }
90 | ]
91 | }
92 | ],
93 | "actions": [
94 | {
95 | "name": "transfer",
96 | "type": "transfer",
97 | "ricardian_contract": "## Transfer Terms & Conditions\n\nI, {{from}}, certify the following to be true to the best of my knowledge:\n\n1. I certify that {{quantity}} is not the proceeds of fraudulent or violent activities.\n2. I certify that, to the best of my knowledge, {{to}} is not supporting initiation of violence against others.\n3. I have disclosed any contractual terms & conditions with respect to {{quantity}} to {{to}}.\n\nI understand that funds transfers are not reversible after the {{transaction.delay}} seconds or other delay as configured by {{from}}'s permissions.\n\nIf this action fails to be irreversibly confirmed after receiving goods or services from '{{to}}', I agree to either return the goods or services or resend {{quantity}} in a timely manner.\n"
98 | },
99 | {
100 | "name": "issue",
101 | "type": "issue",
102 | "ricardian_contract": ""
103 | },
104 | {
105 | "name": "create",
106 | "type": "create",
107 | "ricardian_contract": ""
108 | }
109 | ],
110 | "tables": [
111 | {
112 | "name": "accounts",
113 | "type": "account",
114 | "index_type": "i64",
115 | "key_names": [
116 | "currency"
117 | ],
118 | "key_types": [
119 | "uint64"
120 | ]
121 | },
122 | {
123 | "name": "stat",
124 | "type": "currency_stats",
125 | "index_type": "i64",
126 | "key_names": [
127 | "currency"
128 | ],
129 | "key_types": [
130 | "uint64"
131 | ]
132 | }
133 | ],
134 | "ricardian_clauses": [],
135 | "abi_extensions": []
136 | }
--------------------------------------------------------------------------------
/ipfs.txt:
--------------------------------------------------------------------------------
1 | added QmbFrVNx2u9YBc2U6ctQMH4jJ4jUTKKFXuS4cNuPtJzAZW eosio.system.abi
2 | added QmTgfMfMw2zQgtkeSu7iJfaVcWbmU8werBjYuf6iVseFXL eosio.token.abi
3 |
--------------------------------------------------------------------------------
/proposed-constitution/EOS_Amsterdam_CHARTER1.md:
--------------------------------------------------------------------------------
1 | # EOS CHARTER [1]
2 |
3 | **SUBMITTED DRAFT**
4 |
5 |
6 |
7 | **1. Applicability**
8 |
9 | 1.1. This charter applies to EOS [2]. Everyone that uses EOS or provides dev or other services regarding EOS, is and will be bound by it and is a party to it. All EOS code must comply with it.
10 |
11 | 1.2. This charter applies also to offering (the use of) EOS to third parties and concluding agreements regarding EOS with such parties.
12 |
13 | 1.3. Each party that offers EOS and services regarding EOS to other parties must ensure that this charter is applicable and that those other parties will be bound by it [3].
14 |
15 | **2. Contract**
16 |
17 | 2.1. This charter is a multi-party contract. It cannot be terminated. It ends only if and when no user of EOS is left.
18 |
19 | **3. Freedom**
20 |
21 | 3.1. All parties are free to use EOS as they please, providing they act in good faith, don’t infringe the rights of others and comply with this charter [4].
22 |
23 | **4. Ownership**
24 |
25 | 4.1. EOS belongs to no one.
26 |
27 | 4.2. EOS tokens have owners [5] .
28 |
29 | 4.3. No one shall, neither directly nor indirectly, own more than 10% of the EOS tokens [6].
30 |
31 | **5. Inflation**
32 |
33 | 5.1. EOS shall on a continuous basis issue a total of 1% per calendar year of all already issued EOS tokens that shall be distributed to block producers that collected so many votes that they reach or surpass the threshold of a EOS 100 daily reward..
34 |
35 | 5.2. Each year EOS shall issue 4% of all already issued tokens to be distributed through the WPS. Any unspent tokens in a calendar year will be subtracted from the tokens to be issued the following year.
36 |
37 | **6. Votes**
38 |
39 | 6.1. Owners of the EOS token shall have one vote per token.
40 |
41 | 6.2. No one shall neither directly nor indirectly control [7] the casting of more than 1% [8] of all the votes whether through ownership, agreement or orchestrated behaviour [9].
42 |
43 | 6.3. Votes cast by a proxy shall be valid votes provided that:
44 | 6.3.1. The owners can freely choose such proxy; or
45 | 6.3.2. The owners can freely provide voting instructions to their proxy and are informed [10] of that right when they enter into an agreement with that proxy and after that at least once every twelve months.
46 | The proxy shall have to prove it complies with this paragraph if asked. The proxy shall publish its voting system in such a way that is easily found and accessible to the general public.
47 |
48 | 6.4. “Owners” in this article shall include beneficiaries for which a third party holds the tokens. That third party is considered to be a proxy and in order for the votes to be valid, such party shall have to comply with the preceding paragraph [11].
49 |
50 | **7. Block producers**
51 |
52 | 7.1. Each owner of a token is entitled to vote for block producers.
53 |
54 | 7.2. Block producers shall use commercially reasonable efforts to perform their block producing duties as detailed further in the block producer agreement.
55 |
56 | 7.3. Block producers shall not share control with other block producers, whether through ownership, agreement or orchestrated behaviour [12]. Block producers shall publish a comprehensive schedule of their group and a list of ultimate beneficiaries with an interest of 10% or more.
57 |
58 | 7.4. Block producers shall execute the code unless:
59 | 7.4.1. An executable court order or arbitrator’s award indicates otherwise [13];
60 | 7.4.2. A block producer is or becomes aware of a clear infringement of the intent of code or of the rights of a party or of a third party or of a threat thereof, while there is no alternative remedy [14] to halt or prevent such infringement. In such event, such block producer shall forthwith notify the block producers meeting and the selected arbitration provider. The block producer shall also notify the victim to forthwith file a claim with the selected arbitration provider. Any deviation from the execution of the code shall be temporarily and only in as far as is necessary to prevent the infringement from happening or continuing [15].
61 |
62 | 7.5. A block producer shall comply with an arbitrator’s award provided through a selected arbitration provider.
63 |
64 | 7.6. Block producers in their capacity of block producer are not liable for losses and damages unless those result from their intent or gross negligence [16].
65 |
66 | **8. Liability of developers**
67 |
68 | 8.1. Unless parties agree otherwise, developers [17] are not liable for losses and damages for the code they provide, unless those result from their intent or gross negligence.
69 |
70 | **9. WPS**
71 |
72 | 9.1. The block producers meeting shall establish the WPS.
73 |
74 | 9.2. The WPS shall operate fully independently. The WPS shall have sufficient funds to be paid out of the 4% inflation detailed in Article 5.2. No block producer shall be allowed to influence its functioning in any way [18].
75 |
76 | **10. Intellectual property**
77 |
78 | 10.1. All code paid for by the WPS shall be open source and free to use on EOS for all parties. The party that publishes any other code or other material on EOS, grants by doing so, to all parties the non-exclusive right to use such code or material on EOS as intended.
79 |
80 |
81 |
82 | **11. Damages and liability** [19]
83 |
84 | 11.1. A party that is in default under this charter shall be liable for damages and losses caused by such default in the event that:
85 | 11.1.1. such default is irreparable; or
86 | 11.1.2. in the event such default is repairable, only after receiving written notice in which the defaulting party has been given reasonable time to repair such default and fails to do so,
87 | unless otherwise stipulated in this charter or unless the occurrence of force majeur.
88 |
89 | 11.2. A party is entitled to demand that a defaulting party ends a default situation and/or to demand measures to prevent a threatening default. A party is entitled to demand that the other shall forfeit a penalty if it doesn’t comply with the measures of the preceding sentence. If a penalty becomes due, this shall not limit in any way a party’s right to demand full reimbursement of its damages and losses caused by a default.
90 |
91 | **12. Dispute resolution**
92 |
93 | 12.1. Each dispute relating to EOS shall be resolved by the court or arbitration provider that the parties to such dispute appointed [20].
94 |
95 | 12.2. In the event no forum has been agreed by the parties, all disputes arising in connection with this charter and/or EOS, or in connection with further agreements resulting therefrom, shall be settled in accordance with the arbitration rules of the selected arbitration provider. In the event more arbitration providers are selected, the competent selected arbitration provider [21] shall be determined in accordance with the arbitration system implemented by the block producers meeting.
96 |
97 | 12.3. The block producers meeting shall determine an arbitration system allows for the participation of one or more arbitration providers based on their registration with EOS and further on quality and procedural requirements detailed in article 12.4 and 12.5. The arbitration providers that are selected through this system are as of the day the block producers meeting decides and publishes such decision the “selected arbitration provider(s)” this charter refers to. The arbitration system, including eventual block producers meeting’s amendments to it, shall be part of this charter [22].
98 |
99 | 12.4. A selected arbitration provider can only be removed without its consent if
100 | 12.4.1. it stops meeting these requirements and/or additional requirements (if any) set by the block producers meeting and if a competent court or an arbitrator rules that such arbitration provider should be removed; or
101 | 12.4.2. by a unanimous decision of the block producers meeting.
102 |
103 | 12.5. The arbitrator or arbitrators shall make an award in all fairness without being bound to the strict rules of law [23]. The arbitration system implement due proceedings. The arbitration system shall at least:
104 | 12.5.1. ensure strict independence of the arbitrator(s);
105 | 12.5.2. ensure that there are sufficient arbitrators that shall have the necessary skills and are trained to understand EOS and the principles of due process and the arbitrator’s role;
106 | 12.5.3. charge fees that are reasonable taken into account the merits of the cases concerned [24];
107 | 12.5.4. allow for the parties to challenge the person of an arbitrator if they believe such person is not independent;
108 | 12.5.5. provide reasonable periods to detail claims and defenses and further documentation;
109 | 12.5.6. allow for a hearing through electronic means or, in the event both parties shall wish so: for one where both parties are physically present;
110 | 12.5.7. forbid one party to interact in any way with the arbitrator(s) without the other party present or, in the event of written interaction, simultaneously informed;
111 | 12.5.8. provide the reasoning behind the award;
112 | 12.5.9. allow the parties to choose the language provided such choice is limited to the major languages;
113 | 12.5.10. allow for appeal [25];
114 | 12.5.11. allow for preliminary measures.
115 |
116 | 12.6. An arbitrational system may introduce mandatory mediation for eligible cases [26].
117 |
118 | **13. Block producers meeting** [27]
119 |
120 | 13.1. There is a block producers meeting. The block producers meeting consist of all block producers that receive EOS for their work at 13:00 o’clock UTC at the date of the meeting. Which of such block producers shall be considered active block producers is established at the same moment.
121 |
122 | 13.2. The block producers meeting shall provide a schedule for regular meetings. Any five block producers together are entitled to call an extra meeting.
123 |
124 | 13.3. All eligible block producers are invited to the meeting and are allowed to speak in accordance with the order the chairperson will establish.
125 |
126 | 13.4. Invitations to an extra meeting and agenda items of the regular ones are being communicated through a dedicated channel.
127 |
128 | 13.5. Invitations to an extra meeting and agenda items of the regular one are communicated at least five days prior to a meeting unless the decision to be made has to be made urgently.
129 |
130 | 13.6. The meeting will be held online. The meeting will be chaired by one of the representatives of the active block producers to be decided in the meeting.
131 |
132 | 13.7. Each of the active block producers has one vote in the meeting. The other eligible block producers do not have a vote. The block producers meeting decides with a majority of at least 15 votes in favor unless detailed otherwise in this charter.
133 |
134 | 13.8. A breach of protocol detailed in this article renders a decision of the meeting null and void unless all active block producers unanimously decide otherwise.
135 |
136 | **14. Charter change management**
137 |
138 | 14.1. This charter may be changed or amended by a vote of the token holders with no less than 10% of the EOS tokens staked voting and no fewer than 10% more Yes than No votes, sustained for 30 continuous days within a 120 day period.
139 |
140 | **15. Further rules and protocols**
141 |
142 | 15.1. The block producers meeting is entitled to provide further rules and protocols, including the block producers agreement [28]. The block producers meeting is entitled to establish the code. Both provided such rules, protocols and code will be fully in accordance with this charter [29].
143 |
144 | **16. Applicable law** [30]
145 |
146 | 16.1. This charter supersedes all national laws.
147 |
148 | 16.2. Should a law have mandatory provisions that hinder the execution of this charter, the parties shall, if and to the extent possible;
149 | 16.2.1. Choose a law that doesn’t do so, or, to the extent that isn’t possible
150 | 16.2.2. Amend this charter in a way that comes closest to its meaning within such mandatory provisions;
151 | notwithstanding the arbitrator’s assignment to rule in all fairness without being bound to the strict rules of law.
152 |
153 | **17. Transition article**
154 |
155 | 17.1. This charter replaces the interim constitution as of the date it is being elected by the community unless the referendum system details otherwise.
156 |
157 | 17.2. Until further rules are being provided in accordance with this charter, all rules that are in effect remain so in as far they are in conformity with this charter. Any rights and obligations that originate before this charter comes into force, are respected.
158 |
159 | 17.3. ECAF remains the selected arbitrator under this charter until the block producers meeting establishes the arbitration system.
160 |
161 | >Footnotes:
162 | > 1. By EOS Amsterdam: to proudly serve the community. Author: Jetse Sprey. EOS Amsterdam accepts no liability whatsoever regarding this document.
163 | >2. We deliberately did not define EOS. We all know what the EOS governed blockchain is, but it is difficult to describe EOS in a decisive way. That’s why we have left this open. There will be some sort of a grey area that needs to be filled in by jurisprudence but we believe that would also have been there, should we have tried to nail down all the EOS elements relevant for this charter.
164 | >3. In order to ensure acceptance, a party that is new to EOS shall have to be informed of the applicability of this charter to all agreements concluded. Also the text of this charter needs at the latest at the start of the use of the conclusion of a (smart) contract to be served to that party. The party preferably ticks a box but this is not required.
165 | >4. “Good faith” is commonly used in one form or the other in many jurisdictions between contract parties. What this means exactly is dependent of the actual facts and circumstances that need to be determined in each case. However, in many cases there is hardly any doubt. It is, e.g., clear that lying and stealing cannot be done in good faith.
166 | A party needs to be compliant to local laws as well obviously but this is not really an EOS issue. We chose to leave that out here since it is self evident and we don’t want to make that obligation enforceable between the parties. Many obligations stem from public law and we don’t want that always to play a role in a civil lawsuit. By way of example: if a party has to pay VAT and doesn’t do that, another party shouldn’t be able to sue over that .Unless, of course, this tax evasion leads to damagers with that party.
167 | >5. Ownership is an open concept. It is the most comprehensive set of rights a person (legal entity or human being) has regarding a good or right, an asset. The owner of the house is the person registered in the public registry (in Europe at least). The owner of a bike is the person that is entitled to sell it and use it (unless he has rented it out). The owner of a token is the person that is entitled to sell it and is entitled to receive the sales price. That person could be the key holder to such token.But the key holder could also hold the token for someone else. Than that someone else is the real owner.
168 | >6. This is to ensure EOS is not taken over by one party. It might be difficult to establish but we believe that the legal challenges (including claims for damages) an owner of more than 10% will encounter, are of such a magnitude that it is not worth taking the risk. We distinguished between ownership and voting.
169 | >7. So if a person owns two companies that each own 0,7% of the issued EOS tokens, both companies together can only cast 1% of the issued EOS tokens.
170 | >8. We decided to lower the threshold to a level where a voter cannot appoint single handedly all bps.
171 | >9. These elements are often used to determine whether or not someone has a kartel in the off chain world. I am not fond of more or less subjective norms but they are needed to stop unwanted behaviour that falls outside of the clearly forbidden actions.
172 | >10. This would mean that the instructions need to be given in the language of the agreement. Otherwise, the proxy cannot proof that the owner did get the instructions.
173 | >11. Proxy voting is fine. Also if such proxy were to cast more than 5% of the votes. But voters shouldn’t be locked in. In other words: a combination of an exchange service and proxy voting will mean that the owner cannot freely choose his or hers proxy since that would mean they would have to leave the exchange which is burdensome. So in that event the exchange shall have to allow for voting instructions by such owner. This is loosely based on general notices in the law about the way power of attorneys work (which a proxy is).
174 | >12. Common control would diminish competition between the block producers. Also it could make the chain vulnerable to outside pressures since the chain is being operated by fewer parties. That’s why we have introduced a ban on common control. To know if there is common control, we suggested simple measures. A block producer has to publish its group structure. (A group meaning entities that are under common control and/or work as an economic entity). As well as their ultimate beneficiaries.
175 | >13. This doesn’t mean a BP is obliged to follow a court order or arbitrator’s award. That is up to their own discretion. However, if a verdict clearly shows that e.g. theft has taken place, a BP will act accordingly. It is further possible that a BP is a party to certain proceedings. Then also this clause ensures that they do not become liable if they act in accordance with the outcome of such proceedings. They only must follow an arbitrator’s award under this charter if it has been provided by a selected arbitrator. That is in the following paragraph (7.4).
176 | >14. Such as an emergency award.
177 | >15. This clause is only applicable if and in as far there is no arbitrator’s order yet. Please note further that in the event the block producer makes a mistake here, the block producer may become liable. But if in the event of a clear infringement of which the block producer is aware, the block producer refrains from action such block producer may become liable also.
178 | >16. This is meant generally and, for the avoidance of doubt, is also applicable to the decision whether or not to execute the code taken in 7.3.2. So unless the BP takes that decision intently wrong (or grossly negligently wrong), the BP is not liable.
179 | >17. This is to encourage the writing of code and (smart) contracts. Who shall be considered to be a developer shall have to be broadly interpreted (and include also the writers of this charter).
180 | >18. Once the WPS is off the ground, it should run on its own.
181 | >19. This clause clarifies that a party shall be liable if such party doesn’t comply and under which circumstances such party is liable. First of all the damages to be reimbursed has to have a connection with the default situation. If this is not the case, no liability shall occur. Nevertheless, a party may claim that a default situation is repaired. So, e.g. if a party casts more than 1% of the votes this will mean that other block producers will receive less EOS. This is easy to calculate. That “over” casting party, shall be liable for such amounts towards the block producers. Each of those block producers could claim the amount of their damage. Damage is typically calculated by comparing the situation of no default with the default situation. The amount of the difference is the amount of the damages. By making this comparison, one should take into account not only the turnover lost but also the savings in costs made (if any).
182 | >20. So the principle is that the parties themselves choose their dispute resolution. They are free to do so. Even if it concerns EOS. Even if it regards disputes about this charter or the execution of the EOS core code. That must be done in their agreements and, in the event they have not done so, they can do so once the dispute has occurred. If they to not do so, the default dispute resolution comes into play. In the event of theft, there is no agreement between the parties (parties here being the thief and his victim) and therefore the default forum shall apply. Please note that the BPs are not obliged to follow awards from arbitrators other than those of the selected arbitration provider. We believe it is necessary to have one or more default arbitration providers. If not, this could lead to an unnecessary level of insecurity about the forum in the event the parties do not choose a forum or in the event such choice is invalid.
183 | >21. Such system of selected block producers to be drafted and established in accordance with the following paragraph.
184 | **Arbitration**
185 | ECAF is there now. When this charter is in force, the block producers meeting shall have to formally appoint ECAF should they want them to be (one of the) arbitration providers. I have introduced language that allows for ECAF to continue untill the block producers meeting has provided another selected arbitration provider.
186 | It will be possible to have various providers for various problems. E.g. Wipo arbitration could be used for pure intellectual property disputes. Further the arbitration system shall have to mention the costs. Those may vary in accordance with the complexity of the case. It should be very clear that dispute resolution is costly, though. this shouldn’t be a major issue, if the amounts are considerable. With smaller amounts, costs will start to hurt. That’s why many dispute resolution providers offer simple, straightforward business-consumer solutions against far lower costs. The BPs meeting can introduce such low cost arbitration for low level disputes.
187 | >22. This means that if a party is obliged to ensure that this charter is applicable, it should also ensure that the arbitration system is applicable too. Typically this is done by adding reference to that system in the Ricardian Contract of in the other contract.
188 | >23. An arbitrator can rule in accordance with the law or in fairness. This is EOS. We don’t want legal small print that complicate so many court cases. That’s why we choose for fairness..
189 | >24. One may have cheap and simple proceedings for simple cases (e.g. theft) and extensive (and therefore expensive) proceedings for complicated cases (e.g. the question whether or not block producers voted in an orchestrated way).
190 | >25. Appeal is essential in an emerging legal system. It is needed to align the various verdicts and work towards clear and predictable rules.
191 | >26. We believe mediation often provides quick and cheap dispute resolution;
192 | >27. There need to be a body that is entitled to decide on code and that further details the rules if and when necessary. Without this body all extra rules are legally amendments to the charter (as such extra rules would in fact be an amendment to all other contracts or constitutions). Such amendments would than all need a referendum since the contract is changed. That is highly impractical. Determining a “ lower” body to further establish the community rules is called “delegation”.
193 | >28. In the event the BPs shall draft an agreement that is too good for them, they risk to be voted out.
194 | >29. As for the Sudo discussion: (if we are correctly informed), Sudo provides a way of exercising BPs powers that BPs already have but do it in a more streamlined manner. Such a system wouldn’t be against this charter.
195 | >30. There is no applicable law stipulated here. That means that this charter should be interpreted literally in as far is possible under the applicable law found by applying applicable conflict of law. In the event of mandatory provisions that run contrary to this charter, the parties should try and circumvent those.That will not be easy. This means that it is hard to predict if this charter shall function in all jurisdictions as it is meant to. This lead to uncertainty. To avoid such uncertainty, generally speaking, it is better to choose an applicable law system aforehand. We understand however that the community believes, understandably, that a choice of law would lead to too much centralization and to unfair advantages for some.
196 |
--------------------------------------------------------------------------------
/proposed-constitution/v2.md:
--------------------------------------------------------------------------------
1 | here is the official Block.one version of the v2 proposal, from
2 | https://block.one/news/block-ones-proposal-for-eos-constitution-v2-0
3 |
4 |
5 | 1. If there is a dispute on intent of code, then intent shall be determined by a super majority vote of elected producers or an arbiter mutually agreed to by the parties to the dispute and enacted by producers. A super majority may, at their discretion, freeze a contract during an active dispute until such time as code to fix the contract is available. The parties to the dispute must produce proposed replacement code. The producers may charge a reasonable fee and/or place other reasonable requirements on the parties to the dispute. A super majority is defined as 2/3+1. Ricardian contractual terms that cannot be enforced by properly functioning code are beyond the scope of the producers authority to evaluate and enforce.
6 | 2. Block producers shall not freeze or modify contracts that are operating as intended.
7 | 3. Contract developers are not liable for damages caused by unintentional bugs in the code. All Parties are responsible for auditing the code and the Ricardian contract before use.
8 | 4. All service providers who produce tools to facilitate the construction and signing of transactions on behalf of others shall present the full Ricardian Contract terms of this Constitution and other referenced contracts.
9 | 5. No Party shall have a fiduciary responsibility to support the value of the EOS token. The Parties do not authorize anyone to hold assets, borrow, speak, nor contract on behalf of EOS token holders or the blockchain collectively. This blockchain shall have no owners, managers, or fiduciaries.
10 | 6. A Ricardian Contract is deemed accepted when a transaction based on that contract is incorporated into the blockchain.
11 | 7. Parties voluntarily consent for all other Parties to permanently and irrevocably retain, copy, analyze, and distribute all broadcast transactions and derivative information.
12 | 8. Use of the blockchain shall constitute consent to its terms.
13 | 9. This Constitution may be amended by a vote of the EOS token holders that attracts no less than 15% staked vote participation among tokens and no fewer than 10% more Yes votes than No votes, sustained for 30 continuous days within a 120 day period.
14 |
--------------------------------------------------------------------------------
/scripts/abi_to_rc/README.md:
--------------------------------------------------------------------------------
1 | # Purpose
2 | The `abi_to_rc.py` script processes a contract's .abi file in order to generate an overview Ricardian Contract and a Ricardian Contract for each action. The overview Ricardian Contract provides a description of the contract's purpose and also specifies the contract's action(s), input(s), and input type(s). The action Ricardian Contract provides a description of the action's purpose and also specifies the action's input(s), and input type(s).
3 |
4 | ## How to run
5 | `$ python abi_to_rc.py /path/to/smart-contract.abi`
6 |
7 | ## Example
8 | `$ python abi_to_rc.py ../../contracts/currency/currency.abi`
9 |
10 | ## Results
11 | For the example above, `abi_to_rc.py` should generate output files that have the following names: `currency-rc.md`, `currency-transfer-rc.md`, `currency-issue-rc.md`, `currency-create-rc.md`.
12 |
13 | ## Notes
14 | Be sure to have `abi_to_rc.py`, `rc-overview-template.md`, and `rc-action-template.md` in the same folder.
15 |
--------------------------------------------------------------------------------
/scripts/abi_to_rc/abi_to_rc.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # By: Jon-Eric Cook
4 | # Github: @joneric
5 |
6 | from string import Template
7 | import argparse
8 | import json
9 | import sys
10 | import os
11 | import re
12 |
13 | # argument parser
14 | parser = argparse.ArgumentParser(
15 | prog="abi_to_rc.py",
16 | description="The abi_to_rc.py script processes a contract's .abi file in order to generate an overview Ricardian Contract and a Ricardian Contract for each action. The overview Ricardian Contract provides a description of the contract's purpose and also specifies the contract's action(s), input(s), and input type(s). The action Ricardian Contract provides a description of the action's purpose and also specifies the action's input(s), and input type(s).",
17 | epilog="example: $ python abi_to_rc.py ../../contracts/currency/currency.abi",
18 | usage="$ python %(prog)s [-h] abi_file")
19 | parser.add_argument("abi_file", help="path to smart contract's .abi file")
20 | args = parser.parse_args()
21 |
22 | # global variables
23 | _RC_OVERVIEW = "rc-overview-template.md"
24 | _RC_ACTION = "rc-action-template.md"
25 | actions = []
26 | inputs = {}
27 | types = {}
28 |
29 | # checks for abi and template files
30 | def check_for_files():
31 | if not os.path.isfile(args.abi_file):
32 | abi_filename = os.path.split(args.abi_file)[1]
33 | print("ERROR: %s could not be found" % abi_filename)
34 | exit(1)
35 | if not os.path.isfile(os.path.join(os.path.dirname(sys.argv[0]), _RC_OVERVIEW)):
36 | print("ERROR: %s could not be found" % _RC_OVERVIEW)
37 | exit(1)
38 | if not os.path.isfile(os.path.join(os.path.dirname(sys.argv[0]), _RC_ACTION)):
39 | print("ERROR: %s could not be found" % _RC_ACTION)
40 | exit(1)
41 |
42 | # gets actions, inputs and input types from abi file
43 | def get_actions_inputs_types():
44 | abi_file = open(args.abi_file,'r')
45 | abi_text = abi_file.read()
46 | abi_file.close()
47 | abi_json = json.loads(abi_text)
48 | actions_json = abi_json['actions']
49 | for obj in actions_json:
50 | actions.append(obj)
51 | structs_json = abi_json['structs']
52 | for action in actions:
53 | inputs[action['name']] = []
54 | types[action['name']] = []
55 | for struct in structs_json:
56 | for action in actions:
57 | if struct['name'] == action['type']:
58 | for field in struct['fields']:
59 | inputs[action['name']].append(field['name'])
60 | types[action['name']].append(field['type'])
61 |
62 | # builds rows for the table
63 | def build_table_rows(is_action):
64 | table_rows = []
65 | for action in actions:
66 | action_string = "`{{ " + action['name'] + " }}`"
67 | input_string = ""
68 | input_list = []
69 | type_string = ""
70 | type_list =[]
71 | if len(inputs[action['name']]) >= 1:
72 | for name in inputs[action['name']]:
73 | input_list.append("`{{ " + name + ("Var }}`" if is_action else " }}`"))
74 | input_string = '
'.join(input_list)
75 | else:
76 | input_string = "`{{ " + action['type'] + ("Var }}`" if is_action else " }}`")
77 | if len(types[action['name']]) >= 1:
78 | for name in types[action['name']]:
79 | type_list.append("`{{ " + name + " }}`")
80 | type_string = '
'.join(type_list)
81 | else:
82 | type_string = "`{{ " + action['type'] + " }}`"
83 | table_rows.append('| ' + action_string + ' | ' + input_string + ' | ' + type_string + ' |')
84 | return table_rows
85 |
86 | # generates an overview ricardian contract from the overview template
87 | def generate_rc_overview_file():
88 | tr = build_table_rows(False)
89 | abi_file_name = os.path.split(args.abi_file)[1]
90 | contract_name = os.path.splitext(abi_file_name)[0]
91 | rc_file_name = contract_name + '-rc.md'
92 | dirname = os.path.split(args.abi_file)[0]
93 | subs = {'contract': "{{ " + contract_name + " }}",
94 | 'action': 'actions' if len(actions) > 1 else 'action',
95 | 'input': 'inputs' if len(inputs) > 1 else 'input',
96 | 'type': 'types' if len(types) > 1 else 'type'}
97 | subs.update([(k+'_header',v.title()) for k,v in subs.copy().items()])
98 | rc_file = open(os.path.join(dirname, rc_file_name),"w+")
99 | with open(os.path.join(os.path.dirname(sys.argv[0]), _RC_OVERVIEW)) as fp:
100 | overview_template = Template(fp.read())
101 | rc_file.write(overview_template.substitute(subs))
102 | rc_file.write('\n'.join(tr))
103 | rc_file.close()
104 |
105 | # generates a ricardian contract for each action from the action template
106 | def generate_rc_action_files():
107 | tr = build_table_rows(True)
108 | abi_filename = os.path.split(args.abi_file)[1]
109 | contract_name = os.path.splitext(abi_filename)[0]
110 | dirname = os.path.split(args.abi_file)[0]
111 | for action in actions:
112 | subs = {'action': "{{ " + action['name'] + " }}",
113 | 'input': 'inputs' if len(inputs[action['name']]) > 1 else 'input',
114 | 'type': 'types' if len(types[action['name']]) > 1 else 'type'}
115 | subs.update([(k+'_header',v.title()) for k,v in subs.copy().items()])
116 | rc_action_file_name = contract_name + "-" + action['name'] + '-rc.md'
117 | rc_file = open(os.path.join(dirname, rc_action_file_name),"w+")
118 | with open(os.path.join(os.path.dirname(sys.argv[0]), _RC_ACTION)) as fp:
119 | action_template = Template(fp.read())
120 | rc_file.write(action_template.substitute(subs))
121 | for row in tr:
122 | if re.search("\\b" + action['name'] + "\\b", row):
123 | rc_file.write(row + "\n")
124 | rc_file.close()
125 |
126 | # main program
127 | def main():
128 | check_for_files()
129 | get_actions_inputs_types()
130 | generate_rc_overview_file()
131 | generate_rc_action_files()
132 |
133 | # runs main
134 | if __name__== "__main__":
135 | main()
--------------------------------------------------------------------------------
/scripts/abi_to_rc/rc-action-template.md:
--------------------------------------------------------------------------------
1 | # Action - `$action`
2 |
3 | ### Description
4 |
5 | The `$action` action...
6 |
7 | ### $input_header and Input $type_header
8 |
9 | The `$action` action requires the following `$input` and `input $type`:
10 |
11 | | Action | Input | Input Type |
12 | |:--|:--|:--|
13 |
--------------------------------------------------------------------------------
/scripts/abi_to_rc/rc-overview-template.md:
--------------------------------------------------------------------------------
1 | # Smart Contract - `$contract`
2 |
3 | This is an overview of the actions for the `$contract` smart contract.
4 |
5 | ### Description
6 |
7 | The `$contract` contract...
8 |
9 | ### $action_header, $input_header and Input $type_header
10 |
11 | The table below contains the `$action`, `$input` and `input $type` for the `$contract` contract.
12 |
13 | | Action | Input | Input Type |
14 | |:--|:--|:--|
15 |
--------------------------------------------------------------------------------
/scripts/create-checksums.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Create sha256 checksums
4 | shasum -a 256 \
5 | ./eosio.system/eosio.system.abi \
6 | ./eosio.token/eosio.token.abi > checksums.txt
7 |
--------------------------------------------------------------------------------
/scripts/export-rc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Export RC markdown directly from ABIs
4 |
5 | # eosio.token
6 | python3 scripts/ricardeos/ricardeos.py export \
7 | eosio.token/eosio.token.abi
8 |
9 | # eosio.system
10 | python3 scripts/ricardeos/ricardeos.py export \
11 | eosio.system/eosio.system.abi
12 |
--------------------------------------------------------------------------------
/scripts/import-rc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Import RC markdown directly to ABIs
4 |
5 | # eosio.token
6 | python3 scripts/ricardeos/ricardeos.py import \
7 | eosio.token/eosio.token.abi \
8 | eosio.token/eosio.token.abi
9 |
10 | # eosio.system
11 | python3 scripts/ricardeos/ricardeos.py import \
12 | eosio.system/eosio.system.abi \
13 | eosio.system/eosio.system.abi
14 |
--------------------------------------------------------------------------------
/scripts/ricardeos/README.md:
--------------------------------------------------------------------------------
1 | # Purpose
2 | The `ricardeos.py` imports or exports recardian contracts to and from a contracts abi
3 |
4 | ## Import Example
5 |
6 | ```python
7 | $ python3 ricardeos.py import /path/to/sorce-contract.abi /path/to/new-smart-contract-abi.abi
8 | ```
9 |
10 | Running this will scan the directory of the abi for all rc.md files and add them to their respective actions. All files with a path format of *clause*-rc.md will be added to the ricardian_clauses section. You can provide the same name for the source and new smart contract abi, the script will prompt you before overwriting.
11 |
12 | The script will also notify the user of any actions that the script cannot find rc.md files for.
13 |
14 | ## Export Example
15 |
16 | ```python
17 | $ python3 ricardeos.py export /path/to/sorce-contract.abi
18 | ```
19 |
20 | Running this will dump the contents of all ricardian contracts:
21 |
22 | Actions will be exported in the following format:
23 |
24 | `--rc.md`
25 |
26 | Clauses will be exported in the following format:
27 |
28 | `-clause--rc.md`
29 |
30 | If a file already exists the user will be asked if they wish to overwrite the file
31 |
--------------------------------------------------------------------------------
/scripts/ricardeos/ricardeos.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import json
4 | import sys
5 | import os.path
6 | import fnmatch
7 |
8 | def add_ricardian_contracts_to_actions(source_abi_directory, contract_name, abi_actions):
9 | abi_actions_with_ricardian_contracts = []
10 |
11 | for abi_action in abi_actions:
12 | action_name = abi_action["name"]
13 | contract_action_filename = '{contract_name}-{action_name}-rc.md'.format(contract_name = contract_name, action_name = action_name)
14 |
15 | # check for rc file
16 | rc_contract_path = os.path.join(source_abi_directory, contract_action_filename)
17 | if os.path.exists(rc_contract_path):
18 | print('Importing Contract {contract_action_filename} for {contract_name}:{action_name}'.format(
19 | contract_action_filename = contract_action_filename,
20 | contract_name = contract_name,
21 | action_name = action_name
22 | ))
23 |
24 | with open(rc_contract_path) as contract_file_handle:
25 | contract_contents = contract_file_handle.read()
26 |
27 | abi_action['ricardian_contract'] = contract_contents
28 | else:
29 | print('Did not find recardian contract file {contract_action_filename} for {contract_name}:{action_name}, skipping inclusion'.format(
30 | contract_action_filename = contract_action_filename,
31 | contract_name = contract_name,
32 | action_name = action_name
33 | ))
34 |
35 | abi_actions_with_ricardian_contracts.append(abi_action)
36 |
37 | return abi_actions_with_ricardian_contracts
38 |
39 | def create_ricardian_clauses_list(source_abi_directory, contract_name):
40 | clause_file_pattern = '*-clause*-rc.md'
41 | clause_files = fnmatch.filter(os.listdir(source_abi_directory), clause_file_pattern)
42 |
43 | clause_prefix = 'clause-'
44 | clause_postfix = '-rc.md'
45 |
46 | abi_ricardian_clauses = []
47 |
48 | for clause_file_name in clause_files:
49 | rc_contract_path = os.path.join(source_abi_directory, clause_file_name)
50 | with open(rc_contract_path) as contract_file_handle:
51 | contract_contents = contract_file_handle.read()
52 |
53 | start_of_clause_id = clause_file_name.index( clause_prefix ) + len( clause_prefix )
54 | end_of_clause_id = clause_file_name.rindex(clause_postfix, start_of_clause_id)
55 |
56 | clause_id = clause_file_name[start_of_clause_id:end_of_clause_id]
57 |
58 | abi_ricardian_clauses.append({
59 | 'id': clause_id,
60 | 'body': contract_contents
61 | })
62 |
63 | return abi_ricardian_clauses
64 |
65 | def add_ricardian_contracts_to_abi(source_abi, output_abi):
66 | source_abi_directory = os.path.dirname(source_abi)
67 | contract_name = os.path.split(source_abi)[1].rpartition(".")[0]
68 |
69 | print('Creating {output_abi} with ricardian contracts included'.format(output_abi = output_abi))
70 |
71 | with open(source_abi, 'r') as source_abi_file:
72 | source_abi_json = json.load(source_abi_file)
73 |
74 | source_abi_json['actions'] = add_ricardian_contracts_to_actions(source_abi_directory, contract_name, source_abi_json['actions'])
75 | source_abi_json['ricardian_clauses'] = create_ricardian_clauses_list(source_abi_directory, contract_name)
76 |
77 | with open(output_abi, 'w') as output_abi_file:
78 | json.dump(source_abi_json, output_abi_file, indent=2)
79 |
80 | def import_ricardian_to_abi(source_abi, output_abi):
81 | if not os.path.exists(source_abi):
82 | print('Source ABI not found in {source_abi}'.format(source_abi = source_abi))
83 | sys.exit(0)
84 |
85 | if os.path.exists(output_abi):
86 | overwrite_prompt_response = input('Output ABI {output_abi} already exists, do you want to proceed? (y|n): '.format(output_abi = output_abi))
87 | if overwrite_prompt_response == 'y':
88 | print('Overwriting existing output abi')
89 | add_ricardian_contracts_to_abi(source_abi, output_abi)
90 | sys.exit(0)
91 | else:
92 | print('User aborted, not overwriting existing abi')
93 | sys.exit(0)
94 | else:
95 | add_ricardian_contracts_to_abi(source_abi, output_abi)
96 |
97 | def write_rc_file(path, filename, content):
98 | output_filename = os.path.join(path, filename)
99 | write_file = True
100 |
101 | if os.path.exists(output_filename):
102 | overwrite_prompt_response = input('Output rc {output_filename} already exists, do you want to proceed? (y|n): '.format(output_filename = output_filename))
103 | if overwrite_prompt_response == 'y':
104 | print('Overwriting existing output rc')
105 | elif overwrite_prompt_response == 'n':
106 | print('Skipping overwrite of {output_filename}'.format(output_filename = output_filename))
107 | write_file = False
108 |
109 | if write_file:
110 | with open(output_filename, 'w') as text_file:
111 | print(content, file=text_file)
112 |
113 | print('Wrote {output_filename}'.format(output_filename = output_filename))
114 |
115 | def export_ricardian_from_abi(source_abi):
116 | source_abi_directory = os.path.dirname(source_abi)
117 | contract_name = os.path.split(source_abi)[1].rpartition(".")[0]
118 |
119 | if not os.path.exists(source_abi):
120 | print('Source ABI not found in {source_abi}'.format(source_abi = source_abi))
121 | sys.exit(0)
122 |
123 | with open(source_abi, 'r') as source_abi_file:
124 | source_abi_json = json.load(source_abi_file)
125 |
126 | for abi_action in source_abi_json['actions']:
127 | output_action_rc_file_name = '{contract_name}-{action_name}-rc.md'.format(contract_name = contract_name, action_name = abi_action['name'])
128 | write_rc_file(source_abi_directory, output_action_rc_file_name, abi_action['ricardian_contract'])
129 |
130 | for abi_clause in source_abi_json['ricardian_clauses']:
131 | output_clause_rc_file_name = '{contract_name}-clause-{clause_id}-rc.md'.format(contract_name = contract_name, clause_id = abi_clause['id'])
132 | write_rc_file(source_abi_directory, output_clause_rc_file_name, abi_clause['body'])
133 |
134 | def main():
135 | if len(sys.argv) == 1:
136 | print('Please specify an operation of export or import: ./ricardeos.py ')
137 | sys.exit(1)
138 |
139 | if sys.argv[1] == 'import':
140 | if len(sys.argv) != 4:
141 | print('Please specify a source and destination abi:')
142 | print('Usage: ./ricardeos.py import /eos/contracts/contract/mycontract.abi /eos/contracts/contract/withricardian-mycontract.abi')
143 |
144 | sys.exit(0)
145 | else:
146 | import_ricardian_to_abi(sys.argv[2], sys.argv[3])
147 |
148 | sys.exit(0)
149 | elif sys.argv[1] == 'export':
150 | if len(sys.argv) != 3:
151 | print('Please specify a source abi:')
152 | print('Usage: ./ricardeos.py export /eos/contracts/contract/mycontract.abi')
153 |
154 | sys.exit(0)
155 | else:
156 | export_ricardian_from_abi(sys.argv[2])
157 |
158 | sys.exit(0)
159 |
160 | else:
161 | print('Operation not recognized only import and export operations are supported')
162 |
163 | if __name__ == '__main__':
164 | main()
165 |
--------------------------------------------------------------------------------
/scripts/ricardeos/ricardinject.py:
--------------------------------------------------------------------------------
1 | import re
2 | import requests
3 | import json
4 | import os
5 |
6 | #onchain_abi = requests.post("https://mainnet.eos.dfuse.io/v1/chain/get_abi", json={"account_name": "eosio"})
7 | #onchain_abi = requests.post("https://kylin.eos.dfuse.io/v1/chain/get_abi", json={"account_name": "eosio"})
8 | onchain_abi = requests.post("https://jungle.eos.dfuse.io/v1/chain/get_abi", json={"account_name": "eosio"})
9 |
10 |
11 | source = open("../../eosio.system/eosio.system.contracts.md").read()
12 |
13 | split = re.compile(r"(.*)
(.*)', flags=re.MULTILINE|re.DOTALL)
18 |
19 | mapping = {"contract": {}, "clause": []}
20 |
21 | for entry in entries:
22 | res = matcher.match(entry)
23 | if res == None:
24 | # print("woahh, nothign amtched here", entry)
25 | continue
26 |
27 | section = res.group(1)
28 | name = res.group(2)
29 | ricardian = res.group(3).strip()
30 |
31 | if section == "contract":
32 | mapping["contract"][name] = ricardian
33 | elif section == "clause":
34 | mapping["clause"].append((name, ricardian))
35 | else:
36 | raise Exception(f"no such section {section}")
37 |
38 |
39 | abi = onchain_abi.json()["abi"]
40 |
41 |
42 | for act in abi["actions"]:
43 | ricardian = mapping["contract"].get(act["name"])
44 | if ricardian is not None:
45 | act["ricardian_contract"] = ricardian
46 |
47 | for clause in mapping["clause"]:
48 | abi["ricardian_clauses"].append({"id": clause[0], "body": clause[1]})
49 |
50 | print(json.dumps(abi))
51 |
--------------------------------------------------------------------------------
/scripts/upload-ipfs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Upload to ipfs
4 | ipfs add ./eosio.system/eosio.system.abi > ipfs.txt
5 | ipfs add ./eosio.token/eosio.token.abi >> ipfs.txt
6 |
7 |
--------------------------------------------------------------------------------