@polymathnetwork/local-blockchain
v2.2.1
Published
Local blockchain for Polymath development
Downloads
2
Keywords
Readme
local-blockchain
Creates a ganache instance with pre-deployed contracts for multi-version development and testing
Installation: npm install -g local-blockchain
Usage: local-blockchain [options]
Options:
-V, --version output the version number
-s, --seed <path> path to the seeding .json file
-c, --contracts-version <version> polymath protocol version to launch (3.0.0, 3.1.0)
-b, --big use big seed data (overrides -s option)
-r, --registry-addresses output the Polymath Registry address for each version
-h, --help output usage information
Updating the local blockchain
When there are changes to the smart contracts, the local blockchain state should be re-generated. For this, we have the deploy.sh
script.
Running ./deploy.sh
will create three local blockchains, for versions 3.0.0 and 3.1.0. These blockchain states are stored in blockchain-state/3.0.0
and blockchain-state/3.1.0
respectively. The corresponding artifacts are stored in artifacts/<version_number>
.
Local testing
To test locally, simply run npm install -g
from the project root and then you can use the local-blockchain
command from the terminal. After any modifications, npm uninstall -g
from the root and npm install -g
again.
Options
Contracts version (-c, --contracts-version)
By default the 3.1.0 local blockchain will be loaded, but you can specify a version (3.1.0 or 3.0.0) via the -c, --contract-version
option.
Examples:
local-blockchain -c 3.1.0
local-blockchain --contract-version 3.0.0
Polymath registry addresses (-r, --registry-addresses)
Outputs the addresses for the deployed Polymath Registry contracts in each version. Overrides all other options
Examples:
local-blockchain -r
local-blockchain --registry-addresses
Big seed data (-b, --big)
Changes the default seed data to mint tokens to hundreds of wallets in order to test batch transactions. This can be done using the -b, --big
option when launching the script.
Examples:
local-blockchain -b
local-blockchain --big
Seed JSON (-s, --seed)
You can provide a custom JSON file to seed data into the local blockchain via the -s, --seed
option
Examples:
local-blockchain -s ~/myCustomSeedData.json
local-blockchain --seed ~/myCustomSeedData.json
The JSON file consists of a list of accounts. Each account possesses the following:
- walletId: Number between 1 and 499, maps to addresses read from
wallets.json
- polyBalance: Amount of POLY the account has
- daiBalance: Amount of DAI the account has
- tokens: Array of Security Tokens owned by that account (optional)
Each Security Token in the tokens
array possesses the following:
- symbol: Token Symbol
- name: Token Name
- divisible: Whether the token is divisible or not
- minted: Array of shareholders to mint to (optional)
- stoData: Array of STO configurations (optional)
Each shareholder in the minted
array possesses the following:
- shareholderId: Shareholder wallet id
- amount: Amount of tokens to mint to that shareholder
Each STO configuration in the stoData
array possesses the following:
- type:
CappedSTO
orUSDTieredSTO
- startTimeOffset: Amount of seconds from now until the start of the offering
- endTimeOffset: Amount of seconds from now until the end of the offering
- walletId: Id of the wallet to which the funds will be transferred
- fundRaiseTypes: Array of currencies,
ETH
andPOLY
for both STO types,DAI
for the USDTieredSTO only - cap: Amount of tokens to be sold, only for Capped STO
- rate: Amount of tokens per unit of currency, only for Capped STO
- tiers: Array of tier information, only for USDTieredSTO
- nonAccreditedLimitUSD: Investment limit for non accredited investors, only for USDTIeredSTO
- minimumInvestmentUSD: Minimum investment amount for all investors, only for USDTieredSTO
- reserveWalletId: Wallet id for unsold tokens at the end of the offering, only for USDTieredSTO
Each tier in the tiers
array possesses the following:
- amount: Amount of tokens to be sold at that tier
- price: Price of the token at that tier
Example
This is the data that gets loaded by default into the local blockchain
{
"accounts": [
{
"walletId": 1,
"polyBalance": 1000000,
"daiBalance": 1000000,
"tokens": [
{
"symbol": "A0T0",
"name": "Token 1",
"divisible": false,
"minted": [
{
"shareholderId": 3,
"amount": 1000000
},
{
"shareholderId": 4,
"amount": 2000000
}
],
"stoData": [
{
"type": "CappedSTO",
"cap": 1000000,
"rate": 10,
"fundRaiseTypes": ["ETH"],
"startTimeOffset": 300,
"endTimeOffset": 86400,
"walletId": 1
},
{
"type": "USDTieredSTO",
"tiers": [
{
"amount": 1000000,
"price": 10
},
{
"amount": 1500000,
"price": 15
}
],
"nonAccreditedLimitUSD": 10000,
"minimumInvestmentUSD": 1000,
"walletId": 1,
"reserveWalletId": 1,
"fundRaiseTypes": ["ETH", "POLY"],
"startTimeOffset": 300,
"endTimeOffset": 86400
}
]
},
{
"symbol": "A0T1",
"name": "Token 2",
"divisible": true,
"minted": [
{
"shareholderId": 5,
"amount": 1000000
},
{
"shareholderId": 6,
"amount": 2000000
}
],
"stoData": [
{
"type": "USDTieredSTO",
"tiers": [
{
"amount": 1000000,
"price": 10
},
{
"amount": 1500000,
"price": 15
}
],
"fundRaiseTypes": ["ETH", "POLY", "DAI"],
"nonAccreditedLimitUSD": 10000,
"minimumInvestmentUSD": 1000,
"walletId": 1,
"reserveWalletId": 1,
"startTimeOffset": 300,
"endTimeOffset": 86400
}
]
}
]
},
{
"walletId": 2,
"polyBalance": 1000000,
"daiBalance": 1000000,
"tokens": [
{
"symbol": "A1T0",
"name": "Token 3",
"divisible": false,
"minted": [
{
"shareholderId": 7,
"amount": 1000000
}
]
},
{
"symbol": "A1T1",
"name": "Token 4",
"divisible": true
}
]
},
{
"walletId": 3,
"polyBalance": 1000000,
"daiBalance": 1000000
},
{
"walletId": 4,
"polyBalance": 1000000,
"daiBalance": 1000000
},
{
"walletId": 5,
"polyBalance": 1000000,
"daiBalance": 1000000
},
{
"walletId": 6,
"polyBalance": 1000000,
"daiBalance": 1000000
},
{
"walletId": 7,
"polyBalance": 1000000,
"daiBalance": 1000000
},
{ "walletId": 8, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 9, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 10, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 11, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 12, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 13, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 14, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 15, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 16, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 17, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 18, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 19, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 20, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 21, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 22, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 23, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 24, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 25, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 26, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 27, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 28, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 29, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 30, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 31, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 32, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 33, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 34, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 35, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 36, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 37, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 38, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 39, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 40, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 41, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 42, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 43, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 44, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 45, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 46, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 47, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 48, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 49, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 50, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 51, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 52, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 53, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 54, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 55, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 56, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 57, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 58, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 59, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 60, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 61, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 62, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 63, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 64, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 65, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 66, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 67, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 68, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 69, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 70, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 71, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 72, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 73, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 74, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 75, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 76, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 77, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 78, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 79, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 80, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 81, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 82, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 83, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 84, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 85, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 86, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 87, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 88, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 89, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 90, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 91, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 92, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 93, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 94, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 95, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 96, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 97, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 98, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 99, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 100, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 101, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 102, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 103, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 104, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 105, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 106, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 107, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 108, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 109, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 110, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 111, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 112, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 113, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 114, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 115, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 116, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 117, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 118, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 119, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 120, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 121, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 122, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 123, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 124, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 125, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 126, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 127, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 128, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 129, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 130, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 131, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 132, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 133, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 134, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 135, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 136, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 137, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 138, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 139, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 140, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 141, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 142, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 143, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 144, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 145, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 146, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 147, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 148, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 149, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 150, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 151, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 152, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 153, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 154, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 155, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 156, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 157, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 158, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 159, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 160, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 161, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 162, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 163, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 164, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 165, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 166, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 167, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 168, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 169, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 170, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 171, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 172, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 173, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 174, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 175, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 176, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 177, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 178, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 179, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 180, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 181, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 182, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 183, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 184, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 185, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 186, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 187, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 188, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 189, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 190, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 191, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 192, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 193, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 194, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 195, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 196, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 197, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 198, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 199, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 200, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 201, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 202, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 203, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 204, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 205, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 206, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 207, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 208, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 209, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 210, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 211, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 212, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 213, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 214, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 215, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 216, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 217, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 218, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 219, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 220, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 221, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 222, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 223, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 224, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 225, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 226, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 227, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 228, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 229, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 230, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 231, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 232, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 233, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 234, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 235, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 236, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 237, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 238, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 239, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 240, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 241, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 242, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 243, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 244, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 245, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 246, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 247, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 248, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 249, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 250, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 251, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 252, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 253, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 254, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 255, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 256, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 257, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 258, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 259, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 260, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 261, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 262, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 263, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 264, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 265, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 266, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 267, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 268, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 269, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 270, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 271, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 272, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 273, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 274, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 275, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 276, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 277, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 278, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 279, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 280, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 281, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 282, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 283, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 284, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 285, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 286, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 287, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 288, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 289, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 290, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 291, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 292, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 293, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 294, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 295, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 296, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 297, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 298, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 299, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 300, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 301, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 302, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 303, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 304, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 305, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 306, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 307, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 308, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 309, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 310, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 311, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 312, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 313, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 314, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 315, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 316, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 317, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 318, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 319, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 320, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 321, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 322, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 323, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 324, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 325, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 326, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 327, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 328, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 329, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 330, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 331, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 332, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 333, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 334, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 335, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 336, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 337, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 338, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 339, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 340, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 341, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 342, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 343, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 344, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 345, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 346, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 347, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 348, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 349, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 350, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 351, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 352, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 353, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 354, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 355, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 356, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 357, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 358, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 359, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 360, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 361, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 362, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 363, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 364, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 365, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 366, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 367, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 368, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 369, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 370, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 371, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 372, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 373, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 374, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 375, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 376, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 377, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 378, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 379, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 380, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 381, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 382, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 383, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 384, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 385, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 386, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 387, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 388, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 389, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 390, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 391, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 392, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 393, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 394, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 395, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 396, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 397, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 398, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 399, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 400, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 401, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 402, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 403, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 404, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 405, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 406, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 407, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 408, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 409, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 410, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 411, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 412, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 413, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 414, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 415, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 416, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 417, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 418, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 419, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 420, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 421, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 422, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 423, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 424, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 425, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 426, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 427, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 428, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 429, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 430, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 431, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 432, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 433, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 434, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 435, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 436, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 437, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 438, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 439, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 440, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 441, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 442, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 443, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 444, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 445, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 446, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 447, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 448, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 449, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 450, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 451, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 452, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 453, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 454, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 455, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 456, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 457, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 458, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 459, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 460, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 461, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 462, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 463, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 464, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 465, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 466, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 467, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 468, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 469, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 470, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 471, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 472, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 473, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 474, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 475, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 476, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 477, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 478, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 479, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 480, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 481, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 482, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 483, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 484, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 485, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 486, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 487, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 488, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 489, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 490, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 491, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 492, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 493, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 494, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 495, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 496, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 497, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 498, "polyBalance": 0, "daiBalance": 0 },
{ "walletId": 499, "polyBalance": 0, "daiBalance": 0 }
]
}