on 3c467ed help sign in
bridge/src/lib/usePermissionsForPoint.js
29 lines 834 B history raw
1import { eqAddr } from './wallet';
2import { usePointCache } from 'store/pointCache';
4const NULL_PERMISSIONS = {
5 isOwner: false,
6 isTransferProxy: false,
7 isManagementProxy: false,
8 canTransfer: false,
9};
11/**
12 * @param {string} address
13 * @param {number} point
14 */
15export default function usePermissionsForPoint(address, point) {
16 const { getDetails } = usePointCache();
18 return getDetails(point).matchWith({
19 Nothing: () => NULL_PERMISSIONS,
20 Just: ({ value: details }) => {
21 const isOwner = eqAddr(address, details.owner);
22 const isTransferProxy = eqAddr(address, details.transferProxy);
23 const isManagementProxy = eqAddr(address, details.managementProxy);
24 const canTransfer = isOwner || isTransferProxy;
26 return { isOwner, isTransferProxy, isManagementProxy, canTransfer };
27 },
28 });