diff --git a/packages/wallet/backend/src/rafiki/rafiki-client.ts b/packages/wallet/backend/src/rafiki/rafiki-client.ts index 277c8ae45..99b5ce5a8 100644 --- a/packages/wallet/backend/src/rafiki/rafiki-client.ts +++ b/packages/wallet/backend/src/rafiki/rafiki-client.ts @@ -269,6 +269,39 @@ export class RafikiClient implements IRafikiClient { return response.payment as OutgoingPayment } + public async createRhyzaWalletAddress( + address: string, + assetCode: string, + publicName: string, + isActive: boolean + ) { + const response = await fetch( + `${process.env.RHYZA_ADMIN_API_URL}/wallet-addresses`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + address, + assetCode, + publicName, + isActive + }) + } + ) + + if (response.status === 201) { + return (await response.json()) as { id: string; address: string } + } + + if (response.status === 409) { + throw new Error() + } + + throw new Error(`Failed to create wallet address: ${response.statusText}`) + } + public async createRafikiWalletAddress( publicName: string, assetId: string, diff --git a/packages/wallet/backend/src/walletAddress/service.ts b/packages/wallet/backend/src/walletAddress/service.ts index db66ab960..795db52bf 100644 --- a/packages/wallet/backend/src/walletAddress/service.ts +++ b/packages/wallet/backend/src/walletAddress/service.ts @@ -118,19 +118,20 @@ export class WalletAddressService implements IWalletAddressService { ) } } else { - const assetId = account.assetId - const rafikiWalletAddress = - await this.rafikiClient.createRafikiWalletAddress( + const assetCode = account.assetCode + const rhyzaWalletAddress = + await this.rafikiClient.createRhyzaWalletAddress( + url, + assetCode, args.publicName, - assetId, - url + true ) walletAddress = await WalletAddress.query().insert({ - url: rafikiWalletAddress.address, + url: rhyzaWalletAddress.address, publicName: args.publicName, accountId: args.accountId, - id: rafikiWalletAddress.id, + id: rhyzaWalletAddress.id, isCard: args.isCard }) diff --git a/packages/wallet/backend/tests/walletAddress/service.test.ts b/packages/wallet/backend/tests/walletAddress/service.test.ts index 92fd8fd1e..edf53aa4f 100644 --- a/packages/wallet/backend/tests/walletAddress/service.test.ts +++ b/packages/wallet/backend/tests/walletAddress/service.test.ts @@ -79,6 +79,10 @@ describe('Wallet Address Service', () => { id: faker.string.uuid(), address: faker.internet.url() }), + createRhyzaWalletAddress: () => ({ + id: faker.string.uuid(), + address: faker.internet.url() + }), createRafikiWalletAddressKey: () => ({ id: faker.string.uuid() }),