diff --git a/README.md b/README.md index ccb7c26ea..8bdfff0fa 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,9 @@ Smart contract address update procedure: ## Image Requirements - file extension: `png`. Uppercase `PNG` is considered as invalid - name:file name requirements for: `logo.png` name, but [folder naming](#repository-structure) where they placed is most important part of contribution -- size: `256px by 256px` or `512px by 512px` +- dimension: `256px by 256px` or `512px by 512px` +- size: up to `100 KB`. TIP: use free drag and drop online service [tinypng](https://tinypng.com/) to optimize image size - background: preferably transparent -- use simple drag and drop online service [tinypng](https://tinypng.com/) to optimize image size ## dApp image naming requirements - [Folder for upload](https://github.com/trustwallet/assets/tree/master/dapps) @@ -87,13 +87,24 @@ Smart contract address update procedure: - [Submit form for review](https://docs.google.com/forms/d/e/1FAIpQLSd5p9L78zKXIiu9E5yFRPf5UkvsLZ7TbUDLFBRIi1qMd8Td4A/viewform) ## Staking validators requirements -// TODO +### General requirements +1. Add validator basic information to the bottom of the list, see example for: [Kava](https://github.com/trustwallet/assets/tree/master/blockchains/kava/validators/list.json), [Cosmos](https://github.com/trustwallet/assets/tree/master/blockchains/cosmos/validators/list.json), [Tezos](https://github.com/trustwallet/assets/tree/master/blockchains/tezos/validators/list.json), [Tron](https://github.com/trustwallet/assets/tree/master/blockchains/tron/validators/list.json), [Solana](https://github.com/trustwallet/assets/tree/master/blockchains/solana/validators/list.json), [Harmony](https://github.com/trustwallet/assets/tree/master/blockchains/harmony/validators/list.json) +2. Add validator logo image to `blockchains//validators/assets//logo.png` [see images requirements](#image-requirements) +3. Check chain [specific](#validators-specific-requirements) requirements + +### Validators specific requirements +##### Tezos +We utilize [Baking Bad API](https://baking-bad.org/docs/api) to collect and update existing bakers list. +To remain in validators list: +1. Baker must accept minimum `0` XTZ for delegation +2. Baker must payout regularly +3. Baker must maintain available staking capacity (subject to temporary removal from the list when capacity reached below 0) ## Repository structure `blockchains` folder contains many subfolders and represents chains e.g. `ethereum`, `binance` ... -`assets` folder contains token folders named by smart contract address in `checksum address` for Ethereum like networks and inside of it `logo.png` - image representation. Note: Lowercase or uppercase contract addresses are considered as invalid. You can find the checksum address by searching on [ etherscan.io](https://etherscan.io), for example stablecoin [DAI](https://etherscan.io/address/0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359) the checksum address is located at the top left corner of the page and has both uppercase and lowercase characters. Or [convert Ethereum address to Checksum address](https://piyolab.github.io/sushiether/RunScrapboxCode/?web3=1.0.0-beta.33&code=https://scrapbox.io/api/code/sushiether/web3.js_-_Ethereum_%E3%81%AE%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0%E4%BB%98%E3%81%8D%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/demo.js). For other networks the address must be specified as it was originated on the chain, e.g TRON TRC10: `1002000`, TRON TRC20: `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t` etc ... +`assets` folder contains token folders named by smart contract address in `checksum address` for Ethereum like networks and inside of it `logo.png` - image representation. Note: Lowercase or uppercase contract addresses are considered as invalid. You can find the checksum address by searching on [etherscan.io](https://etherscan.io), for example stablecoin [DAI](https://etherscan.io/address/0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359) the checksum address is located at the top left corner of the page and has both uppercase and lowercase characters. Or [convert Ethereum address to Checksum address](https://piyolab.github.io/sushiether/RunScrapboxCode/?web3=1.0.0-beta.33&code=https://scrapbox.io/api/code/sushiether/web3.js_-_Ethereum_%E3%81%AE%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0%E4%BB%98%E3%81%8D%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/demo.js). For other networks the address must be specified as it was originated on the chain, e.g TRON TRC10: `1002000`, TRON TRC20: `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t` etc ... `info` folder contains for now only `logo.png` that represents the coin image diff --git a/blockchains/tezos/validators/assets/tz1LLNkQK4UQV6QcFShiXJ2vT2ELw449MzAA/logo.png b/blockchains/tezos/validators/assets/tz1LLNkQK4UQV6QcFShiXJ2vT2ELw449MzAA/logo.png deleted file mode 100644 index 7c1f35889..000000000 Binary files a/blockchains/tezos/validators/assets/tz1LLNkQK4UQV6QcFShiXJ2vT2ELw449MzAA/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1RSWMYKGAykpizFteowByYMueCYv9TMn1L/logo.png b/blockchains/tezos/validators/assets/tz1RSWMYKGAykpizFteowByYMueCYv9TMn1L/logo.png deleted file mode 100644 index a188dd5df..000000000 Binary files a/blockchains/tezos/validators/assets/tz1RSWMYKGAykpizFteowByYMueCYv9TMn1L/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1STeamwbp68THcny9zk3LsbG3H36DMvbRK/logo.png b/blockchains/tezos/validators/assets/tz1STeamwbp68THcny9zk3LsbG3H36DMvbRK/logo.png deleted file mode 100644 index 5bf03958c..000000000 Binary files a/blockchains/tezos/validators/assets/tz1STeamwbp68THcny9zk3LsbG3H36DMvbRK/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1XXayQohB8XRXN7kMoHbf2NFwNiH3oMRQQ/logo.png b/blockchains/tezos/validators/assets/tz1XXayQohB8XRXN7kMoHbf2NFwNiH3oMRQQ/logo.png deleted file mode 100644 index bba7c4c58..000000000 Binary files a/blockchains/tezos/validators/assets/tz1XXayQohB8XRXN7kMoHbf2NFwNiH3oMRQQ/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1XhnCdVENzgko5x1MMswLHSoQbJ5NPwLZ6/logo.png b/blockchains/tezos/validators/assets/tz1XhnCdVENzgko5x1MMswLHSoQbJ5NPwLZ6/logo.png deleted file mode 100644 index f19889c8a..000000000 Binary files a/blockchains/tezos/validators/assets/tz1XhnCdVENzgko5x1MMswLHSoQbJ5NPwLZ6/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8/logo.png b/blockchains/tezos/validators/assets/tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8/logo.png deleted file mode 100644 index 3d5d0d56b..000000000 Binary files a/blockchains/tezos/validators/assets/tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1dNVDWPf3Q59SdJqnjdnu277iyvReiRS9M/logo.png b/blockchains/tezos/validators/assets/tz1dNVDWPf3Q59SdJqnjdnu277iyvReiRS9M/logo.png deleted file mode 100644 index 2ff2a1a82..000000000 Binary files a/blockchains/tezos/validators/assets/tz1dNVDWPf3Q59SdJqnjdnu277iyvReiRS9M/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1egbN6RK2bM5vt4aAZw6r9j4nL8z49bPdS/logo.png b/blockchains/tezos/validators/assets/tz1egbN6RK2bM5vt4aAZw6r9j4nL8z49bPdS/logo.png deleted file mode 100644 index 9741443d7..000000000 Binary files a/blockchains/tezos/validators/assets/tz1egbN6RK2bM5vt4aAZw6r9j4nL8z49bPdS/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194/logo.png b/blockchains/tezos/validators/assets/tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194/logo.png deleted file mode 100644 index 4acdf8ade..000000000 Binary files a/blockchains/tezos/validators/assets/tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/assets/tz1isXamBXpTUgbByQ6gXgZQg4GWNW7r6rKE/logo.png b/blockchains/tezos/validators/assets/tz1isXamBXpTUgbByQ6gXgZQg4GWNW7r6rKE/logo.png deleted file mode 100644 index 311fef6c4..000000000 Binary files a/blockchains/tezos/validators/assets/tz1isXamBXpTUgbByQ6gXgZQg4GWNW7r6rKE/logo.png and /dev/null differ diff --git a/blockchains/tezos/validators/list.json b/blockchains/tezos/validators/list.json index cd8b31a7d..071fc99cb 100644 --- a/blockchains/tezos/validators/list.json +++ b/blockchains/tezos/validators/list.json @@ -8,11 +8,6 @@ "commission": 8, "payoutDelay": 1, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 8656, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -24,11 +19,6 @@ "commission": 12, "payoutDelay": 1, "payoutPeriod": 5 - }, - "staking": { - "freeSpace": 2627586, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -40,11 +30,6 @@ "commission": 30, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 76470, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -56,11 +41,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 3476678, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -72,11 +52,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 4542131, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -88,11 +63,6 @@ "commission": 15, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 9147322, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -104,11 +74,6 @@ "commission": 19, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 2851394, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -120,31 +85,6 @@ "commission": 8, "payoutDelay": 1, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 3206242, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8", - "name": "MyTezosBaking", - "description": "We are delegation service for Tezos, secure, anonymous", - "website": "https://mytezosbaking.com/", - "payout": { - "commission": 14, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "status": { - "disabled": true, - "note:": "Minimum delegation 1000 XTZ" - }, - "staking": { - "freeSpace": 433752, - "minDelegation": 1000, - "openForDelegation": true } }, { @@ -156,11 +96,6 @@ "commission": 12.5, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 1692519, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -172,11 +107,6 @@ "commission": 40, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 83133, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -188,11 +118,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 177012, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -204,11 +129,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 129281, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -220,11 +140,6 @@ "commission": 8, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 1547809, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -236,11 +151,6 @@ "commission": 9, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 602592, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -252,27 +162,6 @@ "commission": 8, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 344285, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1g8vkmcde6sWKaG2NN9WKzCkDM6Rziq194", - "name": "StakeNow", - "description": "Staking Services for Private and Institutional Clients. This service is offered in full compliance with the law as a German company.", - "website": "https://stakenow.de", - "payout": { - "commission": 14.99, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 851975, - "minDelegation": 10, - "openForDelegation": true } }, { @@ -284,43 +173,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 3606267, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1XhnCdVENzgko5x1MMswLHSoQbJ5NPwLZ6", - "name": "Anonstake", - "description": "Anonstake.com allows people to delegate tokens and start staking on Proof-of-Stake blockchains.", - "website": "https://anonstake.com", - "payout": { - "commission": 8, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 145484, - "minDelegation": 100, - "openForDelegation": true - } - }, - { - "id": "tz1isXamBXpTUgbByQ6gXgZQg4GWNW7r6rKE", - "name": "tezwhale.com", - "description": "tezwhale.com is one of the most efficent tezos delegation service's.", - "website": "https://tezwhale.com", - "payout": { - "commission": 24, - "payoutDelay": 1, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 50412, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -332,43 +184,6 @@ "commission": 4, "payoutDelay": 1, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 707796, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1RSWMYKGAykpizFteowByYMueCYv9TMn1L", - "name": "Tezos Alliance", - "description": "Tezos Alliance is a french secure node on Tezos", - "website": "https://twitter.com/TezosAlliance", - "payout": { - "commission": 10, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 9040, - "minDelegation": 1, - "openForDelegation": true - } - }, - { - "id": "tz1LLNkQK4UQV6QcFShiXJ2vT2ELw449MzAA", - "name": "TezoSteam", - "description": "Your trusted baker, active since cycle 3", - "website": "https://tezosteam.com/", - "payout": { - "commission": 25, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 1864411, - "minDelegation": 10, - "openForDelegation": true } }, { @@ -380,11 +195,6 @@ "commission": 14.99, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 19767, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -396,11 +206,6 @@ "commission": 10, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 402887, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -412,11 +217,6 @@ "commission": 15, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 3293616, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -428,11 +228,6 @@ "commission": 9.95, "payoutDelay": 1, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 1810020, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -444,11 +239,6 @@ "commission": 14, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 359866, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -460,11 +250,6 @@ "commission": 8, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 71127, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -476,11 +261,6 @@ "commission": 14.99, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 339720, - "minDelegation": 0, - "openForDelegation": true } }, { @@ -492,83 +272,6 @@ "commission": 15, "payoutDelay": 6, "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 30286, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1egbN6RK2bM5vt4aAZw6r9j4nL8z49bPdS", - "name": "moneyevery3days.com old baking address", - "description": "Money Every 3 Days - Please switch to new baker address", - "website": "https://moneyevery3days.com", - "payout": { - "commission": 4, - "payoutDelay": 1, - "payoutPeriod": 1 - }, - "status": { - "disabled": true, - "note:": "Outdated" - }, - "staking": { - "freeSpace": 190028, - "minDelegation": 0, - "openForDelegation": true - } - }, - { - "id": "tz1dNVDWPf3Q59SdJqnjdnu277iyvReiRS9M", - "name": "steak.and.bake", - "description": "easy as pie baking. 5% low fees. pro privacy. no signup. powerful secure servers. non-custodial staking. low minimums, 10 tez to start. start delegating today! thank you for supporting tezos.", - "website": "https://steakandbake.github.io", - "payout": { - "commission": 5, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 177222, - "minDelegation": 10, - "openForDelegation": true - } - }, - { - "id": "tz1XXayQohB8XRXN7kMoHbf2NFwNiH3oMRQQ", - "name": "Bit Cat🐱", - "description": "Secure and stable Tezos baker service from China team", - "website": "https://www.bitcat365.com", - "payout": { - "commission": 8, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": 112007, - "minDelegation": 100, - "openForDelegation": true - } - }, - { - "id": "tz1STeamwbp68THcny9zk3LsbG3H36DMvbRK", - "name": "StakingTeam", - "description": "An historical and trusted baker, from Italy with love.", - "website": "https://stakingteam.com/", - "payout": { - "commission": 0, - "payoutDelay": 6, - "payoutPeriod": 1 - }, - "staking": { - "freeSpace": -125575, - "minDelegation": 10, - "openForDelegation": true - }, - "status": { - "disabled": true, - "note": "No more capacity" } } ] \ No newline at end of file diff --git a/script/gen_validators_tezos.ts b/script/gen_validators_tezos.ts index c40d81565..75296b014 100644 --- a/script/gen_validators_tezos.ts +++ b/script/gen_validators_tezos.ts @@ -34,11 +34,18 @@ import { BakingBadBaker } from "../src/test/models"; } } - val["staking"] = { - freeSpace: freeSpace, - minDelegation: bakerInfo.minDelegation, - openForDelegation: bakerInfo.openForDelegation + // Enable baker if has capacity + if (freeSpace > 0 && val.hasOwnProperty("status")) { + delete val.status } + + if (bakerInfo.minDelegation > 0 || bakerInfo.serviceHealth !== "active") { + val.status = { + "disabled": true, + "note": `Must allow minimum delegation 0, current ${bakerInfo.minDelegation} and to be active, current status ${bakerInfo.serviceHealth}` + } + } + acm.push(val) return acm }, []) diff --git a/src/test/models.ts b/src/test/models.ts index 69a47cdae..0d3f5174e 100644 --- a/src/test/models.ts +++ b/src/test/models.ts @@ -87,4 +87,5 @@ export interface BakingBadBaker { openForDelegation: boolean payoutDelay: number payoutPeriod: number + serviceHealth: string } \ No newline at end of file