UNPKG

@iden3/js-iden3-core

Version:

Low level API to create and manipulate iden3 Claims.

120 lines (119 loc) 4.66 kB
export const Constants = Object.freeze({ ERRORS: { // ErrDataOverflow means that given *big.Int value does not fit in Field Q // e.g. greater than Q constant: // Q constant: 21888242871839275222246405745257275088548364400416034343698204186575808495617 DATA_OVERFLOW: new Error('data does not fits SNARK size'), // ErrIncorrectIDPosition means that passed position is not one of predefined: // IDPositionIndex or IDPositionValue INCORRECT_ID_POSITION: new Error('incorrect ID position'), // throws when ID not found in the Claim. NO_ID: new Error('ID is not set'), // throws when subject position flags sets in invalid value. INVALID_SUBJECT_POSITION: new Error('invalid subject position'), // ErrIncorrectMerklizePosition means that passed position is not one of predefined: // MerklizePositionIndex or MerklizePositionValue INCORRECT_MERKLIZED_POSITION: new Error('incorrect Merklize position'), // ErrNoMerklizedRoot returns when Merklized Root is not found in the Claim. NO_MERKLIZED_ROOT: new Error('Merklized root is not set'), NETWORK_NOT_SUPPORTED_FOR_DID: new Error('network in not supported for did'), UNSUPPORTED_BLOCKCHAIN_FOR_DID: new Error('not supported blockchain for did'), UNSUPPORTED_DID_METHOD: new Error('not supported DID method'), UNKNOWN_DID_METHOD: new Error('unknown DID method'), INCORRECT_DID: new Error('incorrect DID'), UNSUPPORTED_ID: new Error('unsupported Id') }, SCHEMA: { HASH_LENGTH: 16 }, ETH_ADDRESS_LENGTH: 20, BYTES_LENGTH: 32, ELEM_BYTES_LENGTH: 4, NONCE_BYTES_LENGTH: 8, Q: BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617'), ID: { TYPE_DEFAULT: Uint8Array.from([0x00, 0x00]), TYPE_READONLY: Uint8Array.from([0b00000000, 0b00000001]), ID_LENGTH: 31 }, DID: { DID_SCHEMA: 'did' }, GENESIS_LENGTH: 27 }); export const Blockchain = { Ethereum: 'eth', Polygon: 'polygon', Privado: 'privado', Linea: 'linea', Unknown: 'unknown', NoChain: '', ReadOnly: 'readonly' }; export const NetworkId = { Main: 'main', Mumbai: 'mumbai', Amoy: 'amoy', Goerli: 'goerli', Sepolia: 'sepolia', Zkevm: 'zkevm', Cardona: 'cardona', Test: 'test', Unknown: 'unknown', NoNetwork: '' }; export const DidMethod = { Iden3: 'iden3', PolygonId: 'polygonid', Other: '' }; /** * Object containing chain IDs for various blockchains and networks. * @type { [key: string]: number } */ export const ChainIds = { [`${Blockchain.Ethereum}:${NetworkId.Main}`]: 1, [`${Blockchain.Ethereum}:${NetworkId.Goerli}`]: 5, [`${Blockchain.Ethereum}:${NetworkId.Sepolia}`]: 11155111, [`${Blockchain.Polygon}:${NetworkId.Main}`]: 137, [`${Blockchain.Polygon}:${NetworkId.Mumbai}`]: 80001, [`${Blockchain.Polygon}:${NetworkId.Amoy}`]: 80002, [`${Blockchain.Polygon}:${NetworkId.Zkevm}`]: 1101, [`${Blockchain.Polygon}:${NetworkId.Cardona}`]: 2442, [`${Blockchain.Privado}:${NetworkId.Main}`]: 21000, [`${Blockchain.Privado}:${NetworkId.Test}`]: 21001, [`${Blockchain.Linea}:${NetworkId.Main}`]: 59144, [`${Blockchain.Linea}:${NetworkId.Sepolia}`]: 59141 }; export const DidMethodByte = { [DidMethod.Iden3]: 0b00000001, [DidMethod.PolygonId]: 0b00000010, [DidMethod.Other]: 0b11111111 }; const blockchainNetworkMap = { [`${Blockchain.ReadOnly}:${NetworkId.NoNetwork}`]: 0b00000000, [`${Blockchain.Polygon}:${NetworkId.Main}`]: 16 | 1, [`${Blockchain.Polygon}:${NetworkId.Mumbai}`]: 16 | 2, [`${Blockchain.Polygon}:${NetworkId.Amoy}`]: 16 | 3, [`${Blockchain.Polygon}:${NetworkId.Zkevm}`]: 16 | 4, [`${Blockchain.Polygon}:${NetworkId.Cardona}`]: 16 | 5, [`${Blockchain.Ethereum}:${NetworkId.Main}`]: 32 | 1, [`${Blockchain.Ethereum}:${NetworkId.Goerli}`]: 32 | 2, [`${Blockchain.Ethereum}:${NetworkId.Sepolia}`]: 32 | 3, [`${Blockchain.Privado}:${NetworkId.Main}`]: 160 | 1, [`${Blockchain.Privado}:${NetworkId.Test}`]: 160 | 2, [`${Blockchain.Linea}:${NetworkId.Main}`]: 64 | 9, [`${Blockchain.Linea}:${NetworkId.Sepolia}`]: 64 | 8 }; // DIDMethodNetwork is map for did methods and their blockchain networks export const DidMethodNetwork = { [DidMethod.Iden3]: { ...blockchainNetworkMap }, [DidMethod.PolygonId]: { ...blockchainNetworkMap }, [DidMethod.Other]: { [`${Blockchain.Unknown}:${NetworkId.Unknown}`]: 255 } };