UNPKG

@iden3/js-iden3-core

Version:

Low level API to create and manipulate iden3 Claims.

134 lines (126 loc) 5.1 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: { [k: string]: string } = { Ethereum: 'eth', Polygon: 'polygon', Privado: 'privado', Billions: 'billions', Linea: 'linea', Unknown: 'unknown', NoChain: '', ReadOnly: 'readonly' }; export const NetworkId: { [k: string]: string } = { Main: 'main', Mumbai: 'mumbai', Amoy: 'amoy', Goerli: 'goerli', Sepolia: 'sepolia', Zkevm: 'zkevm', Cardona: 'cardona', Test: 'test', Unknown: 'unknown', NoNetwork: '' }; export const DidMethod: { [k: string]: string } = { Iden3: 'iden3', PolygonId: 'polygonid', Other: '' }; /** * Object containing chain IDs for various blockchains and networks. * @type { [key: string]: number } */ export const ChainIds: { [key: string]: number } = { [`${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, [`${Blockchain.Billions}:${NetworkId.Main}`]: 45056, [`${Blockchain.Billions}:${NetworkId.Test}`]: 6913 }; export const DidMethodByte: { [key: string]: number } = { [DidMethod.Iden3]: 0b00000001, [DidMethod.PolygonId]: 0b00000010, [DidMethod.Other]: 0b11111111 }; const blockchainNetworkMap = { [`${Blockchain.ReadOnly}:${NetworkId.NoNetwork}`]: 0b00000000, [`${Blockchain.Polygon}:${NetworkId.Main}`]: 0b0001_0000 | 0b0000_0001, [`${Blockchain.Polygon}:${NetworkId.Mumbai}`]: 0b0001_0000 | 0b0000_0010, [`${Blockchain.Polygon}:${NetworkId.Amoy}`]: 0b0001_0000 | 0b0000_0011, [`${Blockchain.Polygon}:${NetworkId.Zkevm}`]: 0b0001_0000 | 0b0000_0100, [`${Blockchain.Polygon}:${NetworkId.Cardona}`]: 0b0001_0000 | 0b0000_0101, [`${Blockchain.Ethereum}:${NetworkId.Main}`]: 0b0010_0000 | 0b0000_0001, [`${Blockchain.Ethereum}:${NetworkId.Goerli}`]: 0b0010_0000 | 0b0000_0010, [`${Blockchain.Ethereum}:${NetworkId.Sepolia}`]: 0b0010_0000 | 0b0000_0011, [`${Blockchain.Privado}:${NetworkId.Main}`]: 0b1010_0000 | 0b0000_0001, [`${Blockchain.Privado}:${NetworkId.Test}`]: 0b1010_0000 | 0b0000_0010, [`${Blockchain.Linea}:${NetworkId.Main}`]: 0b0100_0000 | 0b0000_1001, [`${Blockchain.Linea}:${NetworkId.Sepolia}`]: 0b0100_0000 | 0b0000_1000, [`${Blockchain.Billions}:${NetworkId.Main}`]: 0b1011_0000 | 0b0000_0001, [`${Blockchain.Billions}:${NetworkId.Test}`]: 0b1011_0000 | 0b0000_0010 }; // DIDMethodNetwork is map for did methods and their blockchain networks export const DidMethodNetwork: { [k: string]: { [k: string]: number }; } = { [DidMethod.Iden3]: { ...blockchainNetworkMap }, [DidMethod.PolygonId]: { ...blockchainNetworkMap }, [DidMethod.Other]: { [`${Blockchain.Unknown}:${NetworkId.Unknown}`]: 0b1111_1111 } };