Skip to content

Commit

Permalink
fix(types): update tests, readme, and types
Browse files Browse the repository at this point in the history
  • Loading branch information
Atticus committed Apr 10, 2024
1 parent e3c97e9 commit e9985dd
Show file tree
Hide file tree
Showing 9 changed files with 81 additions and 74 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand Down
5 changes: 1 addition & 4 deletions src/common/ant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ export class ANT implements ANTContract, BaseContract<ANTState> {
private contract: BaseContract<ANTState>;
private signer: ContractSigner | undefined;

constructor({ signer, ...config }: ContractConfiguration) {
this.signer = signer;
constructor(config: ContractConfiguration) {
if (isContractConfiguration<ANTState>(config)) {
this.contract = config.contract;
} else if (isContractTxIdConfiguration(config)) {
Expand All @@ -50,10 +49,8 @@ export class ANT implements ANTContract, BaseContract<ANTState> {
const config = this.contract.configuration();
this.contract = new WarpContract<ANTState>({
...config,
signer,
});
}
this.contract.connect(this.signer);

return this;
}
Expand Down
22 changes: 12 additions & 10 deletions src/common/ar-io.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,11 @@ export class ArIO {
if (isContractConfiguration<ArIOState>(config)) {
if (config.contract instanceof WarpContract) {
return config.contract;
} else {
// TODO: throw error if contract is not of WarpContract type
return new WarpContract<ArIOState>(config.contract.configuration());
}
} else if (isContractTxIdConfiguration(config)) {
return new WarpContract<ArIOState>({ contractTxId: config.contractTxId });
} else {
throw new Error('Invalid configuration.');
}
throw new Error('Invalid configuration.');
}

/**
Expand All @@ -82,14 +78,20 @@ export class ArIO {
* const readable = ArIO.init({ contract: myContract });
*/
static init(
config?: ContractConfiguration &
WithSigner & { contract?: WarpContract<ArIOState> },
config: ContractConfiguration &
WithSigner &
({ contract: WarpContract<ArIOState> } | { contractTxId: string }),
): ArIOWritable;
static init(config?: ContractConfiguration): ArIOReadable;
static init(
config: ContractConfiguration & { signer?: ContractSigner } = {},
config?: ContractConfiguration &
({ contract?: RemoteContract<ArIOState> } | { 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 });
Expand Down
75 changes: 24 additions & 51 deletions tests/integration/ant.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<ANTState>({
Expand All @@ -28,59 +34,42 @@ 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 } });
expect(state).toBeDefined();
},
);

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 } });
expect(records).toBeDefined();
},
);

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 } });
expect(owner).toBeDefined();
},
);

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({
Expand All @@ -90,47 +79,31 @@ 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 } });
expect(state).toBeDefined();
},
);

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 } });
expect(state).toBeDefined();
},
);

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 } });
expect(state).toBeDefined();
},
);

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({
Expand Down
4 changes: 2 additions & 2 deletions tests/integration/ar-io.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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<ArIOState>({
contract: new WarpContract<ArIOState>({
cacheUrl: localCacheUrl,
contractTxId,
logger: new DefaultLogger({ level: 'none' }),
Expand Down
6 changes: 4 additions & 2 deletions tests/integration/warp-contract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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',
Expand Down
11 changes: 11 additions & 0 deletions tests/wallets/DGHFiTxL5_e8S4u6EgG_sOEMKt7s5Za60wRqPBTCmZ4.json
Original file line number Diff line number Diff line change
@@ -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"
}
11 changes: 11 additions & 0 deletions tests/wallets/Npv0vfMmBqC-EnYTCCdzghdRrsNrohjsgmOoeA8SNkA.json
Original file line number Diff line number Diff line change
@@ -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"
}
11 changes: 11 additions & 0 deletions tests/wallets/kn44rDbv1IUspSCZ8nCoBVkjgc1ZFUrjXTp2qKzeQKI.json
Original file line number Diff line number Diff line change
@@ -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"
}

0 comments on commit e9985dd

Please sign in to comment.