{"id":19096841,"url":"https://github.com/makerdao/setzer","last_synced_at":"2025-04-18T16:31:23.917Z","repository":{"id":50320190,"uuid":"91621313","full_name":"makerdao/setzer","owner":"makerdao","description":"manipulate feeds","archived":true,"fork":false,"pushed_at":"2020-04-04T23:47:29.000Z","size":201,"stargazers_count":20,"open_issues_count":2,"forks_count":19,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-03-11T20:37:29.049Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makerdao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-17T21:23:40.000Z","updated_at":"2024-04-05T12:58:17.000Z","dependencies_parsed_at":"2022-09-06T09:51:01.841Z","dependency_job_id":null,"html_url":"https://github.com/makerdao/setzer","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fsetzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fsetzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fsetzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fsetzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makerdao","download_url":"https://codeload.github.com/makerdao/setzer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249517937,"owners_count":21284861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T03:37:58.846Z","updated_at":"2025-04-18T16:31:23.628Z","avatar_url":"https://github.com/makerdao.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n   `setzer` -- manipulate feeds and update data\n\n# SYNOPSIS\n   `setzer \u003ccommand\u003e [\u003cargs\u003e]`  \n   `setzer \u003ccommand\u003e --help`\n\n# COMMANDS\n\n  | command    |      description                                           |\n  |------------|------------------------------------------------------------|\n  |`average`   |      get average price of 2 or more price `\u003csource\u003e`       |\n  |`bot`       |      really cool bot                                       |\n  |`compute`   |      get what the medianizer value would be if updated     |\n  |`expires`   |      get expiration in seconds (\u003c 0 means expired)         |\n  |`help`      |      print help about setzer(1) or one of its subcommands  |\n  |`peek`      |      peek a dsvalue, dscache or medianizer                 |\n  |`poke`      |      poke a medianizer                                     |\n  |`post`      |      update a ds-price                                     |\n  |`price`     |      show ETH/USD price from `\u003csource\u003e`                    |\n  |`read`      |      read a dsvalue, dscache or medianizer                 |\n  |`set`       |      set next feed of a medianizer                         |\n  |`spread`    |      variance of 2 values in %                             |\n  |`valid`     |      check if a dsvalue, dscache or medianizer has a value |\n  |`void`      |      invalidate a feed                                     |\n  |`volume`    |      show ETH/USD volume from `\u003csource\u003e`                   |\n\n\n# INSTALLATION\n\n`setzer` depends on [seth](https://dapp.tools/seth/) and `jshon`.\n\nInstall dependencies with Nix:\n\n```\nnix-channel --add https://nix.dapphub.com/pkgs/dapphub\nnix-channel --update\nnix-env -iA dapphub.{seth,jshon}\n```\n\nOr follow installation process from [Dapp tools Installing](https://dapp.tools)\n\n   |                |                                        |\n   |----------------|----------------------------------------| \n   |`make link`     |  install setzer(1) into `/usr/local`   |  \n   |`make uninstall`|  uninstall setzer(1) from `/usr/local` |\n\n# RUNNING SETZER BOT\n  `setzer bot` expects a config file located at `/etc/setzer.conf` or\n  passed via `--config path/to/config.conf`\n\n  The bot will run with sensible defaults and only needs three things:\n\n```bash\n  export ETH_FROM=\"YOUR ACCOUNT\"\n  export SETZER_FEED=\"YOUR PRICE-FEED ADDRESS\"\n  export SETZER_MEDIANIZER=\"0x729D19f657BD0614b4985Cf1D82531c67569197B\"\n```\n\nThere are several extra options but you generally will not modify them.\n  \n```bash\n  #The list of price sources. Execute `setzer price` to get list of valid values!\n  export SETZER_SOURCES=\"LIST OF PRICE SOURCES\"\n  \n  #setzer tries to create a price update transaction with increasing gas price to \n  #make sure it gets mined. Starts from $SETZER_INITIAL_GAS_PRICE with $SETZER_GAS_PRICE_INCREMENT \n  #until $SETZER_MAX_GAS_PRICE. \n \n  #initial gas price in Wei\n  export SETZER_INITIAL_GAS_PRICE=`seth --to-wei 1 gwei`\n  \n  #gas price increment in Wei\n  export SETZER_GAS_PRICE_INCREMENT=`seth --to-wei 5 gwei`\n  \n  #max gas price in Wei\n  export SETZER_MAX_GAS_PRICE=`seth --to-wei 26 gwei`\n  \n  #spread between current price and last update price in percentage\n  export SETZER_SPREAD=2\n\n  #Seconds to wait between two price fetches\n  export SETZER_INTERVAL_SECONDS=120\n\n  #Seconds to wait for price update transaction to execute on blockchain\n  # before retrying with higher gas price\n  export SETZER_WAIT_FOR_RESEND=240\n  \n  #automatically update price if needed\n  # if set to 1 price will be auto updated if needed on the blockchain\n  # if set to '' (empty) price feed will update only if user enters 'y' \n  export SETZER_AUTO=1\n  \n  #Time to wait for a node to respond\n  #default 15s\n  export RPC_TIMEOUT=15s\n```\n\n# OPTIONS\n   You can provide any `seth` option to commands that send transactions.  \n   For example `setzer void \u003cfeed\u003e -F \u003caccount\u003e --gas=100000 -P 1000000000`\n\nReport bugs to \u003chttps://github.com/makerdao/setzer/issues\u003e.\n\nThanks to @dbrock for paving the way with `seth` and `dapp`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fsetzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerdao%2Fsetzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fsetzer/lists"}