Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
copiedExtensionState[extensionAction.id] = applyCreation(
isValidAddress,
extensionAction,
timestamp,
);
return copiedExtensionState;
}
// if the action is not "create", the state must have been created before
if (!requestState.extensions[extensionAction.id]) {
throw Error(`The extension should be created before receiving any other action`);
}
if (extensionAction.action === ExtensionTypes.PnAddressBased.ACTION.ADD_PAYMENT_ADDRESS) {
copiedExtensionState[extensionAction.id] = applyAddPaymentAddress(
isValidAddress,
copiedExtensionState[extensionAction.id],
extensionAction,
requestState,
actionSigner,
timestamp,
);
return copiedExtensionState;
}
if (extensionAction.action === ExtensionTypes.PnAddressBased.ACTION.ADD_REFUND_ADDRESS) {
copiedExtensionState[extensionAction.id] = applyAddRefundAddress(
isValidAddress,
copiedExtensionState[extensionAction.id],
throw Error(`Refund address already given`);
}
if (!requestState.payer) {
throw Error(`The request must have a payer`);
}
if (!Utils.identity.areEqual(actionSigner, requestState.payer)) {
throw Error(`The signer must be the payer`);
}
const copiedExtensionState: ExtensionTypes.IState = Utils.deepCopy(extensionState);
// update refund address
copiedExtensionState.values.refundAddress = extensionAction.parameters.refundAddress;
// update events
copiedExtensionState.events.push({
name: ExtensionTypes.PnAddressBased.ACTION.ADD_REFUND_ADDRESS,
parameters: { refundAddress: extensionAction.parameters.refundAddress },
timestamp,
});
return copiedExtensionState;
}