Ship AddressActivityRegistry V1/V2, ISO20022IntakeGateway, Chain138ParticipantSurface, checkpoint hub contracts, checkpoint-core package, aggregator/indexer/sdk services, relay profile guards, M00 diamond bridge facet, and OMNL compliance contracts. Co-authored-by: Cursor <[email protected]>
72 lines
2.5 KiB
JavaScript
72 lines
2.5 KiB
JavaScript
"use strict";
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
exports.PAYMENT_LEAF_V2 = exports.PAYMENT_LEAF_V1 = void 0;
|
||
exports.paymentLeafV1Hash = paymentLeafV1Hash;
|
||
exports.paymentLeafV2Hash = paymentLeafV2Hash;
|
||
exports.merkleVerifyValueWei = merkleVerifyValueWei;
|
||
exports.effectiveTokenOrNativeWei = effectiveTokenOrNativeWei;
|
||
const ethers_1 = require("ethers");
|
||
exports.PAYMENT_LEAF_V1 = 0x01;
|
||
exports.PAYMENT_LEAF_V2 = 0x02;
|
||
/** Matches CheckpointLeaf.paymentLeafV1 */
|
||
function paymentLeafV1Hash(chainId, leaf) {
|
||
const version = ethers_1.ethers.hexlify(new Uint8Array([exports.PAYMENT_LEAF_V1]));
|
||
return ethers_1.ethers.keccak256(ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(['bytes1', 'uint64', 'bytes32', 'address', 'address', 'uint256', 'uint256', 'uint64', 'uint256', 'bool'], [
|
||
version,
|
||
BigInt(chainId),
|
||
leaf.txHash,
|
||
leaf.from,
|
||
leaf.to,
|
||
BigInt(leaf.value ?? 0),
|
||
BigInt(leaf.blockNumber),
|
||
BigInt(leaf.blockTimestamp),
|
||
BigInt(leaf.gasUsed ?? 0),
|
||
leaf.success,
|
||
]));
|
||
}
|
||
/** Matches CheckpointLeaf.paymentLeafV2 */
|
||
function paymentLeafV2Hash(chainId, leaf) {
|
||
const version = ethers_1.ethers.hexlify(new Uint8Array([exports.PAYMENT_LEAF_V2]));
|
||
return ethers_1.ethers.keccak256(ethers_1.ethers.AbiCoder.defaultAbiCoder().encode([
|
||
'bytes1',
|
||
'uint64',
|
||
'bytes32',
|
||
'address',
|
||
'address',
|
||
'address',
|
||
'uint256',
|
||
'uint256',
|
||
'uint64',
|
||
'uint256',
|
||
'bool',
|
||
'uint32',
|
||
], [
|
||
version,
|
||
BigInt(chainId),
|
||
leaf.txHash,
|
||
leaf.from,
|
||
leaf.to,
|
||
leaf.token,
|
||
BigInt(leaf.value ?? 0),
|
||
BigInt(leaf.blockNumber),
|
||
BigInt(leaf.blockTimestamp),
|
||
BigInt(leaf.gasUsed ?? 0),
|
||
leaf.success,
|
||
Number(leaf.logIndex ?? 0),
|
||
]));
|
||
}
|
||
/** Historical batches 1–50: verify with native/on-chain wei only. */
|
||
function merkleVerifyValueWei(record) {
|
||
if (record.onChainValueWei != null && String(record.onChainValueWei) !== '') {
|
||
return BigInt(String(record.onChainValueWei));
|
||
}
|
||
return BigInt(String(record.nativeValueWei ?? record.value ?? '0'));
|
||
}
|
||
function effectiveTokenOrNativeWei(record) {
|
||
const native = BigInt(String(record.value ?? '0'));
|
||
const tokenVal = record.token != null && record.tokenValue != null ? BigInt(String(record.tokenValue)) : 0n;
|
||
if (tokenVal > 0n)
|
||
return tokenVal;
|
||
return native;
|
||
}
|