From bb7f25651bbb24781af9bff770586dacde65882c Mon Sep 17 00:00:00 2001 From: Eric Richardson Date: Mon, 27 Jan 2025 13:54:19 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20allow=20payee=20to=20set?= =?UTF-8?q?=20auto=20stake=20for=20themselves?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit consider autoStake when calculating NoDataChange error --- src/api/procedures/__tests__/setStakingPayee.ts | 17 +++++++++++++++++ src/api/procedures/setStakingPayee.ts | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/api/procedures/__tests__/setStakingPayee.ts b/src/api/procedures/__tests__/setStakingPayee.ts index 365899b983..7910f06b53 100644 --- a/src/api/procedures/__tests__/setStakingPayee.ts +++ b/src/api/procedures/__tests__/setStakingPayee.ts @@ -102,6 +102,23 @@ describe('setStakingPayee procedure', () => { return expect(prepareSetStakingPayee.call(proc, args)).rejects.toThrow(expectedError); }); + it('should allow the same payee if auto stake value differs', async () => { + currentPayee.account = entityMockUtils.getAccountInstance({ isEqual: true }); + + const proc = procedureMockUtils.getInstance(mockContext, { + actingAccount, + currentPayee, + ledger, + }); + + const args = { + payee: newPayee, + autoStake: true, + }; + + return expect(prepareSetStakingPayee.call(proc, args)).resolves.not.toThrow(); + }); + it('should return a setPayee transaction spec', async () => { const proc = procedureMockUtils.getInstance(mockContext, { actingAccount, diff --git a/src/api/procedures/setStakingPayee.ts b/src/api/procedures/setStakingPayee.ts index 4c854468dc..3fa31dcbf0 100644 --- a/src/api/procedures/setStakingPayee.ts +++ b/src/api/procedures/setStakingPayee.ts @@ -36,7 +36,7 @@ export async function prepareSetStakingPayee( const payee = asAccount(payeeInput, context); - if (currentPayee.account.isEqual(payee)) { + if (currentPayee.autoStaked === autoStake && currentPayee.account.isEqual(payee)) { throw new PolymeshError({ code: ErrorCode.NoDataChange, message: 'The given payee is already set',