# Get ordered keys

### Get ordered keys - `get-ordered-keys.js`

Prints ordered vRAM table keys in ascending order account/table/scope. This can be used to iterate over the entire table client side. The script is located in the `utils/ipfs-service/get-ordered-keys.js` of an unboxed zeus box.

Mandatory env variables:

```bash
export CONTRACT_NAME=
export SCOPE=
export TABLE_NAME=
node zeus_boxes/ipfs-dapp-service/utils/ipfs-service/get-ordered-keys
```

Optional env variables (if using non-local nodeos / IPFS instance):

```bash
# defaults to localhost:8888, can be used to specify external nodeos instance
export NODEOS_ENDPOINT=
# defaults to localhost, can be used to specify external IPFS instance
export IPFS_HOST=
# defaults to 5001
export IPFS_PORT=
# defaults to http
export IPFS_PROTOCOL=
# defaults to 1024
export SHARD_LIMIT=
# defaults to 10000
export IPFS_TIMEOUT=
```

Steps to produce console logged output below:

```bash
npm i -g @liquidapps/zeus-cmd
mkdir ipfs-dapp-service; cd ipfs-dapp-service
zeus box create
zeus unbox ipfs-dapp-service
zeus test -c
export CONTRACT_NAME=test1
export SCOPE=test1
export TABLE_NAME=test
node zeus_boxes/ipfs-dapp-service/utils/ipfs-service/get-ordered-keys
```

Expected output:

```bash
[ '0', '1', '2', '20', '555', '12345', '52343' ]
```

Querying table rows with Zeus or the [`dapp-client`](https://docs.liquidapps.io/en/v2.0/developers/dapp-client#get-vram-row-get-vram-row-from-dsp-s-endpoint)’s `get_vram_row` call:

```bash
# zeus get-table-row <contract> <table> <scope> <key> <keytype> <keysize>
zeus get-table-row test1 test test1 52343 number 64
# output:
{"row":{"id":"0","sometestnumber":"0"}}
```
