The @generationsoftware/pt-v5-cli
node module package is a Node command line interface (CLI) to interact with the PoolTogether V5 protocol. The CLI uses the pt-v5-utils-js
package to fetch and run calculations/computations for essential PoolTogether V5 tasks.
Primary CLI Commands (help)
npx @generationsoftware/pt-v5-cli help utils vaultAccounts
npx @generationsoftware/pt-v5-cli help utils concatWinners
Set up your environment variables using dotenv
:
Copy .envrc.example
and input the env vars needed to run this project:
cp .envrc.example .envrc
Once your env variables are setup, load them with:
direnv allow
JSON_RPC_URI: Your Infura/Alchemy/etc JSON RPC URI
$ npm install -g @generationsoftware/pt-v5-cli
$ ptv5 COMMAND
running command...
$ ptv5 (--version)
@generationsoftware/pt-v5-cli/1.1.1 darwin-arm64 node-v18.17.0
$ ptv5 --help [COMMAND]
USAGE
$ ptv5 COMMAND
...
ptv5 utils vaultAccounts
Computes the previous draw's depositors with a non-zero balance for a PrizePool to a target output directory.
JSON is in the format required by the @GenerationSoftware/foundry-winner-calc repo to quickly winners.
Pass the chainId
, prizePool
, outDir
, contractJsonUrl
and subgraphUrl
to compute and locally save the results.
USAGE
$ ptv5 utils vaultAccounts --chainId 1 --outDir ./temp --prizePool '0xdd4d117723C257CEe402285D3aCF218E9A8236E1' --contractJsonUrl 'https://raw.githubusercontent.com/GenerationSoftware/pt-v5-testnet/.../contracts.json' --subgraphUrl 'https://api.studio.thegraph.com/query/...'
DESCRIPTION
Computes the previous draw's depositors with a non-zero balance for a PrizePool to a target output directory.
EXAMPLES
$ ptv5 utils vaultAccounts --chainId 1 --prizePool 0x0000000000000000000000000000000000000000 --outDir ./temp --contractJsonUrl 'https://raw.githubusercontent.com/GenerationSoftware/pt-v5-testnet/.../contracts.json' --subgraphUrl 'https://api.studio.thegraph.com/query/...'
Running utils:vaultAccounts on chainId: 1
{
"chainId": 10,
"prizePoolAddress": "0xe32e5E1c5f0c80bD26Def2d0EA5008C107000d6A",
"vaultAddress": "0xf0B19f02c63d51B69563A2b675e0160e1C34397C",
"userAddresses": [
"0x07967251f6db5f9d095119379bd8fc4fce60b3e1",
"0x084039db4e3c6775eabfc59cbd3725d3d9a6d752"
// ...
]
}
{
"status": "LOADING",
"createdAt": "11"
}
{
"status": "SUCCESS",
"createdAt": 1693423691768,
"updatedAt": 1693423805132,
"runtime": 114,
"meta": {
"numVaults": 7,
"numTiers": 3,
"numPrizeIndices": 21,
"numAccounts": 3830
}
}
{
"status": "FAILURE",
"createdAt": "11",
"updatedAt": "33",
"runtime": "22",
"error": "ErrorCode"
}
ptv5 utils concatWinners
Receives all of the winners by vault JSON files created by the foundry-winner-calc tool and ties them into one winners.json file. Therefore is dependent on foundry-winner-calc
running prior to concatWinners being run.
Pass the chainId
, prizePool
, outDir
, contractJsonUrl
and subgraphUrl
to compute and locally save the results.
USAGE
$ ptv5 utils concatWinners --chainId 1 --outDir ./temp --prizePool '0xdd4d117723C257CEe402285D3aCF218E9A8236E1' --contractJsonUrl 'https://raw.githubusercontent.com/GenerationSoftware/pt-v5-testnet/.../contracts.json' --subgraphUrl 'https://api.studio.thegraph.com/query/...'
DESCRIPTION
Ingests foundry-winner-calc output files and ties them into one winners.json file.
EXAMPLES
$ ptv5 utils concatWinners --chainId 1 --prizePool 0x0000000000000000000000000000000000000000 --outDir ./temp --contractJsonUrl 'https://raw.githubusercontent.com/GenerationSoftware/pt-v5-testnet/.../contracts.json' --subgraphUrl 'https://api.studio.thegraph.com/query/...'
Running utils:concatWinners on chainId: 1
[
{
"vault": "0x0bfe04201c496a9994b920deb6087a60bdadfbbb",
"winner": "0x07967251f6db5f9d095119379bd8fc4fce60b3e1",
"tier": 3,
"prizeIndex": 11,
"claimed": true,
"amount": "1633936709514027714"
},
{
"vault": "0x0bfe04201c496a9994b920deb6087a60bdadfbbb",
"winner": "0x084039db4e3c6775eabfc59cbd3725d3d9a6d752",
"tier": 2,
"prizeIndex": 1,
"claimed": false,
"amount": "1633936709514027714"
}
]
{
"status": "LOADING",
"createdAt": "11"
}
{
"status": "SUCCESS",
"createdAt": 1693423691768,
"updatedAt": 1693423805132,
"runtime": 114,
"meta": {
"numVaults": 7,
"numTiers": 3,
"numPrizeIndices": 21,
"numAccounts": 3830
}
}
{
"status": "FAILURE",
"createdAt": "11",
"updatedAt": "33",
"runtime": "22",
"error": "ErrorCode"
}
ptv5 help [COMMAND]
Display help for ptv5.
USAGE
$ ptv5 help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for ptv5.
You can test the CLI while developing by using the following, with whichever chain & prizePool flags you want to test with:
./bin/run.js utils vaultAccounts --chainId 80001 -o ./temp -p '0xA32C8f94191c9295634f0034eb2b0e2749e77974'