diff --git a/README.md b/README.md
index b4dcf279..819a048c 100644
--- a/README.md
+++ b/README.md
@@ -128,6 +128,24 @@ Here are the addresses on those networks:
+
+ Arbitrum Sepolia
+
+- Router =
+ [0x374B686137eC0DB442a8d833451f8C12cD4B5De4](https://sepolia.arbiscan.io/address/0x374B686137eC0DB442a8d833451f8C12cD4B5De4)
+- AttestationRegistry =
+ [0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5](https://sepolia.arbiscan.io/address/0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5)
+- ModuleRegistry =
+ [0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6](https://sepolia.arbiscan.io/address/0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6)
+- PortalRegistry =
+ [0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE](https://sepolia.arbiscan.io/address/0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE)
+- SchemaRegistry =
+ [0x025531b655D9EE335B8E6cc4C118b313f26ACc8F](https://sepolia.arbiscan.io/address/0x025531b655D9EE335B8E6cc4C118b313f26ACc8F)
+- AttestationReader =
+ [0xBdC45324AB9A7e82Ae15324a3d8352b513Ee2788](https://sepolia.arbiscan.io/address/0xBdC45324AB9A7e82Ae15324a3d8352b513Ee2788)
+
+
+
Arbitrum Mainnet
diff --git a/contracts/.openzeppelin/unknown-421614.json b/contracts/.openzeppelin/unknown-421614.json
new file mode 100644
index 00000000..e5fde776
--- /dev/null
+++ b/contracts/.openzeppelin/unknown-421614.json
@@ -0,0 +1,990 @@
+{
+ "manifestVersion": "3.2",
+ "admin": {
+ "address": "0x582Ca0f4482166A01b19FE1D0abeF0b9b236228f",
+ "txHash": "0x5aaf78d707f4e65d32850b48fb1a76d9452d3db9694e9557a681bd137c3e3102"
+ },
+ "proxies": [
+ {
+ "address": "0xB3311B3CfF2752cd26B9964D3d7CB0FeB0b0d215",
+ "txHash": "0x32da5e77879ee163c1cd20ebfc11eceeb0e733e710f7b3ccdf7ea1428dbccf2c",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xFd3b9e9C60e9E7694751CfA8B10dE5850bC78C2F",
+ "txHash": "0x5eec0eebcc1a970851cf8b71cb0a8d804d546015ebe687a7113e9c4109e22fa7",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xAfA952790492DDeB474012cEA12ba34B788ab39F",
+ "txHash": "0xe0484186ea4a03565f270ad04189bc6a65ef109414c482c469b5f4a9cb670d47",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xDaf3C3632327343f7df0Baad2dc9144fa4e1001F",
+ "txHash": "0xb32a0f1a9112db269ac78bcbde4345ec979a300745bd634627b7088b74c9e738",
+ "kind": "transparent"
+ },
+ {
+ "address": "0x3C443B9f0c8ed3A3270De7A4815487BA3223C2Fa",
+ "txHash": "0xa78db07197fd6a89481fc333b097a3325bae6d6f466dedce8325ec3842fbb850",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xF35fe79104e157703dbCC3Baa72a81A99591744D",
+ "txHash": "0x5722e1fada891bfab790e923d5ff34e3443c21a43aed749b64c19504a4f3e4d9",
+ "kind": "transparent"
+ },
+ {
+ "address": "0x90b8542d7288a83EC887229A7C727989C3b56209",
+ "txHash": "0xa30c59c8ad0b5d51b40f56c2b9a7842d49de0f2ee98a6e15776c33e501b05dc1",
+ "kind": "transparent"
+ },
+ {
+ "address": "0x374B686137eC0DB442a8d833451f8C12cD4B5De4",
+ "txHash": "0x0d2a15e13c597ff83198f277d292ab7239be1e5bb3f945a1cd3b1e821dcd4cee",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5",
+ "txHash": "0xe3e62ae45ba6bbe3c9f140309d7730443be9ba8eea7edc966b648f742584c830",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6",
+ "txHash": "0xaeb66da666a008cd562b0aff112b21853fd6d3c6cf22d330118cc5d0fc10f099",
+ "kind": "transparent"
+ },
+ {
+ "address": "0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE",
+ "txHash": "0x1367304df4a656bfc769c40f7a8b6f260108041cbe26bfeb097e90aba74e4857",
+ "kind": "transparent"
+ },
+ {
+ "address": "0x025531b655D9EE335B8E6cc4C118b313f26ACc8F",
+ "txHash": "0xb739a2255836a940c9554689542d04b04de5f4b23583cc960652a7c8592f12bc",
+ "kind": "transparent"
+ },
+ {
+ "address": "0xBdC45324AB9A7e82Ae15324a3d8352b513Ee2788",
+ "txHash": "0xf31671c1adbbc4ff36610a7780edab9e711d513c426ce1fff6f59cbe1f880f07",
+ "kind": "transparent"
+ }
+ ],
+ "impls": {
+ "4353fbe787c13443291bba3d18e906853909285ba948d10f4d95994940b68c97": {
+ "address": "0x79E25CD672032F3a7A315312d54F28ce3aBE3847",
+ "txHash": "0xb35dd9772daa68dcfc246d763779f1b2c315149105126dfd61d0f182260d79ef",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "ATTESTATION_REGISTRY",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_address",
+ "contract": "Router",
+ "src": "src/Router.sol:13"
+ },
+ {
+ "label": "MODULE_REGISTRY",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_address",
+ "contract": "Router",
+ "src": "src/Router.sol:14"
+ },
+ {
+ "label": "PORTAL_REGISTRY",
+ "offset": 0,
+ "slot": "103",
+ "type": "t_address",
+ "contract": "Router",
+ "src": "src/Router.sol:15"
+ },
+ {
+ "label": "SCHEMA_REGISTRY",
+ "offset": 0,
+ "slot": "104",
+ "type": "t_address",
+ "contract": "Router",
+ "src": "src/Router.sol:16"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ },
+ "afc9287c19cb1b830999d2016348e104b2143101ed97ea26cf1c1b48849ca551": {
+ "address": "0xe3c36DEB0Ce1444fc8c847d6865217A6B2133765",
+ "txHash": "0x38e1b2030b5951246753ea6463d39247f739522b325c223e6cd6c3b5ff4944f4",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "router",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_contract(IRouter)3696",
+ "contract": "AttestationRegistry",
+ "src": "src/AttestationRegistry.sol:17"
+ },
+ {
+ "label": "version",
+ "offset": 20,
+ "slot": "101",
+ "type": "t_uint16",
+ "contract": "AttestationRegistry",
+ "src": "src/AttestationRegistry.sol:19"
+ },
+ {
+ "label": "attestationIdCounter",
+ "offset": 22,
+ "slot": "101",
+ "type": "t_uint32",
+ "contract": "AttestationRegistry",
+ "src": "src/AttestationRegistry.sol:20"
+ },
+ {
+ "label": "attestations",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_mapping(t_bytes32,t_struct(Attestation)4148_storage)",
+ "contract": "AttestationRegistry",
+ "src": "src/AttestationRegistry.sol:22"
+ },
+ {
+ "label": "chainPrefix",
+ "offset": 0,
+ "slot": "103",
+ "type": "t_uint256",
+ "contract": "AttestationRegistry",
+ "src": "src/AttestationRegistry.sol:24"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_bytes32": {
+ "label": "bytes32",
+ "numberOfBytes": "32"
+ },
+ "t_bytes_storage": {
+ "label": "bytes",
+ "numberOfBytes": "32"
+ },
+ "t_contract(IRouter)3696": {
+ "label": "contract IRouter",
+ "numberOfBytes": "20"
+ },
+ "t_mapping(t_bytes32,t_struct(Attestation)4148_storage)": {
+ "label": "mapping(bytes32 => struct Attestation)",
+ "numberOfBytes": "32"
+ },
+ "t_struct(Attestation)4148_storage": {
+ "label": "struct Attestation",
+ "members": [
+ {
+ "label": "attestationId",
+ "type": "t_bytes32",
+ "offset": 0,
+ "slot": "0"
+ },
+ {
+ "label": "schemaId",
+ "type": "t_bytes32",
+ "offset": 0,
+ "slot": "1"
+ },
+ {
+ "label": "replacedBy",
+ "type": "t_bytes32",
+ "offset": 0,
+ "slot": "2"
+ },
+ {
+ "label": "attester",
+ "type": "t_address",
+ "offset": 0,
+ "slot": "3"
+ },
+ {
+ "label": "portal",
+ "type": "t_address",
+ "offset": 0,
+ "slot": "4"
+ },
+ {
+ "label": "attestedDate",
+ "type": "t_uint64",
+ "offset": 20,
+ "slot": "4"
+ },
+ {
+ "label": "expirationDate",
+ "type": "t_uint64",
+ "offset": 0,
+ "slot": "5"
+ },
+ {
+ "label": "revocationDate",
+ "type": "t_uint64",
+ "offset": 8,
+ "slot": "5"
+ },
+ {
+ "label": "version",
+ "type": "t_uint16",
+ "offset": 16,
+ "slot": "5"
+ },
+ {
+ "label": "revoked",
+ "type": "t_bool",
+ "offset": 18,
+ "slot": "5"
+ },
+ {
+ "label": "subject",
+ "type": "t_bytes_storage",
+ "offset": 0,
+ "slot": "6"
+ },
+ {
+ "label": "attestationData",
+ "type": "t_bytes_storage",
+ "offset": 0,
+ "slot": "7"
+ }
+ ],
+ "numberOfBytes": "256"
+ },
+ "t_uint16": {
+ "label": "uint16",
+ "numberOfBytes": "2"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint32": {
+ "label": "uint32",
+ "numberOfBytes": "4"
+ },
+ "t_uint64": {
+ "label": "uint64",
+ "numberOfBytes": "8"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ },
+ "855a9f1d8e96c2bd24b6a929c90e3681a27dfdf6e80bf08bdaf0de5f33e7accf": {
+ "address": "0x73B98ad14694f879D89e8D73D90583AB0D0f804d",
+ "txHash": "0x5aa46c7b2e7851837722fdf77c42256d617c197f89dc44f8e58fd0a26dc78ffd",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "router",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_contract(IRouter)3696",
+ "contract": "ModuleRegistry",
+ "src": "src/ModuleRegistry.sol:19"
+ },
+ {
+ "label": "modules",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_mapping(t_address,t_struct(Module)4180_storage)",
+ "contract": "ModuleRegistry",
+ "src": "src/ModuleRegistry.sol:21"
+ },
+ {
+ "label": "moduleAddresses",
+ "offset": 0,
+ "slot": "103",
+ "type": "t_array(t_address)dyn_storage",
+ "contract": "ModuleRegistry",
+ "src": "src/ModuleRegistry.sol:23"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_address)dyn_storage": {
+ "label": "address[]",
+ "numberOfBytes": "32"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_contract(IRouter)3696": {
+ "label": "contract IRouter",
+ "numberOfBytes": "20"
+ },
+ "t_mapping(t_address,t_struct(Module)4180_storage)": {
+ "label": "mapping(address => struct Module)",
+ "numberOfBytes": "32"
+ },
+ "t_string_storage": {
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_struct(Module)4180_storage": {
+ "label": "struct Module",
+ "members": [
+ {
+ "label": "moduleAddress",
+ "type": "t_address",
+ "offset": 0,
+ "slot": "0"
+ },
+ {
+ "label": "name",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "1"
+ },
+ {
+ "label": "description",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "2"
+ }
+ ],
+ "numberOfBytes": "96"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ },
+ "4354fba979d8af67ae201159e1b7f7c6048ac523a759db0e2d448b58a54cde2a": {
+ "address": "0x6BEb40d8fF2D9c9F4c434825F2c84B40Cbc4a6A4",
+ "txHash": "0xd9fbac0f66bb2cbab2c09a0b13bd2907bbe96c67dd25a384a779ce80109f7fbe",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "router",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_contract(IRouter)3696",
+ "contract": "PortalRegistry",
+ "src": "src/PortalRegistry.sol:21"
+ },
+ {
+ "label": "portals",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_mapping(t_address,t_struct(Portal)4173_storage)",
+ "contract": "PortalRegistry",
+ "src": "src/PortalRegistry.sol:23"
+ },
+ {
+ "label": "issuers",
+ "offset": 0,
+ "slot": "103",
+ "type": "t_mapping(t_address,t_bool)",
+ "contract": "PortalRegistry",
+ "src": "src/PortalRegistry.sol:25"
+ },
+ {
+ "label": "portalAddresses",
+ "offset": 0,
+ "slot": "104",
+ "type": "t_array(t_address)dyn_storage",
+ "contract": "PortalRegistry",
+ "src": "src/PortalRegistry.sol:27"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_address)dyn_storage": {
+ "label": "address[]",
+ "numberOfBytes": "32"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_contract(IRouter)3696": {
+ "label": "contract IRouter",
+ "numberOfBytes": "20"
+ },
+ "t_mapping(t_address,t_bool)": {
+ "label": "mapping(address => bool)",
+ "numberOfBytes": "32"
+ },
+ "t_mapping(t_address,t_struct(Portal)4173_storage)": {
+ "label": "mapping(address => struct Portal)",
+ "numberOfBytes": "32"
+ },
+ "t_string_storage": {
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_struct(Portal)4173_storage": {
+ "label": "struct Portal",
+ "members": [
+ {
+ "label": "id",
+ "type": "t_address",
+ "offset": 0,
+ "slot": "0"
+ },
+ {
+ "label": "ownerAddress",
+ "type": "t_address",
+ "offset": 0,
+ "slot": "1"
+ },
+ {
+ "label": "modules",
+ "type": "t_array(t_address)dyn_storage",
+ "offset": 0,
+ "slot": "2"
+ },
+ {
+ "label": "isRevocable",
+ "type": "t_bool",
+ "offset": 0,
+ "slot": "3"
+ },
+ {
+ "label": "name",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "4"
+ },
+ {
+ "label": "description",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "5"
+ },
+ {
+ "label": "ownerName",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "6"
+ }
+ ],
+ "numberOfBytes": "224"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ },
+ "68d0630cb0ae02e0e7d37f7e07193d62999ecb9070d3ca38b245f3954a34b089": {
+ "address": "0x4594A8DA79F6bb2C75E548F185B5BDbE5fEdb759",
+ "txHash": "0x414beff902789c0c8a52cded182b0b6642aa0e6cac623416ffa1a452b021db74",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "router",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_contract(IRouter)3696",
+ "contract": "SchemaRegistry",
+ "src": "src/SchemaRegistry.sol:16"
+ },
+ {
+ "label": "schemas",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_mapping(t_bytes32,t_struct(Schema)4157_storage)",
+ "contract": "SchemaRegistry",
+ "src": "src/SchemaRegistry.sol:18"
+ },
+ {
+ "label": "schemaIds",
+ "offset": 0,
+ "slot": "103",
+ "type": "t_array(t_bytes32)dyn_storage",
+ "contract": "SchemaRegistry",
+ "src": "src/SchemaRegistry.sol:20"
+ },
+ {
+ "label": "schemasIssuers",
+ "offset": 0,
+ "slot": "104",
+ "type": "t_mapping(t_bytes32,t_address)",
+ "contract": "SchemaRegistry",
+ "src": "src/SchemaRegistry.sol:22"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_bytes32)dyn_storage": {
+ "label": "bytes32[]",
+ "numberOfBytes": "32"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_bytes32": {
+ "label": "bytes32",
+ "numberOfBytes": "32"
+ },
+ "t_contract(IRouter)3696": {
+ "label": "contract IRouter",
+ "numberOfBytes": "20"
+ },
+ "t_mapping(t_bytes32,t_address)": {
+ "label": "mapping(bytes32 => address)",
+ "numberOfBytes": "32"
+ },
+ "t_mapping(t_bytes32,t_struct(Schema)4157_storage)": {
+ "label": "mapping(bytes32 => struct Schema)",
+ "numberOfBytes": "32"
+ },
+ "t_string_storage": {
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_struct(Schema)4157_storage": {
+ "label": "struct Schema",
+ "members": [
+ {
+ "label": "name",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "0"
+ },
+ {
+ "label": "description",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "1"
+ },
+ {
+ "label": "context",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "2"
+ },
+ {
+ "label": "schema",
+ "type": "t_string_storage",
+ "offset": 0,
+ "slot": "3"
+ }
+ ],
+ "numberOfBytes": "128"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ },
+ "cc3bd5ce0f70ee7ad8fd47bda375d640dc7035da4746a94f0ccf30df96358f53": {
+ "address": "0x4371Cc5C503e1285875016C9B65c7278f1EDFc56",
+ "txHash": "0x3bc3b75e678867356521e969e4642917c81f35113305a4f2c191f50ba3c3df43",
+ "layout": {
+ "solcVersion": "0.8.21",
+ "storage": [
+ {
+ "label": "_initialized",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:63",
+ "retypedFrom": "bool"
+ },
+ {
+ "label": "_initializing",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_bool",
+ "contract": "Initializable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol:68"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_array(t_uint256)50_storage",
+ "contract": "ContextUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol:36"
+ },
+ {
+ "label": "_owner",
+ "offset": 0,
+ "slot": "51",
+ "type": "t_address",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:22"
+ },
+ {
+ "label": "__gap",
+ "offset": 0,
+ "slot": "52",
+ "type": "t_array(t_uint256)49_storage",
+ "contract": "OwnableUpgradeable",
+ "src": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol:94"
+ },
+ {
+ "label": "router",
+ "offset": 0,
+ "slot": "101",
+ "type": "t_contract(IRouter)7517",
+ "contract": "AttestationReader",
+ "src": "src/AttestationReader.sol:17"
+ },
+ {
+ "label": "easRegistry",
+ "offset": 0,
+ "slot": "102",
+ "type": "t_contract(IEAS)7468",
+ "contract": "AttestationReader",
+ "src": "src/AttestationReader.sol:18"
+ }
+ ],
+ "types": {
+ "t_address": {
+ "label": "address",
+ "numberOfBytes": "20"
+ },
+ "t_array(t_uint256)49_storage": {
+ "label": "uint256[49]",
+ "numberOfBytes": "1568"
+ },
+ "t_array(t_uint256)50_storage": {
+ "label": "uint256[50]",
+ "numberOfBytes": "1600"
+ },
+ "t_bool": {
+ "label": "bool",
+ "numberOfBytes": "1"
+ },
+ "t_contract(IEAS)7468": {
+ "label": "contract IEAS",
+ "numberOfBytes": "20"
+ },
+ "t_contract(IRouter)7517": {
+ "label": "contract IRouter",
+ "numberOfBytes": "20"
+ },
+ "t_uint256": {
+ "label": "uint256",
+ "numberOfBytes": "32"
+ },
+ "t_uint8": {
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ },
+ "namespaces": {}
+ }
+ }
+ }
+}
diff --git a/contracts/env/.env.arbitrum-sepolia b/contracts/env/.env.arbitrum-sepolia
new file mode 100644
index 00000000..1a3c63de
--- /dev/null
+++ b/contracts/env/.env.arbitrum-sepolia
@@ -0,0 +1,14 @@
+# Config
+INFURA_KEY=
+
+PRIVATE_KEY_ARBITRUM_TESTNET=0000000000000000000000000000000000000000000000000000000000000001
+
+ARBISCAN_API_KEY=
+
+# Contracts
+ROUTER_ADDRESS=0x374B686137eC0DB442a8d833451f8C12cD4B5De4
+ATTESTATION_REGISTRY_ADDRESS=0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5
+MODULE_REGISTRY_ADDRESS=0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6
+PORTAL_REGISTRY_ADDRESS=0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE
+SCHEMA_REGISTRY_ADDRESS=0x025531b655D9EE335B8E6cc4C118b313f26ACc8F
+ATTESTATION_READER_ADDRESS=0xBdC45324AB9A7e82Ae15324a3d8352b513Ee2788
diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts
index eab3660c..0dab6d7f 100644
--- a/contracts/hardhat.config.ts
+++ b/contracts/hardhat.config.ts
@@ -25,6 +25,11 @@ const config: HardhatUserConfig = {
accounts:
process.env.PRIVATE_KEY_ARBITRUM_TESTNET !== undefined ? [process.env.PRIVATE_KEY_ARBITRUM_TESTNET] : [],
},
+ "arbitrum-sepolia": {
+ url: `https://arbitrum-sepolia.infura.io/v3/${process.env.INFURA_KEY ?? ""}`,
+ accounts:
+ process.env.PRIVATE_KEY_ARBITRUM_SEPOLIA !== undefined ? [process.env.PRIVATE_KEY_ARBITRUM_SEPOLIA] : [],
+ },
arbitrum: {
url: "https://arb1.arbitrum.io/rpc",
accounts:
@@ -49,6 +54,7 @@ const config: HardhatUserConfig = {
etherscan: {
apiKey: {
"arbitrum-goerli": process.env.ARBISCAN_API_KEY ?? "",
+ "arbitrum-sepolia": process.env.ARBISCAN_API_KEY ?? "",
arbitrum: process.env.ARBISCAN_API_KEY ?? "",
"linea-goerli": process.env.LINEASCAN_API_KEY ?? "",
linea: process.env.LINEASCAN_API_KEY ?? "",
@@ -63,6 +69,14 @@ const config: HardhatUserConfig = {
browserURL: "https://goerli.arbiscan.io",
},
},
+ {
+ network: "arbitrum-sepolia",
+ chainId: 421614,
+ urls: {
+ apiURL: "https://api-sepolia.arbiscan.io/api",
+ browserURL: "https://sepolia.arbiscan.io",
+ },
+ },
{
network: "arbitrum",
chainId: 42161,
diff --git a/contracts/script/utils.ts b/contracts/script/utils.ts
index 93f73522..07b240e5 100644
--- a/contracts/script/utils.ts
+++ b/contracts/script/utils.ts
@@ -6,6 +6,8 @@ export const getChainPrefix = (chainId: bigint): `0x${string}` => {
return "0x0000000000000000000000000000000000000000000000000000000000000000";
case 421613n: // Arbitrum testnet
return "0x0001000000000000000000000000000000000000000000000000000000000000";
+ case 421614n: // Arbitrum Sepolia
+ return "0x0001000000000000000000000000000000000000000000000000000000000000";
case 42161n: // Arbitrum mainnet
return "0x0001000000000000000000000000000000000000000000000000000000000000";
default:
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a69647b2..7a57b450 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -546,8 +546,8 @@ importers:
subgraph:
devDependencies:
'@graphprotocol/graph-cli':
- specifier: 0.60.0
- version: 0.60.0(@types/node@20.10.3)(node-fetch@3.3.2)(typescript@5.2.2)
+ specifier: 0.68.5
+ version: 0.68.5(@types/node@20.10.3)(node-fetch@3.3.2)(typescript@5.2.2)
'@graphprotocol/graph-ts':
specifier: 0.31.0
version: 0.31.0
@@ -3467,9 +3467,9 @@ packages:
tslib: 2.6.2
dev: false
- /@graphprotocol/graph-cli@0.60.0(@types/node@20.10.3)(node-fetch@3.3.2)(typescript@5.2.2):
- resolution: {integrity: sha512-8tGaQJ0EzAPtkDXCAijFGoVdJXM+pKFlGxjiU31TdG5bS4cIUoSB6yWojVsFFod0yETAwf+giel/0/8sudYsDw==}
- engines: {node: '>=14'}
+ /@graphprotocol/graph-cli@0.68.5(@types/node@20.10.3)(node-fetch@3.3.2)(typescript@5.2.2):
+ resolution: {integrity: sha512-3GY2pYr5LksO6JY6s5nvePnSKVdtzDEn1CUGezyjCMR1uq9YIXMPXKqcnrzCX/DLugioEabiEi2+yOg9+rnFDQ==}
+ engines: {node: '>=18'}
hasBin: true
dependencies:
'@float-capital/float-subgraph-uncrashable': 0.0.0-internal-testing.5
@@ -3486,14 +3486,13 @@ packages:
dockerode: 2.5.8
fs-extra: 9.1.0
glob: 9.3.5
- gluegun: 5.1.2(debug@4.3.4)
+ gluegun: 5.1.6(debug@4.3.4)
graphql: 15.5.0
immutable: 4.2.1
ipfs-http-client: 55.0.0(node-fetch@3.3.2)
jayson: 4.0.0
js-yaml: 3.14.1
- prettier: 1.19.1
- request: 2.88.2
+ prettier: 3.0.3
semver: 7.5.4
sync-request: 6.1.0
tmp-promise: 3.0.3
@@ -12184,12 +12183,6 @@ packages:
safer-buffer: 2.1.2
dev: true
- /asn1@0.2.6:
- resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
- dependencies:
- safer-buffer: 2.1.2
- dev: true
-
/asn1js@3.0.5:
resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==}
engines: {node: '>=12.0.0'}
@@ -12215,11 +12208,6 @@ packages:
source-map-support: 0.5.21
dev: true
- /assert-plus@1.0.0:
- resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
- engines: {node: '>=0.8'}
- dev: true
-
/assert@1.5.1:
resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==}
dependencies:
@@ -12348,14 +12336,6 @@ packages:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
- /aws-sign2@0.7.0:
- resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
- dev: true
-
- /aws4@1.12.0:
- resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==}
- dev: true
-
/axe-core@4.7.0:
resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
engines: {node: '>=4'}
@@ -12538,7 +12518,7 @@ packages:
dependencies:
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-module-imports': 7.22.15
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3)
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.3)
lodash: 4.17.21
picomatch: 2.3.1
styled-components: 5.3.11(@babel/core@7.23.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)
@@ -12715,12 +12695,6 @@ packages:
engines: {node: ^4.5.0 || >= 5.9}
dev: true
- /bcrypt-pbkdf@1.0.2:
- resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
- dependencies:
- tweetnacl: 0.14.5
- dev: true
-
/bech32@1.1.4:
resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==}
@@ -14044,10 +14018,6 @@ packages:
requiresBuild: true
dev: true
- /core-util-is@1.0.2:
- resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
- dev: true
-
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -14415,13 +14385,6 @@ packages:
resolution: {integrity: sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==}
dev: true
- /dashdash@1.14.1:
- resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
- engines: {node: '>=0.10'}
- dependencies:
- assert-plus: 1.0.0
- dev: true
-
/data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
@@ -15012,16 +14975,17 @@ packages:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: false
- /ecc-jsbn@0.1.2:
- resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==}
- dependencies:
- jsbn: 0.1.1
- safer-buffer: 2.1.2
- dev: true
-
/ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ /ejs@3.1.8:
+ resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ jake: 10.8.7
+ dev: true
+
/ejs@3.1.9:
resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
engines: {node: '>=0.10.0'}
@@ -16561,6 +16525,7 @@ packages:
/extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ dev: false
/extension-port-stream@3.0.0:
resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==}
@@ -16583,11 +16548,6 @@ packages:
engines: {node: ^12.20 || >= 14.13}
dev: false
- /extsprintf@1.3.0:
- resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==}
- engines: {'0': node >=0.6.0}
- dev: true
-
/eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
engines: {node: '> 0.1.90'}
@@ -16953,10 +16913,6 @@ packages:
signal-exit: 4.1.0
dev: false
- /forever-agent@0.6.1:
- resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
- dev: true
-
/fork-ts-checker-webpack-plugin@6.5.3(eslint@7.32.0)(typescript@4.9.5)(webpack@5.89.0):
resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
engines: {node: '>=10', yarn: '>=1.0.0'}
@@ -16994,15 +16950,6 @@ packages:
engines: {node: '>= 14.17'}
dev: true
- /form-data@2.3.3:
- resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
- engines: {node: '>= 0.12'}
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- dev: true
-
/form-data@2.5.1:
resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==}
engines: {node: '>= 0.12'}
@@ -17803,12 +17750,6 @@ packages:
resolve-pkg-maps: 1.0.0
dev: true
- /getpass@0.1.7:
- resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
- dependencies:
- assert-plus: 1.0.0
- dev: true
-
/ghost-testrpc@0.0.2:
resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==}
hasBin: true
@@ -18005,8 +17946,8 @@ packages:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: false
- /gluegun@5.1.2(debug@4.3.4):
- resolution: {integrity: sha512-Cwx/8S8Z4YQg07a6AFsaGnnnmd8mN17414NcPS3OoDtZRwxgsvwRNJNg69niD6fDa8oNwslCG0xH7rEpRNNE/g==}
+ /gluegun@5.1.6(debug@4.3.4):
+ resolution: {integrity: sha512-9zbi4EQWIVvSOftJWquWzr9gLX2kaDgPkNR5dYWbM53eVvCI3iKuxLlnKoHC0v4uPoq+Kr/+F569tjoFbA4DSA==}
hasBin: true
dependencies:
apisauce: 2.1.6(debug@4.3.4)
@@ -18015,7 +17956,7 @@ packages:
colors: 1.4.0
cosmiconfig: 7.0.1
cross-spawn: 7.0.3
- ejs: 3.1.9
+ ejs: 3.1.8
enquirer: 2.3.6
execa: 5.1.1
fs-jetpack: 4.3.1
@@ -18250,20 +18191,6 @@ packages:
uglify-js: 3.17.4
dev: true
- /har-schema@2.0.0:
- resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==}
- engines: {node: '>=4'}
- dev: true
-
- /har-validator@5.1.5:
- resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==}
- engines: {node: '>=6'}
- deprecated: this library is no longer supported
- dependencies:
- ajv: 6.12.6
- har-schema: 2.0.0
- dev: true
-
/hardhat-gas-reporter@1.0.9(hardhat@2.19.0):
resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==}
peerDependencies:
@@ -18616,15 +18543,6 @@ packages:
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
dev: false
- /http-signature@1.2.0:
- resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
- engines: {node: '>=0.8', npm: '>=1.3.7'}
- dependencies:
- assert-plus: 1.0.0
- jsprim: 1.4.2
- sshpk: 1.18.0
- dev: true
-
/http2-wrapper@1.0.3:
resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
engines: {node: '>=10.19.0'}
@@ -19506,10 +19424,6 @@ packages:
ws: 8.13.0
dev: false
- /isstream@0.1.2:
- resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
- dev: true
-
/istanbul-lib-coverage@3.2.0:
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
engines: {node: '>=8'}
@@ -20332,10 +20246,6 @@ packages:
dependencies:
argparse: 2.0.1
- /jsbn@0.1.1:
- resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
- dev: true
-
/jsc-android@250231.0.0:
resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==}
dev: false
@@ -20452,6 +20362,7 @@ packages:
/json-schema@0.4.0:
resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+ dev: false
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -20503,16 +20414,6 @@ packages:
resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==}
dev: true
- /jsprim@1.4.2:
- resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==}
- engines: {node: '>=0.6.0'}
- dependencies:
- assert-plus: 1.0.0
- extsprintf: 1.3.0
- json-schema: 0.4.0
- verror: 1.10.0
- dev: true
-
/jsx-ast-utils@3.3.5:
resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
engines: {node: '>=4.0'}
@@ -22464,10 +22365,6 @@ packages:
strip-hex-prefix: 1.0.0
dev: true
- /oauth-sign@0.9.0:
- resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
- dev: true
-
/ob1@0.76.8:
resolution: {integrity: sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==}
engines: {node: '>=16'}
@@ -23044,10 +22941,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /performance-now@2.1.0:
- resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
- dev: true
-
/pg-cloudflare@1.1.1:
resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==}
requiresBuild: true
@@ -23731,12 +23624,6 @@ packages:
solidity-comments-extractor: 0.0.7
dev: true
- /prettier@1.19.1:
- resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==}
- engines: {node: '>=4'}
- hasBin: true
- dev: true
-
/prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
@@ -23744,6 +23631,12 @@ packages:
requiresBuild: true
dev: true
+ /prettier@3.0.3:
+ resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
/prettier@3.1.0:
resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
engines: {node: '>=14'}
@@ -23884,10 +23777,6 @@ packages:
resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
dev: true
- /psl@1.9.0:
- resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
- dev: true
-
/public-encrypt@4.0.3:
resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==}
dependencies:
@@ -23965,11 +23854,6 @@ packages:
dependencies:
side-channel: 1.0.4
- /qs@6.5.3:
- resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
- engines: {node: '>=0.6'}
- dev: true
-
/query-string@6.14.1:
resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==}
engines: {node: '>=6'}
@@ -23994,10 +23878,6 @@ packages:
engines: {node: '>=0.4.x'}
dev: true
- /querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
- dev: true
-
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -24785,33 +24665,6 @@ packages:
resolve-from: 3.0.0
dev: true
- /request@2.88.2:
- resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==}
- engines: {node: '>= 6'}
- deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
- dependencies:
- aws-sign2: 0.7.0
- aws4: 1.12.0
- caseless: 0.12.0
- combined-stream: 1.0.8
- extend: 3.0.2
- forever-agent: 0.6.1
- form-data: 2.3.3
- har-validator: 5.1.5
- http-signature: 1.2.0
- is-typedarray: 1.0.0
- isstream: 0.1.2
- json-stringify-safe: 5.0.1
- mime-types: 2.1.35
- oauth-sign: 0.9.0
- performance-now: 2.1.0
- qs: 6.5.3
- safe-buffer: 5.2.1
- tough-cookie: 4.1.3
- tunnel-agent: 0.6.0
- uuid: 3.4.0
- dev: true
-
/require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -24827,10 +24680,6 @@ packages:
resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==}
dev: true
- /requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
- dev: true
-
/reselect@4.1.8:
resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==}
dev: true
@@ -25670,22 +25519,6 @@ packages:
/sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
- /sshpk@1.18.0:
- resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
- engines: {node: '>=0.10.0'}
- hasBin: true
- dependencies:
- asn1: 0.2.6
- assert-plus: 1.0.0
- bcrypt-pbkdf: 1.0.2
- dashdash: 1.14.1
- ecc-jsbn: 0.1.2
- getpass: 0.1.7
- jsbn: 0.1.1
- safer-buffer: 2.1.2
- tweetnacl: 0.14.5
- dev: true
-
/stable@0.1.8:
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
@@ -26620,16 +26453,6 @@ packages:
ieee754: 1.2.1
dev: true
- /tough-cookie@4.1.3:
- resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
- engines: {node: '>=6'}
- dependencies:
- psl: 1.9.0
- punycode: 2.3.0
- universalify: 0.2.0
- url-parse: 1.5.10
- dev: true
-
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
@@ -26901,10 +26724,6 @@ packages:
resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==}
dev: true
- /tweetnacl@0.14.5:
- resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
- dev: true
-
/tweetnacl@1.0.3:
resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
dev: true
@@ -27324,11 +27143,6 @@ packages:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
- /universalify@0.2.0:
- resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
- engines: {node: '>= 4.0.0'}
- dev: true
-
/universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
@@ -27461,13 +27275,6 @@ packages:
webpack: 5.89.0
dev: true
- /url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
- dev: true
-
/url@0.11.3:
resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==}
dependencies:
@@ -27621,12 +27428,6 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
- /uuid@3.4.0:
- resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
- deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
- hasBin: true
- dev: true
-
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@@ -27705,15 +27506,6 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
- /verror@1.10.0:
- resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
- engines: {'0': node >=0.6.0}
- dependencies:
- assert-plus: 1.0.0
- core-util-is: 1.0.2
- extsprintf: 1.3.0
- dev: true
-
/vfile-location@4.1.0:
resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==}
dependencies:
diff --git a/sdk/package.json b/sdk/package.json
index d425289e..b001a1a7 100644
--- a/sdk/package.json
+++ b/sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@verax-attestation-registry/verax-sdk",
- "version": "1.1.2",
+ "version": "1.2.1",
"description": "Verax Attestation Registry SDK to interact with the subgraph and the contracts",
"keywords": [
"linea-attestation-registry",
diff --git a/sdk/src/VeraxSdk.ts b/sdk/src/VeraxSdk.ts
index 1d0f3ed4..ac4389e4 100644
--- a/sdk/src/VeraxSdk.ts
+++ b/sdk/src/VeraxSdk.ts
@@ -1,4 +1,4 @@
-import { arbitrum, arbitrumGoerli, linea, lineaTestnet } from "viem/chains";
+import { arbitrum, arbitrumGoerli, arbitrumSepolia, linea, lineaTestnet } from "viem/chains";
import AttestationDataMapper from "./dataMapper/AttestationDataMapper";
import SchemaDataMapper from "./dataMapper/SchemaDataMapper";
import ModuleDataMapper from "./dataMapper/ModuleDataMapper";
@@ -58,6 +58,21 @@ export class VeraxSdk {
mode: SDKMode.FRONTEND,
};
+ static DEFAULT_ARBITRUM_SEPOLIA: Conf = {
+ chain: arbitrumSepolia,
+ mode: SDKMode.BACKEND,
+ subgraphUrl: "https://api.studio.thegraph.com/query/67946/verax-arbitrum-sepolia/v0.0.2",
+ portalRegistryAddress: "0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE",
+ moduleRegistryAddress: "0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6",
+ schemaRegistryAddress: "0x025531b655D9EE335B8E6cc4C118b313f26ACc8F",
+ attestationRegistryAddress: "0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5",
+ };
+
+ static DEFAULT_ARBITRUM_SEPOLIA_FRONTEND: Conf = {
+ ...VeraxSdk.DEFAULT_ARBITRUM_SEPOLIA,
+ mode: SDKMode.FRONTEND,
+ };
+
static DEFAULT_ARBITRUM: Conf = {
chain: arbitrum,
mode: SDKMode.BACKEND,
diff --git a/subgraph/networks.json b/subgraph/networks.json
index f009c0bf..b77219fb 100644
--- a/subgraph/networks.json
+++ b/subgraph/networks.json
@@ -53,6 +53,24 @@
"startBlock": 56196956
}
},
+ "arbitrum-sepolia": {
+ "AttestationRegistry": {
+ "address": "0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5",
+ "startBlock": 22791116
+ },
+ "ModuleRegistry": {
+ "address": "0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6",
+ "startBlock": 22791116
+ },
+ "PortalRegistry": {
+ "address": "0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE",
+ "startBlock": 22791116
+ },
+ "SchemaRegistry": {
+ "address": "0x025531b655D9EE335B8E6cc4C118b313f26ACc8F",
+ "startBlock": 22791116
+ }
+ },
"arbitrum-one": {
"AttestationRegistry": {
"address": "0x335E9719e8eFE2a19A92E07BC4836160fC31cd7C",
diff --git a/subgraph/package.json b/subgraph/package.json
index d9ea3859..cb4c562d 100644
--- a/subgraph/package.json
+++ b/subgraph/package.json
@@ -18,18 +18,22 @@
"build:linea-mainnet": "cp subgraph.linea-mainnet.yaml subgraph.yaml && pnpm run codegen:linea-mainnet && graph build --network linea-mainnet",
"build:linea-goerli": "cp subgraph.linea-goerli.yaml subgraph.yaml && pnpm run codegen:linea-goerli && graph build --network linea-goerli",
"build:arbitrum-goerli": "cp subgraph.linea-goerli.yaml subgraph.yaml && pnpm run codegen:arbitrum-goerli && graph build --network arbitrum-goerli",
+ "build:arbitrum-sepolia": "cp subgraph.arbitrum-sepolia.yaml subgraph.yaml && pnpm run codegen:arbitrum-sepolia && graph build --network arbitrum-sepolia",
"build:arbitrum-one": "cp subgraph.linea-goerli.yaml subgraph.yaml && pnpm run codegen:arbitrum-one && graph build --network arbitrum-one",
"codegen:linea-mainnet": "cp subgraph.linea-mainnet.yaml subgraph.yaml && graph codegen",
"codegen:linea-goerli": "cp subgraph.linea-goerli.yaml subgraph.yaml && graph codegen",
"codegen:arbitrum-goerli": "cp subgraph.linea-goerli.yaml subgraph.yaml && graph codegen",
+ "codegen:arbitrum-sepolia": "cp subgraph.arbitrum-sepolia.yaml subgraph.yaml && graph codegen",
"codegen:arbitrum-one": "cp subgraph.linea-mainnet.yaml subgraph.yaml && graph codegen",
"create:linea-mainnet": "source .env && graph create --node $DEPLOY_ENDPOINT_LINEA_MAINNET Consensys/linea-attestation-registry",
"create:linea-goerli": "source .env && graph create --node $DEPLOY_ENDPOINT_LINEA_GOERLI Consensys/linea-attestation-registry",
"create:arbitrum-goerli": "source .env && graph create --node $DEPLOY_ENDPOINT_ARBITRUM_GOERLI Consensys/verax-arbitrum-goerli",
+ "create:arbitrum-sepolia": "source .env && graph create --node $DEPLOY_ENDPOINT_ARBITRUM_SEPOLIA $SUBGRAPH_NAME_ARBITRUM_SEPOLIA",
"create:arbitrum-one": "source .env && graph create --node $DEPLOY_ENDPOINT_ARBITRUM_GOERLI Consensys/verax-arbitrum",
"deploy:linea-mainnet": "source .env && cp subgraph.linea-mainnet.yaml subgraph.yaml && pnpm run build:linea-mainnet && graph deploy --network linea-mainnet --node $DEPLOY_ENDPOINT_LINEA_MAINNET --headers \"{\\\"Authorization\\\": \\\"Basic $IPFS_IDENTIFIERS\\\"}\" --ipfs $IPFS_ENDPOINT --version-label v0.0.1 Consensys/linea-attestation-registry",
"deploy:linea-goerli": "source .env && cp subgraph.linea-goerli.yaml subgraph.yaml && pnpm run build:linea-goerli && graph deploy --network linea-goerli --node $DEPLOY_ENDPOINT_LINEA_GOERLI --headers \"{\\\"Authorization\\\": \\\"Basic $IPFS_IDENTIFIERS\\\"}\" --ipfs $IPFS_ENDPOINT --version-label v0.0.5 Consensys/linea-attestation-registry",
"deploy:arbitrum-goerli": "source .env && cp subgraph.arbitrum-goerli.yaml subgraph.yaml && pnpm run build:arbitrum-goerli && graph deploy --network arbitrum-goerli --product hosted-service $SUBGRAPH_NAME_ARBITRUM_GOERLI",
+ "deploy:arbitrum-sepolia": "source .env && cp subgraph.arbitrum-sepolia.yaml subgraph.yaml && pnpm run build:arbitrum-sepolia && graph deploy --studio $SUBGRAPH_NAME_ARBITRUM_SEPOLIA",
"deploy:arbitrum-one": "source .env && cp subgraph.arbitrum-one.yaml subgraph.yaml && pnpm run build:arbitrum-one && graph deploy --network arbitrum-one --product hosted-service $SUBGRAPH_NAME_ARBITRUM",
"remove:linea-mainnet": "source .env && graph remove --node $DEPLOY_ENDPOINT_LINEA_MAINNET Consensys/linea-attestation-registry",
"remove:linea-goerli": "source .env && graph remove --node $DEPLOY_ENDPOINT_LINEA_GOERLI Consensys/linea-attestation-registry",
@@ -38,7 +42,7 @@
"test:docker": "graph test -d"
},
"devDependencies": {
- "@graphprotocol/graph-cli": "0.60.0",
+ "@graphprotocol/graph-cli": "0.68.5",
"@graphprotocol/graph-ts": "0.31.0",
"assemblyscript": "0.19.10",
"matchstick-as": "0.6.0"
diff --git a/subgraph/subgraph.arbitrum-sepolia.yaml b/subgraph/subgraph.arbitrum-sepolia.yaml
new file mode 100644
index 00000000..88b3c479
--- /dev/null
+++ b/subgraph/subgraph.arbitrum-sepolia.yaml
@@ -0,0 +1,86 @@
+specVersion: 0.0.5
+schema:
+ file: ./schema.graphql
+dataSources:
+ - kind: ethereum
+ name: AttestationRegistry
+ network: arbotrum-sepolia
+ source:
+ abi: AttestationRegistry
+ address: "0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5"
+ startBlock: 22791116
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.7
+ language: wasm/assemblyscript
+ entities:
+ - Attestation
+ abis:
+ - name: AttestationRegistry
+ file: ./abis/AttestationRegistry.json
+ eventHandlers:
+ - event: AttestationRegistered(indexed bytes32)
+ handler: handleAttestationRegistered
+ file: ./src/attestation-registry.ts
+ - kind: ethereum
+ name: ModuleRegistry
+ network: arbotrum-sepolia
+ source:
+ abi: ModuleRegistry
+ address: "0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6"
+ startBlock: 22791116
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.7
+ language: wasm/assemblyscript
+ entities:
+ - Module
+ abis:
+ - name: ModuleRegistry
+ file: ./abis/ModuleRegistry.json
+ eventHandlers:
+ - event: ModuleRegistered(string,string,address)
+ handler: handleModuleRegistered
+ file: ./src/module-registry.ts
+ - kind: ethereum
+ name: PortalRegistry
+ network: arbotrum-sepolia
+ source:
+ abi: PortalRegistry
+ address: "0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE"
+ startBlock: 22791116
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.7
+ language: wasm/assemblyscript
+ entities:
+ - Portal
+ abis:
+ - name: PortalRegistry
+ file: ./abis/PortalRegistry.json
+ eventHandlers:
+ - event: PortalRegistered(string,string,address)
+ handler: handlePortalRegistered
+ file: ./src/portal-registry.ts
+ - kind: ethereum
+ name: SchemaRegistry
+ network: arbotrum-sepolia
+ source:
+ abi: SchemaRegistry
+ address: "0x025531b655D9EE335B8E6cc4C118b313f26ACc8F"
+ startBlock: 22791116
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.7
+ language: wasm/assemblyscript
+ entities:
+ - Portal
+ abis:
+ - name: SchemaRegistry
+ file: ./abis/SchemaRegistry.json
+ eventHandlers:
+ - event: SchemaCreated(indexed bytes32,string,string,string,string)
+ handler: handleSchemaCreated
+ - event: SchemaContextUpdated(indexed bytes32)
+ handler: handleSchemaContextUpdated
+ file: ./src/schema-registry.ts