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?