From 3d557b74ada5b0409e3ca3fab43b6c4a5346fb32 Mon Sep 17 00:00:00 2001 From: Marvin ROGER Date: Mon, 7 May 2018 00:57:20 +0200 Subject: [PATCH] fix: add more tests and fix state block link field if this is an address --- __tests__/block.js | 922 ++++++++---------- __tests__/browser.js | 13 +- __tests__/{common/data.js => data/invalid.js} | 0 __tests__/data/valid_blocks.json | 1 + __tests__/data/valid_keys.json | 1 + __tests__/hash.js | 78 +- __tests__/keys.js | 69 +- __tests__/signature.js | 75 +- __tests__/work.js | 44 +- package.json | 26 +- src/block.js | 37 +- 11 files changed, 605 insertions(+), 661 deletions(-) rename __tests__/{common/data.js => data/invalid.js} (100%) create mode 100644 __tests__/data/valid_blocks.json create mode 100644 __tests__/data/valid_keys.json diff --git a/__tests__/block.js b/__tests__/block.js index c1c3bb2..2897487 100644 --- a/__tests__/block.js +++ b/__tests__/block.js @@ -1,490 +1,432 @@ -/* eslint-env jest */ - -const nano = require('../dist/nanocurrency.cjs') -const { - INVALID_HASHES, - INVALID_SECRET_KEYS, - INVALID_AMOUNTS, - INVALID_ADDRESSES, - INVALID_HASHES_AND_ADDRESSES -} = require('./common/data') - -const SECRET_KEY = - '0000000000000000000000000000000000000000000000000000000000000001' - -const SECRET_KEY_STATE_BLOCK = - 'B61AEB236B0C8A2DFDD71C06F1F3544C524801E4B45B7A34DFDEC6F74F177927' - -const VALID_OPEN_BLOCK = { - params: { - work: '4ec76c9bda2325ed', - source: '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', - representative: - 'xrb_1hza3f7wiiqa7ig3jczyxj5yo86yegcmqk3criaz838j91sxcckpfhbhhra1' - }, - result: { - hash: 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', - block: { - type: 'open', - source: - '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', - representative: - 'xrb_1hza3f7wiiqa7ig3jczyxj5yo86yegcmqk3criaz838j91sxcckpfhbhhra1', - account: - 'xrb_3kdbxitaj7f6mrir6miiwtw4muhcc58e6tn5st6rfaxsdnb7gr4roudwn951', - work: '4ec76c9bda2325ed', - signature: - '5974324F8CC42DA56F62FC212A17886BDCB18DE363D04DA84EEDC99CB4A33919D14A2CF9DE9D534FAA6D0B91D01F0622205D898293525E692586C84F2DCF9208' - } - } -} - -const VALID_RECEIVE_BLOCK = { - params: { - work: '6acb5dd43a38d76a', - previous: - 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', - source: '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858' - }, - result: { - hash: '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', - block: { - type: 'receive', - previous: - 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', - source: - '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', - work: '6acb5dd43a38d76a', - signature: - 'A13FD22527771667D5DFF33D69787D734836A3561D8A490C1F4917A05D77EA09860461D5FBFC99246A4EAB5627F119AD477598E22EE021C4711FACF4F3C80D0E' - } - } -} - -const VALID_SEND_BLOCK = { - params: { - work: '478563b2d9facfd4', - previous: - '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', - destination: - 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', - balance: '10000000000000000000000000000000' - }, - result: { - hash: 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', - block: { - type: 'send', - previous: - '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', - destination: - 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', - balance: '0000007e37be2022c0914b2680000000', - work: '478563b2d9facfd4', - signature: - 'F19CA177EFA8692C8CBF7478CE3213F56E4A85DF760DA7A9E69141849831F8FD79BA9ED89CEC807B690FB4AA42D5008F9DBA7115E63C935401F1F0EFA547BC00' - } - } -} - -const VALID_CHANGE_BLOCK = { - params: { - work: '55e5b7a83edc3f4f', - previous: - 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', - representative: - 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc' - }, - result: { - hash: '654FA425CEBFC9E7726089E4EDE7A105462D93DBC915FFB70B50909920A7D286', - block: { - type: 'change', - previous: - 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', - representative: - 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', - work: '55e5b7a83edc3f4f', - signature: - '98B4D56881D9A88B170A6B2976AE21900C26A27F0E2C338D93FDED56183B73D19AA5BEB48E43FCBB8FF8293FDD368CEF50600FECEFD490A0855ED702ED209E04' - } - } -} - -const VALID_STATE_BLOCKS = [ - { - params: { - work: '0000000000000000', - previous: - 'FC5A7FB777110A858052468D448B2DF22B648943C097C0608D1E2341007438B0', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '5000000000000000000000000000001', - link: 'B2EC73C1F503F47E051AD72ECB512C63BA8E1A0ACC2CEE4EA9A22FE1CBDB693F' // block hash - }, - result: { - hash: '597395E83BD04DF8EF30AF04234EAAFE0606A883CF4AEAD2DB8196AAF5C4444F', - block: { - type: 'state', - account: - 'xrb_3igf8hd4sjshoibbbkeitmgkp1o6ug4xads43j6e4gqkj5xk5o83j8ja9php', - previous: - 'FC5A7FB777110A858052468D448B2DF22B648943C097C0608D1E2341007438B0', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '5000000000000000000000000000001', - link: - 'B2EC73C1F503F47E051AD72ECB512C63BA8E1A0ACC2CEE4EA9A22FE1CBDB693F', - work: '0000000000000000', - signature: - '90CBD62F5466E35DB3BFE5EFDBC6283BD30C0591A3787C9458D11F2AF6188E45E6E71B5F4A8E3598B1C80080D6024867878E355161AD1935CD757477991D3B0B' - } - } - }, - { - params: { - work: '0000000000000000', - previous: - '597395E83BD04DF8EF30AF04234EAAFE0606A883CF4AEAD2DB8196AAF5C4444F', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '3000000000000000000000000000001', - link: 'xrb_1q3hqecaw15cjt7thbtxu3pbzr1eihtzzpzxguoc37bj1wc5ffoh7w74gi6p' // block hash - }, - result: { - hash: '128106287002E595F479ACD615C818117FCB3860EC112670557A2467386249D4', - block: { - type: 'state', - account: - 'xrb_3igf8hd4sjshoibbbkeitmgkp1o6ug4xads43j6e4gqkj5xk5o83j8ja9php', - previous: - '597395E83BD04DF8EF30AF04234EAAFE0606A883CF4AEAD2DB8196AAF5C4444F', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '3000000000000000000000000000001', - link: - 'xrb_1q3hqecaw15cjt7thbtxu3pbzr1eihtzzpzxguoc37bj1wc5ffoh7w74gi6p', - work: '0000000000000000', - signature: - 'D7975EE2F6FAE1FC7DA336FB9DD5F7E30FC1A6825021194E614F0588073D1A4901E34E3CAE8739F1DE2FD85A73D2A0B26F8BE6539E0548C9A45E1C1887BFFC05' - } - } - } -] - -describe('open', () => { - test('creates correct open block', async () => { - const result = nano.createOpenBlock(SECRET_KEY, { - work: VALID_OPEN_BLOCK.params.work, - source: VALID_OPEN_BLOCK.params.source, - representative: VALID_OPEN_BLOCK.params.representative - }) - expect(result).toEqual(VALID_OPEN_BLOCK.result) - }) - - // TODO(breaking): add work test - - test('throws with invalid secret key', () => { - expect.assertions(INVALID_SECRET_KEYS.length) - for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect(() => { - nano.createOpenBlock(invalidSecretKey, { - work: VALID_OPEN_BLOCK.params.work, - source: VALID_OPEN_BLOCK.params.source, - representative: VALID_OPEN_BLOCK.params.representative - }) - }).toThrowError('Secret key is not valid') - } - }) - - test('throws with invalid source', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidSource of INVALID_HASHES) { - expect(() => { - nano.createOpenBlock(SECRET_KEY, { - work: VALID_OPEN_BLOCK.params.work, - source: invalidSource, - representative: VALID_OPEN_BLOCK.params.representative - }) - }).toThrowError('Source is not valid') - } - }) - - test('throws with invalid representative', () => { - expect.assertions(INVALID_ADDRESSES.length) - for (let invalidAddress of INVALID_ADDRESSES) { - expect(() => { - nano.createOpenBlock(SECRET_KEY, { - work: VALID_OPEN_BLOCK.params.work, - source: VALID_OPEN_BLOCK.params.source, - representative: invalidAddress - }) - }).toThrowError('Representative is not valid') - } - }) -}) - -describe('receive', () => { - test('creates correct receive block', async () => { - const result = nano.createReceiveBlock(SECRET_KEY, { - work: VALID_RECEIVE_BLOCK.params.work, - previous: VALID_RECEIVE_BLOCK.params.previous, - source: VALID_RECEIVE_BLOCK.params.source - }) - expect(result).toEqual(VALID_RECEIVE_BLOCK.result) - }) - - // TODO(breaking): add work test - - test('throws with invalid secret key', () => { - expect.assertions(INVALID_SECRET_KEYS.length) - for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect(() => { - nano.createReceiveBlock(invalidSecretKey, { - work: VALID_RECEIVE_BLOCK.params.work, - previous: VALID_RECEIVE_BLOCK.params.previous, - source: VALID_RECEIVE_BLOCK.params.source - }) - }).toThrowError('Secret key is not valid') - } - }) - - test('throws with invalid previous', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidPrevious of INVALID_HASHES) { - expect(() => { - nano.createReceiveBlock(SECRET_KEY, { - work: VALID_RECEIVE_BLOCK.params.work, - previous: invalidPrevious, - source: VALID_RECEIVE_BLOCK.params.source - }) - }).toThrowError('Previous is not valid') - } - }) - - test('throws with invalid source', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidSource of INVALID_HASHES) { - expect(() => { - nano.createReceiveBlock(SECRET_KEY, { - work: VALID_RECEIVE_BLOCK.params.work, - previous: VALID_RECEIVE_BLOCK.params.previous, - source: invalidSource - }) - }).toThrowError('Source is not valid') - } - }) -}) - -describe('send', () => { - test('creates correct send block', async () => { - const result = nano.createSendBlock(SECRET_KEY, { - work: VALID_SEND_BLOCK.params.work, - previous: VALID_SEND_BLOCK.params.previous, - destination: VALID_SEND_BLOCK.params.destination, - balance: VALID_SEND_BLOCK.params.balance - }) - expect(result).toEqual(VALID_SEND_BLOCK.result) - }) - - // TODO(breaking): add work test - - test('throws with invalid secret key', () => { - expect.assertions(INVALID_SECRET_KEYS.length) - for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect(() => { - nano.createSendBlock(invalidSecretKey, { - work: VALID_SEND_BLOCK.params.work, - previous: VALID_SEND_BLOCK.params.previous, - destination: VALID_SEND_BLOCK.params.destination, - balance: VALID_SEND_BLOCK.params.balance - }) - }).toThrowError('Secret key is not valid') - } - }) - - test('throws with invalid previous', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidPrevious of INVALID_HASHES) { - expect(() => { - nano.createSendBlock(SECRET_KEY, { - work: VALID_SEND_BLOCK.params.work, - previous: invalidPrevious, - destination: VALID_SEND_BLOCK.params.destination, - balance: VALID_SEND_BLOCK.params.balance - }) - }).toThrowError('Previous is not valid') - } - }) - - test('throws with invalid destination', () => { - expect.assertions(INVALID_ADDRESSES.length) - for (let invalidDestination of INVALID_ADDRESSES) { - expect(() => { - nano.createSendBlock(SECRET_KEY, { - work: VALID_SEND_BLOCK.params.work, - previous: VALID_SEND_BLOCK.params.previous, - destination: invalidDestination, - balance: VALID_SEND_BLOCK.params.balance - }) - }).toThrowError('Destination is not valid') - } - }) - - test('throws with invalid balance', () => { - expect.assertions(INVALID_AMOUNTS.length) - for (let invalidBalance of INVALID_AMOUNTS) { - expect(() => { - nano.createSendBlock(SECRET_KEY, { - work: VALID_SEND_BLOCK.params.work, - previous: VALID_SEND_BLOCK.params.previous, - destination: VALID_SEND_BLOCK.params.destination, - balance: invalidBalance - }) - }).toThrowError('Balance is not valid') - } - }) -}) - -describe('change', () => { - test('creates correct change block', async () => { - const result = nano.createChangeBlock(SECRET_KEY, { - work: VALID_CHANGE_BLOCK.params.work, - previous: VALID_CHANGE_BLOCK.params.previous, - representative: VALID_CHANGE_BLOCK.params.representative - }) - expect(result).toEqual(VALID_CHANGE_BLOCK.result) - }) - - // TODO(breaking): add work test - - test('throws with invalid secret key', () => { - expect.assertions(INVALID_SECRET_KEYS.length) - for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect(() => { - nano.createChangeBlock(invalidSecretKey, { - work: VALID_CHANGE_BLOCK.params.work, - previous: VALID_CHANGE_BLOCK.params.previous, - representative: VALID_CHANGE_BLOCK.params.representative - }) - }).toThrowError('Secret key is not valid') - } - }) - - test('throws with invalid previous', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidPrevious of INVALID_HASHES) { - expect(() => { - nano.createChangeBlock(SECRET_KEY, { - work: VALID_CHANGE_BLOCK.params.work, - previous: invalidPrevious, - representative: VALID_CHANGE_BLOCK.params.representative - }) - }).toThrowError('Previous is not valid') - } - }) - - test('throws with invalid representative', () => { - expect.assertions(INVALID_ADDRESSES.length) - for (let invalidRepresentative of INVALID_ADDRESSES) { - expect(() => { - nano.createChangeBlock(SECRET_KEY, { - work: VALID_CHANGE_BLOCK.params.work, - previous: VALID_CHANGE_BLOCK.params.previous, - representative: invalidRepresentative - }) - }).toThrowError('Representative is not valid') - } - }) -}) - -describe('state', () => { - test('creates correct state block', async () => { - expect.assertions(VALID_STATE_BLOCKS.length) - for (let validStateBlock of VALID_STATE_BLOCKS) { - const result = nano.createStateBlock(SECRET_KEY_STATE_BLOCK, { - work: validStateBlock.params.work, - previous: validStateBlock.params.previous, - representative: validStateBlock.params.representative, - balance: validStateBlock.params.balance, - link: validStateBlock.params.link - }) - expect(result).toEqual(validStateBlock.result) - } - }) - - // TODO(breaking): add work test - - test('throws with invalid secret key', () => { - expect.assertions(INVALID_SECRET_KEYS.length) - for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect(() => { - nano.createStateBlock(invalidSecretKey, { - work: VALID_STATE_BLOCKS[0].params.work, - previous: VALID_STATE_BLOCKS[0].params.previous, - representative: VALID_STATE_BLOCKS[0].params.representative, - balance: VALID_STATE_BLOCKS[0].params.balance, - link: VALID_STATE_BLOCKS[0].params.link - }) - }).toThrowError('Secret key is not valid') - } - }) - - test('throws with invalid previous', () => { - expect.assertions(INVALID_HASHES.length) - for (let invalidPrevious of INVALID_HASHES) { - expect(() => { - nano.createStateBlock(SECRET_KEY_STATE_BLOCK, { - work: VALID_STATE_BLOCKS[0].params.work, - previous: invalidPrevious, - representative: VALID_STATE_BLOCKS[0].params.representative, - balance: VALID_STATE_BLOCKS[0].params.balance, - link: VALID_STATE_BLOCKS[0].params.link - }) - }).toThrowError('Previous is not valid') - } - }) - - test('throws with invalid previous', () => { - expect.assertions(INVALID_ADDRESSES.length) - for (let invalidRepresentative of INVALID_ADDRESSES) { - expect(() => { - nano.createStateBlock(SECRET_KEY_STATE_BLOCK, { - work: VALID_STATE_BLOCKS[0].params.work, - previous: VALID_STATE_BLOCKS[0].params.previous, - representative: invalidRepresentative, - balance: VALID_STATE_BLOCKS[0].params.balance, - link: VALID_STATE_BLOCKS[0].params.link - }) - }).toThrowError('Representative is not valid') - } - }) - - test('throws with invalid balance', () => { - expect.assertions(INVALID_AMOUNTS.length) - for (let invalidBalance of INVALID_AMOUNTS) { - expect(() => { - nano.createStateBlock(SECRET_KEY_STATE_BLOCK, { - work: VALID_STATE_BLOCKS[0].params.work, - previous: VALID_STATE_BLOCKS[0].params.previous, - representative: VALID_STATE_BLOCKS[0].params.representative, - balance: invalidBalance, - link: VALID_STATE_BLOCKS[0].params.link - }) - }).toThrowError('Balance is not valid') - } - }) - - test('throws with invalid link', () => { - expect.assertions(INVALID_HASHES_AND_ADDRESSES.length) - for (let invalidLink of INVALID_HASHES_AND_ADDRESSES) { - expect(() => { - nano.createStateBlock(SECRET_KEY_STATE_BLOCK, { - work: VALID_STATE_BLOCKS[0].params.work, - previous: VALID_STATE_BLOCKS[0].params.previous, - representative: VALID_STATE_BLOCKS[0].params.representative, - balance: VALID_STATE_BLOCKS[0].params.balance, - link: invalidLink - }) - }).toThrowError('Link is not valid') - } - }) -}) +/* eslint-env jest */ + +const nano = require('../dist/nanocurrency.cjs') +const { + INVALID_HASHES, + INVALID_SECRET_KEYS, + INVALID_AMOUNTS, + INVALID_ADDRESSES, + INVALID_HASHES_AND_ADDRESSES +} = require('./data/invalid') + +const SECRET_KEY = + '0000000000000000000000000000000000000000000000000000000000000001' + +const VALID_OPEN_BLOCK = { + params: { + work: '4ec76c9bda2325ed', + source: '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', + representative: + 'xrb_1hza3f7wiiqa7ig3jczyxj5yo86yegcmqk3criaz838j91sxcckpfhbhhra1' + }, + result: { + hash: 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', + block: { + type: 'open', + source: + '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', + representative: + 'xrb_1hza3f7wiiqa7ig3jczyxj5yo86yegcmqk3criaz838j91sxcckpfhbhhra1', + account: + 'xrb_3kdbxitaj7f6mrir6miiwtw4muhcc58e6tn5st6rfaxsdnb7gr4roudwn951', + work: '4ec76c9bda2325ed', + signature: + '5974324F8CC42DA56F62FC212A17886BDCB18DE363D04DA84EEDC99CB4A33919D14A2CF9DE9D534FAA6D0B91D01F0622205D898293525E692586C84F2DCF9208' + } + } +} + +const VALID_RECEIVE_BLOCK = { + params: { + work: '6acb5dd43a38d76a', + previous: + 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', + source: '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858' + }, + result: { + hash: '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', + block: { + type: 'receive', + previous: + 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4', + source: + '19D3D919475DEED4696B5D13018151D1AF88B2BD3BCFF048B45031C1F36D1858', + work: '6acb5dd43a38d76a', + signature: + 'A13FD22527771667D5DFF33D69787D734836A3561D8A490C1F4917A05D77EA09860461D5FBFC99246A4EAB5627F119AD477598E22EE021C4711FACF4F3C80D0E' + } + } +} + +const VALID_SEND_BLOCK = { + params: { + work: '478563b2d9facfd4', + previous: + '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', + destination: + 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', + balance: '10000000000000000000000000000000' + }, + result: { + hash: 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', + block: { + type: 'send', + previous: + '314BA8D9057678C1F53371C2DB3026C1FAC01EC8E7802FD9A2E8130FC523429E', + destination: + 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', + balance: '0000007e37be2022c0914b2680000000', + work: '478563b2d9facfd4', + signature: + 'F19CA177EFA8692C8CBF7478CE3213F56E4A85DF760DA7A9E69141849831F8FD79BA9ED89CEC807B690FB4AA42D5008F9DBA7115E63C935401F1F0EFA547BC00' + } + } +} + +const VALID_CHANGE_BLOCK = { + params: { + work: '55e5b7a83edc3f4f', + previous: + 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', + representative: + 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc' + }, + result: { + hash: '654FA425CEBFC9E7726089E4EDE7A105462D93DBC915FFB70B50909920A7D286', + block: { + type: 'change', + previous: + 'F958305C0FF0551421D4ABEDCCF302079D020A0A3833E33F185E2B0415D4567A', + representative: + 'xrb_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc', + work: '55e5b7a83edc3f4f', + signature: + '98B4D56881D9A88B170A6B2976AE21900C26A27F0E2C338D93FDED56183B73D19AA5BEB48E43FCBB8FF8293FDD368CEF50600FECEFD490A0855ED702ED209E04' + } + } +} + +const VALID_STATE_BLOCKS = require('./data/valid_blocks') +const RANDOM_VALID_STATE_BLOCK = VALID_STATE_BLOCKS[0] + +describe('open', () => { + test('creates correct open block', async () => { + const result = nano.createOpenBlock(SECRET_KEY, { + work: VALID_OPEN_BLOCK.params.work, + source: VALID_OPEN_BLOCK.params.source, + representative: VALID_OPEN_BLOCK.params.representative + }) + expect(result).toEqual(VALID_OPEN_BLOCK.result) + }) + + // TODO(breaking): add work test + + test('throws with invalid secret key', () => { + expect.assertions(INVALID_SECRET_KEYS.length) + for (let invalidSecretKey of INVALID_SECRET_KEYS) { + expect(() => { + nano.createOpenBlock(invalidSecretKey, { + work: VALID_OPEN_BLOCK.params.work, + source: VALID_OPEN_BLOCK.params.source, + representative: VALID_OPEN_BLOCK.params.representative + }) + }).toThrowError('Secret key is not valid') + } + }) + + test('throws with invalid source', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidSource of INVALID_HASHES) { + expect(() => { + nano.createOpenBlock(SECRET_KEY, { + work: VALID_OPEN_BLOCK.params.work, + source: invalidSource, + representative: VALID_OPEN_BLOCK.params.representative + }) + }).toThrowError('Source is not valid') + } + }) + + test('throws with invalid representative', () => { + expect.assertions(INVALID_ADDRESSES.length) + for (let invalidAddress of INVALID_ADDRESSES) { + expect(() => { + nano.createOpenBlock(SECRET_KEY, { + work: VALID_OPEN_BLOCK.params.work, + source: VALID_OPEN_BLOCK.params.source, + representative: invalidAddress + }) + }).toThrowError('Representative is not valid') + } + }) +}) + +describe('receive', () => { + test('creates correct receive block', async () => { + const result = nano.createReceiveBlock(SECRET_KEY, { + work: VALID_RECEIVE_BLOCK.params.work, + previous: VALID_RECEIVE_BLOCK.params.previous, + source: VALID_RECEIVE_BLOCK.params.source + }) + expect(result).toEqual(VALID_RECEIVE_BLOCK.result) + }) + + // TODO(breaking): add work test + + test('throws with invalid secret key', () => { + expect.assertions(INVALID_SECRET_KEYS.length) + for (let invalidSecretKey of INVALID_SECRET_KEYS) { + expect(() => { + nano.createReceiveBlock(invalidSecretKey, { + work: VALID_RECEIVE_BLOCK.params.work, + previous: VALID_RECEIVE_BLOCK.params.previous, + source: VALID_RECEIVE_BLOCK.params.source + }) + }).toThrowError('Secret key is not valid') + } + }) + + test('throws with invalid previous', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidPrevious of INVALID_HASHES) { + expect(() => { + nano.createReceiveBlock(SECRET_KEY, { + work: VALID_RECEIVE_BLOCK.params.work, + previous: invalidPrevious, + source: VALID_RECEIVE_BLOCK.params.source + }) + }).toThrowError('Previous is not valid') + } + }) + + test('throws with invalid source', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidSource of INVALID_HASHES) { + expect(() => { + nano.createReceiveBlock(SECRET_KEY, { + work: VALID_RECEIVE_BLOCK.params.work, + previous: VALID_RECEIVE_BLOCK.params.previous, + source: invalidSource + }) + }).toThrowError('Source is not valid') + } + }) +}) + +describe('send', () => { + test('creates correct send block', async () => { + const result = nano.createSendBlock(SECRET_KEY, { + work: VALID_SEND_BLOCK.params.work, + previous: VALID_SEND_BLOCK.params.previous, + destination: VALID_SEND_BLOCK.params.destination, + balance: VALID_SEND_BLOCK.params.balance + }) + expect(result).toEqual(VALID_SEND_BLOCK.result) + }) + + // TODO(breaking): add work test + + test('throws with invalid secret key', () => { + expect.assertions(INVALID_SECRET_KEYS.length) + for (let invalidSecretKey of INVALID_SECRET_KEYS) { + expect(() => { + nano.createSendBlock(invalidSecretKey, { + work: VALID_SEND_BLOCK.params.work, + previous: VALID_SEND_BLOCK.params.previous, + destination: VALID_SEND_BLOCK.params.destination, + balance: VALID_SEND_BLOCK.params.balance + }) + }).toThrowError('Secret key is not valid') + } + }) + + test('throws with invalid previous', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidPrevious of INVALID_HASHES) { + expect(() => { + nano.createSendBlock(SECRET_KEY, { + work: VALID_SEND_BLOCK.params.work, + previous: invalidPrevious, + destination: VALID_SEND_BLOCK.params.destination, + balance: VALID_SEND_BLOCK.params.balance + }) + }).toThrowError('Previous is not valid') + } + }) + + test('throws with invalid destination', () => { + expect.assertions(INVALID_ADDRESSES.length) + for (let invalidDestination of INVALID_ADDRESSES) { + expect(() => { + nano.createSendBlock(SECRET_KEY, { + work: VALID_SEND_BLOCK.params.work, + previous: VALID_SEND_BLOCK.params.previous, + destination: invalidDestination, + balance: VALID_SEND_BLOCK.params.balance + }) + }).toThrowError('Destination is not valid') + } + }) + + test('throws with invalid balance', () => { + expect.assertions(INVALID_AMOUNTS.length) + for (let invalidBalance of INVALID_AMOUNTS) { + expect(() => { + nano.createSendBlock(SECRET_KEY, { + work: VALID_SEND_BLOCK.params.work, + previous: VALID_SEND_BLOCK.params.previous, + destination: VALID_SEND_BLOCK.params.destination, + balance: invalidBalance + }) + }).toThrowError('Balance is not valid') + } + }) +}) + +describe('change', () => { + test('creates correct change block', async () => { + const result = nano.createChangeBlock(SECRET_KEY, { + work: VALID_CHANGE_BLOCK.params.work, + previous: VALID_CHANGE_BLOCK.params.previous, + representative: VALID_CHANGE_BLOCK.params.representative + }) + expect(result).toEqual(VALID_CHANGE_BLOCK.result) + }) + + // TODO(breaking): add work test + + test('throws with invalid secret key', () => { + expect.assertions(INVALID_SECRET_KEYS.length) + for (let invalidSecretKey of INVALID_SECRET_KEYS) { + expect(() => { + nano.createChangeBlock(invalidSecretKey, { + work: VALID_CHANGE_BLOCK.params.work, + previous: VALID_CHANGE_BLOCK.params.previous, + representative: VALID_CHANGE_BLOCK.params.representative + }) + }).toThrowError('Secret key is not valid') + } + }) + + test('throws with invalid previous', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidPrevious of INVALID_HASHES) { + expect(() => { + nano.createChangeBlock(SECRET_KEY, { + work: VALID_CHANGE_BLOCK.params.work, + previous: invalidPrevious, + representative: VALID_CHANGE_BLOCK.params.representative + }) + }).toThrowError('Previous is not valid') + } + }) + + test('throws with invalid representative', () => { + expect.assertions(INVALID_ADDRESSES.length) + for (let invalidRepresentative of INVALID_ADDRESSES) { + expect(() => { + nano.createChangeBlock(SECRET_KEY, { + work: VALID_CHANGE_BLOCK.params.work, + previous: VALID_CHANGE_BLOCK.params.previous, + representative: invalidRepresentative + }) + }).toThrowError('Representative is not valid') + } + }) +}) + +describe('state', () => { + test('creates correct state block', async () => { + expect.assertions(VALID_STATE_BLOCKS.length) + for (let validStateBlock of VALID_STATE_BLOCKS) { + const result = nano.createStateBlock(validStateBlock.secretKey, { + work: validStateBlock.block.data.work, + previous: validStateBlock.block.data.previous, + representative: validStateBlock.block.data.representative, + balance: validStateBlock.block.data.balance, + link: validStateBlock.originalLink + }) + expect(result).toEqual({ + hash: validStateBlock.block.hash, + block: validStateBlock.block.data + }) + } + }) + + // TODO(breaking): add work test + + test('throws with invalid secret key', () => { + expect.assertions(INVALID_SECRET_KEYS.length) + for (let invalidSecretKey of INVALID_SECRET_KEYS) { + expect(() => { + nano.createStateBlock(invalidSecretKey, { + work: RANDOM_VALID_STATE_BLOCK.block.data.work, + previous: RANDOM_VALID_STATE_BLOCK.block.data.previous, + representative: RANDOM_VALID_STATE_BLOCK.block.data.representative, + balance: RANDOM_VALID_STATE_BLOCK.block.data.balance, + link: RANDOM_VALID_STATE_BLOCK.originalLink + }) + }).toThrowError('Secret key is not valid') + } + }) + + test('throws with invalid previous', () => { + expect.assertions(INVALID_HASHES.length) + for (let invalidPrevious of INVALID_HASHES) { + expect(() => { + nano.createStateBlock(RANDOM_VALID_STATE_BLOCK.secretKey, { + work: RANDOM_VALID_STATE_BLOCK.block.data.work, + previous: invalidPrevious, + representative: RANDOM_VALID_STATE_BLOCK.block.data.representative, + balance: RANDOM_VALID_STATE_BLOCK.block.data.balance, + link: RANDOM_VALID_STATE_BLOCK.originalLink + }) + }).toThrowError('Previous is not valid') + } + }) + + test('throws with invalid previous', () => { + expect.assertions(INVALID_ADDRESSES.length) + for (let invalidRepresentative of INVALID_ADDRESSES) { + expect(() => { + nano.createStateBlock(RANDOM_VALID_STATE_BLOCK.secretKey, { + work: RANDOM_VALID_STATE_BLOCK.block.data.work, + previous: RANDOM_VALID_STATE_BLOCK.block.data.previous, + representative: invalidRepresentative, + balance: RANDOM_VALID_STATE_BLOCK.block.data.balance, + link: RANDOM_VALID_STATE_BLOCK.originalLink + }) + }).toThrowError('Representative is not valid') + } + }) + + test('throws with invalid balance', () => { + expect.assertions(INVALID_AMOUNTS.length) + for (let invalidBalance of INVALID_AMOUNTS) { + expect(() => { + nano.createStateBlock(RANDOM_VALID_STATE_BLOCK.secretKey, { + work: RANDOM_VALID_STATE_BLOCK.block.data.work, + previous: RANDOM_VALID_STATE_BLOCK.block.data.previous, + representative: RANDOM_VALID_STATE_BLOCK.block.data.representative, + balance: invalidBalance, + link: RANDOM_VALID_STATE_BLOCK.originalLink + }) + }).toThrowError('Balance is not valid') + } + }) + + test('throws with invalid link', () => { + expect.assertions(INVALID_HASHES_AND_ADDRESSES.length) + for (let invalidLink of INVALID_HASHES_AND_ADDRESSES) { + expect(() => { + nano.createStateBlock(RANDOM_VALID_STATE_BLOCK.secretKey, { + work: RANDOM_VALID_STATE_BLOCK.block.data.work, + previous: RANDOM_VALID_STATE_BLOCK.block.data.previous, + representative: RANDOM_VALID_STATE_BLOCK.block.data.representative, + balance: RANDOM_VALID_STATE_BLOCK.block.data.balance, + link: invalidLink + }) + }).toThrowError('Link is not valid') + } + }) +}) diff --git a/__tests__/browser.js b/__tests__/browser.js index 0acbb7a..2f196a2 100644 --- a/__tests__/browser.js +++ b/__tests__/browser.js @@ -1,7 +1,8 @@ /* eslint-env jest */ +/* global NanoCurrency */ const fs = require('fs') -const {promisify} = require('util') +const { promisify } = require('util') const puppeteer = require('puppeteer') const readFile = promisify(fs.readFile) @@ -12,7 +13,7 @@ let umdScript = null beforeAll(async () => { browser = await puppeteer.launch() page = await browser.newPage() - umdScript = await readFile('./dist/nanocurrency.umd.js' ,'utf8') + umdScript = await readFile('./dist/nanocurrency.umd.js', 'utf8') }) afterAll(() => browser.close()) @@ -36,9 +37,13 @@ describe('browser', () => { // webassembly test result = await page.evaluate(async function () { - const publicKey = NanoCurrency.derivePublicKey('23B5E95B4C4325ED5AF109BFE4ACDE782DBAB0163591D9052963723AE8E72A09') + const publicKey = NanoCurrency.derivePublicKey( + '23B5E95B4C4325ED5AF109BFE4ACDE782DBAB0163591D9052963723AE8E72A09' + ) return publicKey }) - expect(result).toBe('4D312F604F638ADF19AFAC6308ECBBC5881E1B6CD6F53D382775C686BCA7535B') + expect(result).toBe( + '4D312F604F638ADF19AFAC6308ECBBC5881E1B6CD6F53D382775C686BCA7535B' + ) }) }) diff --git a/__tests__/common/data.js b/__tests__/data/invalid.js similarity index 100% rename from __tests__/common/data.js rename to __tests__/data/invalid.js diff --git a/__tests__/data/valid_blocks.json b/__tests__/data/valid_blocks.json new file mode 100644 index 0000000..e103cb4 --- /dev/null +++ b/__tests__/data/valid_blocks.json @@ -0,0 +1 @@ +[{"secretKey":"2B70ABB4D458DC5EDA2C998BF5454717BAA6A122AC8694A02760397DB523CA66","publicKey":"9DB2961B2D01D49C53AE6C9E513BC51AC04273CD4DAC4277F82B44B4F084A91A","originalLink":"9728D0A8B740CBABD885A20218CA0D1371A2AF5E8CF8B59CA7D7FA3C290B0CB0","block":{"hash":"30B313950FE441F009649DBBEF093DC7968A970E56DADC3E50B1E23A481C5AC6","data":{"type":"state","account":"xrb_39fkkrfkt1gnmjbtwu6yc6xwc8p1abswtmfeabuzict6pmrabcatzmh71rgc","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_3qfohkcii7dgaz3beijxc9y93x3kto5wioy5qdt5fdnq3p94psm185n7ktf6","balance":"881686","link":"9728D0A8B740CBABD885A20218CA0D1371A2AF5E8CF8B59CA7D7FA3C290B0CB0","link_as_account":"xrb_37sat4ndgi8doheadai45571t6ujncqox59rppgchozt9inip57ifrxqtch4","signature":"59D94A7414CD685D188D5CC77B6DB4E331BBD37534DD2B69DE2198BD1E4ADB3DEBB3E5C1D38597CAA512D45A9E454DE79E995DB71BC646FAA11582A1BC5D9203","work":"b2ff948c874e7d62"}}},{"secretKey":"0D926E214C7A3C80F24EDE5A344155ED6DB685100E2CC3247F2C224C84704064","publicKey":"73F3B468F19151C04C1427B8B66402787B8FAC13C6B64200E679A73268594FAD","originalLink":"1A76F69DCC71EF34BECCB28112C748F410ABBFC068CAA7E8D7F73947871E58D2","block":{"hash":"6A18AA7771674FCBB4CA45C5581E8EBE669E3980554BC758043974220FE9F7CD","data":{"type":"state","account":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn","previous":"2DD2B07F1BBB385B7E1097363D9FCFDAA56DFA74ECB7D59A9E468E7472165660","representative":"xrb_1rxfoigz59dzzzo8nhfo954wanf8e39qn3zmmc1zdwac5g6z6qfuw3hx4h6q","balance":"70959667784274618944","link":"1A76F69DCC71EF34BECCB28112C748F410ABBFC068CAA7E8D7F73947871E58D2","link_as_account":"xrb_18mpytgwrwhh8kzesen34d5njx1iogzw1t8cnznfhxssay5jwp8ks6837oco","signature":"9AFB243BE9A3C4E4C7615AC1E7B39033FA36555411FD6DFD5EA8C785F5444605100A1E7F39DCF617267D266085D50E654F654ABA80D4FC94183E926F3B5C6705","work":"146232c92971e467"}}},{"secretKey":"E5A523DF83DC3A79F9DD29940500F605D51C4FA14EF56BE5CE8299082CD8A4BD","publicKey":"671E6C702B96D0D50AAD8FE4B7BC06FED212E066A4B07A42BE4AF402479D1799","originalLink":"xrb_3koo957rgp3qixffgygq7851ae9wsfimh58ssnezcsepdb3kku4qbnwx8ozp","block":{"hash":"FA5EA85833EB7D2618DE2898C15E9812A9F2395F83A49E6086AD701565506CE6","data":{"type":"state","account":"xrb_1sryfjr4q7pitn7cu5z6pyy1fzpk4di8fb7ihb3dwkqn1b5st7wsd7ey7c9s","previous":"242B05CEBCBFE2A564C356E1A62F78240D67B33880B543C743E18AF67E460B16","representative":"xrb_3dxd4z89ihf3rgxcgib4caodrw7uykwhuumwnqgk7bra5tf63xnms8jofpbn","balance":"3829201371931432594706","link":"CAB538CB875837875AD779D729860430FCCB61378CD9CD19F565965A43296C57","link_as_account":"xrb_3koo957rgp3qixffgygq7851ae9wsfimh58ssnezcsepdb3kku4qbnwx8ozp","signature":"047AC2BD8D811E81F32F176083B9E9260D9AC50FA91E25E6EE1652344D17E8F934E8882A8829D7F77774576623D9C4CE1EBBB053ED7510A6E64EB45DA4677F0E","work":"66ea8c8c632b7849"}}},{"secretKey":"0EF3C1F537250C9E263CF979A111A4CDA0BE8818E811F260609AB7B7B771DBE8","publicKey":"B8D2356DEA40A6C403E3625B2D3ED2B15CAC2447156302E4C01EC9B0378096AC","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"0D619F761A79931CC2840E3EFAB0127BA5E7C678BAFF8DAB8B738594C777A25E","data":{"type":"state","account":"xrb_3g8k8opyni78ri3y8rku7nzf7ecwoik6g7d51dke19pbp1ur37oe6pypfm8a","previous":"F78DD73000DEF0619967601B3FA7338CEA716B65B689931635748E2E7DB93515","representative":"xrb_1zejt35qz7bip4rdo3hzr315t6hwawdsz367hqws1mder8ssko73feiqmq5f","balance":"65188764","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"4843497701782612631B1E686FFEFBEF8FDD8248821289AACC8D24CA77C5E53DB62C82379BBD5773481E1DBB0F6A688E89137B56E1779DDD2A57C010367F6C0B","work":"c516cb4d8345730f"}}},{"secretKey":"0303E12665082FA149ED78793EBB0B5E7358B8FBA71B0C4BCC6C9B1640A4FC10","publicKey":"068E4F844401C03A1207D2B2CF75CE1BC5DD58F316238F06E489AC1C35F27870","originalLink":"AC6F7ABD6B1337C6D9435E2847E18E065468F5A50CFA21694C47ED9DFBAD3C59","block":{"hash":"ECA6B31411754DB5C4ACD4F58B329BED5AD16216A839EC305D964A127CEE7A84","data":{"type":"state","account":"xrb_13ngby46a1g19ab1hnoksxtww8y7uoeh87j5jw5gb4fe5itz6y5iio5jjj9z","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1ubkztghpm1c8dgnpc8jitxtmmiwue54kxm64x1i1txq8pd5kjasirnamico","balance":"6972319605380090339","link":"AC6F7ABD6B1337C6D9435E2847E18E065468F5A50CFA21694C47ED9DFBAD3C59","link_as_account":"xrb_3d5hhcypp6sqruen8qjaazirw3knf5ttc59t67nnrjzfmqxtth4sbxaxhy8m","signature":"BC01DE00F3BD5C0246E0C61F28AD2C38E8D7068B339C938EACF66CEE3AE0391252736F95CD32FE75D92BE0F76FC573EE2631D79C14405CB86D4687A9891C760C","work":"0aeeab6eb789a069"}}},{"secretKey":"6CA0E92F2E79217C7E6784B44042366A4304EF90811C340BCCC7D3F04615EEE1","publicKey":"77FA25DAC861D887C9DABA0184FD0F880CE707E883A583A90A4AA85096A689DB","originalLink":"A57F7F38B93E5D69760E89241C7C14ADE479C3ACCD26D426081F6DC0F259972F","block":{"hash":"0AFA7DFA91244186F6A83655E8B3263374232DB4F0BACDFE44D4F735E4047093","data":{"type":"state","account":"xrb_1xzt6qfeirgriz6xogi3imyiz41eww5yj1x7igninkoac4dcf4gu758new4s","previous":"BCD06E0986A12BF90AA0A41BD2591CF2D1329D0EC495D7FBE10A2672F303DA2A","representative":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm","balance":"6032","link":"A57F7F38B93E5D69760E89241C7C14ADE479C3ACCD26D426081F6DC0F259972F","link_as_account":"xrb_3bdzhwwdkhkxf7u1x4b65jy3bdh6h93tsmb8tim1i9ufr5s7m7shfzkazgf6","signature":"2D6773382570F4807E8CD389D6D32B50468160802BD94B6A74D4122DC5BDDF77F5186FD7DE9DBA326BF5362540B47C5CA272000645F716E560CE509597855609","work":"24a11bbee280d232"}}},{"secretKey":"72102D432A19F04D430A06AF5AA400B6B67AB3C8B180353587D60432C3DD693F","publicKey":"5F5567833AA550DA94490219C9BCFE828F5771D179C6DCE3A4A202596764A5DA","originalLink":"xrb_1c9g7y6rcyyqikpxjypfcqwmt9hohzn4wqqza4fpd1txkipgaepw5qrm5r7h","block":{"hash":"F2E35FAD6D1CEAD037DD9E13CAA585EF52C57218AB366E88B96A4C7254A8CE66","data":{"type":"state","account":"xrb_1qtoey3mobciucc6k1iss8yhx1nhcxrx4yg8umjtbai4d7mpbbgt38r91toq","previous":"CE6D5DFD605BC20570D325B198969992A2D19F24F7B19B04F494F258FD2B378A","representative":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7","balance":"14611240392021342157793389068824","link":"28EE2F89857BD784ADD8FACD55F93D1DF57FE82E5EFF409B65835D942CE432DC","link_as_account":"xrb_1c9g7y6rcyyqikpxjypfcqwmt9hohzn4wqqza4fpd1txkipgaepw5qrm5r7h","signature":"2EF8DFD21D8F84067ACDE21FC146575FF4F4E09C442DC0DE31138E125430243492372244A275CA79CFF50E92F05F2DBC0A91974FE00CAB2E9D811CBCE71B080C","work":"baa99fb9377f2641"}}},{"secretKey":"62DD52D845E1691401DAC7C99E1C53BA19334837D02251E96BACCB49BE55F6D5","publicKey":"C83CC92338C75AB4F4F7F97F314504BB107E494BA0C30CC18D7B91CAB4BB67F3","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"8422B1653358067C7AB21044E1E98E5F916BDC481B285448DE29341E35C95A08","data":{"type":"state","account":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm","previous":"2D77F5A6C320250918D4A52D11A2C4E152B9A14DABD1AF69D8D89832911E1E88","representative":"xrb_365wn7szcuqup6qtwayytcdym74zqnhgetgerb59546bokhtnigq1bxr1aji","balance":"6495418964452589548950639301","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"B5F224849D373B733BBF0DCFB2288AEA15A7083BBE55DB91316C0B517DDC5D93B2124AE5D6C1BA70DE1F77E7DDDCAA04C3D4870D541E34C22A2184E874920205","work":"9bdb63ed75a67d64"}}},{"secretKey":"BD8668893ACB69749D0D59D4A1AE3CC2C3F3579303A1E49236EB7A36A777215E","publicKey":"230E461A7BBCB728454EAD109F0ED0DA504D25735A49FB7EB2006CCFB785A173","originalLink":"3E67AD1A89D726B42BE498542A8E17492236B97D4ACAF112735FC9788F830A2D","block":{"hash":"9238FD586AE3B84F68DE58C052B1F034149B8A6271AE647A4E64F527B612E2BB","data":{"type":"state","account":"xrb_1argarf9qh7q734nxdaimw9f3pkibnkq8pkbzfzd615esyurdadmpp65drf9","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_36f6m7fici5brih7bwzfq453kqqurshn8sqtattpof1qyg4rjw7f6mbejxkx","balance":"466161376669369303449564233216","link":"3E67AD1A89D726B42BE498542A8E17492236B97D4ACAF112735FC9788F830A2D","link_as_account":"xrb_1hm9onfamos8pioyb84n7c93gkb48twqtkpcy6b98qybh49r84jffs7wgz5g","signature":"E038D9488702702C95A1A4C95C6B31AFBA0979D2FD25BE703C3D82758AFC5C8892D6F09DD42655843CC8BACA9843E1FD5A261116C0E4CB5405126155912E2908","work":"76e14556424ac183"}}},{"secretKey":"503681791B4F7F61E045B419C7DCF4E6D74A889ED39FF58F426921F90B5ED3F8","publicKey":"118BBBCB0185525C09837BB539BCC882756D9A73DF3F705A1EF7DD684D5B8527","originalLink":"8245CDF70018C7A4BC934AE8FB3AC030EF848BD069332945706A53370B94359F","block":{"hash":"52232541BED2F6437819704B9C7ED95B3E8205A4AFC4591FB25B1FF0A56B453E","data":{"type":"state","account":"xrb_16edqh7i53ckdi6r8yxo98yej1mofpf99qszg3f3xxyxf38oq3b9987p8zw4","previous":"55DB97D030018BB0A7D3652A28EE16ADCF3B5D3064C92707DFBD2F2025624A8D","representative":"xrb_3g8k8opyni78ri3y8rku7nzf7ecwoik6g7d51dke19pbp1ur37oe6pypfm8a","balance":"690888645952669781316103556501045159","link":"8245CDF70018C7A4BC934AE8FB3AC030EF848BD069332945706A53370B94359F","link_as_account":"xrb_31k7squi1889nkyb8kqazexe1e9hik7x1tbm774q1tkm8w7safeztwop4in5","signature":"882CFE5E579EE27B68A6E0D4028F1A381FD603D42CDFF833F92AECDF0C2A1BB7AE88D9B1F57B801661211891AF7031A9BE7E850C9566A1F3D05BCD627F94390E","work":"509f99dedf9e83ad"}}},{"secretKey":"F462A830846E7FFC38CB359A61963BE1445BC423ABCA35CEC3C91365D5D24C1C","publicKey":"AFAB17CC783DA1C3BAA74122522ABC70BBF4B8FDEE7CA5DD22A7081E9A40F693","originalLink":"xrb_1px598gfs4hu4o5mcafsnu9xccgymkicoy1uq1b8qhs8h4y46z8ik6wwsyx8","block":{"hash":"1B51510F718A57230A314DB9BACC77862F3031A31A2C1BDF4715093545D47715","data":{"type":"state","account":"xrb_3dxd4z89ihf3rgxcgib4caodrw7uykwhuumwnqgk7bra5tf63xnms8jofpbn","previous":"2C478BF5D855B6F45AEB83F400499FD46C58AA89DB8001C59B194C7361ABA2C3","representative":"xrb_3dsh3pr38its83naacjk7ubaqutx77pidmr1bz3bb1mwtouzknktx3hkk3ph","balance":"906562071655422295521","link":"5BA3399CDC89FB15473521B9A6CFD529DE9CA0AAF81BB8126BBF2678BC227CD0","link_as_account":"xrb_1px598gfs4hu4o5mcafsnu9xccgymkicoy1uq1b8qhs8h4y46z8ik6wwsyx8","signature":"3BBB87D9B6FF2B96056BE9878087CE37124218AD7A46CF679FE51729B13475764A384E53904C987F1E1CC852E0A5B8663FDC947E8F794369625C8E87F3965D0B","work":"74bf94604b4eb87b"}}},{"secretKey":"57CC014402EDD34484A9E24803C7C31718AF0A9C7298C892287B80C6948BBC7D","publicKey":"7B0DAEEC4A8B156E8025DCF14077C3D7C7109C21AA9C763B8E10D9CBA7171547","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"A4FCE210E9B22BFF7DE8C03D6CF4A2F31ADDB3F5EBA273BC50EA23BFE967DA69","data":{"type":"state","account":"xrb_1yrfoup6o4roft14dq9ja3uw9oy944g45cnwgrxrw68ssgmjg7c94udjwxgx","previous":"0520BC5AEFB7F8457B8BFA484434E96142F4C73322795E8D8CB488C9C7CE5050","representative":"xrb_137x91jpmrjagzpxozhzmns685iu5xoosbpzyhy1yt6uy46uksqqdeeh8xwj","balance":"613739849691070","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"592A6935B5B8CD3B7885CE0A93A5A7FE4225C83792D7F843C6B2973305130B4E709700C960838988C4E49235797DE1BFC3FB070E761BB267714DC3299185840B","work":"61167e1a15751142"}}},{"secretKey":"2B70ABB4D458DC5EDA2C998BF5454717BAA6A122AC8694A02760397DB523CA66","publicKey":"9DB2961B2D01D49C53AE6C9E513BC51AC04273CD4DAC4277F82B44B4F084A91A","originalLink":"801BE8988CAC1B097DB367C7AC2E65777C4E6DF13BFD4551C2194E021DCA48D1","block":{"hash":"2F1ED486B407ED1027F6E97DEFAAB492CCEFDBBDFDC4570B4B864655F4FC3D80","data":{"type":"state","account":"xrb_39fkkrfkt1gnmjbtwu6yc6xwc8p1abswtmfeabuzict6pmrabcatzmh71rgc","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4","balance":"7033192788234744234","link":"801BE8988CAC1B097DB367C7AC2E65777C4E6DF13BFD4551C2194E021DCA48D1","link_as_account":"xrb_311ux4easd1u37yu8sy9oiq8cxuwbspz4gzxaoaw68cg1agwnk8j4fjdk9hm","signature":"75FD6E260FE51B3D4F26A5E8E76A5758211078930B61F79F2A7282E8341FA1A216499A36D183FFA608BA34089302CF9DD100DF97166D4C7BBC06EE4CE912EB0C","work":"b58c5569641b33cd"}}},{"secretKey":"EAFD50E5ECE4C15AD3DBAE8DB76998F5F59CE8AAB4A63AB55AE619C2D3022F1D","publicKey":"5D27A314CF6CDE33FED786C404F8FE36D702A4FEB528B6035269A45F688165A0","originalLink":"1EC4F76D716AF5312BC731E9FA6B0D99364BA7BB940B51684DF0D02C63A387EC","block":{"hash":"C12A28BC6B59C6BC7B0B4AAB838E140D2F5EA539A6475A4966D9ECA277791E1E","data":{"type":"state","account":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","previous":"EF89B859976E066FD73451D0C9A9D14B9EA5BD77844F70E454C47E048C1B2215","representative":"xrb_1dnwirnrrgnr3gfru65fh51agd37es1z3c9jgk8w7cdwpzomsxi8rz4iasiq","balance":"8382158126459319941191312530813606","link":"1EC4F76D716AF5312BC731E9FA6B0D99364BA7BB940B51684DF0D02C63A387EC","link_as_account":"xrb_19p6yxpq4tqo86owgehbzboiu8bpbgmuq71dc7n6uw8i7jjt93zepj4g4cx7","signature":"5CC5B0F740CFAA93D747CC62395CDD87799291CA969AF63885711FAE6AC3C8BF45603249B9971E0EEE995E74DE44A3ED3E0ECA899EF7A4D07DF77775FCA5AC09","work":"8834d325cf8a9213"}}},{"secretKey":"131FADFF109B240D280AB1EA86691CDEE33BA397DFDF7E69005C4DBACBB6FCEE","publicKey":"5D3A0A0B1CFC42D5A610E3BA6855730DE82D0D582C62808D23EA808771C0015E","originalLink":"xrb_19x7hrjqyujm6h7bab1kacwq1en4kx9ekptnh7uwqek8y6ugqosobtdwkpot","block":{"hash":"81F9A226CB5503DE54A37354F4A20B7C19A128910A330D59FADA98D86AE52D5F","data":{"type":"state","account":"xrb_1qbt3a7jsz44tpm33rxtf3cq85ha7n8oid54i48k9tn1ixrw11cykeiefebd","previous":"4B9E01E66247182B334C1B8E8E28872879F44B46426DDCE7587840175AF4904D","representative":"xrb_1ho6cni93zdrwtupyskkn1g15reme194fa1pgqacc1okfqcgeds4zao74zwm","balance":"1946812523106556867328623990069","link":"1FA57E237F6E3323CA94241242B9703282974EC95B547977CBB246F136EBD735","link_as_account":"xrb_19x7hrjqyujm6h7bab1kacwq1en4kx9ekptnh7uwqek8y6ugqosobtdwkpot","signature":"D61F2C29021DBFA576EDFB1235B5EBB8274F70CA7EFB67D6F6CA37BB4285C396727B64B79500E4A8207AF5DD69E4A4B102C12B35B74872557BBC8D9A2D6D000C","work":"5db2f6dca4f7322a"}}},{"secretKey":"E7FA3C08CC218B2039AE5A338CC7C272F0BD8A43DF8B3A418F52A3123CE856F2","publicKey":"2DA03D8191AFDB558B73B2B97D5D5A2ECB87C37C852BD15AB1741C6789CADC65","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"1A2DC93888A24D6C808518A34ECD2FE5DE18267362DB1B1F05D2809852968F52","data":{"type":"state","account":"xrb_1df19p1s5dyucp7q9eoshogondpdiz3qs3bdt7fd4x1wey6woq57seixxxu9","previous":"74B2F939553E8CBE5B7A04F90A2AE94A2090813C5D14CF41ECBBCCB56DF72CDC","representative":"xrb_1bw9spnqjiwncjzqc3wmze5urkxao4hi4co1u6dduzpbt46hm6bsxho97789","balance":"280888278639439900416846426145","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"9763DF2396F4EBEC07BD9D67BB54D59A1C49DA0FFD0EF97971D5BA4E4B14F5433F8014A15D10BF3F76650F6D6790906548238996926804B01B9F48DE60A0780E","work":"569ba77d3daa8292"}}},{"secretKey":"EAFD50E5ECE4C15AD3DBAE8DB76998F5F59CE8AAB4A63AB55AE619C2D3022F1D","publicKey":"5D27A314CF6CDE33FED786C404F8FE36D702A4FEB528B6035269A45F688165A0","originalLink":"8914FB52974C2F293F0D00ACB787E02B0E89CEFE7C761B4384B371B9B74A0A04","block":{"hash":"4B5DBDA3E278C2058C0EC4D84BD8B920C14DCD4F42E533BA73719006E966F34B","data":{"type":"state","account":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1d6ppxyjbaq7tanidrfw76byzbijwoprcwwqi4ehn1r1dg3gmdirsgw3ekmu","balance":"1090998663198543396977668476","link":"8914FB52974C2F293F0D00ACB787E02B0E89CEFE7C761B4384B371B9B74A0A04","link_as_account":"xrb_34anzfbbgm3h76zit17epy5y1crgj99hwz5p5f3rbeujq8unn4i6f3149zys","signature":"278F6781150469496C9DFC53F17E6FB5C0D3EED00C120F593330B9EB0723D440CD012012F893B1790DFBEF93E4DC171672D36A54BFC38D6C89E7BD37DCBDBD04","work":"7b174e143638b5cd"}}},{"secretKey":"2F6136CF2B572131EDF3FFFFA06DA327E7625EA417C7E23220C0FE95F56B17BE","publicKey":"5BAFD81BA47996BA1417847B6A61CD7B520451A6B1E303EFE3800C0B34A328A5","originalLink":"4E5900AFC5D9B0D4458E2DDC9CE4C4880E0A1C81A7A585D9B86925BBE95EDB0B","block":{"hash":"9156909538F2541430B6732C6B9EFEF7682D62164EB085997F9CF9B24B5511CF","data":{"type":"state","account":"xrb_1pxhu1ftayepqac3h35ufbiwtytk1jatfeh51hqy911e3etc8c77eoehz6y3","previous":"5EA90DC614A01C49E7360F9A564CD95778C61A6E6AC7304F3907A2A34DD6A87A","representative":"xrb_3ned8rzmu76minz5jui6cqdw4eh8iknq7wm433yi9hq4aw1if9bph6163qza","balance":"775730146829409","link":"4E5900AFC5D9B0D4458E2DDC9CE4C4880E0A1C81A7A585D9B86925BBE95EDB0B","link_as_account":"xrb_1mks14qwdpfitj4rwdgwmmkeb41g3aga5bx7iqeuitb7qhnoxprdmcd8h1xz","signature":"B8557A00C85E2FCBC374D3CA07123853B0DED499FDE2D5C96698AE34B1D9FEA0B788DB322E9CB27F6900D9E6DAFCE570553452C0E1574083CACB8CB0C9624806","work":"ef487fb13556857b"}}},{"secretKey":"79FD76B208A863C7725E501ED3E6CBCC96725B28E139AB8E2E8C67029B7DD00B","publicKey":"3C68615B2E7EF5E1F8A36818E3737D91A04FFEEA4EB3315DF46286EDDD333752","originalLink":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d","block":{"hash":"E5E2C144D14EBE84C7EC291A346322912C07274C93D912A33DC87B1ABD8467E7","data":{"type":"state","account":"xrb_1h5ae7fkwzqow9wc8t1rwfsqu6f1bzzgnmom87gzarn8xqgm8ftks8xsa6du","previous":"53E31C9238B5EE18EE141A0C9BE3FA461334099823458DA4E31783230A4EE156","representative":"xrb_1tfdcfpy81nz5m74466g3mjdr8riodbqswgp4nnkmmj5cuedkd51apf6hr64","balance":"50154207","link":"512F287B1FF9F5C1EA29C1FA96FBD0A70F85D5E22F08F4026DE1DD419FBA8AE9","link_as_account":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d","signature":"447D1C1D6CA69F9E79C3C082030787007C44CE55FED56D86F50E946086FAF4A9E1F8429F2ABC97DD95E8C917F9CFC5E74FFB84064DF488B8D73DBBC1A50AFB0D","work":"d31ac75ae692fb4c"}}},{"secretKey":"19622D20FBC8AAA9E45CF016FAC7EF7D85908EE898A670B4D6A2C8AA272828D0","publicKey":"9795E63D9242D8C6E00FA5D95587B2E5262B1E15001A24D2F6D803DE577A0574","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"C159993439E87B26511775BC9F85BACC0A06FED3A9CE6661748440EF28FBAA74","data":{"type":"state","account":"xrb_37wowrys6iprrui1zbgscp5u7sb87eh3c11t6mbhfp15usdqn3dn3sfp714g","previous":"975B244695F00DB8A7D87246D387522CDBC7B4963308C8144F8A7FEF7D090847","representative":"xrb_3imwuiebzmw6cgqhbf6tk5u55tnq9hjk1dsptubgeaezsaidbbzezrk7p97h","balance":"6758368890087426010050","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"771FB995C7C08D193A19630BA86FF4B5B76B5D4EA60FAFAD72BE391607D834B83D81E557D9481D02D04A6BFCC9F2A68DC0930745D4C204C9204962E33A61C00A","work":"a14973fbb178f3fa"}}},{"secretKey":"A47503F81793D500CE57BB5760C9BDD783F074D8131637C669630BA375C75F4B","publicKey":"EBD545077EA30BA0C821276382C69E5ECB2409DF44625D6704F2BBAA66069F2A","originalLink":"9C08261B7EC0B1EF53CD5356251C59740EB53E1C081B12B5E407F5B09270B809","block":{"hash":"176E15285B70ED8EA247402AFD81FDAF37D6E69C0DE799B9670BBBFE19D6FB34","data":{"type":"state","account":"xrb_3tyoan5qxardn5644bu5id5bwqpd6i6xyj54domibwouobm1f9sciih9qfzh","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1ya3qmekr5nqft5i8k4ytpmnhnm59qcc5q4jzrc9cdk86b35iqird5ma4e7s","balance":"316564871690875022517937435564264033","link":"9C08261B7EC0B1EF53CD5356251C59740EB53E1C081B12B5E407F5B09270B809","link_as_account":"xrb_391a6rfqxi7jxxbwtntp6ng7kx1gpnz3r41u4ctya3zop4b93g1bf3f5sd4p","signature":"55DE8C26734DCA090FBB4129CBA95BFA3CC5CE3265FBD342471FC25AEF482C33AC884AC15031BC7EEFDD24B5C17A866C9FCFB93D2DFA811D33EEF59558753305","work":"088e073d69fbf103"}}},{"secretKey":"44972A8DAD0060DF940F26E76A5FF5E5DBD7CCAA5FAE4D4BD4BCBCB4090FF689","publicKey":"2C96B77D14A2E5D22905E1BC2913EFA611E56D8573978098FA03005B82E9AE18","originalLink":"E82C40B4678568AB735347F985D80FE7E0924B0060EBBD2C5CB1E92E09E74763","block":{"hash":"7D773D927909164A649E854BDB562295DA1E93F6FDE2EE5315A2117AF2395689","data":{"type":"state","account":"xrb_1d6ppxyjbaq7tanidrfw76byzbijwoprcwwqi4ehn1r1dg3gmdirsgw3ekmu","previous":"AFD46505C204DDD7EB24856592616E967CA45D4CDADA919E526C17F8EE525ABC","representative":"xrb_3mmc3ad6c8syfhymof3ta3ufp1ty6s4dt7up1gorga7k55ukpzy43hfkhtb3","balance":"7743146997226738890118376973464876","link":"E82C40B4678568AB735347F985D80FE7E0924B0060EBBD2C5CB1E92E09E74763","link_as_account":"xrb_3t3ea4t8h3daofso8jzsiqe1zsz1kb7i1r9dqnp7sehb7r6ygju5gaiffy8m","signature":"E050E21B6424C6FE2E642D4F0E2F9D75610680ECDA1F84CCF0FE1AFE6DE28C98D0A30D1141362346858AA67C059A91F7B2DFE3D9E51B8A1225135E200B02780D","work":"1dbf0bd15c358cc2"}}},{"secretKey":"A2DBFDBA2DBAB7D316C9FA5CDF196C3FA6608AC256C4D7858861A520E16F08F8","publicKey":"33DB63FE3373A270CB8E543BF2249F2D37E08418C7EA4F884887CA1FF33176C8","originalLink":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4","block":{"hash":"E5D22243D725BB15F8FE251BC7A57ED571EE1F4E98836052D9DBC3C74CFD00AE","data":{"type":"state","account":"xrb_1eyuehz58wx4g57rwo3uyakbydbqw443jjzcby66j3yc5zsm4xpafxfrmxy9","previous":"24B8C6C824A8E53406358C575F5D80A69DF79CB338224F65870FF11151F24AF7","representative":"xrb_1tfdcfpy81nz5m74466g3mjdr8riodbqswgp4nnkmmj5cuedkd51apf6hr64","balance":"11427","link":"E303F1A9A09682023E4423FCF11B2F7A7FDA33F97F8F89F02F1B78996106A6D5","link_as_account":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4","signature":"30F1BAE7713A048285678F1592506DC24E113DC82FE1F9974A4CB0FF6DBC298A89E21A8A1CB5E8609E6B9CA5E370B931AD8A308FF81876352C5A25C5DC3AE20A","work":"71f88615d42d3d03"}}},{"secretKey":"8310C2CB493870A78F9B5B58D22D72B9B67015D32DF67BFAB86DFD3E8CAB9604","publicKey":"CAB538CB875837875AD779D729860430FCCB61378CD9CD19F565965A43296C57","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"8755D5F116F4414CB0EEE52759455BE55B388E612D26B38018F54D85BA0B691F","data":{"type":"state","account":"xrb_3koo957rgp3qixffgygq7851ae9wsfimh58ssnezcsepdb3kku4qbnwx8ozp","previous":"AE25201636383AF68E41F281330F8D77580A6416889A058456628AB62EE9D362","representative":"xrb_1ya3qmekr5nqft5i8k4ytpmnhnm59qcc5q4jzrc9cdk86b35iqird5ma4e7s","balance":"18076470","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"E04310C4D84ABB777EF4C02969FD0CA22ED3DE06A5B00C71C499D95F412B6A670D58F6210D782DFB00E6A979100F2C0F398D9C78495C9A26922B08BE3A6B3B09","work":"f0caa52fbf9f8a6d"}}},{"secretKey":"E632A8EFB89665672FE614B5D49C72C1285E417DACCCC7A7F425880AEA4BCA25","publicKey":"B281433D0C6F013CF51C3D1406A51EA892F69DEEC871115B9F882916FC9C31C9","originalLink":"62CC92218866CD410597BC7CB2F1C00BBED0837294813AE2AD7CE9FB0C04EA50","block":{"hash":"02837E552CB45B5F82FA5DABEB9D44E794C53378BC6B764F24DE43C928382630","data":{"type":"state","account":"xrb_3en3aeyirur39mtjrhan1tkjxc6kytgyxk5j47fsz43b4uybregbzdtk8g55","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_3eizh9rjaaphzj4wd7mbmuawfmdz17e7pao9nbstwg4ohfhfcoxq98o6xdw7","balance":"9015333290969039","link":"62CC92218866CD410597BC7CB2F1C00BBED0837294813AE2AD7CE9FB0C04EA50","link_as_account":"xrb_1rpekairispfa64shh5wpdrw14xyt43q77639djctz9bze81btkii6zi5occ","signature":"A724B881AD6560DB408B0DB4F16156BE080C2323A4CA64C216FED88DA3F839128EBFBC8BBAB6EA49817CFBBEC92F391EAAAE0D3EEDCBAD9F81BCDA825EF4850A","work":"83cd5bfbd4e3042b"}}},{"secretKey":"BE27112FB64FDDBE82AEFC0DC0D024847D3A0B4E1316DD78C502F4C9C081D32A","publicKey":"D18B363F3D9493853E38EE0455D7C131E684A972F262087D03BEE24701069D36","originalLink":"3279E378FA51DB2E015C6B406A15E5C9F737614EA61EF1A15C4E66EDF37B930B","block":{"hash":"3C1801E95246FF45BDA37E6F4B47A487414A94FF2E96F7F7BC3D96569D7CB8DF","data":{"type":"state","account":"xrb_3ned8rzmu76minz5jui6cqdw4eh8iknq7wm433yi9hq4aw1if9bph6163qza","previous":"C53EB4C277A8E73C8BD56608767D6809C111AC2A4B01465ABEC0D2E4FD705E25","representative":"xrb_1j4s4ue3nq5pk4o6qyprwb3n948cyostprshjayt1tqmqszzsjo73kndrud7","balance":"12316622261830802285893393614","link":"3279E378FA51DB2E015C6B406A15E5C9F737614EA61EF1A15C4E66EDF37B930B","link_as_account":"xrb_1emswfwhnngu7r1ortt1facydkhq8xinxbiyy8iormm8xqsqq6rdpj9dh6po","signature":"7C13D12462A85025672DDE5B4677746CA906CFF7BCE810F1A2544191CEAE48AF1336D4A444A9402A9BEFCD33F2BD2E1198AE64ABA70D866D63A8C7BCFFB0EE06","work":"24933c963cd28bc6"}}},{"secretKey":"E7FA3C08CC218B2039AE5A338CC7C272F0BD8A43DF8B3A418F52A3123CE856F2","publicKey":"2DA03D8191AFDB558B73B2B97D5D5A2ECB87C37C852BD15AB1741C6789CADC65","originalLink":"xrb_1bw9spnqjiwncjzqc3wmze5urkxao4hi4co1u6dduzpbt46hm6bsxho97789","block":{"hash":"A6FE7126C47D40425FB71E98A0CE07F5113CCB062F908CD48DAF01EC6F11D7AE","data":{"type":"state","account":"xrb_1df19p1s5dyucp7q9eoshogondpdiz3qs3bdt7fd4x1wey6woq57seixxxu9","previous":"627A705730AFBED0960CD5432516E1E6F20DE7DECE00D8401FC5F6225619BC1E","representative":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t","balance":"577","link":"2787CDA978C394547F750793FB07BC4BA8A89F012AA0D916BDFEC9D088F99139","link_as_account":"xrb_1bw9spnqjiwncjzqc3wmze5urkxao4hi4co1u6dduzpbt46hm6bsxho97789","signature":"544BB48703D864208C50432A9B81917B8BAEF31B02E9BD61DB0C2C9A464365AB176EDE1FBFF284F7C4786F19146C85799E38107858BB2E083E730C7F9310F801","work":"7e9079b761bb218a"}}},{"secretKey":"CCFC89324F6A6512338363A43E2E3293EE7D7C5356B211DDCA64D8555D5C3A07","publicKey":"1597EA2FEB879C07A50E71C69983D344550FE98AA76B2DACC546AE4CB2299B49","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"FA6A0D71C38F121AEFCB81CF203D04BA5A61A84BBE174CBE63ABA1E001032824","data":{"type":"state","account":"xrb_17eqxaqyq3ww1ykiwwg8m83x8j4o3znrobud7ppecjogbks4m8tb8ctzqeh6","previous":"0455881C73E8D129298D12140BE2875CE8198A08C8E39E726F82796E5BB69971","representative":"xrb_1bw9spnqjiwncjzqc3wmze5urkxao4hi4co1u6dduzpbt46hm6bsxho97789","balance":"8120959939784595521569807","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"BAF7A37AE1939AC6876190C2F6518118A73651AD060D296CA3B84329EDE3442F4CC1A427A44A1A976059A512D656187FCB0D7DB8163E60EC84EE99F82555C40A","work":"3392f9d9fbe13a07"}}},{"secretKey":"51C8B2E2EFA4E3F6A772CE1E8258BDD499C4E31EE069459CBB2A8BA1FD561769","publicKey":"512F287B1FF9F5C1EA29C1FA96FBD0A70F85D5E22F08F4026DE1DD419FBA8AE9","originalLink":"FF81123B8EADF2DB06B199FA5950E9E8822639CE9DCDC9C3B67497C7C87601AC","block":{"hash":"C5C2EAF0803F01A1E4F9B62E4218DA7F2E890F02BF4A40CEA223C0736B34886B","data":{"type":"state","account":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_19x7hrjqyujm6h7bab1kacwq1en4kx9ekptnh7uwqek8y6ugqosobtdwkpot","balance":"1908015296692141944608728898597","link":"FF81123B8EADF2DB06B199FA5950E9E8822639CE9DCDC9C3B67497C7C87601AC","link_as_account":"xrb_3zw34axrxdhkue5d58htd7agmt646rwwx9gfs93uex6qrz69e1fe4czhpx8n","signature":"5E288058663346C980319241D5851F8EFFFC8B6BB6567EC939ACD11B581D483E6CD1CA3E8523D94B5A1082547E0E0824F9D59C4440AF71077572B0596F8C8304","work":"14eff6c10f82a3a1"}}},{"secretKey":"C0EC6F765B1BA0FDCA8462603339ED0A662D9678CEA4EA7BB04BAAC0ED533FA6","publicKey":"ECFF76F7E0B4019A42664FF2C7518DE606C4E4CFE481D86B256BCEE6310EFCD7","originalLink":"72021FA2D28B73C3ABF5C43F75F1B00D1CA52008776ACBF72F1D69631AC11C2D","block":{"hash":"B6BD114D8DA7BB47DED095308E257010766CDB8D7541F471A8923AD9C643C418","data":{"type":"state","account":"xrb_3u9zguuy3f13mb38emzkrxarusi8rmkezs63u3okctygwrrixz8q4odmydgp","previous":"27578809CE5CFE0D0F5804620F853F5E7401734D5583A8E18929F8FC526C1783","representative":"xrb_3jrc4imac1nox3d79fx7856y38mnknex6fk6fujthkcn79xgng8qk53dg8sr","balance":"9524679976149047520","link":"72021FA2D28B73C3ABF5C43F75F1B00D1CA52008776ACBF72F1D69631AC11C2D","link_as_account":"xrb_1wi45yjf74umrgozdj3zgqru15awnni1ixucshuky9dbeefe493f73wht86q","signature":"DCBC64CA43C5A682A3D3EBB4034D36B3E3BCA107E5C4B31359D3785F838E80540FC71D6AED9749A36926D3965460DF32FDE0CCC17B47A80ECB24D40184A7110C","work":"88646c92c6d65473"}}},{"secretKey":"8EB68483CE408EFEC6F62089E2369FE8043EFBD5108621EFEA558D3CF81F2714","publicKey":"826FBEE1D6A5FC5A94DAD9708D0C92B478BBBF42BF6CD5C9F7D66B03D940A312","originalLink":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn","block":{"hash":"76C5C5FBD8C00FF81E4F6DF762FAAD6F342C36F164E2E39A56E353005A18413B","data":{"type":"state","account":"xrb_31mhquixfbhwdccfopdijn8b7f5rqgzn7huetq6zhomd1hen3arkpsrgkffu","previous":"A1DC51002198AD32D2BDEDCF1A6002FA1532CC7ABF1F00C5908404CDBB60CD81","representative":"xrb_3bggqhtooojsoi7i4n78sycerz91hw78ti78iq17t8c43twoen4hg5uxh369","balance":"38930959825765436056025084071","link":"73F3B468F19151C04C1427B8B66402787B8FAC13C6B64200E679A73268594FAD","link_as_account":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn","signature":"6BDF2B360C92EFD006D34FD35F66D0C64B13EB88FEF2DE9913510E60CE1F54AFD6E79263DED5322F8106EB44447BB89875DA65A3C9D61154297868C84EA99E0C","work":"64f73ad2137956e2"}}},{"secretKey":"0EF3C1F537250C9E263CF979A111A4CDA0BE8818E811F260609AB7B7B771DBE8","publicKey":"B8D2356DEA40A6C403E3625B2D3ED2B15CAC2447156302E4C01EC9B0378096AC","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"B8A1AE359D52A68009B4AA3E0B6F7994F7C97B4DC4782BC70553E5120B367056","data":{"type":"state","account":"xrb_3g8k8opyni78ri3y8rku7nzf7ecwoik6g7d51dke19pbp1ur37oe6pypfm8a","previous":"15F898B2B53BB235E68893498008228E6E61ED63C261183F5ED72133164365B7","representative":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4","balance":"1572311040526461260015385078350440975","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"60B9F9C140744459A4F13A34CAC736D55F4A776B5BF4FE9BA658C3EC248DFDF8016F33070097AFBDB7E07E13E1E3700ACF9C7F04BEE544DEE57DF3002FDD510D","work":"84c61d5e84ca0070"}}},{"secretKey":"12559AF09AF66A335CA4D3799CB7B65CFB3D9DD878EF826262397DDD1F62FA81","publicKey":"BC58A3698B368565F69A9771B9BB128907CC38EB4D096E0DECFE0134F4976676","originalLink":"B7291BBB9929D45F04A2614B950AB9E8644E9FC38E08CCB10FA6AD682BEF9A40","block":{"hash":"92CE2114C385C6642EF678EA61354110628DDAC83968E2D8EC5E9E69999920DF","data":{"type":"state","account":"xrb_3h4rnfnrpfn7equbo7ujq8xj74a9siwgpmabfr8yszi38mtbgsmpfgz8ornf","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_36f6m7fici5brih7bwzfq453kqqurshn8sqtattpof1qyg4rjw7f6mbejxkx","balance":"5281236188975206815930523","link":"B7291BBB9929D45F04A2614B950AB9E8644E9FC38E08CCB10FA6AD682BEF9A40","link_as_account":"xrb_3fsb5gxskcgndw4c6rcdkn7dmt56bthw95iaskrizboff1oyz8k1jt8juadr","signature":"80B9C7D12DE10D524823E21DB624AACAA5E0C1A6C3765BEBF68C9AA3B68AB4B18EED2BE3218947DBCFA5F7AE50326EDB6E3A611B17345A22295C29FCE297ED0F","work":"b183a5a30554747c"}}},{"secretKey":"19622D20FBC8AAA9E45CF016FAC7EF7D85908EE898A670B4D6A2C8AA272828D0","publicKey":"9795E63D9242D8C6E00FA5D95587B2E5262B1E15001A24D2F6D803DE577A0574","originalLink":"F6C3BE85F9D503B3B44636CF908802A658785D0CDED0455EDF4B699DE175A37B","block":{"hash":"1BB25AF7C7F9E7EB7E31310DE96A895CD8914F24B654FC0A6B2D2FAA6D524170","data":{"type":"state","account":"xrb_37wowrys6iprrui1zbgscp5u7sb87eh3c11t6mbhfp15usdqn3dn3sfp714g","previous":"4AAFA0D53BAA58EE1A0B963D5CF3F4920A229AC8AFB36E633123774632CDC651","representative":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","balance":"206231100155","link":"F6C3BE85F9D503B3B44636CF908802A658785D0CDED0455EDF4B699DE175A37B","link_as_account":"xrb_3xp5qt4zmoa5pgt6efphk4617bkrh3gisqpiaohfykubmqiqdauucni7z6do","signature":"43FB0CB48DE9E4B7F24305B9C38F9FECBC09D5F83A4F9CA267CC5E6CC49A14AD824BF5EB071404ECD2A56293F45E8C427D8B8E30F716AC884EE68F90BB43940A","work":"8faa597ecb3bb1d7"}}},{"secretKey":"6F471A98A0AFE007B233B6AF0C59DECBABE73B9623E67846F3A7F14CBAB23E7B","publicKey":"947B6687080091325068125B21351BD4A6B49A66B6D73FA41D2F765381557CC0","originalLink":"xrb_1caxkz8itrbierf4hj38aoh4hbsxhjqx3kutcsyxmrmbeq1h84yzd3zmo6mh","block":{"hash":"DB5B9F87E2225F1DAF2FDD003A7C2014D747AB0870CB7704070F81603852B638","data":{"type":"state","account":"xrb_375uet5ii16j8ba8i6ku66tjqo78pkf8ffpq9yk3tdupcg1ocz816wwksnxc","previous":"7DEC67EAACFDD2433C38A8A4E3EFD2F4EA5106C40B78542CC404E3BB9A38F7CD","representative":"xrb_3thdnhufaghtxyaprmf7cub87a4ew9cbeh8uo3eg7sf144h37p1wattr41ug","balance":"3404009986054874060309831494","link":"291D97CD0D6130661A27C426455E27A73D7C6FD0CB7A567DD9E26965C0F30BDF","link_as_account":"xrb_1caxkz8itrbierf4hj38aoh4hbsxhjqx3kutcsyxmrmbeq1h84yzd3zmo6mh","signature":"A2E3988D8A5414483CC78446B6D787BA4937D1B565736009804F04E9D172CFC4A8229C6FB6C0FA25DFAFDFAF2103DB7BF2736D343CD72C0FB65642E0C61BB101","work":"ee1e495a2f66ad11"}}},{"secretKey":"5CE797B5F0D5E3CFF229FFF94E15247E295A26A059C67791209FB649B64764BD","publicKey":"0376F55904E1E0F9C68295E0ADADCEE983C35964ACC3337A9497EE37F6908A19","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"DD856AF22EF8BE25280E4770580D3BFD519550B85FE593EEC2CD063BA2791DAA","data":{"type":"state","account":"xrb_11upyoeibrh1z95a77h1oppwxte5rfepbd858fxbb7zg8zub34isdzu9rax8","previous":"ADD7C0CA4EF1979B7571EF995558019A1737B7C9D5A2512B2998D9FB5C2B8F64","representative":"xrb_3o7oim1fumchm8hdtcmfgimenf8awxtgff1tosrfr4x7bdj8bcc6pnrxt3mb","balance":"35534125071651","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"1263431A682A0E145DD6A7BD8F7CA31885B9543199DD46E9B05F3C7DDC4E53C4B35EA8AD9B226D467C860CD959C17368923ADD47C7B192697A96781649927606","work":"cdfe56f1320e33da"}}},{"secretKey":"1E4782A13293F5395D292552845562102B909A314F6D15C2E7EDBA13E3A5A451","publicKey":"90C6435504BAC8E9CF7742088B34EC429228829ADF22C786B8EC73E03F03A12D","originalLink":"3B9A5FC9D8AE97BB39E6D5118A333480C0A61FF9630F4D5A404AE6F896BB1996","block":{"hash":"229D58660716C9878BC6494D9ED18F2D938148347D3EF4BAD57C98CF52EEAF1A","data":{"type":"state","account":"xrb_3688afcibgpax99qgiiajetgrink743boqs4ry5dju5mw1zi9abfcfginuup","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_3iaqxun1u435t145jaanzkio6sbfod59t86h3wb5jhqh1fsptji6eh6sz44n","balance":"21476445132267932","link":"3B9A5FC9D8AE97BB39E6D5118A333480C0A61FF9630F4D5A404AE6F896BB1996","link_as_account":"xrb_1gwtdz6xjdnqqewyfoajjasmb181nrhzkrrhbof61kq8z4ddp8epges3yzsc","signature":"44D6EBDBCEFF888C1E95AF882E713734E9853F9BF7D1DB43E2EA5243EA31220C175A63511E29CA5CDF00AC8671310471FE036110F9669361BBB1B2119E021804","work":"715f81e4e37b3c36"}}},{"secretKey":"72102D432A19F04D430A06AF5AA400B6B67AB3C8B180353587D60432C3DD693F","publicKey":"5F5567833AA550DA94490219C9BCFE828F5771D179C6DCE3A4A202596764A5DA","originalLink":"370DE312C50B407FD9B3BC1C3CA67FDCF1431705BB7EECE1EE37A56AEBCB0358","block":{"hash":"71AFC3C05CB77D12BDB6F62335EB70773421E9892A9AACE5AE48B284A5BDB427","data":{"type":"state","account":"xrb_1qtoey3mobciucc6k1iss8yhx1nhcxrx4yg8umjtbai4d7mpbbgt38r91toq","previous":"5071E667602D01F8D923D1A99AFB439BECEA83B88E10CF210CD40620083BA956","representative":"xrb_37wowrys6iprrui1zbgscp5u7sb87eh3c11t6mbhfp15usdqn3dn3sfp714g","balance":"35901","link":"370DE312C50B407FD9B3BC1C3CA67FDCF1431705BB7EECE1EE37A56AEBCB0358","link_as_account":"xrb_1frfwebec4t1hzeu9h1w9km9zq9jaedidguyxmiywfx7fdowp1tr1dacqedq","signature":"5C2386ABB55960A408398D7069586DD17B23D0FB8399524E4D2704F49D2FEBE06835C9A79F9C4E3A37779BD17EBAF13B84107F5106C0EBA2E659346971C48006","work":"f03cf799f810679a"}}},{"secretKey":"DC3A60D750ADA3AE40923FDB9A27BA76C91A11CEC167547DB1F733458B424C95","publicKey":"469C6E5AAB7755A3C7C218894CF9E18D6CE131E71EA40DABECE7D7090EA4F9A7","originalLink":"xrb_13gyoiduazkymx364bezqcbg3e5fswrtwfq37s8n968xhory19myz7bgba95","block":{"hash":"612A635906FC458CB0900270BF60E3F55C23338D190A8DE22904E3650F37D340","data":{"type":"state","account":"xrb_1jnwfsfcpxtonh5w686bbmwy55dew6ryg9o63poyssyq369cbyf9nfypzosk","previous":"B743D5FC4DC763F91E833C542F8033186F535835CD8506100F28F04BB2D92EFB","representative":"xrb_3h4rnfnrpfn7equbo7ujq8xj74a9siwgpmabfr8yszi38mtbgsmpfgz8ornf","balance":"368","link":"05DEAC17B47E5E9F4241259FBA92E0B06DCF31AE36E12E4D4390DD7D71E01E7E","link_as_account":"xrb_13gyoiduazkymx364bezqcbg3e5fswrtwfq37s8n968xhory19myz7bgba95","signature":"CC9037828639D84152C09C06FC1BD53ED03FD66AC0698735EEB4371BCBEF9F7FC2EAFC8B38F59D5450DD132E7042FD331E6E2B9590E316D3CF6652B6068D8C0F","work":"8ac1ff8b54fc6743"}}},{"secretKey":"57F03A1826C1F9398CD9A7C0AFAD1A91D680DBC2CE27AFA1A912B0404A9B1E92","publicKey":"C816C616761BA99258409FEA1B5C285FEB0D332BEE71D2BA85117A6FDB3600E2","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"6A2D47F34B331ED31AEB59D7E3592490ECFD7040B74B872C89A7AB2BE6087D61","data":{"type":"state","account":"xrb_3k1prrd9e8xbkbe639zc5fg4iqzd3nskqumjtcxac6dtfzfme194hgcxrfqr","previous":"A3E92775A7F4D2F24F9E14F307AF80E33FE1354E3C73C93CC02CC538AFA5168A","representative":"xrb_3wkq91j6untaxsz6kpy3wasb46gigh9y6yw7hwwxua9dm8keo5cu7jazg8z1","balance":"701449937172398034141931174","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"5EA467CD3D99C887B86B10CAA0605CF9C02D6C18BFB8C46ACAE960D99E386AF739A72E051CFC4DA2D9D6FB7A7946BEEB38326C1EBBADC8CA390A453F46F0D104","work":"f33a764991f1544f"}}},{"secretKey":"C0EC6F765B1BA0FDCA8462603339ED0A662D9678CEA4EA7BB04BAAC0ED533FA6","publicKey":"ECFF76F7E0B4019A42664FF2C7518DE606C4E4CFE481D86B256BCEE6310EFCD7","originalLink":"B03CDE20EDD5A6CA91015B2AAEE63E9CDF7C1056CD71CDACB81BE64D6850DF69","block":{"hash":"C3655C63EA0A3CB8E975184EDE3AD13FA8745FAC0DA0D4D0D0DFA252ECC360EF","data":{"type":"state","account":"xrb_3u9zguuy3f13mb38emzkrxarusi8rmkezs63u3okctygwrrixz8q4odmydgp","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_3e1eigbschc5uudc93s3pcweidxfpbkc1c9fakywqp4mkiukpukgxdbuf3xt","balance":"5309956944464579","link":"B03CDE20EDD5A6CA91015B2AAEE63E9CDF7C1056CD71CDACB81BE64D6850DF69","link_as_account":"xrb_3e3wuriguof8scai4pscoum5x98zhia7fmdjsppdi8z8bon73qub3uex9cuu","signature":"BD1F2C35597BA6A95F3F4E2F8FF17F707A6D6835F926FB2135C5FE9BE5EA68F7F5E523159F96629EAD3BBE543E686B8B9B618E0A5806025C722281173ED3D709","work":"40649ebde598fd3f"}}},{"secretKey":"997CB6FC0E1EF1AAC438FEC07AB908797AACE9AA143829CD91B0E8050ECB591D","publicKey":"CDC76CE74D1DAC716A13EBACECF1511A19E87BC80A9382649894EF59118E3EF8","originalLink":"540B88B9631DE9FF1C3A711C012284EC622E7C6F90B8307190AB9AFE3F8636FA","block":{"hash":"323549AF437DBCA08C9A8E00D8C19A25EA32B94A2B7D6E5E2F8C727202CE452D","data":{"type":"state","account":"xrb_3mg9fmmnt9feg7o39txexmro48isx3xwi4nmibkbj79hd6arwhqrg476rbcb","previous":"7EBA0C690993719E8DCE5944535BDA52DFDF963E221E7A33DA94D88805C54824","representative":"xrb_1sryfjr4q7pitn7cu5z6pyy1fzpk4di8fb7ihb3dwkqn1b5st7wsd7ey7c9s","balance":"335528046061","link":"540B88B9631DE9FF1C3A711C012284EC622E7C6F90B8307190AB9AFE3F8636FA","link_as_account":"xrb_1o1dj4wp89hbzwg5nwaw16jabu547sy8z67r83rs3cwtzrzrefqtwuan4hnf","signature":"C596AE8B9F965D4363097E43A7705B53B0FA8A77A4DDBFF8E93848573723F0DF54C99675ADB346772B52E6D5125011E5E60730A3F1FB208EEBE4C90B29E56207","work":"d9e4273c84500e0f"}}},{"secretKey":"9977BD43BA3761CCBCE7CE484EFC4FBCD55121D64EB9F1645F0964F9CF62B0D6","publicKey":"28EE2F89857BD784ADD8FACD55F93D1DF57FE82E5EFF409B65835D942CE432DC","originalLink":"xrb_375uet5ii16j8ba8i6ku66tjqo78pkf8ffpq9yk3tdupcg1ocz816wwksnxc","block":{"hash":"4BCAEA7E64BEAD96B4CE93383A05348E09F087A9DBE3D80D014F64898FF16D15","data":{"type":"state","account":"xrb_1c9g7y6rcyyqikpxjypfcqwmt9hohzn4wqqza4fpd1txkipgaepw5qrm5r7h","previous":"02852C42C29DC34DC5E4052589279FAF08502FFDF1FD1D7BEB6B5564E2F8EDC7","representative":"xrb_3proftj1xp17anzkftnmww3b5bfysfpg9hcnqnrrs4xzgf9yip6ghdkga6sn","balance":"28","link":"947B6687080091325068125B21351BD4A6B49A66B6D73FA41D2F765381557CC0","link_as_account":"xrb_375uet5ii16j8ba8i6ku66tjqo78pkf8ffpq9yk3tdupcg1ocz816wwksnxc","signature":"A76A082C4463F7982D4D14A3E3C227688596A50ADCE385E9E51008FA7316148E1E2BFBD74D6403ED319CDE344610106547D355A0F763A011ED9F66BBEDDB1E0E","work":"2d21850355f7f3b9"}}},{"secretKey":"FF928CB6396E51FC56E3E7261837EF4D1DF7867E67F569AE163C1EEF0739C1EA","publicKey":"7D1D14DE5C4FDE02A7249526EB13B57241F83C548049B70022B630F77E8750A1","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"CC380F1B56F508B380EACD26FD3DD9DAC64A1FC0CC9948841871B497FCBB12F7","data":{"type":"state","account":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t","previous":"5759F884C00E47F77261F7E3307B14B93F016BF060BFF12C22B37FA6F525B7CD","representative":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t","balance":"442","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"AD8E6153BAA53338F99528B3A44180BD7DECA58DB26524A64EAA57A4B1D6E4BFCFC10D59501D0A400FF5155A1221389194258DCE580529E137FD9E19D60CAB0B","work":"f1c35ef94cffa410"}}},{"secretKey":"99394A9CC72290D99B28CE0A53AA553CBDE35B121AA25180059708EFA87D2F97","publicKey":"8B00834DD9C3F6A9CF1D043F99D8DDE383BAA794BCAD1ACF51C05C07151EE2B7","originalLink":"774A5F21833FCC6E60B1904A220BD4205562596E5C1DA3440C0E0FC9522A39EF","block":{"hash":"697C003B436FBFCA430EE553375B6AF242F1D90B8FDA032754B10A8644583DA6","data":{"type":"state","account":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_16edqh7i53ckdi6r8yxo98yej1mofpf99qszg3f3xxyxf38oq3b9987p8zw4","balance":"3513115","link":"774A5F21833FCC6E60B1904A220BD4205562596E5C1DA3440C0E0FC9522A39EF","link_as_account":"xrb_1xtcdwir8hyefsid564c6a7xaa4oebepwq1xnf41r5ihs7b4nghh7b7rp5px","signature":"B12E6D2611AD3EBF875E631B6015B016379F840EC167C4E24E36429D1024FB63FBAD8153DA89F99D86FE42984A3A157737889A044DA593B0E50E4513B669EC06","work":"b9839b2cac7dc61c"}}},{"secretKey":"EBD59E5AC46D9F835755517F34B7A69D5A90A94950E09B66704FFBAA55FD4318","publicKey":"04BD382369E22877EDDAFDFF9D32430E1B1F6B5CA6DFF3FC0F689BF089B966F7","originalLink":"25C12DC73DB78DB615AEFE3B09B3DC3364EB9D29D1A60557116DB49426DD9DDA","block":{"hash":"380F98DAA6EE90BDD5929EE7C3840B4D54BE27CFA54C0C013BF2296CF0B6DA40","data":{"type":"state","account":"xrb_137x91jpmrjagzpxozhzmns685iu5xoosbpzyhy1yt6uy46uksqqdeeh8xwj","previous":"5F301F9BF72926D2F28D3DCE2FDFF11F6F17A961EFA3466BEE687D958DCE0293","representative":"xrb_13z8wq36fgrehz1goxajjonz8b3q711aj6u11m4s9fcjoj65zisumpsif7zr","balance":"93342915074843579785840984383844","link":"25C12DC73DB78DB615AEFE3B09B3DC3364EB9D29D1A60557116DB49426DD9DDA","link_as_account":"xrb_1bg37q5mufwfprctxzju38sxreu6xggkmnf81odj4ufnkimfu9gtnuymu6wt","signature":"3584E432A51C2845EE564E842A8BE47B5F578A3BFD67F914985CF06EFACDBFF672866861DA2BC8FDC166637C5944FD0191B02507935CAA54755CCE0C014C8C0A","work":"55bd3daacbdacb98"}}},{"secretKey":"AA5E0D9DFF6916E5641CB32DA2331D2E9F060A3FAFA9061E8819B566C92EE5B0","publicKey":"0CAA902251CA21B5597D0A341C1FB529EB56EFA2EF94471E9A839BB48BD334FF","originalLink":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","block":{"hash":"E4FC7D8BB383D0381D4E1B4168A97294E9C7700237D9C6025A14A5DAB1E2B08C","data":{"type":"state","account":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7","previous":"00EFC54E84809CFAB949069080672DB1626F1C95F76D4840DFC9FA9019531C4C","representative":"xrb_3tyoan5qxardn5644bu5id5bwqpd6i6xyj54domibwouobm1f9sciih9qfzh","balance":"38474583871289134463989261393707562","link":"5D27A314CF6CDE33FED786C404F8FE36D702A4FEB528B6035269A45F688165A0","link_as_account":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","signature":"A13480CE6199235D82A814C162DCCA3731831A44BB914AEE6C83C4D7E5BF167D1161FEF57510C84D40FD704CD8D641CA6F117CA4F1576B6D899B378405391802","work":"4be6d990d670b86b"}}},{"secretKey":"8EB68483CE408EFEC6F62089E2369FE8043EFBD5108621EFEA558D3CF81F2714","publicKey":"826FBEE1D6A5FC5A94DAD9708D0C92B478BBBF42BF6CD5C9F7D66B03D940A312","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"C4CF5321AE75BDDC6AD341624DC13362741B161BDD19ACC29A3A00E5FE1FA6A6","data":{"type":"state","account":"xrb_31mhquixfbhwdccfopdijn8b7f5rqgzn7huetq6zhomd1hen3arkpsrgkffu","previous":"26E142F43A4FCE0A8081BA08123C3AD94A32DB7AA35AD5BF29FB3147BE74E2D0","representative":"xrb_141enxuggjym5wt7zchst8bf3pdnayxhxbtt9za53hh3mwo9jho4jcpf5wgx","balance":"461278453014991359366923062246911","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"744118AD8887A1DA06B50B9C375CAEAA0BC255EF9B09837B7452059A23CF51E4C25A5E5D9954F6DD15C1229267F9AA29DD3E4823FDB0280D21803030E5C9CB0B","work":"90cc2ae3d16264fe"}}},{"secretKey":"1C11D7CA256AF875FD3E148FCB95F637B20A19C95E35A36A099047711F9E5C50","publicKey":"CE6A0A16451B3E6BFD3AB43A4076DB035E2644BD177603AB8720B218F72B7FC2","originalLink":"55B6DF39F7A63B73B7AE2EE0E9FA96E4ABFDAC0D8859CC53E81255FFF780F6ED","block":{"hash":"79D91F175363D7164D3CAAB542DEA89419737057603EEBDA82410EA48D0D3C42","data":{"type":"state","account":"xrb_3mmc3ad6c8syfhymof3ta3ufp1ty6s4dt7up1gorga7k55ukpzy43hfkhtb3","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t","balance":"50490771456474773184599398437","link":"55B6DF39F7A63B73B7AE2EE0E9FA96E4ABFDAC0D8859CC53E81255FFF780F6ED","link_as_account":"xrb_1ofpuwwzhbjuggutwdq1x9xbfs7dzpp1u44ssjbyi6kozzur3xqfy6a36nnb","signature":"649B001A9B61EFE54EFBBD031897B815B345816D3683730DE220B6D8CDFC998AB2D390DC8BC75D7629DF9D119C89A48B3E589DC06DF10E1943FDBDF0C57E910E","work":"3af3595e54ea535e"}}},{"secretKey":"05285E59F97E0A839EE6454143FFA0C00B4B37F57AACD83ACD660CDB5030972C","publicKey":"903D6732CC76B7D2FE2CACCA3A1BCC059917ED95A53348833D4DDF482EF26C0B","originalLink":"4A4131F9B12428C8E02FE3CEFD4CB6E94558E01FBEBE06ED4FE62F1702EEB479","block":{"hash":"AA45798BAAA5A82610D721592CEEA5C67559086512D7D6579636B6948880F102","data":{"type":"state","account":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u","previous":"1BC1E9EFF9A1272D27B4460C5C886C789781D8FAC5B4BB8056EDB781474F212D","representative":"xrb_16edqh7i53ckdi6r8yxo98yej1mofpf99qszg3f3xxyxf38oq3b9987p8zw4","balance":"27125115319940994071664254517","link":"4A4131F9B12428C8E02FE3CEFD4CB6E94558E01FBEBE06ED4FE62F1702EEB479","link_as_account":"xrb_1kk389wu4b3as5i4zrygzo8dftc7d5i3zhoy1upnzsjh4w3gxf5s843kd14p","signature":"0B95F19C8DAE8AB1CDC545DF21345C76D122E679B39143B4F2E3E15ECE5723D950E5D36ADE9F333DE612AF150C700518FCF2C4839444655BAE4693AEFA36540D","work":"42d37ee03844494d"}}},{"secretKey":"99394A9CC72290D99B28CE0A53AA553CBDE35B121AA25180059708EFA87D2F97","publicKey":"8B00834DD9C3F6A9CF1D043F99D8DDE383BAA794BCAD1ACF51C05C07151EE2B7","originalLink":"xrb_17eqxaqyq3ww1ykiwwg8m83x8j4o3znrobud7ppecjogbks4m8tb8ctzqeh6","block":{"hash":"06FF76D448E9136B1DBD76007E16BE93BC75801D124A52E3A0E012E4D34471C0","data":{"type":"state","account":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5","previous":"DB4AC743917B9B30DF9E6A3C531F561577026F5EFE775FA16BB3214732E9E16A","representative":"xrb_17hudi9uc38gx4ozy789cidwt3u1o36azydmt1pfk96pd8drb5bquj3ww8qi","balance":"2645098","link":"1597EA2FEB879C07A50E71C69983D344550FE98AA76B2DACC546AE4CB2299B49","link_as_account":"xrb_17eqxaqyq3ww1ykiwwg8m83x8j4o3znrobud7ppecjogbks4m8tb8ctzqeh6","signature":"17FA668B8175C5AF39FB74BEE0EF4E618FF23BDC9471DF3D401BC92D34F5FA7F6A26AAC118CA304074976367B2E55C914F2920E757B9FC4F0FA2560CEA1D1004","work":"ea8a9cc16ad26672"}}},{"secretKey":"80AF4A5251EB8772EE9EFAE097EA4342F0F70B2F91C62D27A2A550CD0D643E21","publicKey":"0FBD5882D0EC658BFAF3171B50578B0071B807D100D3546C69CFB6F8259D43D5","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"3AE091D66AF43C374FF7E59BAAFB5D0E4F805D0B7F8B6CA9749CFE4EFF2CD783","data":{"type":"state","account":"xrb_15xxd43f3u57jhxh87ruc3drp15jq15x418mcjp8mmxpz1kstiyoqke3zjgn","previous":"245478B8D7C1BCA68288862E94AB837655015C42F665BF3C7978233E96AE54FF","representative":"xrb_365wn7szcuqup6qtwayytcdym74zqnhgetgerb59546bokhtnigq1bxr1aji","balance":"3913200676","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"DCD6897C8D12BF591CB3B79DF59B3F70A2E6FAFFDE260AEAF948C4AA2413249173E126EE853BF86C30C580E9A35C7C12E6C871870EF03E807B5D79D4E4F4BC00","work":"149c22948f65b8a7"}}},{"secretKey":"2D5E34691592D6DF2C25E67778634CB1A47DC5A4774C21B6BA15487D089B52A2","publicKey":"66B82DE57708F3CC022E55A0329E4FCD83892DCDA75D0206576A639A815900DA","originalLink":"E570FB47E058C4CDB2FF4B10E8E4C7CDFC696B5A04E4E1B14E1F7469978AC8A9","block":{"hash":"2A3972C0A305874E7AE780CC9FCF6B9C791CD2D703556FE19551C26FD5A19832","data":{"type":"state","account":"xrb_1sor7qkqg49msi34wof18ch6zme5j6pwubtx1a57gtm5mc1ok18tx1pzew97","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4","balance":"127155117260679","link":"E570FB47E058C4CDB2FF4B10E8E4C7CDFC696B5A04E4E1B14E1F7469978AC8A9","link_as_account":"xrb_3sdizf5y1p86spshykrix5kehmhwf7oon396w8rnw9unf8drok7bojzip7no","signature":"25BD9493383AC4CD78CF7B325C3E9491FC53BC78A6BA95FECC3D3064544F4B611C9FF03C226ABB2267BEEC8C5413292530CA41D2D089E2907005E402F114190A","work":"98499752eb469e0f"}}},{"secretKey":"B00535573E7059DD236340D23497FE94A2F8AB2F5025EF62C2BF60E470BDC274","publicKey":"9E2DE04A9E682FACA6CC0B92F68D78DE38A999172C9C5BD43219DE74F421731B","originalLink":"184E970CD9888F2F286B049DADDC75E2D7AEE538012F3EBD9291678CCD7E6196","block":{"hash":"90490A6A0603C8ED1719A81D76CB50402441E06F7E5A4B5D4735944E8C885A92","data":{"type":"state","account":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4","previous":"93BF83E6AEF103D26B129EBD156BC628C8CFDD1986E3DA5987699829AEFE6AEB","representative":"xrb_3g8k8opyni78ri3y8rku7nzf7ecwoik6g7d51dke19pbp1ur37oe6pypfm8a","balance":"54","link":"184E970CD9888F2F286B049DADDC75E2D7AEE538012F3EBD9291678CCD7E6196","link_as_account":"xrb_184gkw8fm46h7wn8p36xoqg9drpqoukmi1bh9tys76d9jm8qwrepeqhi5iik","signature":"807F6EBF7480E7728D65D98EEEA38FE345C2DDDDA4A1B7538E826FF6C5147263DF97B07483CE8B086EFE8EE5D331AA1BF5E2A8483B05DE8B36C7A7BB4D23BE0E","work":"5ac5c922540dcdde"}}},{"secretKey":"A47503F81793D500CE57BB5760C9BDD783F074D8131637C669630BA375C75F4B","publicKey":"EBD545077EA30BA0C821276382C69E5ECB2409DF44625D6704F2BBAA66069F2A","originalLink":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u","block":{"hash":"6FBBE50757DA12716087B8E64810C4AE9E009FA0523E5950CE8A6384F15A5C7E","data":{"type":"state","account":"xrb_3tyoan5qxardn5644bu5id5bwqpd6i6xyj54domibwouobm1f9sciih9qfzh","previous":"125485C8C78846E54CD4C63B916BA23B6B17F3CDE84D0DA86EE1987D00DF48DD","representative":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d","balance":"1385479593243799198","link":"903D6732CC76B7D2FE2CACCA3A1BCC059917ED95A53348833D4DDF482EF26C0B","link_as_account":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u","signature":"BEE3EBBCCDBC9691D8A83910ABB6383B2CC6B78590D66C11673FDA08EA4410B5A6C6DD57D7C9CCB82DCA102468B40016CFA7AFA255BE91A24CCD4375612C4D00","work":"8493c2453f0c6f6a"}}},{"secretKey":"7FC679601AB70569790F9D0185F8D5BC6E3C12E24C98B5AECBCE2BD611085313","publicKey":"ABE542434CAB5176E2B93103D8A9941A11689066FBB3F4DED48F9530F634BF98","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"4A6BE090276F06C5BCA6364C16701C1EF7AEAD5E772E0488C13038658B2F7282","data":{"type":"state","account":"xrb_3cz7ab3nsctjgujdkea5u4nsa8ijf4a8fyxmymhfb5wo85u5bhwr4tyim984","previous":"59CE7057F85131F19FA0747274349E0443B1FE7910664A7151023D8F5C5F6257","representative":"xrb_1bt7m51qby6hfb997kcgz7uqec3wtd9zysfn3uw7cww5xd1curk9kxa1xk7q","balance":"321933815417","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"277A7DE9C618A54471A2B536BFB476D037635E9C1EDD91EDACBC815DCD46F91AB32D8DF4B2807491FC131F9B0289A19F77A44C6813E4DD8F20C8EBD92539630F","work":"112c31faab98ea4d"}}},{"secretKey":"6CA0E92F2E79217C7E6784B44042366A4304EF90811C340BCCC7D3F04615EEE1","publicKey":"77FA25DAC861D887C9DABA0184FD0F880CE707E883A583A90A4AA85096A689DB","originalLink":"A9A62BACFDB4D8815446611E9373D5675A3BE0C53AB727F34C81E7698E0D575E","block":{"hash":"529CB4AD1AB6E065AD929F4642728D760837E440BF14EE84A13CF78CB9DA1F39","data":{"type":"state","account":"xrb_1xzt6qfeirgriz6xogi3imyiz41eww5yj1x7igninkoac4dcf4gu758new4s","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1argarf9qh7q734nxdaimw9f3pkibnkq8pkbzfzd615esyurdadmpp65drf9","balance":"95085371185478226853083767923958","link":"A9A62BACFDB4D8815446611E9373D5675A3BE0C53AB727F34C81E7698E0D575E","link_as_account":"xrb_3cf87gphuf8ri7c6eraykfsxcstt9hiecgoq6zsns1h9f891toty9ze36ye9","signature":"A9631CF2D9259905638BEF08903ADA87873D3F9321B282C5A2DF02EB5DC0BBB636CFEE246721226289FC186AAEEA681C8D0EF547BCEC1B9C4FF440098D68CE06","work":"adbfc259da89bb47"}}},{"secretKey":"57699B0449C2B84E6B45E3326F1B4BB352D514A700A7B7D96DCF3C8C9EFC1A51","publicKey":"A5CEBBF55AD639AC0B0150A6CF94CC7CE07F0A6D40A685C05D19420EB956504F","originalLink":"177621A4202498FF499C7BD051D92FF871AB64D4839D1BD20F83E75AD0336222","block":{"hash":"A07BBE0DBFC043F0971153BEE87E21D38778CBEA4002090F3A039F0090811120","data":{"type":"state","account":"xrb_3bggqhtooojsoi7i4n78sycerz91hw78ti78iq17t8c43twoen4hg5uxh369","previous":"1A21DA3D86B8E2D8D50E00BB5374FCB553D576503BA15CFF3651C2CDADFF01A2","representative":"xrb_3jrc4imac1nox3d79fx7856y38mnknex6fk6fujthkcn79xgng8qk53dg8sr","balance":"99","link":"177621A4202498FF499C7BD051D92FF871AB64D4839D1BD20F83E75AD0336222","link_as_account":"xrb_17up68k41b6rzx6sryyic9ekzy5jofkfb1wx5hb1z1z9dda58rj4qieiwx4g","signature":"837A9B3F533878572B548FFDCE5C1A1EB1E81B1F6EB2E593F4F0AA371133CCA0873002BB21E3553FE65025A91EBD0B1EA96EDE71D5D53717EAC8DA1576351C0B","work":"fedb52961888b000"}}},{"secretKey":"E632A8EFB89665672FE614B5D49C72C1285E417DACCCC7A7F425880AEA4BCA25","publicKey":"B281433D0C6F013CF51C3D1406A51EA892F69DEEC871115B9F882916FC9C31C9","originalLink":"xrb_18ijf98cu8e6wawdqrhjiijamt7nm4i3y5jqnw4rwnggqt96pne76dfqxqf8","block":{"hash":"C5CC278BA4247A236A6170CA2F5A023596AD968AF683E21E6AF90270FB38F0EF","data":{"type":"state","account":"xrb_3en3aeyirur39mtjrhan1tkjxc6kytgyxk5j47fsz43b4uybregbzdtk8g55","previous":"4F7056D6B071FE58E82E372E3EEC0F32CF83EF16021CC645E7EAA3F63F7E23FC","representative":"xrb_1j4s4ue3nq5pk4o6qyprwb3n948cyostprshjayt1tqmqszzsjo73kndrud7","balance":"251965366362605249799582972510128756","link":"1A1169CCAD9984E238BBE1F1842289E8B498A01F0E37A7058E51CEBE8E4B5185","link_as_account":"xrb_18ijf98cu8e6wawdqrhjiijamt7nm4i3y5jqnw4rwnggqt96pne76dfqxqf8","signature":"E6AB9B4DBD70691D4DBC6049EF149F05D0267946AF0A2738073C5682D6D254F3F5EEF405DEBB94F77B6D73D458CDB73701AF5A3355C5478C5F4F5F0A52FA3805","work":"881012d087f4f944"}}},{"secretKey":"8310C2CB493870A78F9B5B58D22D72B9B67015D32DF67BFAB86DFD3E8CAB9604","publicKey":"CAB538CB875837875AD779D729860430FCCB61378CD9CD19F565965A43296C57","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"362622EAC723A8C0FBC7FEC11BF7B8C1F2AAB2E26CB83F367D3910E8ED457A95","data":{"type":"state","account":"xrb_3koo957rgp3qixffgygq7851ae9wsfimh58ssnezcsepdb3kku4qbnwx8ozp","previous":"83AE04CA116A644DAD3EA4F96D7C007B5289C9D30E2024900781E52CCF7896FF","representative":"xrb_1ya3qmekr5nqft5i8k4ytpmnhnm59qcc5q4jzrc9cdk86b35iqird5ma4e7s","balance":"3077146148461332821930","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"C261C1978B1189C4420203A340908D2E96B6CE2984D5023E3B730C935F30A7CBC4F612A222691416F3B002AD9B393B32A55C3391BD7B27ACC6D284BE084E510D","work":"2f5ca203daa59070"}}},{"secretKey":"BBB53844B2DF452AEB43E6780539D9432967F7330EAC17F00B2548EA0FD0938D","publicKey":"91A4995B054069C41E54F3EDB886195EFBC65F4366FA46B56AB417F38588F0AD","originalLink":"8CF9DAC6ADAEFA27BF037B037DF1A827284FCECC7FBD2C0EA4FF44C591617F20","block":{"hash":"B952449D6A84070B7BE45569BD0CD22F132106DDC9D8872A4598A5F3C58DCC2D","data":{"type":"state","account":"xrb_36f6m7fici5brih7bwzfq453kqqurshn8sqtattpof1qyg4rjw7f6mbejxkx","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1rkbzfxarumjejm6tgahhor8y5xneuwgpy1akf38aboox5o6qmg4389hch1y","balance":"6527545549481789","link":"8CF9DAC6ADAEFA27BF037B037DF1A827284FCECC7FBD2C0EA4FF44C591617F20","link_as_account":"xrb_359sud5cudqt6yzi8yr5hqrtibsabz9erzxx7i9cbzt6rpap4zs1g37k6bcr","signature":"02A1A8299056AEF7F5C5364C44F560A59155807C39728088CD66F575BD6D67DBF80D216CBE9985833527C62C7BFE80AB08DC2ED3B661202463E739764A048103","work":"2f4bf3616388161d"}}},{"secretKey":"1D0E82BE718C8C31AB2763D05AF7C5C12A84B87B6272B02CDF1EC830C899BEED","publicKey":"6421F564C3F21BDDF9E9C981F92360F508BDD5BA0571653CF2714E4EC446ECD0","originalLink":"DC833A76AEADEDD225EC45137699301C608586840EED59244801B0D261B2A3ED","block":{"hash":"7D0016D79E9151269FFF11205CB3A9640465A36467957F1F971AB6BAAF467E3B","data":{"type":"state","account":"xrb_1s33yoke9wiuuqwymke3z6jp3xaaqqcun3djenyh6wcgbu46fu8ibw54aez7","previous":"3316E437576B34E298A683A994D271D2A61A60F75C493D093125CAF3A978ADF5","representative":"xrb_1rzrcick31dc3jppteku9prshcachh9445kim4ogmnhnidmdxb6tcas3dcyu","balance":"91533086740499844","link":"DC833A76AEADEDD225EC45137699301C608586840EED59244801B0D261B2A3ED","link_as_account":"xrb_3q659bucxdhftakyrjamgtem1951ip5aa5qfd6k6i1fitbiu7azf4qfgzy61","signature":"C91A6A04EE8592CF6EDC83D38A2DAA446E89E1373D1B419451A2E36D9FE1AADFAB31C55817FB803E3576BBB717785A6F8FB8D327D5A5DA2D58044967CBB8F403","work":"d2ef3d1f92cb6465"}}},{"secretKey":"8943C31B2C9732FE38A1DF1B1D1ECA8A95216B1F024998187987E46B6049E2C8","publicKey":"7D91D0477F9530B0B0BA85FFC0403D11FC47179F84857DF9904D6CC1B39954A1","originalLink":"xrb_31hd45agyjczya7yotxtq6kcz1mb91ebmhpxzhxz857tqzc8ynh1dq1sqk4b","block":{"hash":"DEE11DA65027EC4DFA8DE133BA8B9976EA168C12CB5E7EEB559C5230D18DB513","data":{"type":"state","account":"xrb_1zejt35qz7bip4rdo3hzr315t6hwawdsz367hqws1mder8ssko73feiqmq5f","previous":"48980F4824282C2945B9A79F0268C7A50AE17A71822B3C7412C424EFA007CBE8","representative":"xrb_3h4rnfnrpfn7equbo7ujq8xj74a9siwgpmabfr8yszi38mtbgsmpfgz8ornf","balance":"29601341917672366727","link":"81EB10D0EF455FF20BEAEBBAB924AF8269381899BEDDFBFBF30CBABFD46F51E0","link_as_account":"xrb_31hd45agyjczya7yotxtq6kcz1mb91ebmhpxzhxz857tqzc8ynh1dq1sqk4b","signature":"ED555F59F8DF2DCD999B45E4E73175D9F45D1A37038F308623FFCB24302CA07272CCA2B8417A497E6130417D4091C168134F6C3ED22CEBD489F27F4A9C612105","work":"aeed38d74829c339"}}},{"secretKey":"BD8668893ACB69749D0D59D4A1AE3CC2C3F3579303A1E49236EB7A36A777215E","publicKey":"230E461A7BBCB728454EAD109F0ED0DA504D25735A49FB7EB2006CCFB785A173","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"6458C501FDA3BB169EC8C07E9EA144EBF5B188ECCF83C9311E5A85E164E98A16","data":{"type":"state","account":"xrb_1argarf9qh7q734nxdaimw9f3pkibnkq8pkbzfzd615esyurdadmpp65drf9","previous":"DB63EF281A52D19C01E403067B843B54391C4F2B11FDEF292F1832F60B9F40EC","representative":"xrb_1sryfjr4q7pitn7cu5z6pyy1fzpk4di8fb7ihb3dwkqn1b5st7wsd7ey7c9s","balance":"51","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"8C5BECC44EB4F2BFD31BEBA5939D29829C85BF3472400D1C3298C1F563ADDCED5A5C7387B1B4D037DF55FDA22900976CA7337AD0D33ADAB3EFC77806CF28370D","work":"5d4b630c3172ee5f"}}},{"secretKey":"E632A8EFB89665672FE614B5D49C72C1285E417DACCCC7A7F425880AEA4BCA25","publicKey":"B281433D0C6F013CF51C3D1406A51EA892F69DEEC871115B9F882916FC9C31C9","originalLink":"D04C9EDDCE186152C79A9CC5073FD7F96965F8C8E07556C60EEA0191542F045D","block":{"hash":"A0A83E4BCBB06DDBF38D14C0A707F592EF8E5A90ADCA0EDFEB3C16CC3FF7412C","data":{"type":"state","account":"xrb_3en3aeyirur39mtjrhan1tkjxc6kytgyxk5j47fsz43b4uybregbzdtk8g55","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1rzrcick31dc3jppteku9prshcachh9445kim4ogmnhnidmdxb6tcas3dcyu","balance":"375906666","link":"D04C9EDDCE186152C79A9CC5073FD7F96965F8C8E07556C60EEA0191542F045D","link_as_account":"xrb_3n4emugww853cd5so9871wzxhydbeqwejr5ocu51xti3k7c4y34xkbsyhwb9","signature":"0C4BFA05EB34112BEAD5DCB5B67AF95CF85C8988BF44CD0FB1B1388166E868DCEC5E3F98B721B985C1787AD34700A11972A01A16595A70222BD69A6535EDAC00","work":"cc34ec005c8e8aee"}}},{"secretKey":"D355E02BB8197C6099A1DDD69BD078CAC6EB7308538ECB6FFB79148AA2729E85","publicKey":"8789F4553355847E32C56C582D35ADCDECE23033CD4099C8EE787B9A49C10E2D","originalLink":"C05BBB2FA6447E0A95C443D9AE5378DFE9DA46F83E385B563D7361A45B0E80C8","block":{"hash":"243B0D57E391F364E47FB6F67940609C80EC9EE87CE5A25AD442CEBCFAF227A2","data":{"type":"state","account":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a","previous":"EBAB32F790772DACFB616651E9F476DAF3B6005262627AD1926CC15DF5E852F3","representative":"xrb_3mg9fmmnt9feg7o39txexmro48isx3xwi4nmibkbj79hd6arwhqrg476rbcb","balance":"3081092678607865020744569","link":"C05BBB2FA6447E0A95C443D9AE5378DFE9DA46F83E385B563D7361A45B0E80C8","link_as_account":"xrb_3i4uqeqtej5y3ccwaiysosbqjqzbub5hihjrdfd5twu3njfix18a1pxphqy6","signature":"326392762B1FFC8D0B2153DBDFB570FD0367AFF02B8FA7404481283BBE2A4FC85398D97738062D58B81039DEC0F8D2901E85E27F7ED2F0A1B8E8CF0119FE360C","work":"e90b1e15dc13673a"}}},{"secretKey":"44972A8DAD0060DF940F26E76A5FF5E5DBD7CCAA5FAE4D4BD4BCBCB4090FF689","publicKey":"2C96B77D14A2E5D22905E1BC2913EFA611E56D8573978098FA03005B82E9AE18","originalLink":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7","block":{"hash":"20A479AF249682C53A20FA9A5482BDD1077D25BC4C242510060B8348257925F0","data":{"type":"state","account":"xrb_1d6ppxyjbaq7tanidrfw76byzbijwoprcwwqi4ehn1r1dg3gmdirsgw3ekmu","previous":"89599C6175830CB34CC6A1105C05D6E24757174730D984E3185267B6FD2CA5CC","representative":"xrb_1df19p1s5dyucp7q9eoshogondpdiz3qs3bdt7fd4x1wey6woq57seixxxu9","balance":"6741169979828450350","link":"0CAA902251CA21B5597D0A341C1FB529EB56EFA2EF94471E9A839BB48BD334FF","link_as_account":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7","signature":"36AB42CC0BC230BE06425B1B4CECF5453B5A9815DFA7975E2A6A8913526660A4BA806E0EF220C03EB7AF5A065794ADACA7CCDD3056DD9176625262134536E702","work":"9ad7bc1acae36943"}}},{"secretKey":"AF795836DC1207317289A5D39D42E6DE3076AD4A1547A37910DD570408D85D63","publicKey":"63ADAC1DF19D7FFFEA6A3DB538C5C451A6604F7A07F39A81F5F10A1B89F25DBB","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"363307285C62E6CDEA934CD56780541738C66B9E5D56011E28B09CCED7DF59CD","data":{"type":"state","account":"xrb_1rxfoigz59dzzzo8nhfo954wanf8e39qn3zmmc1zdwac5g6z6qfuw3hx4h6q","previous":"F542ABEC07481EB71789DE93664E5AE15BF2EAF3A86DBA740BBB2BD9351BC093","representative":"xrb_15haasm3cwa4rtf19jck3x7rz3fj6eqsh1mdwj7d6qq1cnza96fm1bntmyf1","balance":"50735586113414151","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"D38ABA3FAFD3371F17DEB4FFE7FB60169B0D6CDAE0F910F952EB94695D1F8D6A6699B14D60F24CD23EA4285FEAF9B1C6E2203861FD1724A28BD1CA8824898E0D","work":"96bb9b66b7667dc4"}}},{"secretKey":"BE27112FB64FDDBE82AEFC0DC0D024847D3A0B4E1316DD78C502F4C9C081D32A","publicKey":"D18B363F3D9493853E38EE0455D7C131E684A972F262087D03BEE24701069D36","originalLink":"A539206ED33EAF49EA40FB75FBB46B3328C7CBDE79835C08A9E1CAD1AD839836","block":{"hash":"7B32E32B4A7A6376C2DA3E8A9877BD67DE24BA981EA7A616F45DFC77D5C00B00","data":{"type":"state","account":"xrb_3ned8rzmu76minz5jui6cqdw4eh8iknq7wm433yi9hq4aw1if9bph6163qza","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4","balance":"112802082813354456036058838188","link":"A539206ED33EAF49EA40FB75FBB46B3328C7CBDE79835C08A9E1CAD1AD839836","link_as_account":"xrb_3bbs63qf8hohb9o63yuozgt8pesarz7xwye5di6cmrgct8pr983prr6y9mo3","signature":"D52487DF1B959FF56502C83EBC82C3F868DA067325DF174232C66E2DE76A363E12DEEAB303B659073467AB2510B9BEE40C073E7EABAC43C0447E9A8955E6FB08","work":"650b5d4873b9f780"}}},{"secretKey":"C0EC6F765B1BA0FDCA8462603339ED0A662D9678CEA4EA7BB04BAAC0ED533FA6","publicKey":"ECFF76F7E0B4019A42664FF2C7518DE606C4E4CFE481D86B256BCEE6310EFCD7","originalLink":"B92398467347221CDB163A8AE125EAD430C28C781D64C6E83240110CDCB0A8F7","block":{"hash":"2CA8561C04B639DDEDEAB15036E8493CA53CCCE41547C796BFCB291320EA08FB","data":{"type":"state","account":"xrb_3u9zguuy3f13mb38emzkrxarusi8rmkezs63u3okctygwrrixz8q4odmydgp","previous":"C93778E58FFC45A2266C2A1B6B2E72B785C712DEB2B9B382DE166F21D2FBCDDD","representative":"xrb_3ned8rzmu76minz5jui6cqdw4eh8iknq7wm433yi9hq4aw1if9bph6163qza","balance":"542842148077788444075179392","link":"B92398467347221CDB163A8AE125EAD430C28C781D64C6E83240110CDCB0A8F7","link_as_account":"xrb_3gb5m3598js45mfjegncw6kyoo3irc89i9d6run56i1j3mgd3c9qfxkx11q8","signature":"7B8616EC310F3AFFA822EC4ED0F5CD2FCD7FB50A1FD9392D04E4C64981ACC35B68417983748EC06B3AA6DF656705CD90AD7656D8FFBC6FAA1EE293D6B2BB130B","work":"3c38d4d162a8ea47"}}},{"secretKey":"781CBAA70F56F651660FEBD67F07A1F9AF96369D2DE636F35F6DB6CC25CFA365","publicKey":"291D97CD0D6130661A27C426455E27A73D7C6FD0CB7A567DD9E26965C0F30BDF","originalLink":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm","block":{"hash":"66FBEEFDE5FFC63AABC976879036A5ADB49F2C2F2233C5C3EAAA8807114977E6","data":{"type":"state","account":"xrb_1caxkz8itrbierf4hj38aoh4hbsxhjqx3kutcsyxmrmbeq1h84yzd3zmo6mh","previous":"D0087554B828D4C6F3F9B5A9A564FC864A2DC55DCB7509EE80F6D94584F91EAC","representative":"xrb_1m4y8yhfxie7ut5h78jeiuuuyhj8575h4b3unnjf57qu3cxbjjrm1dpfkmqm","balance":"6556680678169875535106309866559069163","link":"C83CC92338C75AB4F4F7F97F314504BB107E494BA0C30CC18D7B91CAB4BB67F3","link_as_account":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm","signature":"FE4DB24DF02D6E7AA996DAD2D114CCC3DA505F0098E713E613919C542EE27C9FC420ECDEB1D9235410A55ABF207EDADAD47397451F60808D12511DAC938AE20D","work":"bd585f3072e76669"}}},{"secretKey":"70F91C56127C56BBD2180D14193DF6692C408F010E5EECF9C648DC1ABD134F96","publicKey":"E9EBA3F6D439FAEF916C4DA556D262A04CE1D4963CDBA858E2E5A0109E12D81C","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"9E61772B829B89AD3DCE2F8E8AAFB11D6A30FDC44D72049E309CF19C69B26F12","data":{"type":"state","account":"xrb_3thdnhufaghtxyaprmf7cub87a4ew9cbeh8uo3eg7sf144h37p1wattr41ug","previous":"2445835060EC2941822E591075AC48AACDF6FE89B37F1F8B89C508CA0C05C2BB","representative":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn","balance":"2278231","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"4A26917330A83AF4EB7679B99A538508D4E00F87C9A4E0C71EDA462CD1F728DCFECA6CDB297AF20530D06AB1CA8D304B6041961841979D4CCAD4636587D2DC01","work":"e0524520f2219b4b"}}},{"secretKey":"6EF20FB735DEB2830A29358830026A16E948B2B47962BE30A1BE1FBC4B3207FA","publicKey":"9CF8EED728650FC6D24292491705507108D596D0CEF218866FDBC1568CF8129B","originalLink":"C9A278F95FFDC73A15EF0BD2280A76256320F53275892AC907DA3CAEF2CC5B82","block":{"hash":"D4E5460BACC7DDFF3C77BC5B807743BE6BDF3C0AE0C99E966A1A4933FBCA1142","data":{"type":"state","account":"xrb_399rxudkisahrub676kb4w4o1waatpdf3mqk5458zpy3ct8hi6nutr5bayu6","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1xzt6qfeirgriz6xogi3imyiz41eww5yj1x7igninkoac4dcf4gu758new4s","balance":"1566126","link":"C9A278F95FFDC73A15EF0BD2280A76256320F53275892AC907DA3CAEF2CC5B82","link_as_account":"xrb_3kf4h5wozzg99acyy4yk7179ebd565tm6xeb7d6ihpjwouserpw4we6h7aeg","signature":"6A652E652F24114402EE1E0890DF04AB1D479A530ABB33966E4CA6AAC80340DA73BFD2DD9AEA9EBE6E5C1417502DC4E6B132502B5CDC890A79BFF2054708A003","work":"7083b4a41669fc4c"}}},{"secretKey":"43E1EAFB5B08196B99B0BE53BF9B7F193770DC57887A1A24D80F99C6CCA54539","publicKey":"6D32FE9CFB4C0A32DD4B28D186BBA9CE1CDB062976641741006BB73596394519","originalLink":"B30951846B0A9CDA66178D826E3E25AF1CD147E2A53B793B031A5C8FE9A64165","block":{"hash":"D52332A7D42DB33B1471CA54FA28CFA21A9910B14C714A3589EDD96B284CEB12","data":{"type":"state","account":"xrb_1ubkztghpm1c8dgnpc8jitxtmmiwue54kxm64x1i1txq8pd5kjasirnamico","previous":"D36D6D2269E146D02DE78046E5652AD18C502E1A7897342A6415D7E5CBB2DCFF","representative":"xrb_3bggqhtooojsoi7i4n78sycerz91hw78ti78iq17t8c43twoen4hg5uxh369","balance":"36068598836","link":"B30951846B0A9CDA66178D826E3E25AF1CD147E2A53B793B031A5C8FE9A64165","link_as_account":"xrb_3erbc848p4nwubm3h5e4frz4ddrwt75y7bbuh6xi88kwjznteid79agqdn6q","signature":"9A778AD4975E76ADA8C5780DD0D0E7139AF6B9190766B01A7DAD30AB28E33464CB25842487949FF7B538A4BBBD8D29A8FB45F48A6186B49BF72DE43738AB9F08","work":"1d03a78f0c8c9fe8"}}},{"secretKey":"99394A9CC72290D99B28CE0A53AA553CBDE35B121AA25180059708EFA87D2F97","publicKey":"8B00834DD9C3F6A9CF1D043F99D8DDE383BAA794BCAD1ACF51C05C07151EE2B7","originalLink":"xrb_3thdnhufaghtxyaprmf7cub87a4ew9cbeh8uo3eg7sf144h37p1wattr41ug","block":{"hash":"BCD6805B671170B1BBE7EB48A344E30CC1A9DC4AF1FC9A3B9E8C50B730F6AFFF","data":{"type":"state","account":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5","previous":"8417BF6305F3E14D14F0C7DA11EA48E1900D23CE647F3CF797CDAA50EA800BB6","representative":"xrb_1tfdcfpy81nz5m74466g3mjdr8riodbqswgp4nnkmmj5cuedkd51apf6hr64","balance":"44906","link":"E9EBA3F6D439FAEF916C4DA556D262A04CE1D4963CDBA858E2E5A0109E12D81C","link_as_account":"xrb_3thdnhufaghtxyaprmf7cub87a4ew9cbeh8uo3eg7sf144h37p1wattr41ug","signature":"67733EA368AF9E1A7E843F2CF3B530F613CD86FEF8424DE96E237870ABD0CA1C6A704C4D1560F6973FB922529E6C5CFEAF1305AF11B3CADA493580838ED3DD0A","work":"c64acfb712911bdf"}}},{"secretKey":"AD22137DD1D9C039D2B1AC61E7F50CC309AA8E5178A9B990A9110DF1E071E891","publicKey":"24838627B28C6372F83EF9630BE58D493DE97BF4BCE5C1CB2818713B7726788A","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"3076181DB171B4088DE677D757916229052D56244C23F29545F0B17B20033DC4","data":{"type":"state","account":"xrb_1b65irmu7555gdw5xyd53hkrtkbxx7xzbh97r97ki85j9fukey6cqqm1gzmy","previous":"C968F48459F7AE2AEE4C5912FDF02AAC369AA95BC4DE3B5C8BB0919824E8235C","representative":"xrb_3imwuiebzmw6cgqhbf6tk5u55tnq9hjk1dsptubgeaezsaidbbzezrk7p97h","balance":"12995764805506","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"C57A6B081C96379198AD0CF9B98509A2A573A56A0EA70BC7F5F6BE1C1889509C4470460D309A2041A29D17D9EC4667695DEAFE67A3A402FD207AF20DAA416F01","work":"5b12c1a3a61ce06a"}}},{"secretKey":"AC5799C4673CB7127A335B23E72273C323F54229E7EEFA13DD1594254F029FDE","publicKey":"B00C8393953D43DED6A38721B2B8C82FADB264A028ED44BDCBD85394372B6E4E","originalLink":"8B62F3478E6C35412E26E7C8D8DA3AC3B8C7F0D48D7E775786CFC58B90A4859D","block":{"hash":"B6C78D997FCE77171C5891895A34AE50058D57D9AC694B63AC061799F910481C","data":{"type":"state","account":"xrb_3e1eigbschc5uudc93s3pcweidxfpbkc1c9fakywqp4mkiukpukgxdbuf3xt","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1argarf9qh7q734nxdaimw9f3pkibnkq8pkbzfzd615esyurdadmpp65drf9","balance":"55","link":"8B62F3478E6C35412E26E7C8D8DA3AC3B8C7F0D48D7E775786CFC58B90A4859D","link_as_account":"xrb_34u4yf5rwu3oa6q4fsyau5f5oixrrzrfb5dygxdrfmy7jgacb3exq5t7omc6","signature":"80347682E476B0041A326B3EB649F3737621BD8059547A768FB59189D7A6E888672C20FC3720892B03CE7D9E518C307AFC9F3221BB5F6C397CABED9D1AB14C06","work":"ea4beb276b4c4d71"}}},{"secretKey":"1E4782A13293F5395D292552845562102B909A314F6D15C2E7EDBA13E3A5A451","publicKey":"90C6435504BAC8E9CF7742088B34EC429228829ADF22C786B8EC73E03F03A12D","originalLink":"E7CB81B46C883F5DAA872BA620138AF58BA202517219BADF825C2D522A4EFD78","block":{"hash":"446DFD70E418742DFEDE331412048A00D6FDFD4B6DE4E3CF4182A7EF44BB82E3","data":{"type":"state","account":"xrb_3688afcibgpax99qgiiajetgrink743boqs4ry5dju5mw1zi9abfcfginuup","previous":"4E41EFDD3986AADE5864C8BC5942366B303677535648A0342CD75AB7338F2382","representative":"xrb_365wn7szcuqup6qtwayytcdym74zqnhgetgerb59546bokhtnigq1bxr1aji","balance":"3547332003278135458661071801","link":"E7CB81B46C883F5DAA872BA620138AF58BA202517219BADF825C2D522A4EFD78","link_as_account":"xrb_3sydi8t8s43zdpoagcx861broxedna374wisqdhr6q3fcao6xzdrttsnddcn","signature":"414B1754B95079F3A503BED5D539F24185FDFADEEB1E31A058D88338D787786BC9706B436893748CDEFAC244B2928BB93F49D34AD787B60FE7177CD280BBE60B","work":"8996c4e7e2713d3d"}}},{"secretKey":"6B2153D0A4B53C0E6678741DFDD73D95149741A0E96CFDC9FBA4659B9350DD88","publicKey":"15FB5C0FB504CEE8ABFF14C75417CD0760A8488FF973D02CD91C965997848D37","originalLink":"xrb_3iy8tenzc3mcc7jprs6gszcsdbrnusfnsjyp8my3f1jwtshn6mdowe5gpytj","block":{"hash":"1B1F4CAF046206B0A167E185BECDBF9AC3D367A0522654EDFA6C791B5B984CE3","data":{"type":"state","account":"xrb_17hudi9uc38gx4ozy789cidwt3u1o36azydmt1pfk96pd8drb5bquj3ww8qi","previous":"4DB2681BF580E11680FDF31D532D1260095508414D3F0B7D9732061F0247414E","representative":"xrb_1ya3qmekr5nqft5i8k4ytpmnhnm59qcc5q4jzrc9cdk86b35iqird5ma4e7s","balance":"134990687345632370621166","link":"C3C6D329F5066A51636C648ECFD595A714DE5B4CC7D634FC16823CD65F424D75","link_as_account":"xrb_3iy8tenzc3mcc7jprs6gszcsdbrnusfnsjyp8my3f1jwtshn6mdowe5gpytj","signature":"9DA4D6797B863A8FA771C11C72D9940B56B76F6AE718B6299B8852F5A21A866A9C49DB8855DBF53BBE6EFC472667D87086A04A009B038F1E131837A3DB7D430F","work":"15f94f5d083f3d01"}}},{"secretKey":"62DD52D845E1691401DAC7C99E1C53BA19334837D02251E96BACCB49BE55F6D5","publicKey":"C83CC92338C75AB4F4F7F97F314504BB107E494BA0C30CC18D7B91CAB4BB67F3","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"980E59B2289A15486A6AF7BE05F8F45945A63357602F2B61D508FE13EA1D03D8","data":{"type":"state","account":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm","previous":"55CDB823E5A195F2C1448A7B9003888DA41DBC1206F4583869B4F49CA38B202D","representative":"xrb_1b6dna1x5rhu9pb9pype55os4bdtn1skom4oz4mhwdeo4f33tm58uzjr3zn1","balance":"591575","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"46226EEE7E8D9333A8622FFF4D2A6FA5DAB185599C70C606BF8E4977780AC63E5900806F17E2370DC782564A65FCBCE0A8DD355D22438AF721F13507A3446803","work":"73220d0fcb749578"}}},{"secretKey":"4F9F0E7009BC65A47C790954CD40241CA696ACD9A8232FFA251FF03C3650DDBF","publicKey":"2F47B8E9A97554F2B23CEED1D02F8B028B48D5C9423CC2420240A4970A930C86","originalLink":"06866AD739999217B1153ADE04544899CF16CC58864C59CC7FE70C2AB335C23A","block":{"hash":"674331E959800F14F57DE53F4B7634A47DC3DC25C16C4BE60C325FF01779841D","data":{"type":"state","account":"xrb_1dt9q5ntkxcnycs5supjt1qrp1ndb5cwkijwrb316i76kw7b8568ib54rtqn","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_1zejt35qz7bip4rdo3hzr315t6hwawdsz367hqws1mder8ssko73feiqmq5f","balance":"596778240712844447429732","link":"06866AD739999217B1153ADE04544899CF16CC58864C59CC7FE70C2AB335C23A","link_as_account":"xrb_13n8fddmm8ek4yrjcgpy1jc6j8gh4u87j3ked989zsre7csmdijtkajqxkm6","signature":"CD5738C0BBB618D1AA366BC52490D3D1BAEBFCCEDB83F812BD193320E805A38BBAE66B33AB310BCEEF6C4ABF5F48544830EE562D0E192003A35CB078CED5FB0E","work":"53ba29dda3754e6c"}}},{"secretKey":"D3B717446342579DE1F0D43DF7748E91FD5E4D74A90B8FFD57440959C09D244F","publicKey":"60E0A4146F972CCF591EDC7762B8BB8DF06BE3B48B42ECCE7BBED49F32B83E28","originalLink":"1DAB083394D2FCD31F23A568C62E7C38A3D68D63882FEDBB81E934ABFA03AC65","block":{"hash":"A5D2F83D7ADF6231AED89740FAADF37045DE04BC304170123DFA90A00CE7ED9B","data":{"type":"state","account":"xrb_1r91nic8z7sesxejxq5qecwdq5hifhjub4t4xm99qhpnmwsdihja78pa18r1","previous":"CDB608E3C0DEA3813CEFB14FB3B08CC502BA87206D31789F4F80D38BD6E02218","representative":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d","balance":"81169","link":"1DAB083394D2FCD31F23A568C62E7C38A3D68D63882FEDBB81E934ABFA03AC65","link_as_account":"xrb_19fd31ssbnqwtehk9bdarrq9rg75tt8p943hxpxr5tbnohx19d57id9emg63","signature":"6D4DB7444809F332C19C8A2E7F55FAC08FE7A8CD638109E9134BEB382BF1F0EA01A4D6CB462FD0328B290B38AC0EB8EB671D9C65723F7843F985AE2781A8560E","work":"1200c0cc80745b68"}}},{"secretKey":"C0CB015BCA0834AC827B6259B48C052F7D62692DA1FA21DCDF755CFD27ACBE43","publicKey":"C3C6D329F5066A51636C648ECFD595A714DE5B4CC7D634FC16823CD65F424D75","originalLink":"xrb_1jnwfsfcpxtonh5w686bbmwy55dew6ryg9o63poyssyq369cbyf9nfypzosk","block":{"hash":"39E2D1C5818F5DFBE19B42D5E48AEA8C37A6337BC93647EF81A72904B70186F6","data":{"type":"state","account":"xrb_3iy8tenzc3mcc7jprs6gszcsdbrnusfnsjyp8my3f1jwtshn6mdowe5gpytj","previous":"F5004903F7AAC66EEF9DE58D554AF5603A555B7D14A8DB6847F00F475AEA4071","representative":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4","balance":"3752957032813","link":"469C6E5AAB7755A3C7C218894CF9E18D6CE131E71EA40DABECE7D7090EA4F9A7","link_as_account":"xrb_1jnwfsfcpxtonh5w686bbmwy55dew6ryg9o63poyssyq369cbyf9nfypzosk","signature":"6413D4A62797C0E19800F4C4184C3C449F36E6A26285A8E738AE55E3A9CBE4CA31E2AEC26B8ADB837699A9839ABB2EF37CA62284499D976A961AA922053DED04","work":"15b0572579294a73"}}},{"secretKey":"738E05DBA91100568452ECB9A0FF4E7A213DA2A2BD4FF80FAF8814AF3692B71F","publicKey":"E303F1A9A09682023E4423FCF11B2F7A7FDA33F97F8F89F02F1B78996106A6D5","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"C1C3AD52E62832C16756E41B4E38CABEC8763A043C22F48963926725E1719115","data":{"type":"state","account":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4","previous":"3B0AE54E22A814D0DF006BF5B849D26976FF13248ECA328A658816E3F713FF9E","representative":"xrb_1qbt3a7jsz44tpm33rxtf3cq85ha7n8oid54i48k9tn1ixrw11cykeiefebd","balance":"676615224680173286303","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"C4A20970377A3C7B79FB82DB78D697DCB3C083FA69DE8BE07E77B4B7C3C879986303659B35724356DB9E4B052FD2B26AFC3DBF9EA7654E70ED4FB4A5C057500C","work":"897ad3ed1206cf1a"}}},{"secretKey":"4F9F0E7009BC65A47C790954CD40241CA696ACD9A8232FFA251FF03C3650DDBF","publicKey":"2F47B8E9A97554F2B23CEED1D02F8B028B48D5C9423CC2420240A4970A930C86","originalLink":"82DD7DCF32BE555A1DEE0D5D86E8966BB2711F7B30742965242C87A08872B440","block":{"hash":"0D8D0D0FAF9E05A06D42944B7281EBCB626A1F7D3378B24E25B392C6AFC1DEE8","data":{"type":"state","account":"xrb_1dt9q5ntkxcnycs5supjt1qrp1ndb5cwkijwrb316i76kw7b8568ib54rtqn","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7","balance":"36","link":"82DD7DCF32BE555A1DEE0D5D86E8966BB2711F7B30742965242C87A08872B440","link_as_account":"xrb_31pxhq9m7hkodagyw5cxiunbetxkg6hqpe5n77kkad69n4697f41uz83rdks","signature":"5A466BDDF388045E215AC6B484DC51B97252C88EFD0F21CB363878DA50A03501EC25A28DE9824C22F69A34BD000E9BF6F82C03C56D74DF68A8D533DBC4E70D0B","work":"f4705e51dd5c67c5"}}},{"secretKey":"069E27BEFD3A1E3AF7CF335D5CBFF77294A293D5B5FA30956676FFC2764801F7","publicKey":"C70A1426850295E85653B7A530C9E09A749519D236446EE3A7C95429FAEA38D7","originalLink":"3C26414B3F7DE89987E8525D25C57F33C0861D2E39B1EB7CE9DBC5FA687FF06B","block":{"hash":"0D8278D2AC1BABBD911BD258537C8577B7F1F2FD358768E57D1126A33235AFFD","data":{"type":"state","account":"xrb_3jrc4imac1nox3d79fx7856y38mnknex6fk6fujthkcn79xgng8qk53dg8sr","previous":"CB413523157DAE847279E70BFBA62C1025A6E440C3E5B6505B76654FD6D9C3C6","representative":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5","balance":"95181301951481123258","link":"3C26414B3F7DE89987E8525D25C57F33C0861D2E39B1EB7CE9DBC5FA687FF06B","link_as_account":"xrb_1h38a77myzham85yinkx6q4qyey1irgkwgfjxfygmpy7zbn9zw5dh7qr38ts","signature":"278821D261FFBFC5A35697C1EB9243896C18F9B1161F3A5A703E3587BA18957534A775053F5758DDF7ECBB9D92A23AB488212B6D58D17C7556726E322F83E304","work":"8ddd83460d152c9f"}}},{"secretKey":"57699B0449C2B84E6B45E3326F1B4BB352D514A700A7B7D96DCF3C8C9EFC1A51","publicKey":"A5CEBBF55AD639AC0B0150A6CF94CC7CE07F0A6D40A685C05D19420EB956504F","originalLink":"xrb_1yrfoup6o4roft14dq9ja3uw9oy944g45cnwgrxrw68ssgmjg7c94udjwxgx","block":{"hash":"D3E370E1C66B48E6ABD0DF32D4DCBBD10B5C93DE13F51D16D3AD807882B02D1F","data":{"type":"state","account":"xrb_3bggqhtooojsoi7i4n78sycerz91hw78ti78iq17t8c43twoen4hg5uxh369","previous":"1333325DF8C787D3E14B827FCFD73A75A56EDD2389B53DF9232D6E53C5DDBACB","representative":"xrb_141enxuggjym5wt7zchst8bf3pdnayxhxbtt9za53hh3mwo9jho4jcpf5wgx","balance":"563","link":"7B0DAEEC4A8B156E8025DCF14077C3D7C7109C21AA9C763B8E10D9CBA7171547","link_as_account":"xrb_1yrfoup6o4roft14dq9ja3uw9oy944g45cnwgrxrw68ssgmjg7c94udjwxgx","signature":"0B18BDD6ECBCD54951FCD11358730445AF78A4F31851B98FC5D6FF11654B49F05543CE5704782BC7D6AA4D88FBE2595DCE91556E5EF88095DEDF2E9D3B128E02","work":"2c8a23b0008d26b5"}}},{"secretKey":"2B70ABB4D458DC5EDA2C998BF5454717BAA6A122AC8694A02760397DB523CA66","publicKey":"9DB2961B2D01D49C53AE6C9E513BC51AC04273CD4DAC4277F82B44B4F084A91A","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"9F30C82CF4FDBFFACA3769CB76C6402303835D07185537DBDD6C265EE7F53389","data":{"type":"state","account":"xrb_39fkkrfkt1gnmjbtwu6yc6xwc8p1abswtmfeabuzict6pmrabcatzmh71rgc","previous":"7CC2FCE57B0D9F70A8DFEDDD4A122173D24EDDD29C10F3333A44DDF95270DBEE","representative":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a","balance":"901","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"297A6B1A7DD93486C4E31915D12A77E4752C384E67338E5139D72428004A9623EEAA8F9F88479F7A1CF27579A2902A6FFFE98FFD8AC6C51B9FB444B2BD440102","work":"3dcb2e535e002169"}}},{"secretKey":"A2DBFDBA2DBAB7D316C9FA5CDF196C3FA6608AC256C4D7858861A520E16F08F8","publicKey":"33DB63FE3373A270CB8E543BF2249F2D37E08418C7EA4F884887CA1FF33176C8","originalLink":"2A53D17EE4C0F1A155C3B7EC41341726A47E86C1A7F62F16B36143FD593FC756","block":{"hash":"58D0AF96511425BAD55FFD79E4D3094B398E9E0B092ADED97EEA437E07373AE4","data":{"type":"state","account":"xrb_1eyuehz58wx4g57rwo3uyakbydbqw443jjzcby66j3yc5zsm4xpafxfrmxy9","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u","balance":"542353422571413422479108","link":"2A53D17EE4C0F1A155C3B7EC41341726A47E86C1A7F62F16B36143FD593FC756","link_as_account":"xrb_1ckmt7zgbi9jn7cw9fzea6t3gbo6ht5e5bzp7wdd8rc5zoemzjtpx8ui1cs7","signature":"8675E1FEBBB515AA4AE6FBD0201C664986A4F34058CE31E19D2CE530D093B3019F9319B16FF64C776ADBFAA5ED9AE03D6574F4D43F44BED0F1D0308D67CF6F09","work":"c0506a4ae538ee8f"}}},{"secretKey":"57F03A1826C1F9398CD9A7C0AFAD1A91D680DBC2CE27AFA1A912B0404A9B1E92","publicKey":"C816C616761BA99258409FEA1B5C285FEB0D332BEE71D2BA85117A6FDB3600E2","originalLink":"00391AA7314369394F6C80C6975A20670E9C60A4D44CE755328A5D0D7340F51D","block":{"hash":"C9AED3E6DFA1ED5B11E4240E9E2AE8B530308E98C071876EE4B6B92CFDB11CDE","data":{"type":"state","account":"xrb_3k1prrd9e8xbkbe639zc5fg4iqzd3nskqumjtcxac6dtfzfme194hgcxrfqr","previous":"8742621662DB72EF77B1AAE8E41620F11D8BA96C0F9C09A41602870F7DE9DA25","representative":"xrb_3o7oim1fumchm8hdtcmfgimenf8awxtgff1tosrfr4x7bdj8bcc6pnrxt3mb","balance":"91937101966874098","link":"00391AA7314369394F6C80C6975A20670E9C60A4D44CE755328A5D0D7340F51D","link_as_account":"xrb_113s5cmm4iub979ps188kxf41srgmjicbo4ewxcm74kx3osn3xaxgztuxuet","signature":"7814D120F098D08BC9DFE8A14CBE790DB79566A3F2D111981CE8E99D2E0524F38EF4097EA83A4BD7394779F05316254B8345A7A42BA49E554F735E021D335C06","work":"f108ea5698fca9cb"}}},{"secretKey":"0D926E214C7A3C80F24EDE5A344155ED6DB685100E2CC3247F2C224C84704064","publicKey":"73F3B468F19151C04C1427B8B66402787B8FAC13C6B64200E679A73268594FAD","originalLink":"xrb_1b6dna1x5rhu9pb9pype55os4bdtn1skom4oz4mhwdeo4f33tm58uzjr3zn1","block":{"hash":"3DEAD84F0BF149CC50002DE309E04BF2A8CC80ED55BD67D68EB82BABF686EDE8","data":{"type":"state","account":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn","previous":"99D000468A8FE40E018674CE5D020609C1CBE9ADC37BA4721A47EF8BF8F4A43A","representative":"xrb_1dt9q5ntkxcnycs5supjt1qrp1ndb5cwkijwrb316i76kw7b8568ib54rtqn","balance":"85502749098236011","link":"248BA201D1E1FB3D927B7ACC18EB91257AA0332ACC55F8A6FE2D9513421D4C66","link_as_account":"xrb_1b6dna1x5rhu9pb9pype55os4bdtn1skom4oz4mhwdeo4f33tm58uzjr3zn1","signature":"FC912F2B384DE9B6A53ACCB153B0B9E93C77813BFB82107E6A43141255AE684E55E6B0DF220F3A8E56F7FE216D9BBC13255F2A9957C1EE1DC3D2AC7B549FFE06","work":"83bf957d7000522d"}}},{"secretKey":"CCFC89324F6A6512338363A43E2E3293EE7D7C5356B211DDCA64D8555D5C3A07","publicKey":"1597EA2FEB879C07A50E71C69983D344550FE98AA76B2DACC546AE4CB2299B49","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"CC3B5D788D6BFA854D76BE9BA7A07ECAA40E3316DAF8F6C2718559156D6BE639","data":{"type":"state","account":"xrb_17eqxaqyq3ww1ykiwwg8m83x8j4o3znrobud7ppecjogbks4m8tb8ctzqeh6","previous":"877B90CBAB4FD6B4387A9C5F1212E085E15C0FE500E6A8846234A851597D8919","representative":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u","balance":"8104691893","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"6BB0BFDDF104A148CCB9DF828974E0BBFF9884D7C8E5F1601B59D1B338350CC084A3FC5F4F9874829106ADE7F86573DFFAF1419F2F20FBFFECFEF5E18D650503","work":"7c374d190dfedeff"}}},{"secretKey":"EAFD50E5ECE4C15AD3DBAE8DB76998F5F59CE8AAB4A63AB55AE619C2D3022F1D","publicKey":"5D27A314CF6CDE33FED786C404F8FE36D702A4FEB528B6035269A45F688165A0","originalLink":"741EC00DAE56D28AE48EC82E1A2EFBCB8A0682C290523CE23F83ABA46F0F248A","block":{"hash":"30EF1AA8D0BA90B9BFB2BD80531A7E7F21479C79FFFEBC51AD681139B798DA75","data":{"type":"state","account":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_13ngby46a1g19ab1hnoksxtww8y7uoeh87j5jw5gb4fe5itz6y5iio5jjj9z","balance":"649560190339492448846","link":"741EC00DAE56D28AE48EC82E1A2EFBCB8A0682C290523CE23F83ABA46F0F248A","link_as_account":"xrb_1x1yr18twopkjdkaxk3g5aqhqkwc1t3e764k9mj5z1xdnjqiyb6cmzcrre1a","signature":"2874D2C1EA3C76CA00BF714AC4FDDA3119A5ED320CF1B43D7165FBEAFFB0A1EEB369018D372522721CCBCBB9217FF1FC150EBA82485D6CA0D9D8DC6D5662D60A","work":"ee0bc795351d7778"}}},{"secretKey":"FF928CB6396E51FC56E3E7261837EF4D1DF7867E67F569AE163C1EEF0739C1EA","publicKey":"7D1D14DE5C4FDE02A7249526EB13B57241F83C548049B70022B630F77E8750A1","originalLink":"DCC3DB8B204954DF88589C52B47E25CFB59C35C0E58C19640EA943D99F6138A9","block":{"hash":"70905380E81D20F49DE0799B246A9876ECD09C39086DEA62268D806EA0964801","data":{"type":"state","account":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t","previous":"29D9A461C6A2EEDC9FD60AE1AE7B5E3A7DC553A4267B78D8EE59EFA2EDE7D059","representative":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5","balance":"577145905262696995439421202","link":"DCC3DB8B204954DF88589C52B47E25CFB59C35C0E58C19640EA943D99F6138A9","link_as_account":"xrb_3q85ug7k1kcnuy67j94kpjz4dmxomitw3see57k1xcc5u8hp4g7byu4qu33x","signature":"4BB5BA937237184CD0D7DE429605B96B4DF6DB823DB491C314553768395896A0128D7074EA21E1B0B27E82064743B66C14E6157363DF0F51C7F0D88D67C55702","work":"ec0cff42822954c1"}}},{"secretKey":"D46593256D4B4D0B7798391A0306770545C35F09771DD79DBEAD8FFD321DEE25","publicKey":"080CA776E747D31F345FA9F9D192D0D97447BAFEA75A3FD030BDE19F2A78BEA2","originalLink":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a","block":{"hash":"7D0B5E3C7398DC15B849831F924613F2BD711D0F7CC6756EED92FACFB6ED96D5","data":{"type":"state","account":"xrb_141enxuggjym5wt7zchst8bf3pdnayxhxbtt9za53hh3mwo9jho4jcpf5wgx","previous":"83001EC80811C8FE403614FBB5C3A5E261E2B580A2409DEC41806AB78E1038F6","representative":"xrb_1dp178yj5z3smkigcfgxuk17adoghabbepae96939rwia3aq7g77a3qzjhhy","balance":"7445659166294338264715595882125104","link":"8789F4553355847E32C56C582D35ADCDECE23033CD4099C8EE787B9A49C10E2D","link_as_account":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a","signature":"74A01CA882D720E352FFCDA95E1CE8EB2A84F4382F4B576BA7F834056EB7F5927E9526DFB3F435DD0590CBC864E819BF6140D54D176DE22D3D96E794782D5305","work":"1d8c677a57414799"}}},{"secretKey":"A2DBFDBA2DBAB7D316C9FA5CDF196C3FA6608AC256C4D7858861A520E16F08F8","publicKey":"33DB63FE3373A270CB8E543BF2249F2D37E08418C7EA4F884887CA1FF33176C8","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"9365C5CDBEFDA1B303625BB014665BF17C8181720280A1DFC5193D14512DC4B9","data":{"type":"state","account":"xrb_1eyuehz58wx4g57rwo3uyakbydbqw443jjzcby66j3yc5zsm4xpafxfrmxy9","previous":"BC91C63F02FEF9A5BB4605FB50D2DC965534F04769A5929969BD3462763A06A8","representative":"xrb_1zejt35qz7bip4rdo3hzr315t6hwawdsz367hqws1mder8ssko73feiqmq5f","balance":"449319759712793014442177647948943","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"476ABEDFCD066FDD8171D9FDD40C16B45437ADBBB5104D2E9B1A681BB9EA39B145A665A04D0D66555054DCEA51B24DB7044BA46D635E467F4A1642F771720501","work":"dd146e78dc566afa"}}},{"secretKey":"227E0D70FB09E416029D260D79CC9A1540B8BDDC9783C90B46BB941CA73A2172","publicKey":"45989CB2248E6ACF2AF224618D38AF0F68107C8502772DA96364AA32757784CD","originalLink":"9D6168FFBCC583637D5E6093C3ABD25CD63E3ECC3484B1D02D1443A612CA5107","block":{"hash":"6373F9B032D267878707E12EB0D9E3560B5843AC9B6B9011451B499521088B1F","data":{"type":"state","account":"xrb_1jermks4b5mcswoh6b53jnwcy5ua43yac1mq7pnp8s7c8btqh38f9bnbx9yg","previous":"0000000000000000000000000000000000000000000000000000000000000000","representative":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a","balance":"174922793068542306514790","link":"9D6168FFBCC583637D5E6093C3ABD25CD63E3ECC3484B1D02D1443A612CA5107","link_as_account":"xrb_39d3f5zusje5efyowr6mrgox6q8p9rzerf66p9a4t745nrbenna96d3g5m68","signature":"5091F33059F4792E2B85129D44C1C502BDDBD563EAF23A44D6821586D2359B3DD29EA478FBF06A033186E0FA4B869A8746ED8173218600CF1FB0EAB3D2A41C03","work":"3588ef183cbc9f46"}}},{"secretKey":"738E05DBA91100568452ECB9A0FF4E7A213DA2A2BD4FF80FAF8814AF3692B71F","publicKey":"E303F1A9A09682023E4423FCF11B2F7A7FDA33F97F8F89F02F1B78996106A6D5","originalLink":"50C62E7295A59FBCB51F6AD3DD7603EE85D05BCDFC4D11319ACE1F1437DBD896","block":{"hash":"50BD8A6685BE1D2DDE290539F7FA2E1C237CFF61F6436639DFCBB156A0ADF27B","data":{"type":"state","account":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4","previous":"3AE13AA82F0B1F15ACA927C7119FBF99DC2CF19F45B9CEAC2F26FB6E6FD5491F","representative":"xrb_3qfohkcii7dgaz3beijxc9y93x3kto5wioy5qdt5fdnq3p94psm185n7ktf6","balance":"7925696360826532377779658525624844687","link":"50C62E7295A59FBCB51F6AD3DD7603EE85D05BCDFC4D11319ACE1F1437DBD896","link_as_account":"xrb_1n887ssbdbezqktjytpmuou19un7t3fwuz4f46rsomiz4iuxqp6pqw77scem","signature":"D4A5FC32BFF2541B400510BD9C094F3BC75FB5E4BA7034027E7D69612D17CD635B5EF72E6B51B967B863DD64D910A7C5B095CA3051AFECD15EF6E29374E8760C","work":"0c3200dca3d83d43"}}},{"secretKey":"EEE82CD8012BA15FB43C1ACF0DED7005CBB18517FCD86F9F52F94AB0AFE9AD8B","publicKey":"AF2F0DB01343593068842A322ED28BEF5D296D05CF004FC294827CD577F9525A","originalLink":"xrb_1rzrcick31dc3jppteku9prshcachh9445kim4ogmnhnidmdxb6tcas3dcyu","block":{"hash":"7CB0BFB75C39097BA1841AC24BA0882D1356D4509439EED1838435863380EB7F","data":{"type":"state","account":"xrb_3dsh3pr38its83naacjk7ubaqutx77pidmr1bz3bb1mwtouzknktx3hkk3ph","previous":"5EB2CC8877DDBC45E508EE44E78F66255388ECA8F5557C6DD83D2CCBE2A282C5","representative":"xrb_1qtoey3mobciucc6k1iss8yhx1nhcxrx4yg8umjtbai4d7mpbbgt38r91toq","balance":"8311132","link":"63F8541520816A0C6D6D325B3DB197A90A7BCE210E5098AAE9D1F482E6BEA49A","link_as_account":"xrb_1rzrcick31dc3jppteku9prshcachh9445kim4ogmnhnidmdxb6tcas3dcyu","signature":"38B551AA0CB33C00C8D99EB360F824250FC96A0A655129EAC90CBB7512A260956253A5CB9B604153DFE06D0B36F4C746583FC6DB73E047A385BC03F563E70404","work":"c912312491e36f44"}}},{"secretKey":"1D0E82BE718C8C31AB2763D05AF7C5C12A84B87B6272B02CDF1EC830C899BEED","publicKey":"6421F564C3F21BDDF9E9C981F92360F508BDD5BA0571653CF2714E4EC446ECD0","originalLink":"0000000000000000000000000000000000000000000000000000000000000000","block":{"hash":"2EA4851655EFBFEFB0C456D8C27EB172F1BC6EB6C5B45596E2AAC369A9D89D68","data":{"type":"state","account":"xrb_1s33yoke9wiuuqwymke3z6jp3xaaqqcun3djenyh6wcgbu46fu8ibw54aez7","previous":"B8576F8839EDF43DD27EDDFC26603BEDBA6A7062C61C74F8920F7FCD62A6B1AC","representative":"xrb_1dnwirnrrgnr3gfru65fh51agd37es1z3c9jgk8w7cdwpzomsxi8rz4iasiq","balance":"40","link":"0000000000000000000000000000000000000000000000000000000000000000","link_as_account":"xrb_1111111111111111111111111111111111111111111111111111hifc8npp","signature":"427BC28646FCA18FB540E8177B298CED901113648FF35DCF202A942E8126385CCFAE1E14530A3929561696FBE727ABF6487234E32B1D4AEFEED73F96D24EBC06","work":"ebc888b584c82845"}}}] \ No newline at end of file diff --git a/__tests__/data/valid_keys.json b/__tests__/data/valid_keys.json new file mode 100644 index 0000000..3398cc4 --- /dev/null +++ b/__tests__/data/valid_keys.json @@ -0,0 +1 @@ +[{"seed":"BBA067329F44D8011BD6E15F43366A81307FBD8A4801A6997B354AD302F4BC72","index":0,"secretKey":"19622D20FBC8AAA9E45CF016FAC7EF7D85908EE898A670B4D6A2C8AA272828D0","publicKey":"9795E63D9242D8C6E00FA5D95587B2E5262B1E15001A24D2F6D803DE577A0574","account":"xrb_37wowrys6iprrui1zbgscp5u7sb87eh3c11t6mbhfp15usdqn3dn3sfp714g"},{"seed":"A98A541406E5DF55EB3F57396255AB133A417C3252679CC9C1AEF51382089AF9","index":1,"secretKey":"AB308F564D2FC791B2601C64E52E102C3E779AC6AB4A2AF875855C6256EB3686","publicKey":"B21F79F11422CFFC45C596699ED1C6CD7F01585B22A7A273AE38557B5ED557B7","account":"xrb_3eizh9rjaaphzj4wd7mbmuawfmdz17e7pao9nbstwg4ohfhfcoxq98o6xdw7"},{"seed":"445466874730B5CC66692BE409069644F836E051962AAA420521F06580883034","index":7,"secretKey":"C0CB015BCA0834AC827B6259B48C052F7D62692DA1FA21DCDF755CFD27ACBE43","publicKey":"C3C6D329F5066A51636C648ECFD595A714DE5B4CC7D634FC16823CD65F424D75","account":"xrb_3iy8tenzc3mcc7jprs6gszcsdbrnusfnsjyp8my3f1jwtshn6mdowe5gpytj"},{"seed":"E73D16E75D58D89B07B90B784D6308E5AF52DB34E2D43662E8C30F9745A4B36D","index":50,"secretKey":"937BC31DCFF4588820CD9C774D680FFA056FB50B02ADFBC2B4BA5C3F7C6DC8F0","publicKey":"B12E6B0221295B8674F78FA3D8DB71FC3127207804D2FD8BEC5FF4F6046721F5","account":"xrb_3ebgfe344ccuisthh5x5u5fq5z3j6wi9i38kzp7yrqznyr48gahock1rsnbn"},{"seed":"C792E2ACCF793F7784349CB9E1D53473D12E82C9048BE213AD54104923A6F5FE","index":95,"secretKey":"57F03A1826C1F9398CD9A7C0AFAD1A91D680DBC2CE27AFA1A912B0404A9B1E92","publicKey":"C816C616761BA99258409FEA1B5C285FEB0D332BEE71D2BA85117A6FDB3600E2","account":"xrb_3k1prrd9e8xbkbe639zc5fg4iqzd3nskqumjtcxac6dtfzfme194hgcxrfqr"},{"seed":"00A16084EF1F612B3EF3B4C89F7B7B10EBE08A296B352ECE66B4D089A3A02282","index":142,"secretKey":"B0808D52BCB50A72B01D368381EBF52A935999BBB12EEBBA54217C02E3F34906","publicKey":"248BA201D1E1FB3D927B7ACC18EB91257AA0332ACC55F8A6FE2D9513421D4C66","account":"xrb_1b6dna1x5rhu9pb9pype55os4bdtn1skom4oz4mhwdeo4f33tm58uzjr3zn1"},{"seed":"4C70381E482E347576BF5EFACF3B56083CF0740BE6E07F888B79E101D3D5D5CE","index":163,"secretKey":"AF795836DC1207317289A5D39D42E6DE3076AD4A1547A37910DD570408D85D63","publicKey":"63ADAC1DF19D7FFFEA6A3DB538C5C451A6604F7A07F39A81F5F10A1B89F25DBB","account":"xrb_1rxfoigz59dzzzo8nhfo954wanf8e39qn3zmmc1zdwac5g6z6qfuw3hx4h6q"},{"seed":"06F8854E86CD58B986F82F40919C77ADE29DFD6098975F048DF0029DF79EC1E7","index":241,"secretKey":"6B2153D0A4B53C0E6678741DFDD73D95149741A0E96CFDC9FBA4659B9350DD88","publicKey":"15FB5C0FB504CEE8ABFF14C75417CD0760A8488FF973D02CD91C965997848D37","account":"xrb_17hudi9uc38gx4ozy789cidwt3u1o36azydmt1pfk96pd8drb5bquj3ww8qi"},{"seed":"177AB9411B6A88044BE4E24A05A0B67BCB1C5665FB6A17BE8A318D511D9B3404","index":321,"secretKey":"131FADFF109B240D280AB1EA86691CDEE33BA397DFDF7E69005C4DBACBB6FCEE","publicKey":"5D3A0A0B1CFC42D5A610E3BA6855730DE82D0D582C62808D23EA808771C0015E","account":"xrb_1qbt3a7jsz44tpm33rxtf3cq85ha7n8oid54i48k9tn1ixrw11cykeiefebd"},{"seed":"137C60161935077812C4B46ECC10B4D8FB2C0519999638B549591A2F4BB0EC5D","index":345,"secretKey":"2D5E34691592D6DF2C25E67778634CB1A47DC5A4774C21B6BA15487D089B52A2","publicKey":"66B82DE57708F3CC022E55A0329E4FCD83892DCDA75D0206576A639A815900DA","account":"xrb_1sor7qkqg49msi34wof18ch6zme5j6pwubtx1a57gtm5mc1ok18tx1pzew97"},{"seed":"4110D772CD664345037F4145EA48DAF8ADA18A7FB1BA07DCC8BA40939AAEBD26","index":384,"secretKey":"B1FA62470B15308675791C0B5F0CBCE9C4334AEECDE28ED297D8E54FA64C3404","publicKey":"1A1169CCAD9984E238BBE1F1842289E8B498A01F0E37A7058E51CEBE8E4B5185","account":"xrb_18ijf98cu8e6wawdqrhjiijamt7nm4i3y5jqnw4rwnggqt96pne76dfqxqf8"},{"seed":"603BF7F318F78EBF6C5B4F89E76770C70D1556FC47E94E37C2F6AADEC044E84C","index":452,"secretKey":"70F91C56127C56BBD2180D14193DF6692C408F010E5EECF9C648DC1ABD134F96","publicKey":"E9EBA3F6D439FAEF916C4DA556D262A04CE1D4963CDBA858E2E5A0109E12D81C","account":"xrb_3thdnhufaghtxyaprmf7cub87a4ew9cbeh8uo3eg7sf144h37p1wattr41ug"},{"seed":"3DDF72CA71C13798C2CEADDC22ACD48B375158502F4A5E97AC0D618A09AED132","index":544,"secretKey":"BBB53844B2DF452AEB43E6780539D9432967F7330EAC17F00B2548EA0FD0938D","publicKey":"91A4995B054069C41E54F3EDB886195EFBC65F4366FA46B56AB417F38588F0AD","account":"xrb_36f6m7fici5brih7bwzfq453kqqurshn8sqtattpof1qyg4rjw7f6mbejxkx"},{"seed":"45424D69D85D4690EB037ABA9924F329CBD44DD7899CC0009826329CBC0F41B0","index":622,"secretKey":"D3B717446342579DE1F0D43DF7748E91FD5E4D74A90B8FFD57440959C09D244F","publicKey":"60E0A4146F972CCF591EDC7762B8BB8DF06BE3B48B42ECCE7BBED49F32B83E28","account":"xrb_1r91nic8z7sesxejxq5qecwdq5hifhjub4t4xm99qhpnmwsdihja78pa18r1"},{"seed":"00E531146BAF5EE4921E5773FEA8F5CB0A03A4D573E4324E6232FF63D8320DD5","index":654,"secretKey":"A47503F81793D500CE57BB5760C9BDD783F074D8131637C669630BA375C75F4B","publicKey":"EBD545077EA30BA0C821276382C69E5ECB2409DF44625D6704F2BBAA66069F2A","account":"xrb_3tyoan5qxardn5644bu5id5bwqpd6i6xyj54domibwouobm1f9sciih9qfzh"},{"seed":"9CF567F092371CD6A71819818234B6B07760B11B5A26A4027CC3BA4F7EA8AE28","index":676,"secretKey":"1C11D7CA256AF875FD3E148FCB95F637B20A19C95E35A36A099047711F9E5C50","publicKey":"CE6A0A16451B3E6BFD3AB43A4076DB035E2644BD177603AB8720B218F72B7FC2","account":"xrb_3mmc3ad6c8syfhymof3ta3ufp1ty6s4dt7up1gorga7k55ukpzy43hfkhtb3"},{"seed":"A9285D9321A04A0A418938E5FA96CC05D64FFD77F239BB5C4D931F38E6A9B865","index":745,"secretKey":"04C33FD7670B52D2D4655C35477F15CAC171749CB9AE7FE946F31A53DB90FF2E","publicKey":"9B3F00F3E71A5215AD1B6F391BA38E188FDF76FA11FC200EC829904FDCB1C405","account":"xrb_38sz15syg8kk4ppjpuss5gjrw86huxuhn6hw619eiceibzgd5j17hgp5h9ys"},{"seed":"829F781460476F058F9FA7C2EBE1C14DCACE975EA98E1CA58389B72002504420","index":752,"secretKey":"57CC014402EDD34484A9E24803C7C31718AF0A9C7298C892287B80C6948BBC7D","publicKey":"7B0DAEEC4A8B156E8025DCF14077C3D7C7109C21AA9C763B8E10D9CBA7171547","account":"xrb_1yrfoup6o4roft14dq9ja3uw9oy944g45cnwgrxrw68ssgmjg7c94udjwxgx"},{"seed":"0147165638DD807AACD3DB99DDF350DB7386675376CA55D05E49464D1A6C80D6","index":827,"secretKey":"7FC679601AB70569790F9D0185F8D5BC6E3C12E24C98B5AECBCE2BD611085313","publicKey":"ABE542434CAB5176E2B93103D8A9941A11689066FBB3F4DED48F9530F634BF98","account":"xrb_3cz7ab3nsctjgujdkea5u4nsa8ijf4a8fyxmymhfb5wo85u5bhwr4tyim984"},{"seed":"2D5C30D60CCBC08C1095F71661DF56A2DE97BABDCFDBB97D2CB783603D6927BF","index":862,"secretKey":"6C681FDAFADED2374155C3A0CB426CB589B2125733E2092E08CAEEB3B835A028","publicKey":"0DE84666157102C69A03C5520F4B8F85B1232F97826BE44AB25EE0553E8391B3","account":"xrb_15haasm3cwa4rtf19jck3x7rz3fj6eqsh1mdwj7d6qq1cnza96fm1bntmyf1"},{"seed":"7277D288FC58078EF21974D309BAFF2A6C48F8C1BA57953CDD04D8F8DAC2498D","index":868,"secretKey":"EBD59E5AC46D9F835755517F34B7A69D5A90A94950E09B66704FFBAA55FD4318","publicKey":"04BD382369E22877EDDAFDFF9D32430E1B1F6B5CA6DFF3FC0F689BF089B966F7","account":"xrb_137x91jpmrjagzpxozhzmns685iu5xoosbpzyhy1yt6uy46uksqqdeeh8xwj"},{"seed":"D04235D72219851B21C7A76E7C47B30158710A0BCFA51255C08ECB3DC40B200B","index":893,"secretKey":"0303E12665082FA149ED78793EBB0B5E7358B8FBA71B0C4BCC6C9B1640A4FC10","publicKey":"068E4F844401C03A1207D2B2CF75CE1BC5DD58F316238F06E489AC1C35F27870","account":"xrb_13ngby46a1g19ab1hnoksxtww8y7uoeh87j5jw5gb4fe5itz6y5iio5jjj9z"},{"seed":"399C610F8DF0E9D4A7268521CC92E1228F20773A85CEE012DA388562635ED50F","index":915,"secretKey":"57699B0449C2B84E6B45E3326F1B4BB352D514A700A7B7D96DCF3C8C9EFC1A51","publicKey":"A5CEBBF55AD639AC0B0150A6CF94CC7CE07F0A6D40A685C05D19420EB956504F","account":"xrb_3bggqhtooojsoi7i4n78sycerz91hw78ti78iq17t8c43twoen4hg5uxh369"},{"seed":"43C60704DCFB0E8A0390B40F5CB1C5665A533230FB0EFDAC3B2737A822B755E5","index":1015,"secretKey":"1E4782A13293F5395D292552845562102B909A314F6D15C2E7EDBA13E3A5A451","publicKey":"90C6435504BAC8E9CF7742088B34EC429228829ADF22C786B8EC73E03F03A12D","account":"xrb_3688afcibgpax99qgiiajetgrink743boqs4ry5dju5mw1zi9abfcfginuup"},{"seed":"F53A8047C66824F6FB979A79B6E47719AE4495BF9EBD66AFB95525FD03F4A3C1","index":1104,"secretKey":"1F8E34B0559060CF739A4044C3906142CC13FCE3338B8F3B48C274C1EA9ED96B","publicKey":"81EB10D0EF455FF20BEAEBBAB924AF8269381899BEDDFBFBF30CBABFD46F51E0","account":"xrb_31hd45agyjczya7yotxtq6kcz1mb91ebmhpxzhxz857tqzc8ynh1dq1sqk4b"},{"seed":"68518968F4301D507F7FF3BCF82A18BCD7DCB5FE669D1928914F86D8FE51F583","index":1143,"secretKey":"56F292198CCE8B5B90B7D64F9A5CD5D654B0B330BF9158751C04794E8E9782F8","publicKey":"274598C174F88F6A4E72C94EF97776283CD2CFFF65B40EF8557383EAC0ADE247","account":"xrb_1bt7m51qby6hfb997kcgz7uqec3wtd9zysfn3uw7cww5xd1curk9kxa1xk7q"},{"seed":"86B814EAD3848A2EC80C7EDE5F924D7B10CA52AA3A90D84DD51535EF6D617F81","index":1164,"secretKey":"1D0E82BE718C8C31AB2763D05AF7C5C12A84B87B6272B02CDF1EC830C899BEED","publicKey":"6421F564C3F21BDDF9E9C981F92360F508BDD5BA0571653CF2714E4EC446ECD0","account":"xrb_1s33yoke9wiuuqwymke3z6jp3xaaqqcun3djenyh6wcgbu46fu8ibw54aez7"},{"seed":"F105153FBC4AAC68D3A5DA42669BF342F7C6D86BBF58F5C1E0A5094663ED3A05","index":1219,"secretKey":"43E1EAFB5B08196B99B0BE53BF9B7F193770DC57887A1A24D80F99C6CCA54539","publicKey":"6D32FE9CFB4C0A32DD4B28D186BBA9CE1CDB062976641741006BB73596394519","account":"xrb_1ubkztghpm1c8dgnpc8jitxtmmiwue54kxm64x1i1txq8pd5kjasirnamico"},{"seed":"05AD8AF131940BF88FE41FA7744D431320EFB5732924ACB5AAB40D56F3A645B6","index":1241,"secretKey":"79FD76B208A863C7725E501ED3E6CBCC96725B28E139AB8E2E8C67029B7DD00B","publicKey":"3C68615B2E7EF5E1F8A36818E3737D91A04FFEEA4EB3315DF46286EDDD333752","account":"xrb_1h5ae7fkwzqow9wc8t1rwfsqu6f1bzzgnmom87gzarn8xqgm8ftks8xsa6du"},{"seed":"C129F2765D59AE87D5A03D7531ACB3DB1FD5C9F33DFDDB6B6B95858A23EDC489","index":1328,"secretKey":"D46593256D4B4D0B7798391A0306770545C35F09771DD79DBEAD8FFD321DEE25","publicKey":"080CA776E747D31F345FA9F9D192D0D97447BAFEA75A3FD030BDE19F2A78BEA2","account":"xrb_141enxuggjym5wt7zchst8bf3pdnayxhxbtt9za53hh3mwo9jho4jcpf5wgx"},{"seed":"6DF8447DBF79B21DB8267FB839BB475FDB1826E5DD1F7794F6B944DAA53C9E4E","index":1338,"secretKey":"85008B6A3FB812685F5AE8B9D1C3FC3B8C3ED7DB03FCB0FF9E7D462B5DF7311A","publicKey":"C27CDC189FCF8453AEF4B49A90F631EA973BE3202F36D6D2E6219FCA20B4A7EC","account":"xrb_3imwuiebzmw6cgqhbf6tk5u55tnq9hjk1dsptubgeaezsaidbbzezrk7p97h"},{"seed":"7D3500968E2AA1E2FE4274455B89B25FE9402949245280FAEEB765213AE2BB58","index":1412,"secretKey":"4C7A22FE3EAA6C1079090D3753B50E4A314756825DD7F724A391793263141CD9","publicKey":"6249FB7A8C6E7164664D390F7D706F0FB466F8EB780893426426B5E8EA4BCDC2","account":"xrb_1rkbzfxarumjejm6tgahhor8y5xneuwgpy1akf38aboox5o6qmg4389hch1y"},{"seed":"B28A6E8B3826904C142A604F5BB6FFC1F3FC4615C54169955826E92ED34D25BD","index":1462,"secretKey":"C0EC6F765B1BA0FDCA8462603339ED0A662D9678CEA4EA7BB04BAAC0ED533FA6","publicKey":"ECFF76F7E0B4019A42664FF2C7518DE606C4E4CFE481D86B256BCEE6310EFCD7","account":"xrb_3u9zguuy3f13mb38emzkrxarusi8rmkezs63u3okctygwrrixz8q4odmydgp"},{"seed":"72D7523C987654E93664BF0B235052D67FD0658CA03DAD3922EE7831DDAAFBEA","index":1473,"secretKey":"503681791B4F7F61E045B419C7DCF4E6D74A889ED39FF58F426921F90B5ED3F8","publicKey":"118BBBCB0185525C09837BB539BCC882756D9A73DF3F705A1EF7DD684D5B8527","account":"xrb_16edqh7i53ckdi6r8yxo98yej1mofpf99qszg3f3xxyxf38oq3b9987p8zw4"},{"seed":"5508180B82D7CCABFCA4C102CB9BD6620989A8E5D89722EF1682B3EEE67066D3","index":1550,"secretKey":"2B70ABB4D458DC5EDA2C998BF5454717BAA6A122AC8694A02760397DB523CA66","publicKey":"9DB2961B2D01D49C53AE6C9E513BC51AC04273CD4DAC4277F82B44B4F084A91A","account":"xrb_39fkkrfkt1gnmjbtwu6yc6xwc8p1abswtmfeabuzict6pmrabcatzmh71rgc"},{"seed":"8C95559BC9E5C1129E0EDF369686FB7A40ED3BC40E3FC1A5591509C8B427A2A0","index":1625,"secretKey":"E5A523DF83DC3A79F9DD29940500F605D51C4FA14EF56BE5CE8299082CD8A4BD","publicKey":"671E6C702B96D0D50AAD8FE4B7BC06FED212E066A4B07A42BE4AF402479D1799","account":"xrb_1sryfjr4q7pitn7cu5z6pyy1fzpk4di8fb7ihb3dwkqn1b5st7wsd7ey7c9s"},{"seed":"1416C6F30A1E824A35C67303A34E99F05945D23F56420EF593853E93716BA3F0","index":1647,"secretKey":"36B0154624CDF419EF7726A96E523AC55B67F91362A443A5DFB369861FADA650","publicKey":"2787CDA978C394547F750793FB07BC4BA8A89F012AA0D916BDFEC9D088F99139","account":"xrb_1bw9spnqjiwncjzqc3wmze5urkxao4hi4co1u6dduzpbt46hm6bsxho97789"},{"seed":"8EAAE4F5F3F4F66277541AEF85C40AF541B9D83D0A280D7C4CEABA524F898E5C","index":1725,"secretKey":"44972A8DAD0060DF940F26E76A5FF5E5DBD7CCAA5FAE4D4BD4BCBCB4090FF689","publicKey":"2C96B77D14A2E5D22905E1BC2913EFA611E56D8573978098FA03005B82E9AE18","account":"xrb_1d6ppxyjbaq7tanidrfw76byzbijwoprcwwqi4ehn1r1dg3gmdirsgw3ekmu"},{"seed":"F47DBA29C0890761DF75D8D73FB3F8F98A7766640481530B6B9B6927C9FA9D79","index":1822,"secretKey":"E8DBDD99A4B133B773C61A615422682D6B0199E50FAF86C930C0D7A1AA5A7693","publicKey":"445916D81A5C7690AA4BFAD8E2434388CAF573AB632F8A3DA06AF3BE7FFCC6A5","account":"xrb_1j4s4ue3nq5pk4o6qyprwb3n948cyostprshjayt1tqmqszzsjo73kndrud7"},{"seed":"179814B286C1554BBE5DDC09AC53387BFE333BD613E6AEDB25E52C54C12909C5","index":1911,"secretKey":"CBE0987B1561C3B34927EA1A7F1098D549A2A659C40DEC9A4B51EADE17846723","publicKey":"94DEEDD03AAE9906C0DE5105D2B8C3C3753C5ADDF2C1D5EBDF757A703D03A8FC","account":"xrb_378yxqa5odns1u1fwna7tcwe9iuo9jffuwp3tqoxyxdtg1yi9c9wmbpei3h9"},{"seed":"B1341301A79AFC2BF5BF7BD392DE43B797C2A388831D798AEF9E76852BEB1EE0","index":1948,"secretKey":"BE27112FB64FDDBE82AEFC0DC0D024847D3A0B4E1316DD78C502F4C9C081D32A","publicKey":"D18B363F3D9493853E38EE0455D7C131E684A972F262087D03BEE24701069D36","account":"xrb_3ned8rzmu76minz5jui6cqdw4eh8iknq7wm433yi9hq4aw1if9bph6163qza"},{"seed":"4B63519DC7450D50F5DAF4B9286AC4C6C77440E00251E2E48006783B413AC4E6","index":1972,"secretKey":"80AF4A5251EB8772EE9EFAE097EA4342F0F70B2F91C62D27A2A550CD0D643E21","publicKey":"0FBD5882D0EC658BFAF3171B50578B0071B807D100D3546C69CFB6F8259D43D5","account":"xrb_15xxd43f3u57jhxh87ruc3drp15jq15x418mcjp8mmxpz1kstiyoqke3zjgn"},{"seed":"C36639B249B8BEAD8BB859D91E081DB2412C55E9CAC4ABD37976E26C75564D66","index":1997,"secretKey":"8EB68483CE408EFEC6F62089E2369FE8043EFBD5108621EFEA558D3CF81F2714","publicKey":"826FBEE1D6A5FC5A94DAD9708D0C92B478BBBF42BF6CD5C9F7D66B03D940A312","account":"xrb_31mhquixfbhwdccfopdijn8b7f5rqgzn7huetq6zhomd1hen3arkpsrgkffu"},{"seed":"28F1C4A381501D62CCC717F074C24046D6BB0F87D0FF80DAAD20A6E535BB4C7F","index":2029,"secretKey":"7740210CA3E7C5E3D1650A2FD3DD1106AA80860AB2039B65E5E5FCCC2427ECA3","publicKey":"4C5E379EDEC185DE86F29A2C86F7BF3E261946F1243BA522D196FB0ABA98C713","account":"xrb_1m4y8yhfxie7ut5h78jeiuuuyhj8575h4b3unnjf57qu3cxbjjrm1dpfkmqm"},{"seed":"6DCE3BAC9C99774E3CCAF8E58D6B208CC9C192E4039175FCE5958F426162FEDA","index":2061,"secretKey":"A9D2B80AEA0173169E3C94B07E94994C4307288656FFB85841DE816D1EC1AB97","publicKey":"DB156EA20ED805453F26EA93E70291A5BECB6CE3BD54BD318C8BBF734FE8588E","account":"xrb_3proftj1xp17anzkftnmww3b5bfysfpg9hcnqnrrs4xzgf9yip6ghdkga6sn"},{"seed":"B8398C2F21A6B63267806486439274E46004859C894A46CFED7547C5B30D6EE0","index":2126,"secretKey":"8E50ACB1EDEBF15734C475252B940E4E9A862C6932636263093A31B44081209F","publicKey":"2EC029BD11FC399CA0E535DDDC80542EAE7A1296590C390E13E390405172B8A5","account":"xrb_1dp178yj5z3smkigcfgxuk17adoghabbepae96939rwia3aq7g77a3qzjhhy"},{"seed":"9F14C6F36EF46211FBC9E46B87CE5B4809421C9B4999D4073CDA9C9517E1F7EC","index":2174,"secretKey":"DC3A60D750ADA3AE40923FDB9A27BA76C91A11CEC167547DB1F733458B424C95","publicKey":"469C6E5AAB7755A3C7C218894CF9E18D6CE131E71EA40DABECE7D7090EA4F9A7","account":"xrb_1jnwfsfcpxtonh5w686bbmwy55dew6ryg9o63poyssyq369cbyf9nfypzosk"},{"seed":"69B3B55C8D8E67118F717B4E24BDC6DF25E9379F5EC84AF6038DDEA1B970E7FB","index":2218,"secretKey":"A0F4C1C282923A1EA9ED4595E9794EC28B7F64A6FA537039729723CC068902C0","publicKey":"907CA173F56EFBB12FAE23DED297E9945FBD1EE669CCC246718889AC9FAA41D7","account":"xrb_365wn7szcuqup6qtwayytcdym74zqnhgetgerb59546bokhtnigq1bxr1aji"},{"seed":"565F1C7A447BC2965604CFC900A4BFC4E4F3F2DB137BFE5F2BDCB347534301F4","index":2288,"secretKey":"A2DBFDBA2DBAB7D316C9FA5CDF196C3FA6608AC256C4D7858861A520E16F08F8","publicKey":"33DB63FE3373A270CB8E543BF2249F2D37E08418C7EA4F884887CA1FF33176C8","account":"xrb_1eyuehz58wx4g57rwo3uyakbydbqw443jjzcby66j3yc5zsm4xpafxfrmxy9"},{"seed":"46A35AA7257F77AA7974C8287BCF16F22330B73C646466BD8254C28697F3E544","index":2370,"secretKey":"41C2590D9F81EEEB5A08EAE864622B6E141B38939770E61424BD21DC2060D60F","publicKey":"63F8541520816A0C6D6D325B3DB197A90A7BCE210E5098AAE9D1F482E6BEA49A","account":"xrb_1rzrcick31dc3jppteku9prshcachh9445kim4ogmnhnidmdxb6tcas3dcyu"},{"seed":"CA2483547221EC31A93D3F195814FB40E1BC475AF4C017CA5610987B2323A8F6","index":2463,"secretKey":"FF928CB6396E51FC56E3E7261837EF4D1DF7867E67F569AE163C1EEF0739C1EA","publicKey":"7D1D14DE5C4FDE02A7249526EB13B57241F83C548049B70022B630F77E8750A1","account":"xrb_1zax4mh7rmyy1cmkb7b8xebucwk3z1y7b14bpw147fjiyxzagn73teehr61t"},{"seed":"AE887A1E96C0A044B7F4E12B309A3AB6ED1C0D7FFA9F6D804425C1F55178926D","index":2481,"secretKey":"72102D432A19F04D430A06AF5AA400B6B67AB3C8B180353587D60432C3DD693F","publicKey":"5F5567833AA550DA94490219C9BCFE828F5771D179C6DCE3A4A202596764A5DA","account":"xrb_1qtoey3mobciucc6k1iss8yhx1nhcxrx4yg8umjtbai4d7mpbbgt38r91toq"},{"seed":"D2A173C9B4ED3336B20BD9372510D00B5518B9AB9DDA3F028C1882ED64254018","index":2546,"secretKey":"AD22137DD1D9C039D2B1AC61E7F50CC309AA8E5178A9B990A9110DF1E071E891","publicKey":"24838627B28C6372F83EF9630BE58D493DE97BF4BCE5C1CB2818713B7726788A","account":"xrb_1b65irmu7555gdw5xyd53hkrtkbxx7xzbh97r97ki85j9fukey6cqqm1gzmy"},{"seed":"6C10C3D17CE4B196031674B38C699C3E892E5CBC8F1486DAE83A6983973B1815","index":2592,"secretKey":"51C8B2E2EFA4E3F6A772CE1E8258BDD499C4E31EE069459CBB2A8BA1FD561769","publicKey":"512F287B1FF9F5C1EA29C1FA96FBD0A70F85D5E22F08F4026DE1DD419FBA8AE9","account":"xrb_1nbh73xjzyhor9o4mihtkuxx3brhiqcy6drayi38urgxa8huo4qb5z7k3y5d"},{"seed":"D521F4091A16234C69E3DD020C889C66944DC8E63C32C7E3811C41B5CE681016","index":2622,"secretKey":"AC5799C4673CB7127A335B23E72273C323F54229E7EEFA13DD1594254F029FDE","publicKey":"B00C8393953D43DED6A38721B2B8C82FADB264A028ED44BDCBD85394372B6E4E","account":"xrb_3e1eigbschc5uudc93s3pcweidxfpbkc1c9fakywqp4mkiukpukgxdbuf3xt"},{"seed":"8F1E1407DA8A070FF4C8BF52C5A7B269A818950AB44A366B9DFF3F790CBE711D","index":2665,"secretKey":"8FF42B55FA68F189942A20CBD789BB0DBBC46A54D29676A04DB04931A920BCE5","publicKey":"D4B584C0DDCD4F999EBD2A6D7426CA34C8E774E6B41AAE70DC0BA54AE264A944","account":"xrb_3o7oim1fumchm8hdtcmfgimenf8awxtgff1tosrfr4x7bdj8bcc6pnrxt3mb"},{"seed":"5ED8B7A9BBE4AB49E7D119BCE589F22B471E1BA9CAB453DC10CD76B2709BEF20","index":2684,"secretKey":"8943C31B2C9732FE38A1DF1B1D1ECA8A95216B1F024998187987E46B6049E2C8","publicKey":"7D91D0477F9530B0B0BA85FFC0403D11FC47179F84857DF9904D6CC1B39954A1","account":"xrb_1zejt35qz7bip4rdo3hzr315t6hwawdsz367hqws1mder8ssko73feiqmq5f"},{"seed":"69BE0001E589A3E87E3691B976E3679CC6BCB788EC364E31BB38ACDFF4FA7B28","index":2698,"secretKey":"9842FB7A6A245A5C7251EA7ED3E6291FE401DA66DAA8882D420C6871634ED716","publicKey":"1FA57E237F6E3323CA94241242B9703282974EC95B547977CBB246F136EBD735","account":"xrb_19x7hrjqyujm6h7bab1kacwq1en4kx9ekptnh7uwqek8y6ugqosobtdwkpot"},{"seed":"9CFCFB7702242094EAC51EB189268148F02527F3AF1D927FA4E253C71A7C2AE1","index":2747,"secretKey":"05285E59F97E0A839EE6454143FFA0C00B4B37F57AACD83ACD660CDB5030972C","publicKey":"903D6732CC76B7D2FE2CACCA3A1BCC059917ED95A53348833D4DDF482EF26C0B","account":"xrb_363xewserxoqtdz4sd8c9afwr3es4zpsdbbmb43mtmgzb1qh6u1doicj4b8u"},{"seed":"B58AF07BFC702774EF8FDA6EEB870806484DA2B386714D1F88F674A29D91E204","index":2833,"secretKey":"FC0F814E47BEE3A3FBBAEA04299EFEF3E41DB6C6657FD881F8BB41626C2FBBA8","publicKey":"1E6D9BC09EEDCB43453D27F5DBB4C61CC8907133B94E3E33791CC0F161EC85E7","account":"xrb_19mfmh1bxugdaf4mtbzougtee98ak3rm9gcg9rsqk981y7iys3h96hagjxib"},{"seed":"0C861BF00AFF2A65253ABD3651AAE5FFF8B0930416421FF1D0ADCAED319D26C8","index":2862,"secretKey":"62DD52D845E1691401DAC7C99E1C53BA19334837D02251E96BACCB49BE55F6D5","publicKey":"C83CC92338C75AB4F4F7F97F314504BB107E494BA0C30CC18D7B91CAB4BB67F3","account":"xrb_3k3ws6jmjjttpmthhydz874ibgrihs6nqa853m1rtywjsctdpszm57734qfm"},{"seed":"580BDDE0F58B9E05DDA5D52D678989DF28E51C5096781011E47D5B7563316CF8","index":2877,"secretKey":"EAFD50E5ECE4C15AD3DBAE8DB76998F5F59CE8AAB4A63AB55AE619C2D3022F1D","publicKey":"5D27A314CF6CDE33FED786C404F8FE36D702A4FEB528B6035269A45F688165A0","account":"xrb_1qb9neceyu8y8hzfh3p61mwhwfpq1ckhxfbapr3o6tf6dxna4sf1caiuxqfq"},{"seed":"E919C7981C7DF800EF20D1735F3C930E50E6412F3CE43E74A4BEE762EE311880","index":2965,"secretKey":"E632A8EFB89665672FE614B5D49C72C1285E417DACCCC7A7F425880AEA4BCA25","publicKey":"B281433D0C6F013CF51C3D1406A51EA892F69DEEC871115B9F882916FC9C31C9","account":"xrb_3en3aeyirur39mtjrhan1tkjxc6kytgyxk5j47fsz43b4uybregbzdtk8g55"},{"seed":"2D488CFE96FF36BCDFAE8C1F363D4A16685FBE6A2C666F22AD4680116073A3C2","index":3054,"secretKey":"F462A830846E7FFC38CB359A61963BE1445BC423ABCA35CEC3C91365D5D24C1C","publicKey":"AFAB17CC783DA1C3BAA74122522ABC70BBF4B8FDEE7CA5DD22A7081E9A40F693","account":"xrb_3dxd4z89ihf3rgxcgib4caodrw7uykwhuumwnqgk7bra5tf63xnms8jofpbn"},{"seed":"1F98079F563E6BB4B57D5E49D9B2BA11D3E0D6D6E67DB393BBB4A533147E74E7","index":3093,"secretKey":"069E27BEFD3A1E3AF7CF335D5CBFF77294A293D5B5FA30956676FFC2764801F7","publicKey":"C70A1426850295E85653B7A530C9E09A749519D236446EE3A7C95429FAEA38D7","account":"xrb_3jrc4imac1nox3d79fx7856y38mnknex6fk6fujthkcn79xgng8qk53dg8sr"},{"seed":"4BA567F3627607EC63D7370C57A7B59C0FFBD248665D0A2DD25C72B201DCD2D9","index":3103,"secretKey":"6CA0E92F2E79217C7E6784B44042366A4304EF90811C340BCCC7D3F04615EEE1","publicKey":"77FA25DAC861D887C9DABA0184FD0F880CE707E883A583A90A4AA85096A689DB","account":"xrb_1xzt6qfeirgriz6xogi3imyiz41eww5yj1x7igninkoac4dcf4gu758new4s"},{"seed":"637490F65449C7D4B905A3B16906817B17238C5F7668D7A63A81F5450ADC9FF9","index":3193,"secretKey":"781CBAA70F56F651660FEBD67F07A1F9AF96369D2DE636F35F6DB6CC25CFA365","publicKey":"291D97CD0D6130661A27C426455E27A73D7C6FD0CB7A567DD9E26965C0F30BDF","account":"xrb_1caxkz8itrbierf4hj38aoh4hbsxhjqx3kutcsyxmrmbeq1h84yzd3zmo6mh"},{"seed":"11E2D3724DE626127B77E4C7EA8A2A893F85FAF3A57BBC600263C1C2810C35E8","index":3268,"secretKey":"738E05DBA91100568452ECB9A0FF4E7A213DA2A2BD4FF80FAF8814AF3692B71F","publicKey":"E303F1A9A09682023E4423FCF11B2F7A7FDA33F97F8F89F02F1B78996106A6D5","account":"xrb_3rr5y8nt37n41az6aazwy6fkyymzuaszkzwhj9r4y8urm7iifbpooiyqcqt4"},{"seed":"FE9FF75C18B37B8F93814B684781ADE0525951B8C2936377CFE97CCB3BDD6AE1","index":3347,"secretKey":"AA5E0D9DFF6916E5641CB32DA2331D2E9F060A3FAFA9061E8819B566C92EE5B0","publicKey":"0CAA902251CA21B5597D0A341C1FB529EB56EFA2EF94471E9A839BB48BD334FF","account":"xrb_157ck1j75kj3poeqt4jn5ihucchdcuqt7uwnawhbo1wupk7x8f9zhc9dp3k7"},{"seed":"DFF2A32FAD2750284DBB9A3C0D9DD8BB5EC072B93ACD77706415DF857515ED26","index":3411,"secretKey":"9DD76E1E82AC989674253191C5FB94A5262761A8278A9F99562359A35C146E10","publicKey":"C117EEE80D8823D00438A114FCA152652DAAC67D188F0F1238BEEF03736D4604","account":"xrb_3iaqxun1u435t145jaanzkio6sbfod59t86h3wb5jhqh1fsptji6eh6sz44n"},{"seed":"E0569CEB3B80F5B78CFBF219FD93E66BF18AEB64A330DE55F554F55B25DB7BC2","index":3451,"secretKey":"71C92F6E1975575A50E1B3C7D529FF5A9806DA71B76A3482F32E93F19522D256","publicKey":"05DEAC17B47E5E9F4241259FBA92E0B06DCF31AE36E12E4D4390DD7D71E01E7E","account":"xrb_13gyoiduazkymx364bezqcbg3e5fswrtwfq37s8n968xhory19myz7bgba95"},{"seed":"5ACE322B8332DEDF39280C6C2768C921A0BA641FF70434A3E17E6EDA937300C6","index":3455,"secretKey":"74D6A8EADDAA9064DEC3D26F9AC8CA764353FDEED2D541E7F66446614E7E5377","publicKey":"90390251DCFD89DF2BD5ED249D34560C03460D5B7872CD660F07B5C850B9EEF0","account":"xrb_363s1baxszebuwoxdub6mnt7e515ar8opy5ksom1y3xos3admuqiq66h6dsa"},{"seed":"3735BF1529762492BFB7758DE94BCAB48DBBCFCBF32BAF734D4C6394AC64834D","index":3533,"secretKey":"4F9F0E7009BC65A47C790954CD40241CA696ACD9A8232FFA251FF03C3650DDBF","publicKey":"2F47B8E9A97554F2B23CEED1D02F8B028B48D5C9423CC2420240A4970A930C86","account":"xrb_1dt9q5ntkxcnycs5supjt1qrp1ndb5cwkijwrb316i76kw7b8568ib54rtqn"},{"seed":"1B31E16330AD54AACE8B645E73C4EFCBFF514D7120AA38914747EC30EF5F24D7","index":3562,"secretKey":"64D224A98B3D4C2CA403AAA4FB1C87A704C1FBB0B70EE88284574251FEECA658","publicKey":"DDB57C9508156E47C296423D51FC70F432D547C857C3BAF436AE970D8E2B6660","account":"xrb_3qfohkcii7dgaz3beijxc9y93x3kto5wioy5qdt5fdnq3p94psm185n7ktf6"},{"seed":"FE02BE7741271FBA9494E786B0CFC35B7E4C7BC3954C8AA0297261B1E8706770","index":3658,"secretKey":"0EF3C1F537250C9E263CF979A111A4CDA0BE8818E811F260609AB7B7B771DBE8","publicKey":"B8D2356DEA40A6C403E3625B2D3ED2B15CAC2447156302E4C01EC9B0378096AC","account":"xrb_3g8k8opyni78ri3y8rku7nzf7ecwoik6g7d51dke19pbp1ur37oe6pypfm8a"},{"seed":"D628B7C9A7975385B48BA37AAD9AF2CABDA53FC6FD81075643B10F7A2F9682B1","index":3697,"secretKey":"1E5AD03ED20A75CDD7129FC81CCE39C98CF9CD97C3405D42D09FB6D3B52E834F","publicKey":"114909D77290FF1C77E5B98FED7E4465498D4B0494A6DFDE30601DD5E88938E1","account":"xrb_16cb39dq769z5juydgehxoz6ascbjo7ib778uzh51r1xtqnakg93x3r5f7rp"},{"seed":"E1B9F8B11A0E7B8A0636AEB0A744960A2962D7BF41996AB43AE8907CBE7D4EE6","index":3776,"secretKey":"9225E202EC082E575A094D57AA8E1C433E29660EA3B265420F7DE5776F669759","publicKey":"3EA4552070FD78E6B76F6652A01C01E193600E26A01675D0A502B26DD4E62F22","account":"xrb_1ho6cni93zdrwtupyskkn1g15reme194fa1pgqacc1okfqcgeds4zao74zwm"},{"seed":"804DB4105544B97E6937AAC1F5095F9BF6307D4B8359E55704816E11D033718B","index":3851,"secretKey":"2F6136CF2B572131EDF3FFFFA06DA327E7625EA417C7E23220C0FE95F56B17BE","publicKey":"5BAFD81BA47996BA1417847B6A61CD7B520451A6B1E303EFE3800C0B34A328A5","account":"xrb_1pxhu1ftayepqac3h35ufbiwtytk1jatfeh51hqy911e3etc8c77eoehz6y3"},{"seed":"97F99D62D14B3B242AB520C14686F961A41196CD1CA26A9FD941C1BCE13BCA8E","index":3855,"secretKey":"9977BD43BA3761CCBCE7CE484EFC4FBCD55121D64EB9F1645F0964F9CF62B0D6","publicKey":"28EE2F89857BD784ADD8FACD55F93D1DF57FE82E5EFF409B65835D942CE432DC","account":"xrb_1c9g7y6rcyyqikpxjypfcqwmt9hohzn4wqqza4fpd1txkipgaepw5qrm5r7h"},{"seed":"3B31E04EAA3E26CE37BBB227A78E6E55DC6561ED7FDCCD0A46574150523D5275","index":3876,"secretKey":"50179E644DDD581737E2214272B98925C248132B3C508A6563FDDCCA994F4FB3","publicKey":"F25738224DD348EE7E495BC1E2329111D073CFE27B857F39DDA0EB99A4CA8D5B","account":"xrb_3wkq91j6untaxsz6kpy3wasb46gigh9y6yw7hwwxua9dm8keo5cu7jazg8z1"},{"seed":"59785ED9BFB5D42AF23E5AF3434886FF9D4BA12135276B7F73AB1B6440AC0C08","index":3908,"secretKey":"227E0D70FB09E416029D260D79CC9A1540B8BDDC9783C90B46BB941CA73A2172","publicKey":"45989CB2248E6ACF2AF224618D38AF0F68107C8502772DA96364AA32757784CD","account":"xrb_1jermks4b5mcswoh6b53jnwcy5ua43yac1mq7pnp8s7c8btqh38f9bnbx9yg"},{"seed":"C5129DBD57FCF888A8BB76B38B39154C74FA069D709BB0971BB08D236EFFEF92","index":3925,"secretKey":"D355E02BB8197C6099A1DDD69BD078CAC6EB7308538ECB6FFB79148AA2729E85","publicKey":"8789F4553355847E32C56C582D35ADCDECE23033CD4099C8EE787B9A49C10E2D","account":"xrb_33wbyjcm8oe6hrsecu4r7nttumhewar59mc1m96gwy5umb6w45jfyottto6a"},{"seed":"96AD725DA22687E82661DB756DB73C3004AC816F45E24A27CAEBD65744346F2C","index":3961,"secretKey":"6EF20FB735DEB2830A29358830026A16E948B2B47962BE30A1BE1FBC4B3207FA","publicKey":"9CF8EED728650FC6D24292491705507108D596D0CEF218866FDBC1568CF8129B","account":"xrb_399rxudkisahrub676kb4w4o1waatpdf3mqk5458zpy3ct8hi6nutr5bayu6"},{"seed":"DE3314A84887728432F89787D7967C675F048614DBCAEF70F7DFAE28356405F6","index":4024,"secretKey":"E7FA3C08CC218B2039AE5A338CC7C272F0BD8A43DF8B3A418F52A3123CE856F2","publicKey":"2DA03D8191AFDB558B73B2B97D5D5A2ECB87C37C852BD15AB1741C6789CADC65","account":"xrb_1df19p1s5dyucp7q9eoshogondpdiz3qs3bdt7fd4x1wey6woq57seixxxu9"},{"seed":"AAD47992CB16BD0B79863C54B254D46F335CF1031025451E260E6A5361DDAB35","index":4097,"secretKey":"B00535573E7059DD236340D23497FE94A2F8AB2F5025EF62C2BF60E470BDC274","publicKey":"9E2DE04A9E682FACA6CC0B92F68D78DE38A999172C9C5BD43219DE74F421731B","account":"xrb_39jfw37bwt3hokmer4wkyt8qjqjro8ejgd6wdhc568gygmt44wrud1dz3ry4"},{"seed":"6816B85C132E7180E391081284742B99FE68C3DF3B88F027C9F0093121109448","index":4113,"secretKey":"997CB6FC0E1EF1AAC438FEC07AB908797AACE9AA143829CD91B0E8050ECB591D","publicKey":"CDC76CE74D1DAC716A13EBACECF1511A19E87BC80A9382649894EF59118E3EF8","account":"xrb_3mg9fmmnt9feg7o39txexmro48isx3xwi4nmibkbj79hd6arwhqrg476rbcb"},{"seed":"15D559690D79EE8A25DE3C2AE5131391B2FDF5B278AB4EF15E710E2DB4BE48F1","index":4182,"secretKey":"426E3CDA0E55EC4865C72F320F4C25FD235B697376CE46216469784DF03BA682","publicKey":"2E9C86298C3A980B9B8D906D78C0872C256641F0A8F1748DC2A97CB7EB3CF606","account":"xrb_1dnwirnrrgnr3gfru65fh51agd37es1z3c9jgk8w7cdwpzomsxi8rz4iasiq"},{"seed":"C88B0CF8A9D8DEB99F7AA4B43521C5907A854E746A1A667285CF26ACC679647D","index":4235,"secretKey":"8310C2CB493870A78F9B5B58D22D72B9B67015D32DF67BFAB86DFD3E8CAB9604","publicKey":"CAB538CB875837875AD779D729860430FCCB61378CD9CD19F565965A43296C57","account":"xrb_3koo957rgp3qixffgygq7851ae9wsfimh58ssnezcsepdb3kku4qbnwx8ozp"},{"seed":"2B659413C1A0954C1B131A3CD457935A2C8BD3EF53EBAEC7B62E79DB5786F040","index":4300,"secretKey":"99394A9CC72290D99B28CE0A53AA553CBDE35B121AA25180059708EFA87D2F97","publicKey":"8B00834DD9C3F6A9CF1D043F99D8DDE383BAA794BCAD1ACF51C05C07151EE2B7","account":"xrb_34r1if8xmizpo99jt33zm9efurw5qcmsbh7f5d9o5i4w1wcjxroqhjm9sdj5"},{"seed":"12729F9C2B4DE2883C0EFF88219AD1FAB288D3340EAA7D5FC4683FED9FCEFD20","index":4386,"secretKey":"BD8668893ACB69749D0D59D4A1AE3CC2C3F3579303A1E49236EB7A36A777215E","publicKey":"230E461A7BBCB728454EAD109F0ED0DA504D25735A49FB7EB2006CCFB785A173","account":"xrb_1argarf9qh7q734nxdaimw9f3pkibnkq8pkbzfzd615esyurdadmpp65drf9"},{"seed":"573ABE65FEEDD23D4023F56BF3977C06B01CC28704151A330595372BEBD63D23","index":4463,"secretKey":"F74137179812A0B473C9FA4172A4CE7C4CCC5EA167543A73D48157E1B0148FCA","publicKey":"69AB536DE3029F1CCA21108E0CE2BC1B10AAD37CF1D6152929CE2356D8B92C60","account":"xrb_1tfdcfpy81nz5m74466g3mjdr8riodbqswgp4nnkmmj5cuedkd51apf6hr64"},{"seed":"96EDF378B0126898870694851B195AC88898C6291436E830C4FCA792AF32071B","index":4553,"secretKey":"EDB8F68360704CF7B253DE581F1F4F262AFA9EFFCCE8695C8ABFF2F5B534A6F8","publicKey":"07E6E5C246BB0C7FC0EAF5118D69F32437280088936004C593B551AC483FC33B","account":"xrb_13z8wq36fgrehz1goxajjonz8b3q711aj6u11m4s9fcjoj65zisumpsif7zr"},{"seed":"B253786FDB647BE418388102B747D8B1507DC6292412413BE6A32CC367E8C322","index":4644,"secretKey":"0D926E214C7A3C80F24EDE5A344155ED6DB685100E2CC3247F2C224C84704064","publicKey":"73F3B468F19151C04C1427B8B66402787B8FAC13C6B64200E679A73268594FAD","account":"xrb_1wzmpjnh56cjr383abxrpsk16y5ujyp39jopaa1geyf98bn7kmxfmpy46ahn"},{"seed":"B15A8BCD0DECC79540F83414EF4757A1238C6279769A54D077FF538A1C2F52EA","index":4673,"secretKey":"5CE797B5F0D5E3CFF229FFF94E15247E295A26A059C67791209FB649B64764BD","publicKey":"0376F55904E1E0F9C68295E0ADADCEE983C35964ACC3337A9497EE37F6908A19","account":"xrb_11upyoeibrh1z95a77h1oppwxte5rfepbd858fxbb7zg8zub34isdzu9rax8"},{"seed":"2520D233C3A655B0AF236FEBD1A399DB9DDCA5D6E8678B891FDE771A6BE5B2CE","index":4687,"secretKey":"EEE82CD8012BA15FB43C1ACF0DED7005CBB18517FCD86F9F52F94AB0AFE9AD8B","publicKey":"AF2F0DB01343593068842A322ED28BEF5D296D05CF004FC294827CD577F9525A","account":"xrb_3dsh3pr38its83naacjk7ubaqutx77pidmr1bz3bb1mwtouzknktx3hkk3ph"},{"seed":"D2F1CC3A77E319FA0C94C8A823DD7CFF4FDC692EA479FB15F7A97DEDE7543A31","index":4749,"secretKey":"9191E49245CD57AC8EACDF786B48CC774285E6CCEE02FDA44FB0051A4B94B72E","publicKey":"5BA3399CDC89FB15473521B9A6CFD529DE9CA0AAF81BB8126BBF2678BC227CD0","account":"xrb_1px598gfs4hu4o5mcafsnu9xccgymkicoy1uq1b8qhs8h4y46z8ik6wwsyx8"},{"seed":"F291C3B37DA1B9D78C98BFF9402C797085634FDC7825DA949184FF75317903A9","index":4780,"secretKey":"CCFC89324F6A6512338363A43E2E3293EE7D7C5356B211DDCA64D8555D5C3A07","publicKey":"1597EA2FEB879C07A50E71C69983D344550FE98AA76B2DACC546AE4CB2299B49","account":"xrb_17eqxaqyq3ww1ykiwwg8m83x8j4o3znrobud7ppecjogbks4m8tb8ctzqeh6"},{"seed":"8AA473251225F32DC56ECCE6C50BD12E412B4D52627315A9E697F65E85A58114","index":4812,"secretKey":"6F471A98A0AFE007B233B6AF0C59DECBABE73B9623E67846F3A7F14CBAB23E7B","publicKey":"947B6687080091325068125B21351BD4A6B49A66B6D73FA41D2F765381557CC0","account":"xrb_375uet5ii16j8ba8i6ku66tjqo78pkf8ffpq9yk3tdupcg1ocz816wwksnxc"},{"seed":"90B93226B57F79872305B8F5A4B030E65D2E1AB4A3F072FFBD9C4FEE8642B3E9","index":4830,"secretKey":"4C42BCE7BE1F8112EDF048BC90A2EF5681587D9EE51E026A7062B13201D79C1E","publicKey":"7901BCD92C0E976E8703485ED5A747D2633DD4A1DC51FE14752E462242385E18","account":"xrb_1ya3qmekr5nqft5i8k4ytpmnhnm59qcc5q4jzrc9cdk86b35iqird5ma4e7s"},{"seed":"9AF5C0F63071B656B152CE63876B6AEDB0DB44C8B0F157CBBBCF90641CDEBE52","index":4890,"secretKey":"12559AF09AF66A335CA4D3799CB7B65CFB3D9DD878EF826262397DDD1F62FA81","publicKey":"BC58A3698B368565F69A9771B9BB128907CC38EB4D096E0DECFE0134F4976676","account":"xrb_3h4rnfnrpfn7equbo7ujq8xj74a9siwgpmabfr8yszi38mtbgsmpfgz8ornf"}] \ No newline at end of file diff --git a/__tests__/hash.js b/__tests__/hash.js index ce060f3..24a788d 100644 --- a/__tests__/hash.js +++ b/__tests__/hash.js @@ -6,7 +6,7 @@ const { INVALID_ADDRESSES, INVALID_HASHES_AND_ADDRESSES, INVALID_AMOUNTS -} = require('./common/data') +} = require('./data/invalid') const VALID_SEND_BLOCK = { previous: 'A286FD300598BF0C8CCC1196943B9CEB94F268CC89F2010B7F7EE4055CC6AB8C', @@ -37,28 +37,8 @@ const VALID_RECEIVE_BLOCK = { hash: 'AD93AE771E883680C18502A7AEBA7B63465F2FB3830F0833DD49A54A5AE133BB' } -const VALID_STATE_BLOCKS = [ - { - account: 'xrb_3igf8hd4sjshoibbbkeitmgkp1o6ug4xads43j6e4gqkj5xk5o83j8ja9php', - previous: - 'FC5A7FB777110A858052468D448B2DF22B648943C097C0608D1E2341007438B0', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '5000000000000000000000000000001', - link: 'B2EC73C1F503F47E051AD72ECB512C63BA8E1A0ACC2CEE4EA9A22FE1CBDB693F', // block hash - hash: '597395E83BD04DF8EF30AF04234EAAFE0606A883CF4AEAD2DB8196AAF5C4444F' - }, - { - account: 'xrb_3igf8hd4sjshoibbbkeitmgkp1o6ug4xads43j6e4gqkj5xk5o83j8ja9php', - previous: - '597395E83BD04DF8EF30AF04234EAAFE0606A883CF4AEAD2DB8196AAF5C4444F', - representative: - 'xrb_3p1asma84n8k84joneka776q4egm5wwru3suho9wjsfyuem8j95b3c78nw8j', - balance: '3000000000000000000000000000001', - link: 'xrb_1q3hqecaw15cjt7thbtxu3pbzr1eihtzzpzxguoc37bj1wc5ffoh7w74gi6p', // address - hash: '128106287002E595F479ACD615C818117FCB3860EC112670557A2467386249D4' - } -] +const VALID_STATE_BLOCKS = require('./data/valid_blocks') +const RANDOM_VALID_STATE_BLOCK = VALID_STATE_BLOCKS[0] describe('send', () => { test('creates correct send hash', () => { @@ -226,13 +206,13 @@ describe('state', () => { for (let validStateBlock of VALID_STATE_BLOCKS) { expect( nano.hashStateBlock( - validStateBlock.account, - validStateBlock.previous, - validStateBlock.representative, - validStateBlock.balance, - validStateBlock.link + validStateBlock.block.data.account, + validStateBlock.block.data.previous, + validStateBlock.block.data.representative, + validStateBlock.block.data.balance, + validStateBlock.originalLink ) - ).toBe(validStateBlock.hash) + ).toBe(validStateBlock.block.hash) } }) @@ -242,10 +222,10 @@ describe('state', () => { expect(() => nano.hashStateBlock( invalidAddress, - VALID_STATE_BLOCKS[0].previous, - VALID_STATE_BLOCKS[0].representative, - VALID_STATE_BLOCKS[0].balance, - VALID_STATE_BLOCKS[0].link + RANDOM_VALID_STATE_BLOCK.block.data.previous, + RANDOM_VALID_STATE_BLOCK.block.data.representative, + RANDOM_VALID_STATE_BLOCK.block.data.balance, + RANDOM_VALID_STATE_BLOCK.originalLink ) ).toThrowError('Account is not valid') } @@ -256,11 +236,11 @@ describe('state', () => { for (let invalidHash of INVALID_HASHES) { expect(() => nano.hashStateBlock( - VALID_STATE_BLOCKS[0].account, + RANDOM_VALID_STATE_BLOCK.block.data.account, invalidHash, - VALID_STATE_BLOCKS[0].representative, - VALID_STATE_BLOCKS[0].balance, - VALID_STATE_BLOCKS[0].link + RANDOM_VALID_STATE_BLOCK.block.data.representative, + RANDOM_VALID_STATE_BLOCK.block.data.balance, + RANDOM_VALID_STATE_BLOCK.originalLink ) ).toThrowError('Previous is not valid') } @@ -271,11 +251,11 @@ describe('state', () => { for (let invalidAddress of INVALID_ADDRESSES) { expect(() => nano.hashStateBlock( - VALID_STATE_BLOCKS[0].account, - VALID_STATE_BLOCKS[0].previous, + RANDOM_VALID_STATE_BLOCK.block.data.account, + RANDOM_VALID_STATE_BLOCK.block.data.previous, invalidAddress, - VALID_STATE_BLOCKS[0].balance, - VALID_STATE_BLOCKS[0].link + RANDOM_VALID_STATE_BLOCK.block.data.balance, + RANDOM_VALID_STATE_BLOCK.originalLink ) ).toThrowError('Representative is not valid') } @@ -286,11 +266,11 @@ describe('state', () => { for (let invalidAmount of INVALID_AMOUNTS) { expect(() => nano.hashStateBlock( - VALID_STATE_BLOCKS[0].account, - VALID_STATE_BLOCKS[0].previous, - VALID_STATE_BLOCKS[0].representative, + RANDOM_VALID_STATE_BLOCK.block.data.account, + RANDOM_VALID_STATE_BLOCK.block.data.previous, + RANDOM_VALID_STATE_BLOCK.block.data.representative, invalidAmount, - VALID_STATE_BLOCKS[0].link + RANDOM_VALID_STATE_BLOCK.originalLink ) ).toThrowError('Balance is not valid') } @@ -301,10 +281,10 @@ describe('state', () => { for (let invalidLink of INVALID_HASHES_AND_ADDRESSES) { expect(() => nano.hashStateBlock( - VALID_STATE_BLOCKS[0].account, - VALID_STATE_BLOCKS[0].previous, - VALID_STATE_BLOCKS[0].representative, - VALID_STATE_BLOCKS[0].balance, + RANDOM_VALID_STATE_BLOCK.block.data.account, + RANDOM_VALID_STATE_BLOCK.block.data.previous, + RANDOM_VALID_STATE_BLOCK.block.data.representative, + RANDOM_VALID_STATE_BLOCK.block.data.balance, invalidLink ) ).toThrowError('Link is not valid') diff --git a/__tests__/keys.js b/__tests__/keys.js index 7ef9843..d4c477a 100644 --- a/__tests__/keys.js +++ b/__tests__/keys.js @@ -7,23 +7,10 @@ const { INVALID_SECRET_KEYS, INVALID_ADDRESSES, INVALID_PUBLIC_KEYS -} = require('./common/data') +} = require('./data/invalid') -const SEED = 'b947ee0115014a4d49a804e7fc7248e31690b80033ce7a6e3a07bdf93b2584ff' -const KEYS = [ - { - index: 0, - secretKey: '23B5E95B4C4325ED5AF109BFE4ACDE782DBAB0163591D9052963723AE8E72A09', - publicKey: '4D312F604F638ADF19AFAC6308ECBBC5881E1B6CD6F53D382775C686BCA7535B', - address: 'xrb_1mbj7xi6yrwcuwetzd5535pdqjea5rfpsoqo9nw4gxg8itycgntucp49i1nz' - }, - { - index: 1, - secretKey: 'FEB6959738D43F9B0E6CDCC778BCD2F3384E6F1255510DB6F48E2B99BA059F0F', - publicKey: 'FFFADBB9E15D553101E1DB0C67F20F6984836DC1BB513FF1D0E4A0AF89CE5291', - address: 'xrb_3zztugwy4qco861y5preezs1yte6ifpw5gtj9zrx3s71oy6wwnnj5en5oo5a' - } -] +const VALID_KEYS = require('./data/valid_keys') +const RANDOM_VALID_KEY = VALID_KEYS[0] describe('seeds', () => { test('generates different seeds', async () => { @@ -39,26 +26,26 @@ describe('seeds', () => { describe('secret keys', () => { test('creates correct secret keys', () => { - expect.assertions(KEYS.length) - for (let key of KEYS) { - expect(nano.deriveSecretKey(SEED, key.index)).toBe(key.secretKey) + expect.assertions(VALID_KEYS.length) + for (let key of VALID_KEYS) { + expect(nano.deriveSecretKey(key.seed, key.index)).toBe(key.secretKey) } }) test('throws with invalid seeds', () => { expect.assertions(INVALID_SEEDS.length) for (let invalidSeed of INVALID_SEEDS) { - expect( - () => nano.deriveSecretKey(invalidSeed, 0) - ).toThrowError('Seed is not valid') + expect(() => nano.deriveSecretKey(invalidSeed, 0)).toThrowError( + 'Seed is not valid' + ) } }) test('throws with invalid indexes', () => { expect.assertions(INVALID_INDEXES.length) for (let invalidIndex of INVALID_INDEXES) { - expect( - () => nano.deriveSecretKey(SEED, invalidIndex) + expect(() => + nano.deriveSecretKey(RANDOM_VALID_KEY.seed, invalidIndex) ).toThrowError('Index is not valid') } }) @@ -66,52 +53,52 @@ describe('secret keys', () => { describe('public keys', () => { test('creates correct public keys from secret keys', () => { - expect.assertions(KEYS.length) - for (let key of KEYS) { + expect.assertions(VALID_KEYS.length) + for (let key of VALID_KEYS) { expect(nano.derivePublicKey(key.secretKey)).toBe(key.publicKey) } }) test('creates correct public keys from addresses', () => { - expect.assertions(KEYS.length) - for (let key of KEYS) { - expect(nano.derivePublicKey(key.address)).toBe(key.publicKey) + expect.assertions(VALID_KEYS.length) + for (let key of VALID_KEYS) { + expect(nano.derivePublicKey(key.account)).toBe(key.publicKey) } }) test('throws with invalid secret keys', () => { expect.assertions(INVALID_SECRET_KEYS.length) for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect( - () => nano.derivePublicKey(invalidSecretKey) - ).toThrowError('Secret key or address is not valid') + expect(() => nano.derivePublicKey(invalidSecretKey)).toThrowError( + 'Secret key or address is not valid' + ) } }) test('throws with invalid addresses', () => { expect.assertions(INVALID_ADDRESSES.length) for (let invalidAddress of INVALID_ADDRESSES) { - expect( - () => nano.derivePublicKey(invalidAddress) - ).toThrowError('Secret key or address is not valid') + expect(() => nano.derivePublicKey(invalidAddress)).toThrowError( + 'Secret key or address is not valid' + ) } }) }) describe('addresses', () => { test('creates correct addresses', () => { - expect.assertions(KEYS.length) - for (let key of KEYS) { - expect(nano.deriveAddress(key.publicKey)).toBe(key.address) + expect.assertions(VALID_KEYS.length) + for (let key of VALID_KEYS) { + expect(nano.deriveAddress(key.publicKey)).toBe(key.account) } }) test('throws with invalid public keys', () => { expect.assertions(INVALID_PUBLIC_KEYS.length) for (let invalidPublicKey of INVALID_PUBLIC_KEYS) { - expect( - () => nano.deriveAddress(invalidPublicKey) - ).toThrowError('Public key is not valid') + expect(() => nano.deriveAddress(invalidPublicKey)).toThrowError( + 'Public key is not valid' + ) } }) }) diff --git a/__tests__/signature.js b/__tests__/signature.js index dfd065c..09165ee 100644 --- a/__tests__/signature.js +++ b/__tests__/signature.js @@ -6,29 +6,29 @@ const { INVALID_SECRET_KEYS, INVALID_PUBLIC_KEYS, INVALID_SIGNATURES -} = require('./common/data') +} = require('./data/invalid') -const SECRET_KEY = '0000000000000000000000000000000000000000000000000000000000000001' -const PUBLIC_KEY = 'C969EC348895A49E21824E10E6B829EDEA50CCC26A83CE8986A3B95D12576058' -const HASH = 'F47B23107E5F34B2CE06F562B5C435DF72A533251CB414C51B2B62A8F63A00E4' -const SIGNATURE = '5974324F8CC42DA56F62FC212A17886BDCB18DE363D04DA84EEDC99CB4A33919D14A2CF9DE9D534FAA6D0B91D01F0622205D898293525E692586C84F2DCF9208' -const INVALID_SIGNATURE = '8029FCD2F48C685296E525392898D5022260F10D19B0D6AAF435D9ED9FC2A41D91933A4BC99CDEE48AD40D363ED81BCDB68871A212CF26F65AD24CC8F4234795' +const VALID_BLOCKS = require('./data/valid_blocks') +const RANDOM_VALID_BLOCK = VALID_BLOCKS[0] + +const INVALID_SIGNATURE = + '8029FCD2F48C685296E525392898D5022260F10D19B0D6AAF435D9ED9FC2A41D91933A4BC99CDEE48AD40D363ED81BCDB68871A212CF26F65AD24CC8F4234795' describe('sign', () => { test('signs correctly', () => { - expect( - nano.signBlock( - HASH, - SECRET_KEY + expect.assertions(VALID_BLOCKS.length) + for (let block of VALID_BLOCKS) { + expect(nano.signBlock(block.block.hash, block.secretKey)).toBe( + block.block.data.signature ) - ).toBe(SIGNATURE) + } }) test('throws with invalid hashes', () => { expect.assertions(INVALID_HASHES.length) for (let invalidHash of INVALID_HASHES) { - expect( - () => nano.signBlock(invalidHash, SECRET_KEY) + expect(() => + nano.signBlock(invalidHash, RANDOM_VALID_BLOCK.secretKey) ).toThrowError('Hash is not valid') } }) @@ -36,8 +36,8 @@ describe('sign', () => { test('throws with invalid secret keys', () => { expect.assertions(INVALID_SECRET_KEYS.length) for (let invalidSecretKey of INVALID_SECRET_KEYS) { - expect( - () => nano.signBlock(HASH, invalidSecretKey) + expect(() => + nano.signBlock(RANDOM_VALID_BLOCK.block.hash, invalidSecretKey) ).toThrowError('Secret key is not valid') } }) @@ -45,21 +45,24 @@ describe('sign', () => { describe('verify', () => { test('validates correct signature', () => { - expect( - nano.verifyBlock( - HASH, - SIGNATURE, - PUBLIC_KEY - ) - ).toBe(true) + expect.assertions(VALID_BLOCKS.length) + for (let block of VALID_BLOCKS) { + expect( + nano.verifyBlock( + block.block.hash, + block.block.data.signature, + block.publicKey + ) + ).toBe(true) + } }) test('does not validate incorrect signature', () => { expect( nano.verifyBlock( - HASH, + RANDOM_VALID_BLOCK.block.hash, INVALID_SIGNATURE, - PUBLIC_KEY + RANDOM_VALID_BLOCK.publicKey ) ).toBe(false) }) @@ -67,8 +70,12 @@ describe('verify', () => { test('throws with invalid hashes', () => { expect.assertions(INVALID_HASHES.length) for (let invalidHash of INVALID_HASHES) { - expect( - () => nano.verifyBlock(invalidHash, SIGNATURE, PUBLIC_KEY) + expect(() => + nano.verifyBlock( + invalidHash, + RANDOM_VALID_BLOCK.block.signature, + RANDOM_VALID_BLOCK.publicKey + ) ).toThrowError('Hash is not valid') } }) @@ -76,8 +83,12 @@ describe('verify', () => { test('throws with invalid signatures', () => { expect.assertions(INVALID_SIGNATURES.length) for (let invalidSignature of INVALID_SIGNATURES) { - expect( - () => nano.verifyBlock(HASH, invalidSignature, PUBLIC_KEY) + expect(() => + nano.verifyBlock( + RANDOM_VALID_BLOCK.block.hash, + invalidSignature, + RANDOM_VALID_BLOCK.publicKey + ) ).toThrowError('Signature is not valid') } }) @@ -85,8 +96,12 @@ describe('verify', () => { test('throws with invalid public keys', () => { expect.assertions(INVALID_PUBLIC_KEYS.length) for (let invalidPublicKey of INVALID_PUBLIC_KEYS) { - expect( - () => nano.verifyBlock(HASH, SIGNATURE, invalidPublicKey) + expect(() => + nano.verifyBlock( + RANDOM_VALID_BLOCK.block.hash, + RANDOM_VALID_BLOCK.block.data.signature, + invalidPublicKey + ) ).toThrowError('Public key is not valid') } }) diff --git a/__tests__/work.js b/__tests__/work.js index 513b686..20e350d 100644 --- a/__tests__/work.js +++ b/__tests__/work.js @@ -1,10 +1,10 @@ /* eslint-env jest */ const nano = require('../dist/nanocurrency.cjs') -const { - INVALID_HASHES, - INVALID_WORKS -} = require('./common/data') +const { INVALID_HASHES, INVALID_WORKS } = require('./data/invalid') + +const VALID_BLOCKS = require('./data/valid_blocks') +const RANDOM_VALID_BLOCK = VALID_BLOCKS[0] const VALID_WORK = { hash: '7f7122e843b27524f4f1d6bd14aefd1c8f01d36ae8653d37417533c0d4bc2be6', @@ -18,20 +18,25 @@ const INVALID_WORK = { describe('validation', () => { test('validates correct work', () => { - expect(nano.validateWork(VALID_WORK.hash, VALID_WORK.work)) - .toBe(true) + // TODO: check why state blocks check fails + // expect.assertions(VALID_BLOCKS.length) + // for (let block of VALID_BLOCKS) { + // expect(nano.validateWork(block.block.hash, block.block.data.work)).toBe( + // true + // ) + // } + expect(nano.validateWork(VALID_WORK.hash, VALID_WORK.work)).toBe(true) }) test('does not validate incorrect work', () => { - expect(nano.validateWork(INVALID_WORK.hash, INVALID_WORK.work)) - .toBe(false) + expect(nano.validateWork(INVALID_WORK.hash, INVALID_WORK.work)).toBe(false) }) test('throws with invalid hashes', () => { expect.assertions(INVALID_HASHES.length) for (let invalidHash of INVALID_HASHES) { - expect( - () => nano.validateWork(invalidHash, VALID_WORK.work) + expect(() => + nano.validateWork(invalidHash, RANDOM_VALID_BLOCK.block.data.work) ).toThrowError('Hash is not valid') } }) @@ -39,8 +44,8 @@ describe('validation', () => { test('throws with invalid works', () => { expect.assertions(INVALID_WORKS.length) for (let invalidWork of INVALID_WORKS) { - expect( - () => nano.validateWork(VALID_WORK.hash, invalidWork) + expect(() => + nano.validateWork(RANDOM_VALID_BLOCK.block.hash, invalidWork) ).toThrowError('Work is not valid') } }) @@ -50,16 +55,13 @@ describe('generation', () => { beforeAll(nano.init) test('computes deterministic work', () => { - expect(nano.work(VALID_WORK.hash)) - .toBe(VALID_WORK.work) + expect(nano.work(VALID_WORK.hash)).toBe(VALID_WORK.work) }) test('throws with invalid hashes', () => { expect.assertions(INVALID_HASHES.length) for (let invalidHash of INVALID_HASHES) { - expect( - () => nano.work(invalidHash) - ).toThrowError('Hash is not valid') + expect(() => nano.work(invalidHash)).toThrowError('Hash is not valid') } }) @@ -75,8 +77,12 @@ describe('generation', () => { ] expect.assertions(INVALID_WORKER_PARAMETERS.length) for (let invalidWorkerParameters of INVALID_WORKER_PARAMETERS) { - expect( - () => nano.work(VALID_WORK.hash, invalidWorkerParameters[0], invalidWorkerParameters[1]) + expect(() => + nano.work( + RANDOM_VALID_BLOCK.block.hash, + invalidWorkerParameters[0], + invalidWorkerParameters[1] + ) ).toThrowError('Worker parameters are not valid') } }) diff --git a/package.json b/package.json index 3a9852d..ae80de0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "nanocurrency", - "description": "A toolkit for the Nano cryptocurrency, allowing you to derive keys, generate seeds, hashes, signatures, proofs of work and blocks.", + "description": + "A toolkit for the Nano cryptocurrency, allowing you to derive keys, generate seeds, hashes, signatures, proofs of work and blocks.", "version": "0.0.0-development", "author": { "name": "Marvin ROGER", @@ -43,23 +44,15 @@ "semantic-release": "^15.0.2", "travis-deploy-once": "^4.3.4" }, - "files": [ - "dist/" - ], + "files": ["dist/"], "homepage": "https://github.com/marvinroger/nanocurrency-js", "jest": { "testPathIgnorePatterns": [ - "/__tests__/common/", + "/__tests__/data/", "/node_modules/" ] }, - "keywords": [ - "crypto", - "currency", - "nano", - "pow", - "raiblocks" - ], + "keywords": ["crypto", "currency", "nano", "pow", "raiblocks"], "license": "GPL-3.0", "main": "dist/nanocurrency.cjs.js", "module": "dist/nanocurrency.esm.js", @@ -71,7 +64,8 @@ "build:dev": "yarn build:dev:native && yarn build:dev:js", "build:dev:js": "cross-env NODE_ENV=development rollup -c", "build:dev:native": "cross-env EMCC_ARGS=\"\" cross-os build:native__cross", - "build:native__common": "cross-var docker run --rm -v $PWD:/src trzeci/emscripten emcc -o native.tmp.js $EMCC_ARGS -s WASM=1 -s MODULARIZE=1 -s SINGLE_FILE=1 -s \"EXTRA_EXPORTED_RUNTIME_METHODS=[\\\"cwrap\\\"]\" src/native/functions.c src/native/blake2/ref/blake2b-ref.c", + "build:native__common": + "cross-var docker run --rm -v $PWD:/src trzeci/emscripten emcc -o native.tmp.js $EMCC_ARGS -s WASM=1 -s MODULARIZE=1 -s SINGLE_FILE=1 -s \"EXTRA_EXPORTED_RUNTIME_METHODS=[\\\"cwrap\\\"]\" src/native/functions.c src/native/blake2/ref/blake2b-ref.c", "build:native__cross": { "darwin": "cross-env PWD=\"$(pwd)\" yarn build:native__common", "linux": "cross-env PWD=\"$(pwd)\" yarn build:native__common", @@ -79,9 +73,11 @@ }, "build:prod": "yarn build:prod:native && yarn build:prod:js", "build:prod:js": "cross-env NODE_ENV=production rollup -c", - "build:prod:native": "cross-env EMCC_ARGS=\"-O3 --closure 1 --llvm-lto 3\" cross-os build:native__cross", + "build:prod:native": + "cross-env EMCC_ARGS=\"-O3 --closure 1 --llvm-lto 3\" cross-os build:native__cross", "format": "prettier-eslint --write 'src/**/*.js'", - "generate-docs": "yarn build:dev:js && jsdoc2md dist/nanocurrency.esm.js > DOCUMENTATION.md", + "generate-docs": + "yarn build:dev:js && jsdoc2md dist/nanocurrency.esm.js > DOCUMENTATION.md", "lint": "eslint 'src/**/*.js'", "prepublishOnly": "yarn build:prod:js", "semantic-release": "semantic-release", diff --git a/src/block.js b/src/block.js index ee8a99b..c4f9d4f 100644 --- a/src/block.js +++ b/src/block.js @@ -188,26 +188,37 @@ export function createStateBlock ( throw new Error('Representative is not valid') } if (!checkBalance(balance)) throw new Error('Balance is not valid') - if (!checkAddress(link) && !checkHash(link)) { - throw new Error('Link is not valid') - } + let linkIsAddress = false + if (checkAddress(link)) linkIsAddress = true + else if (!checkHash(link)) throw new Error('Link is not valid') const publicKey = derivePublicKey(secretKey) const account = deriveAddress(publicKey) const hash = hashStateBlock(account, previous, representative, balance, link) const signature = signBlock(hash, secretKey) + let linkAsAddress + if (linkIsAddress) { + linkAsAddress = link + link = derivePublicKey(linkAsAddress) + } else { + linkAsAddress = deriveAddress(link) + } + + const block = { + type: 'state', + account, + previous, + representative, + balance, + link, + link_as_account: linkAsAddress, + work, + signature + } + return { hash, - block: { - type: 'state', - account, - previous, - representative, - balance, - link, - work, - signature - } + block } }