@ensnode/datasources 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7096,6 +7096,61 @@ var ThreeDNSToken = [
7096
7096
  // src/identify-contracts.ts
7097
7097
  import { toNormalizedAddress } from "enssdk";
7098
7098
 
7099
+ // src/abis/efp/AccountMetadata.ts
7100
+ var AccountMetadata = [
7101
+ {
7102
+ type: "event",
7103
+ name: "UpdateAccountMetadata",
7104
+ inputs: [
7105
+ { indexed: true, name: "addr", type: "address" },
7106
+ { indexed: false, name: "key", type: "string" },
7107
+ { indexed: false, name: "value", type: "bytes" }
7108
+ ]
7109
+ }
7110
+ ];
7111
+
7112
+ // src/abis/efp/ListRecords.ts
7113
+ var ListRecords = [
7114
+ {
7115
+ type: "event",
7116
+ name: "ListOp",
7117
+ inputs: [
7118
+ { indexed: true, name: "slot", type: "uint256" },
7119
+ { indexed: false, name: "op", type: "bytes" }
7120
+ ]
7121
+ },
7122
+ {
7123
+ type: "event",
7124
+ name: "UpdateListMetadata",
7125
+ inputs: [
7126
+ { indexed: true, name: "slot", type: "uint256" },
7127
+ { indexed: false, name: "key", type: "string" },
7128
+ { indexed: false, name: "value", type: "bytes" }
7129
+ ]
7130
+ }
7131
+ ];
7132
+
7133
+ // src/abis/efp/ListRegistry.ts
7134
+ var ListRegistry = [
7135
+ {
7136
+ type: "event",
7137
+ name: "Transfer",
7138
+ inputs: [
7139
+ { indexed: true, name: "from", type: "address" },
7140
+ { indexed: true, name: "to", type: "address" },
7141
+ { indexed: true, name: "tokenId", type: "uint256" }
7142
+ ]
7143
+ },
7144
+ {
7145
+ type: "event",
7146
+ name: "UpdateListStorageLocation",
7147
+ inputs: [
7148
+ { indexed: true, name: "tokenId", type: "uint256" },
7149
+ { indexed: false, name: "listStorageLocation", type: "bytes" }
7150
+ ]
7151
+ }
7152
+ ];
7153
+
7099
7154
  // src/abis/root/UnwrappedEthRegistrarController.ts
7100
7155
  var UnwrappedEthRegistrarController = [
7101
7156
  {
@@ -7850,6 +7905,12 @@ var contracts = {
7850
7905
  MockUSDC: "0xfd471836031dc5108809d173a067e8486b9047a3",
7851
7906
  MockDAI: "0xcbeaf3bde82155f56486fb5a1072cb8baaf547cc"
7852
7907
  };
7908
+ var efpContracts = {
7909
+ EFPAccountMetadata: "0xd5ac451b0c50b9476107823af206ed814a2e2580",
7910
+ EFPListRegistry: "0xf8e31cb472bc70500f08cd84917e5a1912ec8397",
7911
+ EFPListRecords: "0xc0f115a19107322cfbf1cdbc7ea011c19ebdb4f8",
7912
+ EFPListMinter: "0xc96304e3c037f81da488ed9dea1d8f2a48278a75"
7913
+ };
7853
7914
 
7854
7915
  // src/lib/chains.ts
7855
7916
  import { anvil } from "viem/chains";
@@ -9942,7 +10003,10 @@ var DatasourceNames = {
9942
10003
  ReverseResolverOptimism: "rrOptimism",
9943
10004
  ReverseResolverArbitrum: "rrArbitrum",
9944
10005
  ReverseResolverScroll: "rrScroll",
9945
- ENSv2Root: "ENSv2Root"
10006
+ ENSv2Root: "ENSv2Root",
10007
+ EFPBase: "efpBase",
10008
+ EFPOptimism: "efpOptimism",
10009
+ EFPEthereum: "efpEthereum"
9946
10010
  };
9947
10011
 
9948
10012
  // src/ens-test-env.ts
@@ -10070,6 +10134,61 @@ var ens_test_env_default = {
10070
10134
  startBlock: 0
10071
10135
  }
10072
10136
  }
10137
+ },
10138
+ /**
10139
+ * EFP Datasources
10140
+ *
10141
+ * The Ethereum Follow Protocol contracts, deployed onto the ens-test-env devnet by the EFP devnet
10142
+ * image (attach mode) on top of the ENS deployment. On the `mainnet` namespace EFP spans Base,
10143
+ * Optimism, and Ethereum; the single-chain devnet has only one EFP deployment, so all three EFP
10144
+ * datasources resolve to `ensTestEnvChain` (id 31337) with the same `ListRecords` contract.
10145
+ *
10146
+ * The EFP plugin's Ponder config keys each contract by chain id, so the three datasources collapse
10147
+ * to a single set of contracts on chain 31337 (no double-indexing). This relies on the
10148
+ * `ListRecords` address being IDENTICAL across all three datasources below — if they diverge, the
10149
+ * per-chain-id merge silently keeps only `EFPEthereum`'s.
10150
+ *
10151
+ * @see docker/services/efp-devnet.yml for how these contracts are deployed and addresses captured.
10152
+ */
10153
+ [DatasourceNames.EFPBase]: {
10154
+ chain: ensTestEnvChain,
10155
+ contracts: {
10156
+ ListRegistry: {
10157
+ abi: ListRegistry,
10158
+ address: efpContracts.EFPListRegistry,
10159
+ startBlock: 0
10160
+ },
10161
+ AccountMetadata: {
10162
+ abi: AccountMetadata,
10163
+ address: efpContracts.EFPAccountMetadata,
10164
+ startBlock: 0
10165
+ },
10166
+ ListRecords: {
10167
+ abi: ListRecords,
10168
+ address: efpContracts.EFPListRecords,
10169
+ startBlock: 0
10170
+ }
10171
+ }
10172
+ },
10173
+ [DatasourceNames.EFPOptimism]: {
10174
+ chain: ensTestEnvChain,
10175
+ contracts: {
10176
+ ListRecords: {
10177
+ abi: ListRecords,
10178
+ address: efpContracts.EFPListRecords,
10179
+ startBlock: 0
10180
+ }
10181
+ }
10182
+ },
10183
+ [DatasourceNames.EFPEthereum]: {
10184
+ chain: ensTestEnvChain,
10185
+ contracts: {
10186
+ ListRecords: {
10187
+ abi: ListRecords,
10188
+ address: efpContracts.EFPListRecords,
10189
+ startBlock: 0
10190
+ }
10191
+ }
10073
10192
  }
10074
10193
  };
10075
10194
 
@@ -16901,6 +17020,73 @@ var mainnet_default = {
16901
17020
  startBlock: 17129405
16902
17021
  }
16903
17022
  }
17023
+ },
17024
+ /**
17025
+ * EFP (Ethereum Follow Protocol) Datasource on Base.
17026
+ *
17027
+ * The `ListRegistry` (list NFTs) and `AccountMetadata` contracts are deployed only on Base.
17028
+ * The `ListRecords` contract is also deployed on Base (one of the three "list storage location"
17029
+ * chains a list NFT may point at via `UpdateListStorageLocation`).
17030
+ *
17031
+ * Every address below is cross-checked against the official EFP deployments,
17032
+ * https://docs.efp.app/production/deployments/ (and ethereumfollowprotocol/api-v2).
17033
+ */
17034
+ [DatasourceNames.EFPBase]: {
17035
+ chain: base,
17036
+ contracts: {
17037
+ // EFPListRegistry, Base. (All three Base EFP contracts deployed in block 20197231.)
17038
+ ListRegistry: {
17039
+ abi: ListRegistry,
17040
+ address: "0x0e688f5dca4a0a4729946acbc44c792341714e08",
17041
+ startBlock: 20197231
17042
+ },
17043
+ // EFPAccountMetadata, Base. NOTE: this is the SAME address as EFPListRecords on Ethereum
17044
+ // mainnet (see EFPEthereum below). EFP deploys via CREATE2, so one address can map to a
17045
+ // different contract on each chain; this is not a copy-paste error.
17046
+ AccountMetadata: {
17047
+ abi: AccountMetadata,
17048
+ address: "0x5289fe5dabc021d02fddf23d4a4df96f4e0f17ef",
17049
+ startBlock: 20197231
17050
+ },
17051
+ // EFPListRecords, Base.
17052
+ ListRecords: {
17053
+ abi: ListRecords,
17054
+ address: "0x41aa48ef3c0446b46a5b1cc6337ff3d3716e2a33",
17055
+ startBlock: 20197231
17056
+ }
17057
+ }
17058
+ },
17059
+ /**
17060
+ * EFP `ListRecords` Datasource on Optimism.
17061
+ */
17062
+ [DatasourceNames.EFPOptimism]: {
17063
+ chain: optimism,
17064
+ contracts: {
17065
+ // EFPListRecords, Optimism.
17066
+ ListRecords: {
17067
+ abi: ListRecords,
17068
+ address: "0x4ca00413d850dcfa3516e14d21dae2772f2acb85",
17069
+ startBlock: 125792735
17070
+ }
17071
+ }
17072
+ },
17073
+ /**
17074
+ * EFP `ListRecords` Datasource on Ethereum mainnet.
17075
+ */
17076
+ [DatasourceNames.EFPEthereum]: {
17077
+ chain: mainnet,
17078
+ contracts: {
17079
+ // EFPListRecords, Ethereum mainnet. This shares the 0x5289…0F17EF address with
17080
+ // EFPAccountMetadata on Base (above): EFP deploys via CREATE2, so the same address appears on
17081
+ // multiple chains for different contracts. Confirmed as ListRecords on Ethereum mainnet at
17082
+ // https://docs.efp.app/production/deployments/ (and ethereumfollowprotocol/api-v2); it is NOT
17083
+ // a copy-paste of the Base AccountMetadata address.
17084
+ ListRecords: {
17085
+ abi: ListRecords,
17086
+ address: "0x5289fe5dabc021d02fddf23d4a4df96f4e0f17ef",
17087
+ startBlock: 20820743
17088
+ }
17089
+ }
16904
17090
  }
16905
17091
  };
16906
17092
 
@@ -17255,7 +17441,8 @@ import {
17255
17441
  sepolia as sepolia2
17256
17442
  } from "viem/chains";
17257
17443
  var SEPOLIA_ENSV1_DEPLOYMENT_BLOCK = 3702721;
17258
- var SEPOLIA_ENSV2_DEPLOYMENT_BLOCK = 104e5;
17444
+ var SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK = 104e5;
17445
+ var SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK = 10921916;
17259
17446
  var sepolia_v2_default = {
17260
17447
  /**
17261
17448
  * ENS Root contracts deployed on Sepolia for the ENSv1 + ENSv2 test deployment.
@@ -17272,14 +17459,14 @@ var sepolia_v2_default = {
17272
17459
  abi: Registry2,
17273
17460
  // Registry was redeployed, same abi
17274
17461
  address: zeroAddress,
17275
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17462
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17276
17463
  },
17277
17464
  // NOTE: named ENSRegistry in deployment
17278
17465
  ENSv1Registry: {
17279
17466
  abi: Registry2,
17280
17467
  // Registry was redeployed, same abi
17281
17468
  address: "0xb6fb46e1458915dd828633d91e1df8e4c3f2d4dd",
17282
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17469
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17283
17470
  },
17284
17471
  Resolver: {
17285
17472
  abi: ResolverABI,
@@ -17289,23 +17476,24 @@ var sepolia_v2_default = {
17289
17476
  BaseRegistrar: {
17290
17477
  abi: BaseRegistrar,
17291
17478
  address: "0xa51c9e6efe589407c72984e93b45e35a71a398ec",
17292
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17479
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17293
17480
  },
17294
17481
  // NOTE: named ETHRegistrarController in deployment
17295
17482
  UnwrappedEthRegistrarController: {
17296
17483
  abi: UnwrappedEthRegistrarController,
17297
17484
  address: "0xb5778cf6cc9586d9ce740039c84dfb1802f307bc",
17298
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17485
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17299
17486
  },
17300
17487
  NameWrapper: {
17301
17488
  abi: NameWrapper,
17302
17489
  address: "0x250a6c640297f605b63c6e91c7cd376f04b288da",
17303
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17490
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17304
17491
  },
17492
+ // NOTE: named UpgradableUniversalResolverProxy in deployment
17305
17493
  UniversalResolver: {
17306
17494
  abi: UniversalResolverABI,
17307
- address: "0x651d670ce0d0f1ed0893f39d51fd0dbd4546c9ef",
17308
- startBlock: 10893223
17495
+ address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee",
17496
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17309
17497
  }
17310
17498
  }
17311
17499
  },
@@ -17313,25 +17501,25 @@ var sepolia_v2_default = {
17313
17501
  chain: sepolia2,
17314
17502
  contracts: {
17315
17503
  Resolver: { abi: ResolverABI, startBlock: SEPOLIA_ENSV1_DEPLOYMENT_BLOCK },
17316
- Registry: { abi: Registry, startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK },
17504
+ Registry: { abi: Registry, startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK },
17317
17505
  EnhancedAccessControl: {
17318
17506
  abi: EnhancedAccessControl,
17319
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17507
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17320
17508
  },
17321
17509
  RootRegistry: {
17322
17510
  abi: Registry,
17323
- address: "0x835f0b284e78cd3f358bcf6cba3b53809f09b79e",
17324
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17511
+ address: "0xc960f7217d3643b525ef36bec8adf86953cd9ab8",
17512
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17325
17513
  },
17326
17514
  ETHRegistry: {
17327
17515
  abi: Registry,
17328
- address: "0x64c81210d0e580cfc7746f3fb910bf0e8f6378e1",
17329
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17516
+ address: "0xdedb92913a25abe1f7bcdd85d8a344a43b398b67",
17517
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17330
17518
  },
17331
17519
  ETHRegistrar: {
17332
17520
  abi: ETHRegistrar,
17333
- address: "0xb68e594a47fe057bd31e7a8229ffcfd85b2e28af",
17334
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17521
+ address: "0x8c2e866b439358c41ae05de9cbe8a00bfefaffca",
17522
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17335
17523
  }
17336
17524
  }
17337
17525
  },
@@ -17341,38 +17529,38 @@ var sepolia_v2_default = {
17341
17529
  DefaultReverseRegistrar: {
17342
17530
  abi: StandaloneReverseRegistrar,
17343
17531
  address: "0x26997c9d0f3dcbae3f78c69e621a3926ee30bb98",
17344
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17532
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17345
17533
  },
17346
- // NOTE: named PublicResolver in deployment
17534
+ // NOTE: named PublicResolverV2 in deployment
17347
17535
  DefaultPublicResolver5: {
17348
17536
  abi: ResolverABI,
17349
- address: "0xb441cb480460eb8b2964dcb82b64a883b14abf3e",
17350
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17537
+ address: "0x5239a812ec9a62f46dbb5de8f346c8efe7553a9f",
17538
+ startBlock: SEPOLIA_V2_ENSV2_DEPLOYMENT_BLOCK
17351
17539
  },
17352
17540
  BaseReverseResolver: {
17353
17541
  abi: ResolverABI,
17354
17542
  address: "0xaf3b3f636be80b6709f5bd3a374d6ac0d0a7c7aa",
17355
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17543
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17356
17544
  },
17357
17545
  LineaReverseResolver: {
17358
17546
  abi: ResolverABI,
17359
17547
  address: "0x083da1dbc0f379ccda6ac81a934207c3d8a8a205",
17360
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17548
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17361
17549
  },
17362
17550
  OptimismReverseResolver: {
17363
17551
  abi: ResolverABI,
17364
17552
  address: "0xc9ae189772bd48e01410ab3be933637ee9d3aa5f",
17365
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17553
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17366
17554
  },
17367
17555
  ArbitrumReverseResolver: {
17368
17556
  abi: ResolverABI,
17369
17557
  address: "0x926f94d2adc77c86cb0050892097d49aadd02e8b",
17370
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17558
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17371
17559
  },
17372
17560
  ScrollReverseResolver: {
17373
17561
  abi: ResolverABI,
17374
17562
  address: "0x9fa59673e43f15bdb8722fdaf5c2107574b99062",
17375
- startBlock: SEPOLIA_ENSV2_DEPLOYMENT_BLOCK
17563
+ startBlock: SEPOLIA_V2_ENSV1_DEPLOYMENT_BLOCK
17376
17564
  }
17377
17565
  }
17378
17566
  },