This software's intent is to automate all activities related to manage Axie Infinity Scholars. It is specially aimed to mangers with large scholar roasters.

Overview

Axie Scholars Utilities

Build Status Docker Image

This software's intent is to automate all activities related to manage Scholars. It is specially aimed to mangers with large scholar roasters. I will try to automate some of the tasks like payments to scholars, QR generation and SLP claiming. I am also very open to new ideas, so please leave them in Issues.

Payments Utility

This utility to help with payments for Axie Infinity managers who have large scholar roasters. It requires a JSON input like:

{
    "Manager": "ronin:<Manager address here>",
    "Scholars":[
        {
            "Name": "Scholar 1",
            "AccountAddress": "ronin:<account_address>",
            "ScholarPayoutAddress": "ronin:<scholar_address>",
            "ScholarPayout": 10,
            "TrainerPayoutAddress": "ronin:<trainer_address>",
            "TrainerPayout": 1,
            "ManagerPayout": 9
        },
        {...},
        ...
    ],
    "Donations": [
        {
            "Name": "Entity 1",
            "AccountAddress": "ronin:<donation_entity_address>",
            "Percent": 0.01
        },
        {
            ...
        }
    ]
}

Let us define the concepts in that file.

  • Manager: There we input the "manager's" ronin address. This means all manager payments will be paid to that address.
  • Scholars: This is the list of all scholar accounts we need to make payments to each element in this list contains:
    • Name: Name of this account, it is only for identification purposes.
    • Account Address: Public ronin address of this scholar account.
    • Scholar Payout Address: Scholar's ronin address. This is where we will pay the scholar.
    • Scholar Payout: This is the amount of SLP we will pay to the scholar
    • Trainer Payout Address: This is an optional parameter. It is the public ronin address of the trainer (otherwise known as investor) for this particular scholar account.
    • Trainer Payout: If previous parameter is present, this is the amount of SLP it will be paid to that address.
    • Manager Payout: This is the amount of SLP that will be transferred to the manager account.
  • Donations: Optional list of donations, in case you want to support other projects sharing with them part of your earnings. This percent will be calculated from the Manager Payout and rounded. Donations to me do NOT go in this place, they are in the code itself! If any donations or the fee does not reach a minumum of 1 SLP it will not be paid out.
    • Name: Name of the entity you want to donate to. This is only for identification purposes.
    • Account Address: Public ronin address of the entity or project you want to donate to.
    • Percent: Percent you want to donate to that entity. Caution! Be aware that to donate 1% you need to input: 0.01. If you write a 1, you would be donating 100% of your manager payments! Total percent of all donations added cannot be over 1 (100%). If that is the case, the software will throw an error and ask you to correct it.

WARNING! All addresses in the previous file are the PUBLIC ones. Remember to always keep your private ones safe.

Also, to note, this software will not calculate how much you pay (except for donations and the fee), as the input file it expects has the amounts already.

This next bit is why we need you to run this software locally. And that reason is the private keys for the scholar accounts. To do the payments we need them, but of course you do NOT share that with anyone. All this software will do is read those from a file and use them for payments, but none other than you will have access to those keys.

This configuration file will be in the form of:

{
    <AccountAddressRonin>:<PrivateKey>,
    ...
}

Command looks like:

axie_scholar_cli.py payout <payments_file> <secrets_file>

This means you need to provide the path to a payments_file and to secrets_file. After that, just follow instructions in the terminal to complete payouts. It will ask for confirmation for each account.

CAUTION! In order to be able to do transactions, the sending ronin account (in this case the Scholars Account ronin Addresses) will need to be registered on the Axie marketplace. (If you want to use this tool they should already be, but just in case!)

Generate Secrets Utility

This utility helps you generate and make sure your secrets file will hold all the needed private keys to execute the payments. That is why it will ask for a payments file and optionally an already created secrets file. Even if you have a generated secrets file, I recommend running this utility for the sake of making sure you have all the needed secrets. Do not worry if you do not, but that will prevent your payouts to be executed and you will need to edit the secrets file anyway.

Command looks like:

axie_scholar_cli.py generate_secrets <payments_file> [<secrets_file>]

This means it needs a payments_file path and optionally a secrets_file path. Do not provide a secrets_file path if you do not have a valid secrets json previously created. Command will simply generate and save a json called secrets.json on the current folder.

GIF example:

  • without Docker:

    asciicast

  • with Docker: asciicast

Example Files

Please go to the folder sample_data to see sample files for how the payments file and the secrets file need to look like.

How to install and run?

CLI (Command Line Interface)

To run my tool you will need Python3 (the language it is written in) to be installed on your machine. Please do look up how to install it if you get stuck, but here there go a brief explanation on how to do so.

Windows Installation

  1. Go to the Official Python Webiste and download python3. I personally run Python 3.8.2 in my development machine, but this should work in any 3.8 or higher version. (Maybe any version from 3.6?? -- If you decide to go with those versions and have issues, please do report and I will try and fix them)

  2. During installation, just follow the installer instructions but remmember to tick the box on the 1st window that says "Add Python 3.9 to PATH". If you do no do that, you will need to remmember the full path of where you have Python installed everytime you want to execute it (which is annoying!). By just ticking that you will have a nicer way to call python just using its name "python".

  3. Install Poetry. We could use the standard PIP package manager for Python, but I like Poetry more as it fixes the versions down in a better way. To do so you need to open your Powershell and execute:

     (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
    
  4. Now it is time to download my code, there are multiple ways:

    • Use git. This is a method I would only recommend if you are already familiar with git. So you know, clone away this repo ;)
    • Go to releases and download the latest one. Currently v0.1. Then just Unzip it somewhere in your computer.
  5. Wherever you have my code in your computer you will need to navigate using your Powershell or Terminal to axie-scholar-utilities/source. If you are not comfortable with a terminal, you can just navigate using the file explorer, right click the folder, go to properties and copy the full path or location. It will be something like C:\Users\<myUser>\Documents\axie-scholar-utilitiesv0.1\axie-scholar-utilities\source. With that, just open your power shell and execute (change the path to the folder location in YOUR computer):

     cd C:\Users\<myUser>\Documents\axie-scholar-utilitiesv0.1\axie-scholar-utilities\source
    
  6. Now, given you have Python and Poetry installed execute the following command to install all the extra dependencies you need:

     poetry install
    
  7. You are ready to go! To run the CLI program, you will just need to execute any of the following commands:

     # This one will execute the payouts
     poetry run python axie_scholar_cli.py payout <payments_file>
     <secrets_file>
    
     # This one will help you generate the secrets file
     poetry run axie_scholar_cli.py generate_secrets <payments_file>
    
     # If you give the previous one the location of a generated secrets file, it will update it if needed!
     poetry run axie_scholar_cli.py generate_secrets <payments_file> <secrets_file>
    

For the last step, modify the <payments_file> and <secrets_file> with the location of your JSON files. If they are in the same folder, just giving the name of the file .json will be enough. If they are in another folder, give the full location. To find that, use the Properties tip from step 5.

Any issues in any step, please contact me but sometimes a quick google search or reading the pages I linked above should solve 90% of your problems. Again, I am happy to asist you, so leave an issue here in Github, send me an email or for a faster contact join my Discord


MacOs Installation

  1. As a pre-requisite you need to have Xcode. Just get it from the Apple appstore. Find it here

  2. Now we can move on to installing python3. The easiest way is with Homebrew. To install it just run on the terminal:

     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  3. Once you have Homebrew installed, to get python3, just run:

     brew install python3
    
  4. Add python to your PATH. This can be a bit tricky but you need to open the file (or create it). ~/.bash_profile. Go to the bottom of it and add the line:

     export PATH="/usr/local/opt/python/libexec/bin:$PATH"
     # or this line if you have OS X 10.12 (Sierra or older)
     export PATH=/usr/local/bin:/usr/local/sbin:$PATH
    
  5. Once you have done that, close your terminal and open it again. (So it refreshes and you trully have python in your path). If you want to check you have done it properly you can run this command and check the Path you added in step 3 is there.

     echo $PATH | tr ':' '\n'
     # Or alternatively
     python3 --version
    
  6. Install Poetry. We could use the standard PIP package manager for Python, but I like Poetry more as it fixes the versions down in a better way. To do so you run this command:

     curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
    
  7. Now it is time to download my code, there are multiple ways:

    • Use git. This is a method I would only recommend if you are already familiar with git. So you know, clone away this repo ;)
    • Go to releases and download the latest one. Currently v0.1. Then just Unzip it somewhere in your computer.
  8. Wherever you have my code in your computer you will need to navigate using your Terminal to axie-scholar-utilities/source. If you are not comfortable with a terminal, you can just navigate using Finder, and drag and drop the folder to the Terminal window. It will copy the path. So first type cd and then drag and drop the folder. Command you run should look something like:

     cd /Users/<your_user>/axie-scholar-utilities/README.md
    
  9. Now, given you have Python and Poetry installed execute the following command to install all the extra dependencies you need:

     poetry install
    
  10. You are ready to go! To run the CLI program, you will just need to execute any of the following commands:

     # This one will execute the payouts
     poetry run python axie_scholar_cli.py payout <payments_file>
     <secrets_file>
    
     # This one will help you generate the secrets file
     poetry run axie_scholar_cli.py generate_secrets <payments_file>
    
     # If you give the previous one the location of a generated secrets file, it will update it if needed!
     poetry run axie_scholar_cli.py generate_secrets <payments_file> <secrets_file>
    

For the last step, modify the <payments_file> and <secrets_file> with the location of your JSON files. If they are in the same folder, just giving the name of the file .json will be enough. If they are in another folder, give the full location. Remmember you can use the trick explained on step 7.

Any issues in any step, please contact me but sometimes a quick google search or reading the pages I linked above should solve 90% of your problems. Again, I am happy to asist you, so leave an issue here in Github, send me an email or for a faster contact join my Discord


Linux Installation

TBD



Docker

How to install docker?

I also recommend having docker-compose. It comes by default with Windows and MacOs Desktop versions, so only Linux user will need to:

    # Download it
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    # Add execution perms
    sudo chmod +x /usr/local/bin/docker-compose
    # In case you need to create a symlink
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    # Finally just check it works with
    docker-compose --version

Once we have docker installed and docker-compose we are done. To use the tool we only need to build and run the image. To do so, please navigate using your terminal to the docker folder. Once there create a folder named files (this is where we will place our payments and secret file), we will link that folder from our host to the docker container.

Once all this preparation is done, just use this commands as needed:

    # Builds the image
    docker-compose build scholar-utilities
    # If we want to generate the secrets
    docker-compose run scholar-utilities generate-secrets files/payments.json
    # If we want to do payments in auto mode
    docker-compose run scholar-utilities payout files/payments.json files/secrets.json -y
    # As a general rule
    docker-compose run scholar-utilities <here whatever command and arguments you want to run>

If you do not want to build the image yourself, pleaes download it from my docker hub.

    docker pull epith/axie-scholar-utilities

I recommend setting up this aliases right after pulling the image, so it makes everyones life easier.

    # Alias to generate secrets
    axie-utils-gen-secrets() {docker run -it  -v ${PWD}/${1}:/opt/app/files/payments.json  -v ${PWD}/${2}:/opt/app/files/secrets.json epith/axie-scholar-utilities generate_secrets files/payments.json files/secrets.json}
    # Alias to execute payments
    axie-utils-payout() {docker run -it  -v ${PWD}/${1}:/opt/app/files/payments.json  -v ${PWD}/${2}:/opt/app/files/secrets.json epith/axie-scholar-utilities payout files/payments.json files/secrets.json}
    # Alias to execute auto-payments (no confirmation)
    axie-utils-auto-payout() {docker run -it  -v ${PWD}/${1}:/opt/app/files/payments.json  -v ${PWD}/${2}:/opt/app/files/secrets.json epith/axie-scholar-utilities payout files/payments.json files/secrets.json -y}

With these alias all you need is the payments file and a secret file (if you have not yet generate it, please create a file with just '{}' inside and save it as .json). Then the commands you will need to execute are the following:

    #To generate/update secret file
    axie-utils-gen-secrets name_of_your_payments_file.json name_of_your_secrets_file.json
    #To execute payments
    axie-utils-payout name_of_your_payments_file.json name_of_your_secrets_file.json
    #To execute automatic payments
    axie-utils-auto-payout name_of_your_payments_file.json name_of_your_secrets_file.json

Once executed, please follow the insturctions that will appear on your terminal (if any).

Desktop App

TBD

How is this and future developments financed?

There is embedded in the code a 1% fee. I believe this is a fair charge for this automation. It allows us to dedicate time and effort on bettering this software and add more features! Please do not remove it as it is the only way I have to support this project.

Roadmap

  • Add functionality to claim SLP
  • Release a dockerized version (No need to install anything other than docker)
  • Release a desktop app (even more convenient)
  • ...
  • Add functionality to get QR codes, maybe(?)

Feel free to open issues requesting features. I will consider all of them and maybe add them in the future!

Donations

If you want to donate to thank me, feel free to do so at this ronin address:

ronin:cac6cb4a85ba1925f96abc9a302b4a34dbb8c6b0

Discord

Feel free to join this project's discord: https://discord.gg/bmKvmhenvu

Comments
  • Batch Claim SLP

    Batch Claim SLP

    Amazing work because the info are so hard to find, they just have no doc...

    Sorry if I am wrong but it seems you didn't implement batch SLP claim.

    This is actually the most important. I guess maybe it's difficult to do ?

    (I'm willing to help if you can put me in the right direction to do that)

    Best regards

    help wanted 
    opened by Joyen12 11
  • [SUGGESTION] Implement Transfer Safe Mode

    [SUGGESTION] Implement Transfer Safe Mode

    Is your feature request related to a problem? Please describe. During axies transfer you coud potentially send it to an unknown address.

    Describe the solution you'd like Add a safe-mode with --safe-mode where you can only send axies to those accounts that you also have in your secrets.json

    good first issue request Hacktoberfest 
    opened by FerranMarin 9
  • removed period for checking last claim time

    removed period for checking last claim time

    ran into an error where if claimable slp checked multiple times, no longer shows up. removing this statement shows the correct amount of claimable slp each time i run the claim function

    opened by adamxyzxyz 6
  • [SUGGESTION] Support Trezor Accounts

    [SUGGESTION] Support Trezor Accounts

    Is your feature request related to a problem? Please describe. If you secure your account with trezor device, they cannot get the private keys, so this tool cannot work.

    Describe the solution you'd like Tool works, each signature the user is prompted to sign using trezor.

    request priority 
    opened by FerranMarin 5
  • [SUGGESTION] Re-try / Log failed transactions

    [SUGGESTION] Re-try / Log failed transactions

    Is your feature request related to a problem? Please describe. In case a transaction fails there is no easy way to re-try.

    Describe the solution you'd like Log failed transitions in another file and create a command to re-try them!

    enhancement request 
    opened by FerranMarin 5
  • [SUGGESTION] Integrate transfers to Binance

    [SUGGESTION] Integrate transfers to Binance

    Describe the solution you'd like Users want to deposit from their ronin wallets to binance as they have just announced 0 gas deposits.

    Describe alternatives you've considered We keep using the same as now.

    Additional context From binance they can exchange SLP, AXS to other currencies and even FIAT. Some managers would like to pay or withdraw FIAT.

    request 
    opened by FerranMarin 5
  • [SUGGESTION] Create a website to administrate everything

    [SUGGESTION] Create a website to administrate everything

    In order to make this amazing code more usable, I suggest to create a website in order to populate or modify the payments.json file, to claim just by clicking a button or the execute the payout on the same way.

    What do you think?

    request 
    opened by oskariin7 4
  • [SUGGESTION] Too many logs

    [SUGGESTION] Too many logs

    Description: Implementing a new logging approach whereby all logs are at logging.INFO level at the lowest and logs starting with Important: will be filtered and logged into a log file.

    Currently only implemented for source/axie/payments.py.

    Testing: All tests passing successfully.

    opened by stefdworschak 4
  • [SUGGESTION] Manage Dropout Scholars

    [SUGGESTION] Manage Dropout Scholars

    Is your feature request related to a problem? Please describe. Sometimes in the middile of a payment period a scholar drops off. Add a means to account for that

    Describe the solution you'd like Not sure how to implement this yet...

    I welcome ideas for how to solve this.

    help wanted question request 
    opened by FerranMarin 4
  • Claiming SLP not working [BUG]

    Claiming SLP not working [BUG]

    Hello bro, thanks for the big work : My issue is when claiming slp, it times out, see screen shot below :

    image

    I'm not sure if this is related to the network not properly working right now. However, when trying to execute the command a second time, it assumes that the SLP is already claimed, which is not true.

    bug 
    opened by Heiseinberg 3
  • [BUG] 400 Client Error while transferring Axie from one wallet to another

    [BUG] 400 Client Error while transferring Axie from one wallet to another

    Suddenly started getting this error from today. It worked perfectly before today.

    File: axie-scholar-utilities/axie-scholar-utilities/source/axie/transfers.py Line: 73 self.w3.eth.send_raw_transaction(signed.rawTransaction) Error: requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://proxy.roninchain.com/free-gas-rpc

    bug 
    opened by iqbalhusen 3
  • Bump certifi from 2022.6.15 to 2022.12.7 in /axie-scholar-utilities/source

    Bump certifi from 2022.6.15 to 2022.12.7 in /axie-scholar-utilities/source

    Bumps certifi from 2022.6.15 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
  • Bump jsonschema from 3.2.0 to 4.17.3 in /axie-scholar-utilities/source

    Bump jsonschema from 3.2.0 to 4.17.3 in /axie-scholar-utilities/source

    Bumps jsonschema from 3.2.0 to 4.17.3.

    Release notes

    Sourced from jsonschema's releases.

    v4.17.3

    • Fix instantiating validators with cached refs to boolean schemas rather than objects (#1018).
    • Empty strings are not valid relative JSON Pointers (aren't valid under the RJP format).
    • Durations without (trailing) units are not valid durations (aren't valid under the duration format). This involves changing the dependency used for validating durations (from isoduration to isodate).

    Full Changelog: https://github.com/python-jsonschema/jsonschema/compare/v4.17.2...v4.17.3

    v4.17.1

    • The error message when using unevaluatedProperties with a non-trivial schema value (i.e. something other than false) has been improved (#996).

    Full Changelog: https://github.com/python-jsonschema/jsonschema/compare/v4.17.0...v4.17.1

    v4.17.0

    • The check_schema method on jsonschema.protocols.Validator instances now enables format validation by default when run. This can catch some additional invalid schemas (e.g. containing invalid regular expressions) where the issue is indeed uncovered by validating against the metaschema with format validation enabled as an assertion.
    • The jsonschema CLI (along with jsonschema.cli the module) are now deprecated. Use check-jsonschema instead, which can be installed via pip install check-jsonschema and found here.
    • Make ErrorTree have a more grammatically correct repr.

    Full Changelog: https://github.com/python-jsonschema/jsonschema/compare/v4.16.0...v4.17.0

    v4.16.0

    • Improve the base URI behavior when resolving a $ref to a resolution URI which is different from the resolved schema's declared $id.
    • Accessing jsonschema.draftN_format_checker is deprecated. Instead, if you want access to the format checker itself, it is exposed as jsonschema.validators.DraftNValidator.FORMAT_CHECKER on any jsonschema.protocols.Validator.

    Full Changelog: https://github.com/python-jsonschema/jsonschema/compare/v4.15.0...v4.16.0

    v4.15.0

    What's Changed

    Full Changelog: https://github.com/python-jsonschema/jsonschema/compare/v4.14.0...v4.15.0

    v4.14.0

    • FormatChecker.cls_checks is deprecated. Use FormatChecker.checks on an instance of FormatChecker instead.
    • unevaluatedItems has been fixed for draft 2019. It's nonetheless discouraged to use draft 2019 for any schemas, new or old.
    • Fix a number of minor annotation issues in protocols.Validator

    ... (truncated)

    Changelog

    Sourced from jsonschema's changelog.

    v4.17.3

    • Fix instantiating validators with cached refs to boolean schemas rather than objects (#1018).

    v4.17.2

    • Empty strings are not valid relative JSON Pointers (aren't valid under the RJP format).
    • Durations without (trailing) units are not valid durations (aren't valid under the duration format). This involves changing the dependency used for validating durations (from isoduration to isodate).

    v4.17.1

    • The error message when using unevaluatedProperties with a non-trivial schema value (i.e. something other than false) has been improved (#996).

    v4.17.0

    • The check_schema method on jsonschema.protocols.Validator instances now enables format validation by default when run. This can catch some additional invalid schemas (e.g. containing invalid regular expressions) where the issue is indeed uncovered by validating against the metaschema with format validation enabled as an assertion.
    • The jsonschema CLI (along with jsonschema.cli the module) are now deprecated. Use check-jsonschema instead, which can be installed via pip install check-jsonschema and found here <https://github.com/python-jsonschema/check-jsonschema>_.

    v4.16.1

    • Make ErrorTree have a more grammatically correct repr.

    v4.16.0

    • Improve the base URI behavior when resolving a $ref to a resolution URI which is different from the resolved schema's declared $id.
    • Accessing jsonschema.draftN_format_checker is deprecated. Instead, if you want access to the format checker itself, it is exposed as jsonschema.validators.DraftNValidator.FORMAT_CHECKER on any jsonschema.protocols.Validator.

    v4.15.0

    ... (truncated)

    Commits
    • dbc3982 Fix instantiating validators with cached refs-to-bool schemas.
    • 7ebe161 Try fixing more Sphinx refs which fail only on Ubuntu...
    • cdf0c71 Update pre-commit hooks.
    • e868bfe Durations without trailing units aren't valid durations.
    • 24d1328 Empty strings are not valid relative JSON pointers.
    • bd12369 Minor fix for test case class names (for format tests).
    • fb203a5 Merge commit '97954adeb0fbb3d4499580d897de507d3ab0d919'
    • 97954ad Squashed 'json/' changes from 9251ebff1..78c888273
    • 46fdb98 v4.17.1 -> CHANGELOG
    • 000dd3d Remove making believe we are ReadTheDocs in CI builds.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump pillow from 9.1.1 to 9.3.0 in /axie-scholar-utilities/source

    Bump pillow from 9.1.1 to 9.3.0 in /axie-scholar-utilities/source

    Bumps pillow from 9.1.1 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • [Snyk] Security upgrade python from 3.10-alpine to 3.12.0a1-alpine

    [Snyk] Security upgrade python from 3.10-alpine to 3.12.0a1-alpine

    Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.

    Changes included in this PR

    • axie-scholar-utilities/docker/Dockerfile

    We recommend upgrading to python:3.12.0a1-alpine, as this image has only 0 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.

    Some of the most important vulnerabilities in your base image include:

    | Severity | Priority Score / 1000 | Issue | Exploit Maturity | | :------: | :-------------------- | :---- | :--------------- | | high severity | 471 | Use After Free
    SNYK-ALPINE316-EXPAT-3062883 | No Known Exploit |


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by snyk-bot 0
  • Bump pytest-mock from 3.7.0 to 3.10.0 in /axie-scholar-utilities/source

    Bump pytest-mock from 3.7.0 to 3.10.0 in /axie-scholar-utilities/source

    Bumps pytest-mock from 3.7.0 to 3.10.0.

    Release notes

    Sourced from pytest-mock's releases.

    v3.10.0

    • Added new mocker.stop(m) method to stop specific mocker.patch or mocker.spy calls (#319).

    v3.9.0

    • Expose NonCallableMagicMock via the mocker fixture (#318).

    v3.8.2

    • Fixed AsyncMock support for Python 3.7+ in mocker.async_stub (#302).

    v3.8.1

    • Fix regression caused by an explicit mock dependency in the code (#298).

    v3.8.0

    Changelog

    Sourced from pytest-mock's changelog.

    3.10.0 (2022-10-05)

    • Added new mocker.stop(m) method to stop specific mocker.patch or mocker.spy calls ([#319](https://github.com/pytest-dev/pytest-mock/issues/319)_).

    .. _#319: pytest-dev/pytest-mock#319

    3.9.0 (2022-09-28)

    • Expose NonCallableMagicMock via the mocker fixture ([#318](https://github.com/pytest-dev/pytest-mock/issues/318)_).

    .. _#318: pytest-dev/pytest-mock#318

    3.8.2 (2022-07-05)

    • Fixed AsyncMock support for Python 3.7+ in mocker.async_stub ([#302](https://github.com/pytest-dev/pytest-mock/issues/302)_).

    .. _#302: pytest-dev/pytest-mock#302

    3.8.1 (2022-06-24)

    • Fixed regression caused by an explicit mock dependency in the code ([#298](https://github.com/pytest-dev/pytest-mock/issues/298)_).

    .. _#298: pytest-dev/pytest-mock#298

    3.8.0 (2022-06-24)

    • Add MockerFixture.async_mock method. Thanks @PerchunPak_ for the PR ([#296](https://github.com/pytest-dev/pytest-mock/issues/296)_).

    .. _@​PerchunPak: https://github.com/PerchunPak .. _#296: pytest-dev/pytest-mock#296

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump protobuf from 3.20.1 to 3.20.2 in /axie-scholar-utilities/source

    Bump protobuf from 3.20.1 to 3.20.2 in /axie-scholar-utilities/source

    Bumps protobuf from 3.20.1 to 3.20.2.

    Release notes

    Sourced from protobuf's releases.

    Protocol Buffers v3.20.2

    C++

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
Releases(v3.2.3)
  • v3.2.3(Jun 18, 2022)

    Small fixes for when no donations are present.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.2.2...v3.2.3

    Source code(tar.gz)
    Source code(zip)
  • v3.2.2(May 30, 2022)

  • v3.2.1(May 29, 2022)

  • v3.2.0(May 24, 2022)

  • v3.1.1(May 1, 2022)

    Few logging fixes and a fix to RON scattering (for some rare cases).

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.1.0...v3.1.1

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Apr 11, 2022)

    • Account Names can in csv can be numbers "they will get stringified"
    • New calculation use floor instead of round

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.9...v3.1.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.9(Apr 7, 2022)

  • v3.0.8(Apr 6, 2022)

    • Better handling of timeouts for scatter
    • Fixed again a rare bug for trezor about leading 0 bytes in sig.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.6...v3.0.8

    Source code(tar.gz)
    Source code(zip)
  • v3.0.7(Apr 4, 2022)

    • Added debuging in a few key places, needed for some apparently remaining bugs
    • Try yet another couple fixes

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.6...v3.0.7

    Source code(tar.gz)
    Source code(zip)
  • v3.0.6(Apr 3, 2022)

  • v3.0.5(Apr 3, 2022)

  • v3.0.4(Apr 2, 2022)

    • Few more fixes, hope now is all good, else keep reporting! Thank you

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.3...v3.0.4

    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(Apr 2, 2022)

    • Few bug fixes
    • Optimization of Axie transfers for accounts that hold large number of axies.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.2...v3.0.3

    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(Mar 30, 2022)

  • v3.0.1(Mar 30, 2022)

    • Remove obsolete dependencies, fix a bug when approving new accounts to use scatter.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v3.0.0...v3.0.1

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Mar 29, 2022)

    What's Changed

    • Implement Scatter ron and RON transactions by @FerranMarin in https://github.com/FerranMarin/axie-scholar-utilities/pull/100
    • Refactor to use library instead of having duplicated code

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v2.0.3...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(Mar 24, 2022)

    What's Changed

    • change internal variable to proper + fix typos and small PEP8 issues by @Rogalek in https://github.com/FerranMarin/axie-scholar-utilities/pull/96
    • added validation so splist need a ´manager´ persona
    • new format of payments allow 100% to manager (so axie.management integration does not break)

    New Contributors

    • @Rogalek made their first contribution in https://github.com/FerranMarin/axie-scholar-utilities/pull/96

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v2.0.2...v2.0.3

    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Mar 16, 2022)

  • v2.0.1(Mar 13, 2022)

    What's Changed

    • Small fix for loading by @FerranMarin in https://github.com/FerranMarin/axie-scholar-utilities/pull/95

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v2.0.0...v2.0.1

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Mar 13, 2022)

    Sumary

    Welcome to version 2.0.0! We are officially deparecating old payments file format. Please, check the file formats page on the wiki (https://ferranmarin.github.io/axie-scholar-utilities/pages/file_formats.html). Also, now axie.management will stop providing the payments.json file and it will be integrated. If you use it, now you only need a token (can be found at: https://tracker.axie.management/profile) and it will deal with the accounts configured there.

    As always, any issues, bugs, suggestions come to discord and I will be more than happy to discuss :)

    What's Changed

    • Bump pillow from 8.4.0 to 9.0.0 in /axie-scholar-utilities/source by @dependabot in https://github.com/FerranMarin/axie-scholar-utilities/pull/73
    • Bump web3 from 5.25.0 to 5.26.0 in /axie-scholar-utilities/source by @dependabot in https://github.com/FerranMarin/axie-scholar-utilities/pull/74
    • [Snyk] Security upgrade python from 3.8-alpine to 3.9-alpine by @snyk-bot in https://github.com/FerranMarin/axie-scholar-utilities/pull/79
    • Bump pytest-asyncio from 0.16.0 to 0.17.2 in /axie-scholar-utilities/source by @dependabot in https://github.com/FerranMarin/axie-scholar-utilities/pull/78
    • Update basics by @319zhk in https://github.com/FerranMarin/axie-scholar-utilities/pull/62
    • Don't allow claims if less than 14 days have passed by @kara-todd in https://github.com/FerranMarin/axie-scholar-utilities/pull/75
    • Flexi payments PR and axie.management integration by @FerranMarin in https://github.com/FerranMarin/axie-scholar-utilities/pull/94

    New Contributors

    Thank you!

    • @319zhk made their first contribution in https://github.com/FerranMarin/axie-scholar-utilities/pull/62
    • @kara-todd made their first contribution in https://github.com/FerranMarin/axie-scholar-utilities/pull/75

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.15.1...v2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.15.1(Dec 29, 2021)

  • v1.15(Dec 29, 2021)

    • Change RLP issue fix
    • Better handling of passphrases for trezor

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.14.1...v1.15

    Source code(tar.gz)
    Source code(zip)
  • v1.14.1(Dec 22, 2021)

    What's Changed

    • Small Trezor Fix and Adding Debugging by @FerranMarin in https://github.com/FerranMarin/axie-scholar-utilities/pull/69

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.14...v1.14.1

    Source code(tar.gz)
    Source code(zip)
  • v1.14(Dec 15, 2021)

    Small release with Mexico taste! I had a bit of time, so I fixed and improved a bit the tool during my holidays :)

    What's Changed

    • Update trezorlib to latest version
    • Make get_random_msg more robust
    • Make has_unclaimed_slp more robust
    • Add extra logging on Axie transfers

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.13...v1.14

    Source code(tar.gz)
    Source code(zip)
  • v1.13(Nov 29, 2021)

    Officially supporting trezor now!

    What's Changed

    • Bump web3 from 5.24.0 to 5.25.0 in /axie-scholar-utilities/source by @dependabot in https://github.com/FerranMarin/axie-scholar-utilities/pull/59
    • Officially add Trezor Support by @FerranMarin in https://github.com/FerranMarin/axie-scholar-utilities/pull/60

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.12.1...v1.13

    Source code(tar.gz)
    Source code(zip)
  • v1.12.1(Nov 18, 2021)

    What's Changed

    • Minor improvements
    • Added user agent to bypass rpc block
    • Changed gas numbers to randomish numbers (maybe chinese ppl will reconognize why I chose those) so it's easy for sky mavis to identify automation calls if they wanna gather data.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.12...v1.12.1

    Source code(tar.gz)
    Source code(zip)
    axie_utils.ps1(6.00 KB)
  • v1.12(Nov 7, 2021)

    What's Changed

    • Updated Docs to help with having multiple log files, on per execuion. Please review your aliases if you happen to be using them! Everything should be updated on the wiki pages.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.10.1...v1.12

    Source code(tar.gz)
    Source code(zip)
  • v1.11(Nov 2, 2021)

    What's Changed

    • Reduced timeout from 10 min to 5 min
    • Added a small 10 second delay between tx replacement and re-try (trying to avoid a minor bug about too low nonce)
    • Transfers now check you actually have the axie in your account before trying to transfer (specially useful when re-running after a failure)
    • Some doc updates, some mistakes here and there
    • Update packages

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.10.1...v1.11

    Source code(tar.gz)
    Source code(zip)
  • v1.10.1(Oct 26, 2021)

    Minor bug fixes that were causing error with transfers!

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.10....v1.10.1

    Source code(tar.gz)
    Source code(zip)
  • v1.10(Oct 24, 2021)

    Main changes:

    • Fixed problems with morphing json responses, it should skip them but not break the execution!
    • Transactions and Transfers have now an automatic 10min timeout
    • Transactions have a retry if it failed, by adding a substitute transaction.

    Full Changelog: https://github.com/FerranMarin/axie-scholar-utilities/compare/v1.9.2...v1.10

    Source code(tar.gz)
    Source code(zip)
Owner
Ferran Marin
Ferran Marin
Google scholar share - Simple python script to pull Google Scholar data from an author's profile

google_scholar_share Simple python script to pull Google Scholar data from an au

Paul Goldsmith-Pinkham 9 Sep 15, 2022
Infinity: a Twitter retweet bot that can be used by anyone

INSTAMATE Requires Firefox Instapy Python3 How To Use? Fork the repository Add your credentials in the bot.py file Save commits Clone your fork cd int

unofficialdxnny 3 Jun 23, 2022
Periodically check the manuscript state in the scholar one system and send email when finding a new state.

ScholarOne-manuscript-checker Periodically check the manuscript state in the scholar one system and send email when finding a new state. Parameters ne

null 2 Aug 18, 2022
A frame to create discord bots (for myself) that uses cogs, JSON, activities, and more.

dpy-frame A frame to create discord bots (for myself) that uses cogs, JSON, activities, and more. NOTE: Documentation is incomplete, so please wait un

Apple Discord 1 Nov 6, 2021
A telegram bot to track whales activities on multiple blockchains.

Telegram Bot : Whale Watcher A straightforward telegram bot written in python to track whales activity on multiple blockchains, using whale-alert API

Laurenz Bougan 1 Dec 10, 2021
Python JIRA Library is the easiest way to automate JIRA. Support for py27 was dropped on 2019-10-14, do not raise bugs related to it.

Jira Python Library This library eases the use of the Jira REST API from Python and it has been used in production for years. As this is an open-sourc

PyContribs 1.7k Jan 6, 2023
The official wrapper for spyse.com API, written in Python, aimed to help developers build their integrations with Spyse.

Python wrapper for Spyse API The official wrapper for spyse.com API, written in Python, aimed to help developers build their integrations with Spyse.

Spyse 15 Nov 22, 2022
TypeRig is a Python library aimed at simplifying the current FontLab API

TypeRig TypeRig is a Python library aimed at simplifying the current FontLab API while offering some additional functionality that is heavily biased t

Vassil Kateliev 41 Nov 2, 2022
Opencontactbook - Bulk-manage large numbers of vCard contacts with built-in geolocation

Open Contact Book Open Contact Book is a buiness-oriented, cross-platform, Pytho

Aurélien PIERRE 2 Aug 8, 2022
A Script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag.

Channel Auto Message Forward A script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag

null 16 Oct 21, 2022
A Script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag.

Channel Auto Message Post A script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag. C

null 16 Oct 21, 2022
Discord Panel is an AIO panel for Discord that aims to have all the needed tools related to user token interactions, as in nuking and also everything you could possibly need for raids

Discord Panel Discord Panel is an AIO panel for Discord that aims to have all the needed tools related to user token interactions, as in nuking and al

null 11 Mar 30, 2022
This project, search all entities related to A2P in twilio

Mirror A2P Twilio This project, search all entities related to A2P in twilio (phone numbers, messaging services, campaign, A2P brand information and P

Iván Cárdenas 2 Nov 3, 2022
This very basic script can be used to automate COVID-19 vaccination slot booking on India's Co-WIN Platform.

COVID-19 Vaccination Slot Booking Script This very basic CLI based script can be used to automate covid vaccination slot booking on Co-WIN Platform. I

null 605 Dec 14, 2022
A repo to automate the booking process for vaccinations

OntarioVaccineFormAutomaker A repo to automate the booking process for vaccinations Requirements Allow ALL sights to be able to know your location (on

Rafid Dewan 7 May 31, 2021
A Python Script to automate searching of available vaccination centers in the city and hence booking

Cowin Vaccine Availability Notifier Cowin Vaccine Availability Notifier takes your City or PIN code as an input and automatically notifies you via ema

Jayesh Padhiar 7 Sep 5, 2021
null 4 Oct 28, 2021
Automate HoYoLAB Genshin Daily Check-In Using Github Actions

Genshin Daily Check-In ?? Automate HoYoLAB Daily Check-In Using Github Actions KOR, ENG Instructions Fork the repository Go to Settings -> Secrets Cli

Leo Kim 41 Jun 24, 2022
Gorrabot is a bot made to automate checks and processes in the development process.

Gorrabot is a Gitlab bot made to automate checks and processes in the Faraday development. Features Check that the CHANGELOG is modified By default, m

Faraday 7 Dec 14, 2022