aesirx-analytics 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -214,9 +214,13 @@ import { useCallback, useContext, useEffect, useState } from "react";
214
214
  // src/utils/Concordium.ts
215
215
  import {
216
216
  AccountAddress,
217
+ ContractAddress,
217
218
  deserializeReceiveReturnValue,
219
+ ReceiveName,
220
+ ReturnValue,
218
221
  SchemaVersion,
219
- toBuffer
222
+ ContractName,
223
+ EntrypointName
220
224
  } from "@concordium/web-sdk";
221
225
 
222
226
  // src/utils/config.ts
@@ -226,27 +230,31 @@ var NFT_SMARTCONTRACT = {
226
230
  name: "aesirx_web3_web3id",
227
231
  schema: "//8DAQAAABIAAABhZXNpcnhfd2ViM193ZWIzaWQACgAAAAkAAABiYWxhbmNlT2YGEAEUAAIAAAAIAAAAdG9rZW5faWQdAAcAAABhZGRyZXNzFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBABGyUAAAAVBAAAAA4AAABJbnZhbGlkVG9rZW5JZAIRAAAASW5zdWZmaWNpZW50RnVuZHMCDAAAAFVuYXV0aG9yaXplZAIGAAAAQ3VzdG9tAQEAAAAVBgAAAAsAAABQYXJzZVBhcmFtcwIHAAAATG9nRnVsbAIMAAAATG9nTWFsZm9ybWVkAhQAAABUb2tlbklkQWxyZWFkeUV4aXN0cwITAAAASW52b2tlQ29udHJhY3RFcnJvcgINAAAASW52YWxpZFdlYjNJZAIUAAAAZ2xvYmFsVXBkYXRlT3BlcmF0b3IEEAEUAAIAAAAGAAAAdXBkYXRlFQIAAAAGAAAAUmVtb3ZlAgMAAABBZGQCCAAAAG9wZXJhdG9yFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAgQAAABtaW50BBQAAwAAAAUAAABvd25lcgsFAAAAdG9rZW4dAAYAAAB3ZWIzaWQWAhUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAgoAAABvcGVyYXRvck9mBhABFAACAAAABQAAAG93bmVyFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADAcAAABhZGRyZXNzFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBABARUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAg8AAABzZXRJbXBsZW1lbnRvcnMEFAACAAAAAgAAAGlkFgAMAAAAaW1wbGVtZW50b3JzEAIMFQQAAAAOAAAASW52YWxpZFRva2VuSWQCEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABVbmF1dGhvcml6ZWQCBgAAAEN1c3RvbQEBAAAAFQYAAAALAAAAUGFyc2VQYXJhbXMCBwAAAExvZ0Z1bGwCDAAAAExvZ01hbGZvcm1lZAIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCCAAAAHN1cHBvcnRzBhABFgAQARUDAAAACQAAAE5vU3VwcG9ydAIHAAAAU3VwcG9ydAIJAAAAU3VwcG9ydEJ5AQEAAAAQAAwVBAAAAA4AAABJbnZhbGlkVG9rZW5JZAIRAAAASW5zdWZmaWNpZW50RnVuZHMCDAAAAFVuYXV0aG9yaXplZAIGAAAAQ3VzdG9tAQEAAAAVBgAAAAsAAABQYXJzZVBhcmFtcwIHAAAATG9nRnVsbAIMAAAATG9nTWFsZm9ybWVkAhQAAABUb2tlbklkQWxyZWFkeUV4aXN0cwITAAAASW52b2tlQ29udHJhY3RFcnJvcgINAAAASW52YWxpZFdlYjNJZAINAAAAdG9rZW5NZXRhZGF0YQYQAR0AEAEUAAIAAAADAAAAdXJsFgEEAAAAaGFzaBUCAAAABAAAAE5vbmUCBAAAAFNvbWUBAQAAABMgAAAAAhUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAggAAAB0cmFuc2ZlcgQQARQABQAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABAAAAGZyb20VAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMAgAAAHRvFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAECAAAADBYBBAAAAGRhdGEdARUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAg4AAAB1cGRhdGVPcGVyYXRvcgQQARQAAgAAAAYAAAB1cGRhdGUVAgAAAAYAAABSZW1vdmUCAwAAAEFkZAIIAAAAb3BlcmF0b3IVAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMFQQAAAAOAAAASW52YWxpZFRva2VuSWQCEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABVbmF1dGhvcml6ZWQCBgAAAEN1c3RvbQEBAAAAFQYAAAALAAAAUGFyc2VQYXJhbXMCBwAAAExvZ0Z1bGwCDAAAAExvZ01hbGZvcm1lZAIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCBAAAAHZpZXcBFAADAAAABQAAAHN0YXRlEAIPFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBQAAgAAAAwAAABvd25lZF90b2tlbnMQAh0ACQAAAG9wZXJhdG9ycxACFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADAoAAABhbGxfdG9rZW5zEAIdAAkAAABvcGVyYXRvcnMQAhUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAwBHwUAAAD7DQAAAFRva2VuTWV0YWRhdGEAAgAAAAgAAAB0b2tlbl9pZB0ADAAAAG1ldGFkYXRhX3VybBQAAgAAAAMAAAB1cmwWAQQAAABoYXNoFQIAAAAEAAAATm9uZQIEAAAAU29tZQEBAAAAEyAAAAAC/A4AAABVcGRhdGVPcGVyYXRvcgADAAAABgAAAHVwZGF0ZRUCAAAABgAAAFJlbW92ZQIDAAAAQWRkAgUAAABvd25lchUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAwIAAAAb3BlcmF0b3IVAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAM/QQAAABCdXJuAAMAAAAIAAAAdG9rZW5faWQdAAYAAABhbW91bnQbJQAAAAUAAABvd25lchUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAz+BAAAAE1pbnQAAwAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABQAAAG93bmVyFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADP8IAAAAVHJhbnNmZXIABAAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABAAAAGZyb20VAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMAgAAAHRvFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADA"
228
232
  };
229
- var WHITELIST_SMARTCONTRACT = {
230
- index: 8604,
233
+ var NFT_SMARTCONTRACT_TESTNET = {
234
+ index: 6740,
231
235
  subIndex: 0,
232
- name: "aesirx_web3_web3id_whitelist",
233
- schema: "//8DAQAAABwAAABhZXNpcnhfd2ViM193ZWIzaWRfd2hpdGVsaXN0AQAUAAIAAAAHAAAAcGF5bWVudAUPAAAAd2ViM2lkX2NvbnRyYWN0DAUAAAALAAAAbWludF93ZWIzaWQEFAABAAAABgAAAHdlYjNpZBYCFQoAAAAMAAAAVW5hdXRob3JpemVkAgsAAABQYXJzZVBhcmFtcwIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAFdlYjNJZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCEwAAAEludm9rZVRyYW5zZmVyRXJyb3ICEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABXZWIzSWRVbnBhaWQCEgAAAFdlYjNJZFVucmVnaXN0ZXJlZAIDAAAAcGF5ABQAAQAAAAYAAAB3ZWIzaWQWAggAAAByZWRlZmluZQQUAAIAAAAHAAAAcGF5bWVudAUPAAAAd2ViM2lkX2NvbnRyYWN0DBUKAAAADAAAAFVuYXV0aG9yaXplZAILAAAAUGFyc2VQYXJhbXMCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABXZWIzSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAhMAAABJbnZva2VUcmFuc2ZlckVycm9yAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAV2ViM0lkVW5wYWlkAhIAAABXZWIzSWRVbnJlZ2lzdGVyZWQCBAAAAHZpZXcBFAAFAAAABQAAAHN0YXRlEAIPFgIUAAIAAAAFAAAAdG9rZW4dAAkAAABvcGVyYXRvcnMQAhUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAwLAAAAYWxsX3dlYjNpZHMQAhYCBwAAAHBheW1lbnQFDAAAAHBhaWRfd2ViM2lkcxACFgIPAAAAd2ViM2lkX2NvbnRyYWN0DAkAAAB3aGl0ZWxpc3QEFAADAAAABgAAAHdlYjNpZBYCBQAAAHRva2VuHQAIAAAAb3BlcmF0b3IVAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMFQoAAAAMAAAAVW5hdXRob3JpemVkAgsAAABQYXJzZVBhcmFtcwIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAFdlYjNJZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCEwAAAEludm9rZVRyYW5zZmVyRXJyb3ICEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABXZWIzSWRVbnBhaWQCEgAAAFdlYjNJZFVucmVnaXN0ZXJlZAIA"
236
+ name: "aesirx_web3_web3id_testnet_v1_2_1",
237
+ schema: "//8DAQAAACEAAABhZXNpcnhfd2ViM193ZWIzaWRfdGVzdG5ldF92MV8yXzEACgAAAAkAAABiYWxhbmNlT2YGEAEUAAIAAAAIAAAAdG9rZW5faWQdAAcAAABhZGRyZXNzFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBABGyUAAAAVBAAAAA4AAABJbnZhbGlkVG9rZW5JZAIRAAAASW5zdWZmaWNpZW50RnVuZHMCDAAAAFVuYXV0aG9yaXplZAIGAAAAQ3VzdG9tAQEAAAAVBgAAAAsAAABQYXJzZVBhcmFtcwIHAAAATG9nRnVsbAIMAAAATG9nTWFsZm9ybWVkAhQAAABUb2tlbklkQWxyZWFkeUV4aXN0cwITAAAASW52b2tlQ29udHJhY3RFcnJvcgINAAAASW52YWxpZFdlYjNJZAIUAAAAZ2xvYmFsVXBkYXRlT3BlcmF0b3IEEAEUAAIAAAAGAAAAdXBkYXRlFQIAAAAGAAAAUmVtb3ZlAgMAAABBZGQCCAAAAG9wZXJhdG9yFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAgQAAABtaW50BBQAAwAAAAUAAABvd25lcgsFAAAAdG9rZW4dAAYAAAB3ZWIzaWQWAhUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAgoAAABvcGVyYXRvck9mBhABFAACAAAABQAAAG93bmVyFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADAcAAABhZGRyZXNzFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBABARUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAg8AAABzZXRJbXBsZW1lbnRvcnMEFAACAAAAAgAAAGlkFgAMAAAAaW1wbGVtZW50b3JzEAIMFQQAAAAOAAAASW52YWxpZFRva2VuSWQCEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABVbmF1dGhvcml6ZWQCBgAAAEN1c3RvbQEBAAAAFQYAAAALAAAAUGFyc2VQYXJhbXMCBwAAAExvZ0Z1bGwCDAAAAExvZ01hbGZvcm1lZAIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCCAAAAHN1cHBvcnRzBhABFgAQARUDAAAACQAAAE5vU3VwcG9ydAIHAAAAU3VwcG9ydAIJAAAAU3VwcG9ydEJ5AQEAAAAQAAwVBAAAAA4AAABJbnZhbGlkVG9rZW5JZAIRAAAASW5zdWZmaWNpZW50RnVuZHMCDAAAAFVuYXV0aG9yaXplZAIGAAAAQ3VzdG9tAQEAAAAVBgAAAAsAAABQYXJzZVBhcmFtcwIHAAAATG9nRnVsbAIMAAAATG9nTWFsZm9ybWVkAhQAAABUb2tlbklkQWxyZWFkeUV4aXN0cwITAAAASW52b2tlQ29udHJhY3RFcnJvcgINAAAASW52YWxpZFdlYjNJZAINAAAAdG9rZW5NZXRhZGF0YQYQAR0AEAEUAAIAAAADAAAAdXJsFgEEAAAAaGFzaBUCAAAABAAAAE5vbmUCBAAAAFNvbWUBAQAAABMgAAAAAhUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAggAAAB0cmFuc2ZlcgQQARQABQAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABAAAAGZyb20VAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMAgAAAHRvFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAECAAAADBYBBAAAAGRhdGEdARUEAAAADgAAAEludmFsaWRUb2tlbklkAhEAAABJbnN1ZmZpY2llbnRGdW5kcwIMAAAAVW5hdXRob3JpemVkAgYAAABDdXN0b20BAQAAABUGAAAACwAAAFBhcnNlUGFyYW1zAgcAAABMb2dGdWxsAgwAAABMb2dNYWxmb3JtZWQCFAAAAFRva2VuSWRBbHJlYWR5RXhpc3RzAhMAAABJbnZva2VDb250cmFjdEVycm9yAg0AAABJbnZhbGlkV2ViM0lkAg4AAAB1cGRhdGVPcGVyYXRvcgQQARQAAgAAAAYAAAB1cGRhdGUVAgAAAAYAAABSZW1vdmUCAwAAAEFkZAIIAAAAb3BlcmF0b3IVAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMFQQAAAAOAAAASW52YWxpZFRva2VuSWQCEQAAAEluc3VmZmljaWVudEZ1bmRzAgwAAABVbmF1dGhvcml6ZWQCBgAAAEN1c3RvbQEBAAAAFQYAAAALAAAAUGFyc2VQYXJhbXMCBwAAAExvZ0Z1bGwCDAAAAExvZ01hbGZvcm1lZAIUAAAAVG9rZW5JZEFscmVhZHlFeGlzdHMCEwAAAEludm9rZUNvbnRyYWN0RXJyb3ICDQAAAEludmFsaWRXZWIzSWQCBAAAAHZpZXcBFAADAAAABQAAAHN0YXRlEAIPFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADBQAAgAAAAwAAABvd25lZF90b2tlbnMQAh0ACQAAAG9wZXJhdG9ycxACFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADAoAAABhbGxfdG9rZW5zEAIdAAkAAABvcGVyYXRvcnMQAhUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAwBHwUAAAD7DQAAAFRva2VuTWV0YWRhdGEAAgAAAAgAAAB0b2tlbl9pZB0ADAAAAG1ldGFkYXRhX3VybBQAAgAAAAMAAAB1cmwWAQQAAABoYXNoFQIAAAAEAAAATm9uZQIEAAAAU29tZQEBAAAAEyAAAAAC/A4AAABVcGRhdGVPcGVyYXRvcgADAAAABgAAAHVwZGF0ZRUCAAAABgAAAFJlbW92ZQIDAAAAQWRkAgUAAABvd25lchUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAwIAAAAb3BlcmF0b3IVAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAM/QQAAABCdXJuAAMAAAAIAAAAdG9rZW5faWQdAAYAAABhbW91bnQbJQAAAAUAAABvd25lchUCAAAABwAAAEFjY291bnQBAQAAAAsIAAAAQ29udHJhY3QBAQAAAAz+BAAAAE1pbnQAAwAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABQAAAG93bmVyFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADP8IAAAAVHJhbnNmZXIABAAAAAgAAAB0b2tlbl9pZB0ABgAAAGFtb3VudBslAAAABAAAAGZyb20VAgAAAAcAAABBY2NvdW50AQEAAAALCAAAAENvbnRyYWN0AQEAAAAMAgAAAHRvFQIAAAAHAAAAQWNjb3VudAEBAAAACwgAAABDb250cmFjdAEBAAAADA=="
234
238
  };
235
239
 
236
240
  // src/utils/Concordium.ts
237
- var invokeSmartContract = async (provider, account, name, index, subIndex, schema, method) => {
241
+ var invokeSmartContract = async (account, name, index, subIndex, schema, method, rpcClient) => {
238
242
  try {
239
- const client = await provider.getJsonRpcClient();
240
- const rawReturnValue = await client.invokeContract({
241
- invoker: new AccountAddress(account),
242
- contract: { index: BigInt(index), subindex: BigInt(subIndex) },
243
- method: `${name}.${method}`
243
+ const res = await rpcClient.invokeContract({
244
+ invoker: AccountAddress.fromBase58(account),
245
+ method: ReceiveName.fromString(`${name}.${method}`),
246
+ contract: ContractAddress.create(index, subIndex)
244
247
  });
248
+ if (!res || res.tag === "failure" || !res.returnValue) {
249
+ throw new Error(
250
+ `RPC call 'invokeContract' on method '${name}.view' of contract '${method}' failed`
251
+ );
252
+ }
245
253
  const returnValue = await deserializeReceiveReturnValue(
246
- toBuffer(rawReturnValue.returnValue, "hex"),
247
- toBuffer(schema, "base64"),
248
- name,
249
- method,
254
+ ReturnValue.toBuffer(res.returnValue),
255
+ Buffer.from(schema, "base64"),
256
+ ContractName.fromString(name),
257
+ EntrypointName.fromString(method),
250
258
  SchemaVersion.V2
251
259
  );
252
260
  console.log("invokeSmartContract", returnValue);
@@ -256,40 +264,28 @@ var invokeSmartContract = async (provider, account, name, index, subIndex, schem
256
264
  return null;
257
265
  }
258
266
  };
259
- var getWeb3ID = async (provider, account) => {
267
+ var getWeb3ID = async (account, gRPCClient, network) => {
260
268
  try {
261
269
  const dataNFT = await invokeSmartContract(
262
- provider,
263
270
  account,
264
- NFT_SMARTCONTRACT.name,
265
- NFT_SMARTCONTRACT.index,
266
- NFT_SMARTCONTRACT.subIndex,
267
- NFT_SMARTCONTRACT.schema,
268
- "view"
271
+ network === "testnet" ? NFT_SMARTCONTRACT_TESTNET.name : NFT_SMARTCONTRACT.name,
272
+ network === "testnet" ? NFT_SMARTCONTRACT_TESTNET.index : NFT_SMARTCONTRACT.index,
273
+ network === "testnet" ? NFT_SMARTCONTRACT_TESTNET.subIndex : NFT_SMARTCONTRACT.subIndex,
274
+ network === "testnet" ? NFT_SMARTCONTRACT_TESTNET.schema : NFT_SMARTCONTRACT.schema,
275
+ "view",
276
+ gRPCClient
269
277
  );
270
278
  const nft = dataNFT?.state?.find((arrVal) => account === arrVal[0]?.Account[0]);
271
279
  if (nft) {
272
280
  const tokens = nft[1]["owned_tokens"];
273
281
  if (tokens) {
274
- const data = await invokeSmartContract(
275
- provider,
276
- account,
277
- WHITELIST_SMARTCONTRACT.name,
278
- WHITELIST_SMARTCONTRACT.index,
279
- WHITELIST_SMARTCONTRACT.subIndex,
280
- WHITELIST_SMARTCONTRACT.schema,
281
- "view"
282
- );
283
- const web3id = data?.state?.filter((arrVal) => tokens.includes(arrVal[1]?.token));
284
- if (web3id && web3id[0][0]) {
285
- return web3id[0][0];
286
- }
282
+ return true;
287
283
  }
288
284
  }
289
285
  } catch (error) {
290
- return "";
286
+ return false;
291
287
  }
292
- return "";
288
+ return false;
293
289
  };
294
290
 
295
291
  // src/Hooks/useConsentStatus.ts
@@ -298,7 +294,8 @@ import {
298
294
  MAINNET,
299
295
  useConnection,
300
296
  useConnect,
301
- withJsonRpcClient
297
+ useGrpcClient,
298
+ TESTNET
302
299
  } from "@concordium/react-components";
303
300
 
304
301
  // src/Hooks/config.ts
@@ -325,6 +322,7 @@ var WALLET_CONNECT = ephemeralConnectorType(
325
322
  // src/Hooks/useConsentStatus.ts
326
323
  import { isDesktop } from "react-device-detect";
327
324
  import { useAccount } from "wagmi";
325
+ import { BlockHash } from "@concordium/web-sdk";
328
326
  var useConsentStatus = (endpoint, props) => {
329
327
  const [show, setShow] = useState(false);
330
328
  const [showRevoke, setShowRevoke] = useState(false);
@@ -366,29 +364,27 @@ var useConsentStatus = (endpoint, props) => {
366
364
  })();
367
365
  }
368
366
  }, [analyticsContext.visitor_uuid]);
369
- const { connection, setConnection, account, genesisHash } = useConnection(
370
- connectedAccounts,
371
- genesisHashes
372
- );
367
+ const { connection, setConnection, account } = useConnection(connectedAccounts, genesisHashes);
373
368
  const { connect, connectError } = useConnect(activeConnector, setConnection);
374
369
  const [, setRpcGenesisHash] = useState();
375
370
  const [, setRpcError] = useState("");
371
+ const rpc = useGrpcClient(network);
376
372
  useEffect(() => {
377
- if (connection) {
373
+ if (rpc) {
378
374
  setRpcGenesisHash(void 0);
379
- withJsonRpcClient(connection, async (rpc) => {
380
- const status = await rpc.getConsensusStatus();
375
+ rpc.getConsensusStatus().then((status) => {
381
376
  return status.genesisBlock;
382
377
  }).then((hash) => {
383
- const network2 = "mainnet";
384
378
  let r = false;
385
- switch (network2) {
379
+ switch (network?.name) {
380
+ case "testnet":
381
+ r = BlockHash.toHexString(hash) === TESTNET.genesisHash;
382
+ break;
386
383
  default:
387
- r = hash === MAINNET.genesisHash;
384
+ r = BlockHash.toHexString(hash) === MAINNET.genesisHash;
388
385
  }
389
386
  if (!r) {
390
- const network3 = "mainnet";
391
- throw new Error(`Please change the network to ${network3} in Wallet`);
387
+ throw new Error(`Please change the network to ${network} in Wallet`);
392
388
  }
393
389
  setRpcGenesisHash(hash);
394
390
  setRpcError("");
@@ -398,7 +394,7 @@ var useConsentStatus = (endpoint, props) => {
398
394
  setRpcError(err.message);
399
395
  });
400
396
  }
401
- }, [connection, genesisHash, network]);
397
+ }, [rpc]);
402
398
  useEffect(() => {
403
399
  const initConnector = async () => {
404
400
  if (isDesktop && sessionStorage.getItem("aesirx-analytics-revoke") !== "1" && sessionStorage.getItem("aesirx-analytics-revoke") !== "2") {
@@ -426,14 +422,14 @@ var useConsentStatus = (endpoint, props) => {
426
422
  (async () => {
427
423
  try {
428
424
  let l = level;
429
- if (connection) {
425
+ if (rpc) {
430
426
  if (l < 3) {
431
427
  setLevel(null);
432
428
  l = 3;
433
- let web3ID2 = "";
429
+ let web3ID2 = false;
434
430
  if (account && sessionStorage.getItem("aesirx-analytics-consent-type") !== "metamask") {
435
- web3ID2 = await getWeb3ID(connection, account);
436
- if (web3ID2) {
431
+ web3ID2 = await getWeb3ID(account, rpc, network?.name);
432
+ if (web3ID2 === true) {
437
433
  l = 4;
438
434
  }
439
435
  }
@@ -443,7 +439,7 @@ var useConsentStatus = (endpoint, props) => {
443
439
  } else if (connector) {
444
440
  if (l < 3) {
445
441
  l = 3;
446
- const web3ID2 = "";
442
+ const web3ID2 = false;
447
443
  setWeb3ID(web3ID2);
448
444
  setLevel(l);
449
445
  } else {
@@ -465,6 +461,9 @@ var useConsentStatus = (endpoint, props) => {
465
461
  const handleLevel = useCallback(
466
462
  async (_level) => {
467
463
  setLevel(_level);
464
+ if (_level > 3 && isDesktop && !connection && window["concordium"]) {
465
+ setActiveConnectorType(BROWSER_WALLET);
466
+ }
468
467
  },
469
468
  [level]
470
469
  );
@@ -9440,6 +9439,9 @@ body.modal-sso-open .aesirxconsent .toast-container {
9440
9439
  }
9441
9440
  [data-bs-theme=dark] .aesirxconsent .text-primary {
9442
9441
  color: #fff;
9442
+ }
9443
+ [data-bs-theme=dark] .aesirxconsent .minimize-shield-wrapper .text {
9444
+ color: #fff;
9443
9445
  }`;
9444
9446
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
9445
9447
 
@@ -9515,12 +9517,12 @@ var TermsComponent = ({ children, level, handleLevel }) => {
9515
9517
  const handleReadmore = (status) => {
9516
9518
  setShowReadmore(status);
9517
9519
  };
9518
- const [showReadmore, setShowReadmore] = useState2(true);
9520
+ const [showReadmore, setShowReadmore] = useState2(false);
9519
9521
  return /* @__PURE__ */ React.createElement(React.Fragment, null, terms.map(
9520
- (term, key) => term.level === level && /* @__PURE__ */ React.createElement(Fragment, { key }, /* @__PURE__ */ React.createElement("div", { className: "rounded-top d-flex justify-content-between bg-white p-3 fw-medium flex-wrap border-bottom" }, /* @__PURE__ */ React.createElement("div", { className: "text-primary" }, t(term.name)), /* @__PURE__ */ React.createElement("div", { className: "d-flex align-items-center fs-14 text-primary" }, /* @__PURE__ */ React.createElement("div", { className: `status-tier tier-${term.level} rounded-circle` }), /* @__PURE__ */ React.createElement("div", { className: "status-tier-text" }, t(term.tier), " - ", t(term.levelname)))), /* @__PURE__ */ React.createElement("div", { className: "p-3 bg-white" }, /* @__PURE__ */ React.createElement("span", { className: "text-dark fw-medium" }, t(term.content)), " ", /* @__PURE__ */ React.createElement("span", { className: "" }, t(term.term)), /* @__PURE__ */ React.createElement("div", { className: "read-more d-flex justify-content-between align-items-center" }, term.upgrade && /* @__PURE__ */ React.createElement(
9522
+ (term, key) => term.level === level && /* @__PURE__ */ React.createElement(Fragment, { key }, /* @__PURE__ */ React.createElement("div", { className: "rounded-top d-flex justify-content-between bg-white p-3 fw-medium flex-wrap border-bottom" }, /* @__PURE__ */ React.createElement("div", { className: "text-primary" }, t(term.name)), /* @__PURE__ */ React.createElement("div", { className: "d-flex align-items-center fs-14 text-primary" }, /* @__PURE__ */ React.createElement("div", { className: `status-tier tier-${term.level} rounded-circle` }), /* @__PURE__ */ React.createElement("div", { className: "status-tier-text" }, t(term.tier), " - ", t(term.levelname)))), /* @__PURE__ */ React.createElement("div", { className: "p-3 bg-white" }, /* @__PURE__ */ React.createElement("span", { className: "text-dark fw-medium" }, t(term.content)), " ", /* @__PURE__ */ React.createElement("span", { className: "" }, t(term.term)), /* @__PURE__ */ React.createElement("div", { className: "read-more d-flex justify-content-between align-items-center flex-wrap" }, term.upgrade && /* @__PURE__ */ React.createElement(
9521
9523
  "a",
9522
9524
  {
9523
- className: "fs-14 text-success fw-bold",
9525
+ className: "fs-14 text-success fw-bold mb-1",
9524
9526
  href: "#",
9525
9527
  onClick: () => handleLevel(terms[key + 1].level)
9526
9528
  },
@@ -9528,7 +9530,7 @@ var TermsComponent = ({ children, level, handleLevel }) => {
9528
9530
  ), /* @__PURE__ */ React.createElement(
9529
9531
  "div",
9530
9532
  {
9531
- className: "ms-auto read-more-btn",
9533
+ className: "ms-auto read-more-btn mb-1",
9532
9534
  onClick: () => {
9533
9535
  handleReadmore(!showReadmore ? true : false);
9534
9536
  }
@@ -9566,9 +9568,11 @@ import {
9566
9568
  WithWalletConnector,
9567
9569
  useConnection as useConnection2,
9568
9570
  useConnect as useConnect2,
9569
- stringMessage as stringMessage2
9571
+ stringMessage as stringMessage2,
9572
+ useGrpcClient as useGrpcClient2,
9573
+ TESTNET as TESTNET2
9570
9574
  } from "@concordium/react-components";
9571
- import { OsTypes, isMobile as isMobile2, osName } from "react-device-detect";
9575
+ import { OsTypes, isDesktop as isDesktop3, isMobile as isMobile2, osName } from "react-device-detect";
9572
9576
 
9573
9577
  // src/Components/LoadingStatus.tsx
9574
9578
  import React2 from "react";
@@ -9875,8 +9879,8 @@ var SSOEthereumProvider = ({ children }) => {
9875
9879
  var Ethereum_default = SSOEthereumProvider;
9876
9880
 
9877
9881
  // src/Components/Consent.tsx
9878
- var ConsentComponent = ({ endpoint, aesirXEndpoint }) => {
9879
- return /* @__PURE__ */ React6.createElement(WithWalletConnector, { network: MAINNET2 }, (props) => /* @__PURE__ */ React6.createElement("div", { className: "aesirxconsent" }, /* @__PURE__ */ React6.createElement(Ethereum_default, null, /* @__PURE__ */ React6.createElement(ConsentComponentApp, { ...props, endpoint, aesirXEndpoint }))));
9882
+ var ConsentComponent = ({ endpoint, aesirXEndpoint, networkEnv }) => {
9883
+ return /* @__PURE__ */ React6.createElement(WithWalletConnector, { network: networkEnv === "testnet" ? TESTNET2 : MAINNET2 }, (props) => /* @__PURE__ */ React6.createElement("div", { className: "aesirxconsent" }, /* @__PURE__ */ React6.createElement(Ethereum_default, null, /* @__PURE__ */ React6.createElement(ConsentComponentApp, { ...props, endpoint, aesirXEndpoint }))));
9880
9884
  };
9881
9885
  var ConsentComponentApp = (props) => {
9882
9886
  const {
@@ -9887,12 +9891,13 @@ var ConsentComponentApp = (props) => {
9887
9891
  activeConnectorError,
9888
9892
  connectedAccounts,
9889
9893
  genesisHashes,
9890
- setActiveConnectorType
9894
+ setActiveConnectorType,
9895
+ network
9891
9896
  } = props;
9892
9897
  const { setConnection } = useConnection2(connectedAccounts, genesisHashes);
9893
9898
  const { isConnecting } = useConnect2(activeConnector, setConnection);
9894
- const handleOnConnect = async (connectorType, network = "concordium") => {
9895
- if (network === "concordium") {
9899
+ const handleOnConnect = async (connectorType, network2 = "concordium") => {
9900
+ if (network2 === "concordium") {
9896
9901
  setActiveConnectorType(connectorType);
9897
9902
  }
9898
9903
  setLoading("done");
@@ -9916,8 +9921,10 @@ var ConsentComponentApp = (props) => {
9916
9921
  const [showExpandConsent, setShowExpandConsent] = useState5(true);
9917
9922
  const [showExpandRevoke, setShowExpandRevoke] = useState5(false);
9918
9923
  const [showBackdrop, setShowBackdrop] = useState5(true);
9924
+ const [consentTier4, setConsentTier4] = useState5({});
9919
9925
  const analyticsContext = useContext2(AnalyticsContext);
9920
9926
  const { t } = useTranslation();
9927
+ const gRPCClient = useGrpcClient2(network);
9921
9928
  const { address, connector } = useAccount3();
9922
9929
  const { signMessage } = useSignMessage({
9923
9930
  async onSuccess(data, variables) {
@@ -9951,7 +9958,12 @@ var ConsentComponentApp = (props) => {
9951
9958
  const res = await verifySignature(aesirXEndpoint, "metamask", address, data);
9952
9959
  sessionStorage.setItem("aesirx-analytics-jwt", res?.jwt);
9953
9960
  setLoadingCheckAccount(false);
9954
- const nonce = await getNonce(endpoint, address, "Give consent Tier 4:{}", "metamask");
9961
+ const nonce = await getNonce(
9962
+ endpoint,
9963
+ address,
9964
+ "Give consent Tier 4:{nonce} {domain} {time}",
9965
+ "metamask"
9966
+ );
9955
9967
  signMessage({ message: `${nonce}` });
9956
9968
  } else {
9957
9969
  setLoading("saving");
@@ -10038,7 +10050,7 @@ var ConsentComponentApp = (props) => {
10038
10050
  endpoint,
10039
10051
  account,
10040
10052
  connection,
10041
- level === 3 ? "Give consent:{}" : "Give consent Tier 4:{}"
10053
+ level === 3 ? "Give consent:{nonce} {domain} {time}" : "Give consent Tier 4:{nonce} {domain} {time}"
10042
10054
  );
10043
10055
  setLoading("saving");
10044
10056
  await agreeConsents(endpoint, level, uuid, consents, account, signature, web3ID, jwt);
@@ -10048,7 +10060,7 @@ var ConsentComponentApp = (props) => {
10048
10060
  const nonce = await getNonce(
10049
10061
  endpoint,
10050
10062
  address,
10051
- level === 3 ? "Give consent:{}" : "Give consent Tier 4:{}",
10063
+ level === 3 ? "Give consent:{nonce} {domain} {time}" : "Give consent Tier 4:{nonce} {domain} {time}",
10052
10064
  "metamask"
10053
10065
  );
10054
10066
  signMessage({ message: `${nonce}` });
@@ -10084,6 +10096,66 @@ var ConsentComponentApp = (props) => {
10084
10096
  toast2.error(error?.response?.data?.error ?? error.message);
10085
10097
  }
10086
10098
  };
10099
+ useEffect2(() => {
10100
+ const init = async () => {
10101
+ if (Object.keys(consentTier4)?.length && (account || address)) {
10102
+ await consentTier4Init(consentTier4);
10103
+ setConsentTier4({});
10104
+ }
10105
+ };
10106
+ init();
10107
+ }, [consentTier4, account, address]);
10108
+ const consentTier4Init = async (response) => {
10109
+ let hasWeb3ID = true;
10110
+ if (response?.loginType === "concordium") {
10111
+ const web3ID2 = await getWeb3ID(account, gRPCClient, network?.name);
10112
+ if (web3ID2) {
10113
+ setWeb3ID(web3ID2);
10114
+ } else {
10115
+ hasWeb3ID = false;
10116
+ }
10117
+ } else {
10118
+ const memberData = await getMember(aesirXEndpoint, response?.access_token);
10119
+ hasWeb3ID = memberData?.web3id ? true : false;
10120
+ }
10121
+ if (hasWeb3ID) {
10122
+ if (response?.loginType === "concordium") {
10123
+ sessionStorage.setItem("aesirx-analytics-consent-type", "concordium");
10124
+ const signature = await getSignature(
10125
+ endpoint,
10126
+ account,
10127
+ connection,
10128
+ "Give consent Tier 4:{nonce} {domain} {time}"
10129
+ );
10130
+ await agreeConsents(
10131
+ endpoint,
10132
+ level,
10133
+ uuid,
10134
+ consents,
10135
+ account,
10136
+ signature,
10137
+ null,
10138
+ response?.jwt
10139
+ );
10140
+ setShow(false);
10141
+ handleRevoke(true, level);
10142
+ setLoading("done");
10143
+ } else if (response?.loginType === "metamask") {
10144
+ sessionStorage.setItem("aesirx-analytics-consent-type", "metamask");
10145
+ const nonce = await getNonce(
10146
+ endpoint,
10147
+ address,
10148
+ "Give consent Tier 4:{nonce} {domain} {time}",
10149
+ "metamask"
10150
+ );
10151
+ signMessage({ message: `${nonce}` });
10152
+ }
10153
+ } else {
10154
+ handleLevel(3);
10155
+ toast2("You haven't minted any WEB3 ID yet. Try to mint at https://dapp.shield.aesirx.io");
10156
+ setLoading("done");
10157
+ }
10158
+ };
10087
10159
  const onGetData = async (response) => {
10088
10160
  try {
10089
10161
  setLoading("saving");
@@ -10097,52 +10169,10 @@ var ConsentComponentApp = (props) => {
10097
10169
  handleRevokeBtn();
10098
10170
  } else {
10099
10171
  if (level === 4) {
10100
- let hasWeb3ID = true;
10101
- if (response?.loginType === "concordium") {
10102
- const web3ID2 = await getWeb3ID(connection, account);
10103
- if (web3ID2) {
10104
- setWeb3ID(web3ID2);
10105
- } else {
10106
- hasWeb3ID = false;
10107
- }
10108
- } else {
10109
- const memberData = await getMember(aesirXEndpoint, response?.access_token);
10110
- hasWeb3ID = memberData?.web3id ? true : false;
10111
- }
10112
- if (hasWeb3ID) {
10113
- if (response?.loginType === "concordium") {
10114
- sessionStorage.setItem("aesirx-analytics-consent-type", "concordium");
10115
- const signature = await getSignature(
10116
- endpoint,
10117
- account,
10118
- connection,
10119
- "Give consent Tier 4:{}"
10120
- );
10121
- await agreeConsents(
10122
- endpoint,
10123
- level,
10124
- uuid,
10125
- consents,
10126
- account,
10127
- signature,
10128
- null,
10129
- response?.jwt
10130
- );
10131
- setShow(false);
10132
- handleRevoke(true, level);
10133
- setLoading("done");
10134
- } else if (response?.loginType === "metamask") {
10135
- sessionStorage.setItem("aesirx-analytics-consent-type", "metamask");
10136
- const nonce = await getNonce(endpoint, address, "Give consent Tier 4:{}", "metamask");
10137
- signMessage({ message: `${nonce}` });
10138
- }
10139
- } else {
10140
- handleLevel(3);
10141
- toast2(
10142
- "You haven't minted any WEB3 ID yet. Try to mint at https://dapp.shield.aesirx.io"
10143
- );
10144
- setLoading("done");
10172
+ if (response?.loginType === "concordium" && isDesktop3) {
10173
+ setActiveConnectorType(BROWSER_WALLET);
10145
10174
  }
10175
+ setConsentTier4(response);
10146
10176
  } else {
10147
10177
  await agreeConsents(endpoint, level, uuid, consents, null, null, null, response?.jwt);
10148
10178
  setShow(false);
@@ -10181,7 +10211,7 @@ var ConsentComponentApp = (props) => {
10181
10211
  endpoint,
10182
10212
  account,
10183
10213
  connection,
10184
- "Revoke consent:{}"
10214
+ "Revoke consent:{nonce} {domain} {time}"
10185
10215
  );
10186
10216
  setLoading("saving");
10187
10217
  const consentList = await getConsents(endpoint, uuid);
@@ -10201,7 +10231,12 @@ var ConsentComponentApp = (props) => {
10201
10231
  } else if (connector) {
10202
10232
  setLoading("sign");
10203
10233
  setLoading("saving");
10204
- const nonce = await getNonce(endpoint, address, "Revoke consent:{}", "metamask");
10234
+ const nonce = await getNonce(
10235
+ endpoint,
10236
+ address,
10237
+ "Revoke consent:{nonce} {domain} {time}",
10238
+ "metamask"
10239
+ );
10205
10240
  signMessage({ message: `${nonce}` });
10206
10241
  } else {
10207
10242
  setLoading("connect");