PaymentReferenceCalculator
Description
Compute the payment reference, the last 8 bytes of a salted hash of the request ID.
last8Bytes(hash(lowercase(requestId + salt + address)))
The payment reference is the parameter that ties the request to events emitted by on-chain payments via Request Network payment smart contracts.
Usage
import { PaymentReferenceCalculator } from "@requestnetwork/request-client.js";
Static method: calculate()
Parameters
Name
Type
Required
Description
requestId
string
The ID of the request
salt
string
The salt of the request
address
string
Payment recipient address
Returns
string
Implementation
https://github.com/RequestNetwork/requestNetwork/blob/master/packages/payment-detection/src/payment-reference-calculator.ts
import { keccak256Hash } from '@requestnetwork/utils';
/**
* Compute the payment reference
*
* @param requestId The requestId
* @param salt The salt for the request
* @param address Payment or refund address
*/
export function calculate(requestId: string, salt: string, address: string): string {
if (!requestId || !salt || !address) {
throw new Error('RequestId, salt and address are mandatory to calculate the payment reference');
}
// "The value is the last 8 bytes of a salted hash of the requestId: `last8Bytes(hash(requestId + salt + address))`"
/* eslint-disable no-magic-numbers */
return keccak256Hash((requestId + salt + address).toLowerCase()).slice(-16);
}
Last updated
Was this helpful?