From e9985ddada117561f8e666d133b3d573e0beef3e Mon Sep 17 00:00:00 2001 From: Atticus Date: Wed, 10 Apr 2024 09:18:32 -0600 Subject: [PATCH] fix(types): update tests, readme, and types --- README.md | 10 +-- src/common/ant.ts | 5 +- src/common/ar-io.ts | 22 +++--- tests/integration/ant.test.ts | 75 ++++++------------- tests/integration/ar-io.test.ts | 4 +- tests/integration/warp-contract.test.ts | 6 +- ...xL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json | 11 +++ ...MmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json | 11 +++ ...bv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json | 11 +++ 9 files changed, 81 insertions(+), 74 deletions(-) create mode 100644 tests/wallets/DGHFiTxL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json create mode 100644 tests/wallets/Npv0vfMmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json create mode 100644 tests/wallets/kn44rDbv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json diff --git a/README.md b/README.md index f5389fec..d7f2d0a8 100644 --- a/README.md +++ b/README.md @@ -612,7 +612,7 @@ const updateGatewaySettingsParams = { }; const signer = new ArweaveSigner(jwk); -// connection required for write interactions +// signer required for write interactions APIs const authenticatedArIO = ArIO.init({ signer }); const updateGatewaySettingsTx = await authenticatedArIO.updateGatewaySettings( updateGatewaySettingsParams, @@ -635,7 +635,7 @@ const params = { }; const signer = new ArweaveSigner(jwk); -// connection required for write interactions +// signer required for write interactions APIs const authenticatedArIO = ArIO.init({ signer }); const increaseDelegateStakeTx = await authenticatedArIO.increaseDelegateStake(params); @@ -657,7 +657,7 @@ const params = { }; const signer = new ArweaveSigner(jwk); -// connection required for write interactions +// signer required for write interactions APIs const authenticatedArIO = ArIO.init({ signer }); const decreaseDelegateStakeTx = await authenticatedArIO.decreaseDelegateStake(params); @@ -678,7 +678,7 @@ const params = { }; const signer = new ArweaveSigner(jwk); -// connection required for write interactions +// signer required for write interactions APIs const authenticatedArIO = ArIO.init({ signer }); const increaseOperatorStakeTx = await authenticatedArIO.increaseOperatorStake(params); @@ -699,7 +699,7 @@ const params = { }; const signer = new ArweaveSigner(jwk); -// connection required for write interactions +// signer required for write interactions APIs const authenticatedArIO = ArIO.init({ signer }); const decreaseOperatorStakeTx = await authenticatedArIO.decreaseOperatorStake(params); diff --git a/src/common/ant.ts b/src/common/ant.ts index 588d1a36..734d5171 100644 --- a/src/common/ant.ts +++ b/src/common/ant.ts @@ -33,8 +33,7 @@ export class ANT implements ANTContract, BaseContract { private contract: BaseContract; private signer: ContractSigner | undefined; - constructor({ signer, ...config }: ContractConfiguration) { - this.signer = signer; + constructor(config: ContractConfiguration) { if (isContractConfiguration(config)) { this.contract = config.contract; } else if (isContractTxIdConfiguration(config)) { @@ -50,10 +49,8 @@ export class ANT implements ANTContract, BaseContract { const config = this.contract.configuration(); this.contract = new WarpContract({ ...config, - signer, }); } - this.contract.connect(this.signer); return this; } diff --git a/src/common/ar-io.ts b/src/common/ar-io.ts index e185b32f..329a6446 100644 --- a/src/common/ar-io.ts +++ b/src/common/ar-io.ts @@ -48,15 +48,11 @@ export class ArIO { if (isContractConfiguration(config)) { if (config.contract instanceof WarpContract) { return config.contract; - } else { - // TODO: throw error if contract is not of WarpContract type - return new WarpContract(config.contract.configuration()); } } else if (isContractTxIdConfiguration(config)) { return new WarpContract({ contractTxId: config.contractTxId }); - } else { - throw new Error('Invalid configuration.'); } + throw new Error('Invalid configuration.'); } /** @@ -82,14 +78,20 @@ export class ArIO { * const readable = ArIO.init({ contract: myContract }); */ static init( - config?: ContractConfiguration & - WithSigner & { contract?: WarpContract }, + config: ContractConfiguration & + WithSigner & + ({ contract: WarpContract } | { contractTxId: string }), ): ArIOWritable; - static init(config?: ContractConfiguration): ArIOReadable; static init( - config: ContractConfiguration & { signer?: ContractSigner } = {}, + config?: ContractConfiguration & + ({ contract?: RemoteContract } | { contractTxId: string }), + ): ArIOReadable; + static init( + config: ContractConfiguration & { + signer?: ContractSigner; + } = {}, ) { - if (config.signer) { + if (config?.signer) { const signer = config.signer; const contract = this.createContract(config); return new ArIOWritable({ signer, contract }); diff --git a/tests/integration/ant.test.ts b/tests/integration/ant.test.ts index a1fbaa78..8261a6fe 100644 --- a/tests/integration/ant.test.ts +++ b/tests/integration/ant.test.ts @@ -12,6 +12,12 @@ import { const contractTxId = 'UC2zwawQoTnh0TNd9mYLQS4wObBBeaOU5LPQTNETqA4'; const localCacheUrl = `https://api.arns.app`; + +const testCases = [ + [{ sortKey: evaluateToSortKey.toString() }], + [{ blockHeight: evaluateToBlockHeight }], + [undefined], +] as const; describe('ANT contract apis', () => { const ant = new ANT({ contract: new RemoteContract({ @@ -28,11 +34,7 @@ describe('ANT contract apis', () => { expect(ant).toBeInstanceOf(ANT); }); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get contract state with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const state = await ant.getState({ evaluationOptions: { evalTo } }); @@ -40,23 +42,18 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])(`should get record: ${JSON.stringify('%s')}`, async (evalTo) => { - const record = await ant.getRecord({ - domain: '@', - evaluationOptions: { evalTo }, - }); - expect(record).toBeDefined(); - }); + it.each(testCases)( + `should get record: ${JSON.stringify('%s')}`, + async (evalTo) => { + const record = await ant.getRecord({ + domain: '@', + evaluationOptions: { evalTo }, + }); + expect(record).toBeDefined(); + }, + ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get records with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const records = await ant.getRecords({ evaluationOptions: { evalTo } }); @@ -64,11 +61,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get owner with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const owner = await ant.getOwner({ evaluationOptions: { evalTo } }); @@ -76,11 +69,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get controllers with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const controllers = await ant.getControllers({ @@ -90,11 +79,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get name with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const state = await ant.getName({ evaluationOptions: { evalTo } }); @@ -102,11 +87,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get ticker with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const state = await ant.getTicker({ evaluationOptions: { evalTo } }); @@ -114,11 +95,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get balances with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const state = await ant.getBalances({ evaluationOptions: { evalTo } }); @@ -126,11 +103,7 @@ describe('ANT contract apis', () => { }, ); - it.each([ - [{ sortKey: evaluateToSortKey.toString() }], - [undefined], - [{ blockHeight: evaluateToBlockHeight }], - ])( + it.each(testCases)( `should get balance with evaluation options: ${JSON.stringify('%s')}`, async (evalTo) => { const state = await ant.getBalance({ diff --git a/tests/integration/ar-io.test.ts b/tests/integration/ar-io.test.ts index f798b8f9..ae2db67c 100644 --- a/tests/integration/ar-io.test.ts +++ b/tests/integration/ar-io.test.ts @@ -2,6 +2,7 @@ import { ArweaveSigner } from 'arbundles'; import { ArIO } from '../../src/common/ar-io.js'; import { RemoteContract } from '../../src/common/contracts/remote-contract.js'; +import { WarpContract } from '../../src/common/index.js'; import { DefaultLogger } from '../../src/common/logger.js'; import { ARNS_DEVNET_REGISTRY_TX } from '../../src/constants.js'; import { ArIOState } from '../../src/contract-state.js'; @@ -21,10 +22,9 @@ const testCases = [ ] as const; describe('ArIO Client', () => { const signer = new ArweaveSigner(JSON.parse(process.env.PRIMARY_WALLET_JWK!)); - const ar = ArIO.init(); const arIO = ArIO.init({ signer, - contract: new RemoteContract({ + contract: new WarpContract({ cacheUrl: localCacheUrl, contractTxId, logger: new DefaultLogger({ level: 'none' }), diff --git a/tests/integration/warp-contract.test.ts b/tests/integration/warp-contract.test.ts index 7b9a78b3..5d1878be 100644 --- a/tests/integration/warp-contract.test.ts +++ b/tests/integration/warp-contract.test.ts @@ -24,13 +24,14 @@ describe('warp-contract client', () => { }); it('should connect and return a valid instance', async () => { - expect(contract.connect(signer)).toBeDefined(); + expect(contract).toBeDefined(); expect(contract).toBeInstanceOf(WarpContract); }); it('should write a transaction', async () => { const tx = await contract .writeInteraction({ + signer, functionName: 'setName', inputs: { name: 'test', @@ -50,10 +51,11 @@ describe('warp-contract client', () => { contractTxId, arweave, logger: new DefaultLogger({ level: 'none' }), - }).connect(signer); + }); const error = await contract .writeInteraction({ + signer, functionName: 'test-fail', inputs: { name: 'test', diff --git a/tests/wallets/DGHFiTxL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json b/tests/wallets/DGHFiTxL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json new file mode 100644 index 00000000..84ad33a3 --- /dev/null +++ b/tests/wallets/DGHFiTxL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json @@ -0,0 +1,11 @@ +{ + "kty": "RSA", + "n": "16866BXxnG2Vc06D2b-grpbZRtln_8WOuIPCayi3igHtujO9T8sscPvuDSt7ngL0GrFrdZ8gF3DvYnWmf5SroO9Bd97LMNRKwXCzGTpRVTeW2urreAzoozbxO4e26aUS8DJtlGoPgTl1sTp_ZTOkTgGuK8FYUrvxcM5RYjmPyZD0nudQdbRt--TFHvBw6rkf0hI2SZfaBg4AspyIN25ho9aP0xzSWger5Uw918Kgznt4dZXz12yfE2k03PnogxhKUw_zuf41E-ZeNZgIidqjB7FEa9UQ66oiIOXZWH2ghEo6eKSRMdVmoOtuAfV7C3U6dXXEzgNmsPZv6Ku2z0pTZ7fCO2cbUDzKnk8jL5TQHaIwTsc2j_wE1H8Bg6erj5OWpEzGLHf9lvWDzNA_8BpZhGpyKLg9RXjRBSlcQ3cq4Ju3dLXGAYL3HUGvZobDiS4Qv18qRl-5v8XgmiwJyq_fj4yVKP2VvKHmvJXk-zHRnTL3sHAUiwL-vRWY823mFwGi5HEnVJHakZCvFMrdcZltc5D9f45-H7HrbBFYAiIzemfsXiOMgOw7ysuuMfkGn2edbNTn_qQDzfx5lgqbLRZ4mf9sTVTnHWZBNU7iqEVP3iTmT0-Hf6GkEj3F5mtQ--OLSAHoyHdDCtWj4i3OE4CbyXdkEoVO3ZWcjVtXesdmO8s", + "e": "AQAB", + "d": "QQXJVv2ClPuuchAqDMPKH8hHYaYaRdAbukGyo5anWnpBXoDJolwonjk9J4hD4LuYNtHlCRU7WgXIjWDVnKHH6iEnFgm7LRHbJZ0hyUm9CllTZ9Upvsv5eHcQW7eK675BytsREQy2dulJM3BkxrA-aOv1w6gqxep2G-F_RIMA9631KVCn_4wxGh76VFz9Va4Qy0aFSkN2zZt8F1y8biWfVwLQ4j7OpaipaFvHSxwYWZd8lcpqtDfBb1sovjOzJo50nbzx59Ec1E5_eV3HuTOKMb_91hpqWvm0B0Hz98sL0MYGAafvQ9xHb9z6EaodebNSN-YUulzpIRFyZG0cFDsekFjAj3-eThka74QMLdLAiqTAzZIjwP4OjL0qXiKK9gcxuM3sQKAfo94s4rm5MSqTV7D-R_cV9_J31Cl_u8f9zwCgVp3NWU_YwEgsG-VXo4vLqMGpFvSS5hehShp_4_OGG4dg94kCVtkctc_kGjQm3gFquRzMV3R_h6MC9s1tCPHWtJjVgJSjz2_zc_SjIhKInw7hMOnT-9d1Dm_mfuQdeqQ8pLweyUMOaIyGa-loUHiduQD1_nO8WOlGFkdTaIMfUiZ9NazQ4lbRNh2benxvflmiHQHrarIWeq2tfUKJrdfA9WTE8CYvf4fdzbUvl8UawnN18iYko14V1XHsQKPtUIU", + "p": "-BL7xl2gFk5EJ3YjzQOQT2lmA4ODx94TJ6SGcgmk5WQOiwBhUDa8eTVd0Dm980BposPW-P0allmQ6BsGonp7eWjUD_dGDF5XLRM1WEXRXCJWV-1nALxRo0xLSHCp99tkvJ6EIexK3QBjalLRF8tMY1HMFbCj51_QAqi5CgK_Q4CXR94agJIfVlkrGDhFWU9itYOMsx5BGbf4joPD0-smmWpQh_4-Tm2pU9YtlzYvOVK0mWwPU7TjTlj97kyDKmqKDPWfLQxEgTfQTXOdhBr7wtAo6ChUiyjsU_91ymUpUKyyI0MKTH6iari_L36FKeIfZLv-plz_b9W0KBzv_tVJNQ", + "q": "3pNUR3m8_EpeWnIjYfo1L2_q4jjd77R2mG0LqGfAWPthmkqmDD73R1WenbTuLSElw2YixdcXaTKPO9wLpIoOGHLnfsz2T9kFF4biHjQcNMCh0_zqLn_4jImfO3krdHNgnEVpTRBo7tqpeHWjXtHKwNQfYP-8DbLW4mf_3u_zoZti6m4KAFR9JA6puJDBl4YIT-Yx6z3md3xRHfIoVejS3iMXRS1Ix5H52_AV9EJLOmKDijfOt5XhgUa9PYOQMFqfTpcmD3Zc5igmLCbw5Ljmim3POlwYknIlXEgJqHuBZE-JfiN8cnACTEiYZ4MX7X5l2Cm86iLRzzvP1Cw8lcMQ_w", + "dp": "fn3nhZEt1NHZrKlvvdTIW8Wpb7c6lcolyDv7FeDXBOSNCdGKzUTru347tLYMpiE8-_KSBenBCdLnsYI-UtDTbufF4dI7FIlyOBioRbdr9mfH0RPLRrO_iN2ZMXnJIQnshsTpKQb8cU4GYyuRVGmkLKyDvLeSC6NuRDzWBUW7UucZvFqC9vYLJpNXBwWCTvTMpzNJpfeSSFPnWHvVeZRY3Tc5ku5PxNvj0EzQeF73m2oRjn1sH0mH8eYsrLq00wb6F3uSy3yK3byg6S0_ryG3J_HOOfp-iWq3fmkvHaGRfIJiXtqLQM_9bx9-1O_VZLLZQRse0KNw2AyGzUFcGnuU1Q", + "dq": "ImPFK94Fcz3SYkssaGEOgqvaMOX0dKr_gAGpQXX2ZElDBWHvUgkQj_cMsPVZr6NlgFFxofvf5CMpumf_bIbgMqreVds5W5D-lmoC2gPXL9drqaN0U4b2UlCZR8krC60gCkU3Re75J56lfLVAbtAfcbfUuVoKJluxk_3ZrQqKLDgkCnDCHtbvFvklBB1prA3LjvzUTbKcv2134xadYNi-bBAj8k5S5nMJlg_8dGch1H2QMXT5_aes1hql9rEzQCVgY_Y6rTzukak2bK__nHdtN4pL8Ip2SXpVh3Kh-2RJ08PuTI0TF2NzF3JICgZZVhqnhcS9KbgDju-A5xmGquUe5Q", + "qi": "CPf4kVJ0J115mChptkRji3sPvN3bhP2--4iV7boHVp2I2cuxHRuyAsgLme5S1RV52-r8Xgk7UUjLplpeE18Uh3oGN7iiqQ8_3HIGAPof4XwY5YPd9dCEVEiaiiMHxbWmmE4ObfRHYOfVNvvJVvGCjNIcIu94em_btR_RJXIfQvp3k-kqHm8JLT0b_M-Shvii6TSMANP7tE_YXg5_KI0knVUovhe8ihPdQOxgC2285XL3QHkUn6fyC-SAF6MBRzt3r_gcprtwnYLNqqdleaYM8jS349Jz8xJaGaStP6UG6HTBV0tv9SLw2WuPEacAaLDMSHcnZ2J-yLwHmU145ta1Vg" +} diff --git a/tests/wallets/Npv0vfMmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json b/tests/wallets/Npv0vfMmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json new file mode 100644 index 00000000..2383b170 --- /dev/null +++ b/tests/wallets/Npv0vfMmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json @@ -0,0 +1,11 @@ +{ + "kty": "RSA", + "n": "qM_rzdjR9k5mMUKzkRdrHA1InkzwpAjj6TUQpNELgVrExuyi8xEtbCOWNkoTzT1X9qnE5O-65MGu9oOT6Y1X1y1A_VBLb2IHVGHEkjysQd4VcGfZML7cojEbp8xo2rnStBRtftqsSU6eoAaeJMfo_j8y6h21TBCrn7ejZJDah0PHzVyQ1wYQJoHJuQVjJNcCslSgl7ZspFNMuFrUncrvnqZzzoqiekfARCaBff08PFe80d1txFlOQZQFqycHb80G3X3lFt_lDDz8GT8yPOoEEWVbd8d_-dxM2gS6ac10XQ-uyX-gCoE5o_B-Er7sBQ3_LnyacsK9SCarlDpjFDT3YemiapQFAePunKw9nb6U1e3jxlrgIrED4omLQJKGUTDqBRmSkRbxdxLZ4NWJJjf5bDfgDZjpLgV78qEfhWlWWSrjnrVYvzPfzjimS_vYjYgCNSchwTjK01OUQgwO1VScPwugnQRj5DL075Lah2B5kES46AZteN3HXj_GwhzL8oQcCDAza9CrKyQoE8q-dL4vX9_uK6CrmLljlZg6ry2DDQtRZxMGbp8S2PHyVLcSwb3gMtGGO_6nBdHs74cQtNKhTCiMV7JqSFE-YK9ggX3wDsbzdriTv5kHCOAX3x-fC_nMuX0b6iy_Uhfsmw5xIW-_1fs4LqG-yXaPJTG0lvKCPrM", + "e": "AQAB", + "d": "BqsRuuIxjQax3kK6ek2bpjU_8Jh-c6_32dkdW2vg4w74VHZcxaDyB-JJQZS9Pt39sNlYjzn9kETlD7exqrw9iVsY82uQx0OGLTtxzGgZO3iqAjoueVxS5CxY4YsCNYCKy6yDzu3Dj3aotJos3U78zoo80yFJBKdRj3uExF1r6A9OxauynkDgd85iY2EGx_b8Tmt_Rh1y80V__zAW9mzhm230EziwzEGoUXpM0UQwgM0pKasTAbSYes6VAXfM-1tdi71yrT07JSB58Ex1W4WhTWpuI9jjWNjADVAXUYn2U1en1rlW048J2m9I7cyLg-glImWju0sL5a6tXcLNN5P8lWVoMpyVzVGpRMSOhNdHCTpiCshXCAaa0vdNtExW79oPqgIkPux7QIDZffdaZg49BebKRnd_hqzOQWlvKBkm-Pz4GJM-XVmmcP4bowjXdSPHgaFJrO8KzOOlU8qjt0_hueQ1MFC5NLtnzG9K8iLNrXhB1Z1v_WRnHAit5ir9oRbbj7eTKATyqKv0zAGW__qw7MVOPr3ZF_0VXvhXt_kNC-n29WbSDRYBbkp_qaybgwWeKtwEWPOGJ0XWZunNinSnUnbzNOL1UZZoJMHB9iFU0FemifBKyqWmRmFwUT9GuquECoQUj8YQnBmSCgVTsVagds9hc4L3gxXZobNgAZOCGf0", + "p": "3fCKVC73GlVhP7rsnF_KvToEZwK67k7Xxr5AclpdNp1U63pdHTMSm6o5H6x7Ann-tefrZ0DdYpmDV7GDSnS5NEi9mpKAHX4WR9_xy1HyYVz40D7IltpKzpJq9apKoGNCzLg2vnCkP88uOVFOhP5s4IY3XGzXi5_z8HKZn3fCfNWWkg5tSMUh5n7oA5o9k6DnlXYlFp75wioAw6GxGcDDaDdokd4q_SoQIHn7Sv9-ZyBzCYL_uAjmFcuZ3E_0jrV1M4lyg7wJUUrczPfKJk3VEhSaXMj80CRSYx091SzKa5RY4NFekNE_HbDstyOwGDeDrz5XizAGA73lMXgKcKoRDQ", + "q": "wrgitLn2eDM7KZarJgWnL5EM8uGCTHb9z9ih3x2gca3P9wiPBmN5k8UYDLQ5ML5LJ0VfIJKsOB5jnNp6EaHb_ETvsEOOUXPIdFw2ervD1pE18zHYKqb_maYkBqswYdFT3haGNHegIoaK4nRdGQtJR_nHZSE0LTJKUDdkZ4ocI76irhLWwiPKBrV35t25PV9wTG-iIZXYUSoawP6Zyn-iv4I2pCDHxyXvh_XEkXNAyCtAkwvdR3T0_AWbiLMIrW4q548bwKWWvJJgfx8PTmN-ssPjCEMrDz0xYYyhLZvxYvsF2_jlVDdA24BBdcHOA4vUSspYCI25dyR8lmV1JCAevw", + "dp": "l73GVhhmSlLl0rTy4Vd9PjNUnzl2pUiyrueVGJo_8P9Q-E8JKtWoe1W_CLDcyayvQZ_3ivkGZEuhSWvM4DM-DUlOmUhg38k9Ypbyspisp3TxiS_j5YAKdYIWLzDnJRG4sk-g3kQViKsWZ4n3rWZm-nvJjh-8n3IVTuiLsEQpbUB7WhETFxXxP6604wGp6C2zKLVGVlkLWn1tWFRMydbJw49ep5zGt6DytcGw1m4o9klxXad7P1CWP4CdCcyA4LGgGER5TyhZFoOgw2MHi3jbnSkJATdJ4uVyjuGHTSD6pOMggVWk2k62YI5-yhhUZbpPBpoRMND8y8Ih2djBCpa8YQ", + "dq": "nCgrvSA95xu-4JVyYCW8dEsxRT9QzZ3H4v3qoxIRb9lipMx6VzdDcxxnMxj9nHefsbjSlz7JWqAUZuBXcPiLgX6Pcp5a7juakKa7Eiau4c7Go2hf4aTX6xLwZWC4hlnnln4d1snw5H9dtkp3tvP0KwLHw_Si8XQZYMdrgBWkh44EzPFSxZMKG-NAayd5vRxi5QnJzoFrX3wSxJ_qGhnOHSOCSpH3ZWCo_jI9GCCD3YPCX6ruJLZJGiwtFa3u0Zc-VUHRkee6QTRqqsfv8H-eRiMOWbv0Nl5u0bqEMB2Vsjl583ViBO3i16W92YA5hWKIOAqaGxH9oOzj9YEcNoKD5Q", + "qi": "Jhx0hhfGW7gA8Z-bTczlj4gDQu8InwTI9NSAyvcPA7wK_Rf-_WJArCEXWmGzV75jeYOanSHNC8GlG9SVp0VncVohcAfMXsGNwIPSjoN2TnBUB0x-RZ03ukZYawgTnN9oi_PQygzRbdYH82Q6W2EyRk0DuEwnyE1YOzlupLPhNsFfJ73qS2AY_pMaqMq6_OlqeuhAngoqmxJUkQSjnr0920vd1gjUfnZhjIMF19ai_pbNbRhXsdjviA4fVw2dNhuV5j3GjPbcPzWs7g68TTLI1wYTt7rdm0KOp--gpuQwv06bKrApVidy7H-xrhbCyrtT9RzR9_MRl1IhqJbNNrydtA" +} diff --git a/tests/wallets/kn44rDbv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json b/tests/wallets/kn44rDbv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json new file mode 100644 index 00000000..2a880525 --- /dev/null +++ b/tests/wallets/kn44rDbv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json @@ -0,0 +1,11 @@ +{ + "kty": "RSA", + "n": "uI0S43QyZrhLqIK5q5OvJFRcVChsdAMsWNlCnnmW04f-i5h6eq-l2FV_9R-AfzdGKC8vLefldQKnT3t-CBcTJ3y7ruaomIghQ-nAoOSU8xiPHG-8zlBjI8vnSSX8zty1h2RJeGQOh_B9nSg03K6jJalsMBnk-v7o3KVE1Jhv693X-oYkiiE5EGR-wxlVkt6sYkUCAsnXPhLfKNdYs4PAY-wS2lcJwxgqRUp2UoRd18zBltXRWqJl-pntgPb4lsXRBIdrvVGyGFlg3cd7CnXVXoaILsoJOSRgpS6RJpCTp-HCs3wfOHD6vJTzechOwwPPrw8yaeJ5xOdUC7dgZ2G-TmaJpMyWcNq0HSyhhEThbil1yyfnyyLVLzEpzdj4bNiiOnKawKoMNFUogtvBGJxYBzxLhQ8SlbpJb1MiEUR-5qhTVaiTc16vC269YPGIJQwziVo7slcftIEwRntyiRS3ZZxIsvxWUWM-xORjxFE2TVR-rgHmPweLbFY5ZRK2BGlmg_0zoCpkmU-ls5FSdOWE3bYNeQRhr5dW1HFHwvkPK-MPixsIyYrQdrsoq1UagDlTIYAU6a9nViGCYmgj6DuyHrDb9wniuET4B5aQWvTe9tfNgZ7-g3m51GkWRysO8WkN4PpF4FcjrZxREIPKCxVXchu8JF9W1mkBB3U0OvYIMu8", + "e": "AQAB", + "d": "UU9ii5E15Zj8SJW0DTrHtydt-GxJAEInp0uttNnYUIGB7mozSFucI7jj5BFJkYM-Z1UGoeCicY_GPFgp-pGEEGk93bzlejK8CUpzYs_jKknfP8WhN3smeu6LC-jvPgry9eCDGEZpOo6EIZpF1BcjbWP8dSLrhoSJ_zDXpx00boSy9D9m2O7zT9wfF4FReSCfbbp-vNDGAyTYaouampkJSl0IH2eqtuiuMxIwGIIWQI6HmpfBIgAcEzH_eMsXUoJ8aVTq7KISZ_T1HzGU7dJlvDxkwsykDKeQ5yYhsI6RZ62plV-x97GbXzv3G-hbf0NuHPCCozEzukO7fWABWvsvF2c_EOJa5qNwolMIgj5v6FOBk_qK8WsDF7pFyXEFe_8habz4suEq6aA6VjqREhMvAvaI4Wrjs5m-gonxm1NnxUv0h99lFNqC1MRkup1dR0o8FrnmvnrdAVgtNR7_Sgg3iioOG59jpcCDqfEPLCLwjVmoSYQ1hXfQzpthCNG7meu34iaiSmkPHy7KDX6CjoL6v7iDmR9cDH9nj9_CX2R_XVWuiJCMPnezYOpXNzjwzFeP02vedU5bbGI9g6JRUM_G0ItXsFdnFhafF3pNSw-ZWV6rkYV_ZSqBHc3cYjhYS02x1Sc5HirIn3GLsucl1hWr3JCkn0hnTcw6rQoFV-ULR7U", + "p": "2xE6YisMaKmeVQ4SqQoi-oOIml1ISwV2FAuMS8Ryp16KFU_QxqVLiWEjlc0GFN7cCPS6VMYsjm4gZhQNoncmAsGv9iYAWfdgpWZ8VbQ928XdlS7QfVUiNE4i1Yxj70HaIUU2ryO-eLLC2KwI2MKrfp5CYFVrrbkddsbogd_NgDCt1uhzYRpODRv9xBx1Rsray3G_uxrDLcw3OdI4sz_lOhK_xiJDzJFrofwejfK9052isZEGHfiuBRQNyVq9WYhawSjmyRWgE0PR6VMsKTnjWU1g4OPc1j2izp0Vg2D9m2vj5P5oPWV1_pbaV3d3wuS3AOGN4FMh6Qz1OPwqOL_WZQ", + "q": "16onDGcDPHLFImNrPA-M3hk52ZJd31RkIDrh4Fb5uvrmjd2LufJWUgFXs9yrYEEGF3hk8JMl3s5dreogeUky_3HUMNIsVpWDVLwDeYWaHyre7AQ2XnLBvY0rc-Qxv80ucd2wO-FEdJu5KUV3VaxeBbh1xPVR0hp9rvVDGCLpmfj6Msptdvp4vjhoJyxesZq2ee2U-L79762q6obt6fOgvyUI3phKA4IqnWd1jVzGd8_PRJfRa866_585FGSk6MD9NqNp18DnZgZXzqFVdfuXJP_OCBGuez-5p_c6KzFITOJ1cB4KHWXNzu6i7uNj0XZZvAkGItIyICuYqLndHAgUww", + "dp": "ay6dsyQ-2QKMXi8ZgC1eedVbQ7N6SIJuiFYyGWwPcMY3pz-69UYwlBG7-HIslI-JdrROamXfrPxCy87p8OB874JWlod3So1XcvWWxdP_JAVGadRS28-IgbDtKDCdQJWmpPqZS82gRqun250oYu20PKov7bQ9j-zvdorRfaHDiQHIPErVEOBu6ckVOxt1YeKkdD--QExSzJiLOLYbWdBcVjKQM9_V7kQENmgFhwwKRnxs-pXrOUTP19o8-JR16lVlmfZqHF6BSIu5K4CvLaiODMZoLQAvr37OpmqC-Rm-W4nJIeQ7mjaHKb4jLAJezTNcOokhAm2KPN1DKdNu0P9DZQ", + "dq": "i1An_1P__ClrfOZaHCczaTlEbG6nYx_hugwvYzrsAUQYcOX_X7PS3RBu9goDTp9SbxDfq6RyXzZRv4mxRofpgKeoWY07BQd6Gd-GIxcR0zZfYHjsIiDhVDAANNHg7TR-3yFEubmv_d-mQanVB6vb5Lgeo4eRPjbMn5thpxLOch8qiGrJQYVVQBOx_DQmS3ZUj_jQNcsywIQgF3Xn9Cvj1_X1f81CanfITXvKrPGUZ0r_aiDkME8P7xaMycal3JDmQUhYk_3RvM82I42GZjuKjGUOU5oQax9kL8N9eO9R9BCJqk5NXGYqB5WR_N042tMn7lap9w5vQObIq5283mG9_w", + "qi": "taNUbebrapKIHMAkkgm9wgKvkmExiPBVt6FknxNHqUtyJo-460I5vRx5D_uFKI0wKwZdz_ZaFSY8gB8JL0N5Qo5_X57sujVjaC-J4Ncru0ExgOWSZ9qws7WaP6nRaJJ_0lXq3PcF9XuXknYjgYJodmkV00vAaQe0OZwvqhyjySVb6U2KKFlsPum9K-xzH8y1LtPviPl-Z__vl1snTQuU8v8HH5d6PzsnW0GTUTo5ZHrioWMeSHi-JvfS_t1_QrjZjCry_MxXzPxNNVy1Ptdb5GWygIreSTsPb2RJS5Y59wCU-zLQcXvrvVRv0K6YuygxZrgNeosyJ2VPQ9Qzs-R0EQ" +}