Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
actionSigner: IdentityTypes.IIdentity,
timestamp: number,
): ExtensionTypes.IState {
if (
extensionAction.parameters.paymentAddress &&
!isValidAddress(extensionAction.parameters.paymentAddress)
) {
throw Error('paymentAddress is not a valid address');
}
if (extensionState.values.paymentAddress) {
throw Error(`Payment address already given`);
}
if (!requestState.payee) {
throw Error(`The request must have a payee`);
}
if (!Utils.identity.areEqual(actionSigner, requestState.payee)) {
throw Error(`The signer must be the payee`);
}
const copiedExtensionState: ExtensionTypes.IState = Utils.deepCopy(extensionState);
// update payment address
copiedExtensionState.values.paymentAddress = extensionAction.parameters.paymentAddress;
// update events
copiedExtensionState.events.push({
name: ExtensionTypes.PnAddressBased.ACTION.ADD_PAYMENT_ADDRESS,
parameters: { paymentAddress: extensionAction.parameters.paymentAddress },
timestamp,
});
return copiedExtensionState;
}
function applyDeclareSentPayment(
extensionState: ExtensionTypes.IState,
extensionAction: ExtensionTypes.IAction,
requestState: RequestLogicTypes.IRequest,
actionSigner: IdentityTypes.IIdentity,
timestamp: number,
): ExtensionTypes.IState {
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`);
}
if (!Utils.amount.isValid(extensionAction.parameters.amount)) {
throw Error(`The amount is not an integer`);
}
const copiedExtensionState: ExtensionTypes.IState = Utils.deepCopy(extensionState);
// increment sentPaymentAmount
copiedExtensionState.values.sentPaymentAmount = Utils.amount.add(
copiedExtensionState.values.sentPaymentAmount,
extensionAction.parameters.amount,
);
// update events
copiedExtensionState.events.push({
function getRole(identity: IdentityTypes.IIdentity, parameters: any): RequestLogicTypes.ROLE {
if (parameters.payee && Utils.identity.areEqual(parameters.payee, identity)) {
return RequestLogicTypes.ROLE.PAYEE;
}
if (parameters.payer && Utils.identity.areEqual(parameters.payer, identity)) {
return RequestLogicTypes.ROLE.PAYER;
}
return RequestLogicTypes.ROLE.THIRD_PARTY;
}
function getRole(identity: IdentityTypes.IIdentity, parameters: any): RequestLogicTypes.ROLE {
if (parameters.payee && Utils.identity.areEqual(parameters.payee, identity)) {
return RequestLogicTypes.ROLE.PAYEE;
}
if (parameters.payer && Utils.identity.areEqual(parameters.payer, identity)) {
return RequestLogicTypes.ROLE.PAYER;
}
return RequestLogicTypes.ROLE.THIRD_PARTY;
}