@ensdomains/ensjs 3.0.0-alpha.41 → 3.0.0-alpha.42

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.
Files changed (107) hide show
  1. package/dist/cjs/contracts/getContractAddress.js +4 -4
  2. package/dist/cjs/functions/commitName.js +2 -3
  3. package/dist/cjs/functions/createSubname.js +2 -8
  4. package/dist/cjs/functions/getHistory.js +14 -7
  5. package/dist/cjs/functions/getNames.js +10 -6
  6. package/dist/cjs/functions/getOwner.js +25 -12
  7. package/dist/cjs/functions/getWrapperData.js +3 -4
  8. package/dist/cjs/functions/renewNames.js +13 -20
  9. package/dist/cjs/functions/{burnFuses.js → setFuses.js} +24 -6
  10. package/dist/cjs/functions/wrapName.js +7 -23
  11. package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +6 -55
  12. package/dist/cjs/generated/factories/NameWrapper__factory.js +90 -69
  13. package/dist/cjs/generated/factories/PublicResolver__factory.js +83 -0
  14. package/dist/cjs/generated/factories/UniversalResolver__factory.js +67 -2
  15. package/dist/cjs/index.js +5 -4
  16. package/dist/cjs/utils/consts.js +3 -1
  17. package/dist/cjs/utils/fuses.js +218 -53
  18. package/dist/cjs/utils/normalise.js +2 -2
  19. package/dist/cjs/utils/recordHelpers.js +4 -3
  20. package/dist/cjs/utils/registerHelpers.js +9 -23
  21. package/dist/cjs/utils/subgraph-types.js +16 -0
  22. package/dist/cjs/utils/wrapper.js +2 -2
  23. package/dist/esm/contracts/getContractAddress.mjs +4 -4
  24. package/dist/esm/functions/commitName.mjs +2 -3
  25. package/dist/esm/functions/createSubname.mjs +2 -2
  26. package/dist/esm/functions/getHistory.mjs +14 -7
  27. package/dist/esm/functions/getNames.mjs +10 -6
  28. package/dist/esm/functions/getOwner.mjs +25 -12
  29. package/dist/esm/functions/getWrapperData.mjs +3 -4
  30. package/dist/esm/functions/renewNames.mjs +13 -20
  31. package/dist/esm/functions/setFuses.mjs +30 -0
  32. package/dist/esm/functions/wrapName.mjs +8 -18
  33. package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +6 -55
  34. package/dist/esm/generated/factories/NameWrapper__factory.mjs +90 -69
  35. package/dist/esm/generated/factories/PublicResolver__factory.mjs +83 -0
  36. package/dist/esm/generated/factories/UniversalResolver__factory.mjs +67 -2
  37. package/dist/esm/index.mjs +5 -4
  38. package/dist/esm/utils/consts.mjs +3 -1
  39. package/dist/esm/utils/fuses.mjs +218 -53
  40. package/dist/esm/utils/normalise.mjs +1 -1
  41. package/dist/esm/utils/recordHelpers.mjs +2 -1
  42. package/dist/esm/utils/registerHelpers.mjs +9 -17
  43. package/dist/esm/utils/subgraph-types.mjs +0 -0
  44. package/dist/esm/utils/wrapper.mjs +1 -1
  45. package/dist/types/functions/commitName.d.ts +0 -1
  46. package/dist/types/functions/createSubname.d.ts +2 -2
  47. package/dist/types/functions/getHistory.d.ts +1 -1
  48. package/dist/types/functions/getNames.d.ts +3 -3
  49. package/dist/types/functions/getOwner.d.ts +1 -0
  50. package/dist/types/functions/getWrapperData.d.ts +44 -5
  51. package/dist/types/functions/renewNames.d.ts +4 -5
  52. package/dist/types/functions/setFuses.d.ts +7 -0
  53. package/dist/types/functions/types.d.ts +6 -4
  54. package/dist/types/functions/wrapName.d.ts +3 -3
  55. package/dist/types/generated/ETHRegistrarController.d.ts +13 -36
  56. package/dist/types/generated/NameWrapper.d.ts +97 -52
  57. package/dist/types/generated/PublicResolver.d.ts +50 -1
  58. package/dist/types/generated/UniversalResolver.d.ts +79 -32
  59. package/dist/types/generated/factories/UniversalResolver__factory.d.ts +15 -0
  60. package/dist/types/index.d.ts +51 -9
  61. package/dist/types/utils/consts.d.ts +1 -0
  62. package/dist/types/utils/fuses.d.ts +115 -45
  63. package/dist/types/utils/registerHelpers.d.ts +7 -25
  64. package/dist/types/utils/subgraph-types.d.ts +284 -0
  65. package/package.json +5 -5
  66. package/src/contracts/getContractAddress.ts +4 -4
  67. package/src/functions/commitName.test.ts +0 -3
  68. package/src/functions/commitName.ts +1 -2
  69. package/src/functions/createSubname.ts +4 -5
  70. package/src/functions/getHistory.ts +59 -25
  71. package/src/functions/getNames.test.ts +1 -1
  72. package/src/functions/getNames.ts +26 -13
  73. package/src/functions/getOwner.test.ts +62 -3
  74. package/src/functions/getOwner.ts +31 -11
  75. package/src/functions/getWrapperData.test.ts +11 -45
  76. package/src/functions/getWrapperData.ts +7 -5
  77. package/src/functions/registerName.test.ts +3 -3
  78. package/src/functions/renewNames.ts +17 -23
  79. package/src/functions/setFuses.test.ts +240 -0
  80. package/src/functions/setFuses.ts +44 -0
  81. package/src/functions/types.ts +6 -4
  82. package/src/functions/wrapName.test.ts +8 -7
  83. package/src/functions/wrapName.ts +10 -24
  84. package/src/generated/ETHRegistrarController.ts +12 -79
  85. package/src/generated/NameWrapper.ts +155 -99
  86. package/src/generated/PublicResolver.ts +123 -0
  87. package/src/generated/UniversalResolver.ts +157 -16
  88. package/src/generated/factories/ETHRegistrarController__factory.ts +6 -55
  89. package/src/generated/factories/NameWrapper__factory.ts +90 -69
  90. package/src/generated/factories/PublicResolver__factory.ts +83 -0
  91. package/src/generated/factories/UniversalResolver__factory.ts +67 -2
  92. package/src/index.ts +11 -14
  93. package/src/utils/consts.ts +1 -0
  94. package/src/utils/fuses.ts +299 -102
  95. package/src/utils/normalise.ts +1 -1
  96. package/src/utils/recordHelpers.ts +2 -1
  97. package/src/utils/registerHelpers.ts +13 -41
  98. package/src/utils/subgraph-types.ts +312 -0
  99. package/src/utils/wrapper.ts +1 -1
  100. package/dist/cjs/utils/generateFuseInput.js +0 -40
  101. package/dist/esm/functions/burnFuses.mjs +0 -12
  102. package/dist/esm/utils/generateFuseInput.mjs +0 -15
  103. package/dist/types/functions/burnFuses.d.ts +0 -3
  104. package/dist/types/utils/generateFuseInput.d.ts +0 -3
  105. package/src/functions/burnFuses.test.ts +0 -148
  106. package/src/functions/burnFuses.ts +0 -16
  107. package/src/utils/generateFuseInput.ts +0 -13
@@ -0,0 +1,284 @@
1
+ export declare type Maybe<T> = T | null;
2
+ export declare type Exact<T extends {
3
+ [key: string]: unknown;
4
+ }> = {
5
+ [K in keyof T]: T[K];
6
+ };
7
+ export declare type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
8
+ [SubKey in K]?: Maybe<T[SubKey]>;
9
+ };
10
+ export declare type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
11
+ [SubKey in K]: Maybe<T[SubKey]>;
12
+ };
13
+ /** All built-in and custom scalars, mapped to their actual values */
14
+ export declare type Scalars = {
15
+ ID: string;
16
+ String: string;
17
+ Boolean: boolean;
18
+ Int: number;
19
+ Float: number;
20
+ Bytes: string;
21
+ BigInt: string;
22
+ };
23
+ export declare type Domain = {
24
+ __typename?: 'Domain';
25
+ id: Scalars['ID'];
26
+ name?: Maybe<Scalars['String']>;
27
+ labelName?: Maybe<Scalars['String']>;
28
+ labelhash?: Maybe<Scalars['Bytes']>;
29
+ parent?: Maybe<Domain>;
30
+ subdomains: Array<Domain>;
31
+ subdomainCount: Scalars['Int'];
32
+ resolvedAddress?: Maybe<Account>;
33
+ owner: Account;
34
+ resolver?: Maybe<Resolver>;
35
+ ttl?: Maybe<Scalars['BigInt']>;
36
+ isMigrated: Scalars['Boolean'];
37
+ createdAt: Scalars['BigInt'];
38
+ events: Array<DomainEvent>;
39
+ registration?: Maybe<Registration>;
40
+ wrappedDomain?: Maybe<WrappedDomain>;
41
+ };
42
+ export declare type DomainEvent = {
43
+ id: Scalars['ID'];
44
+ domain: Domain;
45
+ blockNumber: Scalars['Int'];
46
+ transactionID: Scalars['Bytes'];
47
+ };
48
+ export declare type Transfer = DomainEvent & {
49
+ __typename?: 'Transfer';
50
+ id: Scalars['ID'];
51
+ domain: Domain;
52
+ blockNumber: Scalars['Int'];
53
+ transactionID: Scalars['Bytes'];
54
+ owner: Account;
55
+ };
56
+ export declare type NewOwner = DomainEvent & {
57
+ __typename?: 'NewOwner';
58
+ id: Scalars['ID'];
59
+ parentDomain: Domain;
60
+ domain: Domain;
61
+ blockNumber: Scalars['Int'];
62
+ transactionID: Scalars['Bytes'];
63
+ owner: Account;
64
+ };
65
+ export declare type NewResolver = DomainEvent & {
66
+ __typename?: 'NewResolver';
67
+ id: Scalars['ID'];
68
+ domain: Domain;
69
+ blockNumber: Scalars['Int'];
70
+ transactionID: Scalars['Bytes'];
71
+ resolver: Resolver;
72
+ };
73
+ export declare type NewTtl = DomainEvent & {
74
+ __typename?: 'NewTTL';
75
+ id: Scalars['ID'];
76
+ domain: Domain;
77
+ blockNumber: Scalars['Int'];
78
+ transactionID: Scalars['Bytes'];
79
+ ttl: Scalars['BigInt'];
80
+ };
81
+ export declare type WrappedTransfer = DomainEvent & {
82
+ __typename?: 'WrappedTransfer';
83
+ id: Scalars['ID'];
84
+ domain: Domain;
85
+ blockNumber: Scalars['Int'];
86
+ transactionID: Scalars['Bytes'];
87
+ owner: Account;
88
+ };
89
+ export declare type NameWrapped = DomainEvent & {
90
+ __typename?: 'NameWrapped';
91
+ id: Scalars['ID'];
92
+ domain: Domain;
93
+ blockNumber: Scalars['Int'];
94
+ transactionID: Scalars['Bytes'];
95
+ name: Scalars['String'];
96
+ fuses: Scalars['Int'];
97
+ owner: Account;
98
+ expiryDate: Scalars['BigInt'];
99
+ };
100
+ export declare type NameUnwrapped = DomainEvent & {
101
+ __typename?: 'NameUnwrapped';
102
+ id: Scalars['ID'];
103
+ domain: Domain;
104
+ blockNumber: Scalars['Int'];
105
+ transactionID: Scalars['Bytes'];
106
+ owner: Account;
107
+ };
108
+ export declare type FusesSet = DomainEvent & {
109
+ __typename?: 'FusesSet';
110
+ id: Scalars['ID'];
111
+ domain: Domain;
112
+ blockNumber: Scalars['Int'];
113
+ transactionID: Scalars['Bytes'];
114
+ fuses: Scalars['Int'];
115
+ };
116
+ export declare type ExpiryExtended = DomainEvent & {
117
+ __typename?: 'ExpiryExtended';
118
+ id: Scalars['ID'];
119
+ domain: Domain;
120
+ blockNumber: Scalars['Int'];
121
+ transactionID: Scalars['Bytes'];
122
+ expiryDate: Scalars['BigInt'];
123
+ };
124
+ export declare type Registration = {
125
+ __typename?: 'Registration';
126
+ id: Scalars['ID'];
127
+ domain: Domain;
128
+ registrationDate: Scalars['BigInt'];
129
+ expiryDate: Scalars['BigInt'];
130
+ cost?: Maybe<Scalars['BigInt']>;
131
+ registrant: Account;
132
+ labelName?: Maybe<Scalars['String']>;
133
+ events: Array<RegistrationEvent>;
134
+ };
135
+ export declare type RegistrationEvent = {
136
+ id: Scalars['ID'];
137
+ registration: Registration;
138
+ blockNumber: Scalars['Int'];
139
+ transactionID: Scalars['Bytes'];
140
+ };
141
+ export declare type NameRegistered = RegistrationEvent & {
142
+ __typename?: 'NameRegistered';
143
+ id: Scalars['ID'];
144
+ registration: Registration;
145
+ blockNumber: Scalars['Int'];
146
+ transactionID: Scalars['Bytes'];
147
+ registrant: Account;
148
+ expiryDate: Scalars['BigInt'];
149
+ };
150
+ export declare type NameRenewed = RegistrationEvent & {
151
+ __typename?: 'NameRenewed';
152
+ id: Scalars['ID'];
153
+ registration: Registration;
154
+ blockNumber: Scalars['Int'];
155
+ transactionID: Scalars['Bytes'];
156
+ expiryDate: Scalars['BigInt'];
157
+ };
158
+ export declare type NameTransferred = RegistrationEvent & {
159
+ __typename?: 'NameTransferred';
160
+ id: Scalars['ID'];
161
+ registration: Registration;
162
+ blockNumber: Scalars['Int'];
163
+ transactionID: Scalars['Bytes'];
164
+ newOwner: Account;
165
+ };
166
+ export declare type WrappedDomain = {
167
+ __typename?: 'WrappedDomain';
168
+ id: Scalars['ID'];
169
+ domain: Domain;
170
+ expiryDate: Scalars['BigInt'];
171
+ fuses: Scalars['Int'];
172
+ owner: Account;
173
+ name?: Maybe<Scalars['String']>;
174
+ };
175
+ export declare type Account = {
176
+ __typename?: 'Account';
177
+ id: Scalars['ID'];
178
+ domains: Array<Domain>;
179
+ wrappedDomains?: Maybe<Array<WrappedDomain>>;
180
+ registrations?: Maybe<Array<Registration>>;
181
+ };
182
+ export declare type Resolver = {
183
+ __typename?: 'Resolver';
184
+ id: Scalars['ID'];
185
+ domain?: Maybe<Domain>;
186
+ address: Scalars['Bytes'];
187
+ addr?: Maybe<Account>;
188
+ contentHash?: Maybe<Scalars['Bytes']>;
189
+ texts?: Maybe<Array<Scalars['String']>>;
190
+ coinTypes?: Maybe<Array<Scalars['BigInt']>>;
191
+ events: Array<ResolverEvent>;
192
+ };
193
+ export declare type ResolverEvent = {
194
+ id: Scalars['ID'];
195
+ resolver: Resolver;
196
+ blockNumber: Scalars['Int'];
197
+ transactionID: Scalars['Bytes'];
198
+ };
199
+ export declare type AddrChanged = ResolverEvent & {
200
+ __typename?: 'AddrChanged';
201
+ id: Scalars['ID'];
202
+ resolver: Resolver;
203
+ blockNumber: Scalars['Int'];
204
+ transactionID: Scalars['Bytes'];
205
+ addr: Account;
206
+ };
207
+ export declare type MulticoinAddrChanged = ResolverEvent & {
208
+ __typename?: 'MulticoinAddrChanged';
209
+ id: Scalars['ID'];
210
+ resolver: Resolver;
211
+ blockNumber: Scalars['Int'];
212
+ transactionID: Scalars['Bytes'];
213
+ coinType: Scalars['BigInt'];
214
+ addr: Scalars['Bytes'];
215
+ };
216
+ export declare type NameChanged = ResolverEvent & {
217
+ __typename?: 'NameChanged';
218
+ id: Scalars['ID'];
219
+ resolver: Resolver;
220
+ blockNumber: Scalars['Int'];
221
+ transactionID: Scalars['Bytes'];
222
+ name: Scalars['String'];
223
+ };
224
+ export declare type AbiChanged = ResolverEvent & {
225
+ __typename?: 'AbiChanged';
226
+ id: Scalars['ID'];
227
+ resolver: Resolver;
228
+ blockNumber: Scalars['Int'];
229
+ transactionID: Scalars['Bytes'];
230
+ contentType: Scalars['BigInt'];
231
+ };
232
+ export declare type PubkeyChanged = ResolverEvent & {
233
+ __typename?: 'PubkeyChanged';
234
+ id: Scalars['ID'];
235
+ resolver: Resolver;
236
+ blockNumber: Scalars['Int'];
237
+ transactionID: Scalars['Bytes'];
238
+ x: Scalars['Bytes'];
239
+ y: Scalars['Bytes'];
240
+ };
241
+ export declare type TextChanged = ResolverEvent & {
242
+ __typename?: 'TextChanged';
243
+ id: Scalars['ID'];
244
+ resolver: Resolver;
245
+ blockNumber: Scalars['Int'];
246
+ transactionID: Scalars['Bytes'];
247
+ key: Scalars['String'];
248
+ value?: Maybe<Scalars['String']>;
249
+ };
250
+ export declare type ContenthashChanged = ResolverEvent & {
251
+ __typename?: 'ContenthashChanged';
252
+ id: Scalars['ID'];
253
+ resolver: Resolver;
254
+ blockNumber: Scalars['Int'];
255
+ transactionID: Scalars['Bytes'];
256
+ hash: Scalars['Bytes'];
257
+ };
258
+ export declare type InterfaceChanged = ResolverEvent & {
259
+ __typename?: 'InterfaceChanged';
260
+ id: Scalars['ID'];
261
+ resolver: Resolver;
262
+ blockNumber: Scalars['Int'];
263
+ transactionID: Scalars['Bytes'];
264
+ interfaceID: Scalars['Bytes'];
265
+ implementer: Scalars['Bytes'];
266
+ };
267
+ export declare type AuthorisationChanged = ResolverEvent & {
268
+ __typename?: 'AuthorisationChanged';
269
+ id: Scalars['ID'];
270
+ resolver: Resolver;
271
+ blockNumber: Scalars['Int'];
272
+ transactionID: Scalars['Bytes'];
273
+ owner: Scalars['Bytes'];
274
+ target: Scalars['Bytes'];
275
+ isAuthorized: Scalars['Boolean'];
276
+ };
277
+ export declare type VersionChanged = ResolverEvent & {
278
+ __typename?: 'VersionChanged';
279
+ id: Scalars['ID'];
280
+ resolver: Resolver;
281
+ blockNumber: Scalars['Int'];
282
+ transactionID: Scalars['Bytes'];
283
+ version: Scalars['BigInt'];
284
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ensdomains/ensjs",
3
- "version": "3.0.0-alpha.41",
3
+ "version": "3.0.0-alpha.42",
4
4
  "description": "ENS javascript library for contract interaction",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.mjs",
@@ -68,10 +68,9 @@
68
68
  "traverse": "^0.6.6"
69
69
  },
70
70
  "devDependencies": {
71
- "ethers": "^5.7.2",
72
71
  "@ensdomains/buffer": "^0.0.13",
73
- "@ensdomains/ens-contracts": "^0.0.15",
74
- "@ensdomains/ens-test-env": "0.3.6",
72
+ "@ensdomains/ens-contracts": "^0.0.16",
73
+ "@ensdomains/ens-test-env": "0.3.7",
75
74
  "@ethersproject/abi": "^5.6.4",
76
75
  "@ethersproject/abstract-provider": "^5.7.0",
77
76
  "@ethersproject/abstract-signer": "^5.7.0",
@@ -98,6 +97,7 @@
98
97
  "dotenv": "^16.0.0",
99
98
  "esbuild": "^0.15.6",
100
99
  "eslint-plugin-jest": "^27.0.1",
100
+ "ethers": "^5.7.2",
101
101
  "ganache": "^7.4.0",
102
102
  "glob": "^8.0.3",
103
103
  "hardhat": "2.10.2",
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "scripts": {
135
135
  "tenv": "ens-test-env -a",
136
- "denv": "pnpm tenv start -ns -nb --extra-time 11368000",
136
+ "denv": "pnpm tenv start -ns -nb --extra-time 11368000 --verbosity 1",
137
137
  "generate-types": "ts-node scripts/runTypechain.ts",
138
138
  "generate-abis": "hardhat export-abi",
139
139
  "start": "ts-node --files src/index.test.ts",
@@ -20,19 +20,19 @@ const addresses: Record<
20
20
  '1': '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5',
21
21
  '3': '0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8',
22
22
  '4': '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5',
23
- '5': '0x9C51161bA2FB02Cc0a403332B607117685f34831',
23
+ '5': '0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70',
24
24
  },
25
25
  Multicall: '0xcA11bde05977b3631167028862bE2a173976CA11',
26
26
  NameWrapper: {
27
27
  '1': '0x0000000000000000000000000000000000000000',
28
28
  '3': '0xF82155e2a43Be0871821E9654Fc8Ae894FB8307C',
29
29
  '4': '0x0000000000000000000000000000000000000000',
30
- '5': '0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8',
30
+ '5': '0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39',
31
31
  },
32
32
  PublicResolver: {
33
33
  '1': '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41',
34
34
  '3': '0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837',
35
- '5': '0xE264d5bb84bA3b8061ADC38D3D76e6674aB91852',
35
+ '5': '0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347E',
36
36
  },
37
37
  ENSRegistry: {
38
38
  '1': '0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e',
@@ -43,7 +43,7 @@ const addresses: Record<
43
43
  ReverseRegistrar: {
44
44
  '1': '0x084b1c3C81545d370f3634392De611CaaBFf8148',
45
45
  '3': '0x806246b52f8cB61655d3038c58D2f63Aa55d4edE',
46
- '5': '0xD5610A08E370051a01fdfe4bB3ddf5270af1aA48',
46
+ '5': '0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0',
47
47
  },
48
48
  UniversalResolver: {
49
49
  '1': '0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376',
@@ -31,7 +31,6 @@ describe('commitName', () => {
31
31
  expect(popTx).toBeTruthy()
32
32
  expect(customData).toHaveProperty('secret')
33
33
  expect(customData).toHaveProperty('commitment')
34
- expect(customData).toHaveProperty('wrapperExpiry')
35
34
 
36
35
  const tx = await provider.getSigner().sendTransaction(popTx)
37
36
  await tx.wait()
@@ -47,11 +46,9 @@ describe('commitName', () => {
47
46
  owner: accounts[1],
48
47
  addressOrIndex: accounts[1],
49
48
  secret,
50
- wrapperExpiry: 100000,
51
49
  })
52
50
  await tx.wait()
53
51
  expect(tx.customData).toBeTruthy()
54
- expect(tx.customData!.wrapperExpiry).toBe(100000)
55
52
  expect(tx.customData!.secret).toBe(secret)
56
53
 
57
54
  const controller = await ensInstance.contracts!.getEthRegistrarController()!
@@ -22,7 +22,7 @@ export default async function (
22
22
  undefined,
23
23
  resolverAddress,
24
24
  )
25
- const { secret, commitment, wrapperExpiry } = makeCommitment({
25
+ const { secret, commitment } = makeCommitment({
26
26
  name,
27
27
  resolver,
28
28
  ...params,
@@ -33,7 +33,6 @@ export default async function (
33
33
  customData: {
34
34
  secret,
35
35
  commitment,
36
- wrapperExpiry,
37
36
  },
38
37
  }
39
38
  }
@@ -1,8 +1,7 @@
1
1
  import { BigNumber } from '@ethersproject/bignumber/lib/bignumber'
2
2
  import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity'
3
3
  import { ENSArgs } from '..'
4
- import { FuseOptions } from '../utils/fuses'
5
- import generateFuseInput from '../utils/generateFuseInput'
4
+ import { CombinedFuseInput, encodeFuses } from '../utils/fuses'
6
5
  import { namehash } from '../utils/normalise'
7
6
  import { Expiry, makeExpiry, wrappedLabelLengthCheck } from '../utils/wrapper'
8
7
 
@@ -14,7 +13,7 @@ type BaseArgs = {
14
13
 
15
14
  type NameWrapperArgs = {
16
15
  contract: 'nameWrapper'
17
- fuses?: FuseOptions
16
+ fuses?: CombinedFuseInput
18
17
  expiry?: Expiry
19
18
  } & BaseArgs
20
19
 
@@ -70,8 +69,8 @@ export default async function (
70
69
 
71
70
  const generatedFuses =
72
71
  'fuses' in wrapperArgs && wrapperArgs.fuses
73
- ? generateFuseInput(wrapperArgs.fuses)
74
- : '0'
72
+ ? encodeFuses(wrapperArgs.fuses)
73
+ : 0
75
74
 
76
75
  return nameWrapper.populateTransaction.setSubnodeRecord(
77
76
  parentNodehash,
@@ -4,6 +4,30 @@ import { ENSArgs } from '..'
4
4
  import { decodeContenthash } from '../utils/contentHash'
5
5
  import { labelhash } from '../utils/labels'
6
6
  import { namehash } from '../utils/normalise'
7
+ import {
8
+ AbiChanged,
9
+ AddrChanged,
10
+ AuthorisationChanged,
11
+ ContenthashChanged,
12
+ ExpiryExtended,
13
+ FusesSet,
14
+ InterfaceChanged,
15
+ MulticoinAddrChanged,
16
+ NameChanged,
17
+ NameRegistered,
18
+ NameRenewed,
19
+ NameTransferred,
20
+ NameUnwrapped,
21
+ NameWrapped,
22
+ NewOwner,
23
+ NewResolver,
24
+ NewTtl,
25
+ PubkeyChanged,
26
+ TextChanged,
27
+ Transfer,
28
+ VersionChanged,
29
+ WrappedTransfer,
30
+ } from '../utils/subgraph-types'
7
31
 
8
32
  type DomainEvent =
9
33
  | 'NewOwner'
@@ -14,6 +38,7 @@ type DomainEvent =
14
38
  | 'NameWrapped'
15
39
  | 'NameUnwrapped'
16
40
  | 'FusesSet'
41
+ | 'ExpiryExtended'
17
42
  type RegistrationEvent = 'NameRegistered' | 'NameRenewed' | 'NameTransferred'
18
43
  type ResolverEvent =
19
44
  | 'AddrChanged'
@@ -38,30 +63,35 @@ const eventFormat: {
38
63
  [key in EventTypes]: { [n in EventFormat[key]]: (args: any) => object }
39
64
  } = {
40
65
  Domain: {
41
- NewOwner: (args: any) => ({ owner: args.owner.id }),
42
- NewResolver: (args: any) => ({ resolver: args.resolver.id.split('-')[0] }),
43
- Transfer: (args: any) => ({ owner: args.owner.id }),
44
- NewTTL: (args: any) => ({ ttl: args.ttl }),
45
- WrappedTransfer: (args: any) => ({ owner: args.owner.id }),
46
- NameWrapped: (args: any) => ({
66
+ NewOwner: (args: NewOwner) => ({ owner: args.owner.id }),
67
+ NewResolver: (args: NewResolver) => ({
68
+ resolver: args.resolver.id.split('-')[0],
69
+ }),
70
+ Transfer: (args: Transfer) => ({ owner: args.owner.id }),
71
+ NewTTL: (args: NewTtl) => ({ ttl: args.ttl }),
72
+ WrappedTransfer: (args: WrappedTransfer) => ({ owner: args.owner.id }),
73
+ NameWrapped: (args: NameWrapped) => ({
47
74
  fuses: args.fuses,
48
75
  owner: args.owner.id,
49
- expiry: args.expiry,
76
+ expiryDate: args.expiryDate,
50
77
  }),
51
- NameUnwrapped: (args: any) => ({ owner: args.owner.id }),
52
- FusesSet: (args: any) => ({ fuses: args.fuses, expiry: args.expiry }),
78
+ NameUnwrapped: (args: NameUnwrapped) => ({ owner: args.owner.id }),
79
+ FusesSet: (args: FusesSet) => ({ fuses: args.fuses }),
80
+ ExpiryExtended: (args: ExpiryExtended) => ({ expiryDate: args.expiryDate }),
53
81
  },
54
82
  Registration: {
55
- NameRegistered: (args: any) => ({
83
+ NameRegistered: (args: NameRegistered) => ({
56
84
  registrant: args.registrant.id,
57
85
  expiryDate: args.expiryDate,
58
86
  }),
59
- NameRenewed: (args: any) => ({ expiryDate: args.expiryDate }),
60
- NameTransferred: (args: any) => ({ owner: args.newOwner.id }),
87
+ NameRenewed: (args: NameRenewed) => ({ expiryDate: args.expiryDate }),
88
+ NameTransferred: (args: NameTransferred) => ({ owner: args.newOwner.id }),
61
89
  },
62
90
  Resolver: {
63
- AddrChanged: (args: any) => ({ addr: args.addr.id }),
64
- MulticoinAddrChanged: (args: any) => {
91
+ AddrChanged: (args: AddrChanged) => ({ addr: args.addr.id }),
92
+ MulticoinAddrChanged: (
93
+ args: Omit<MulticoinAddrChanged, 'addr'> & { multiaddr: string },
94
+ ) => {
65
95
  const format = formatsByCoinType[parseInt(args.coinType)]
66
96
  if (!format) {
67
97
  return {
@@ -82,21 +112,23 @@ const eventFormat: {
82
112
  addr: format.encoder(Buffer.from(args.multiaddr.slice(2), 'hex')),
83
113
  }
84
114
  },
85
- NameChanged: (args: any) => ({ name: args.name }),
86
- AbiChanged: (args: any) => ({ contentType: args.contentType }),
87
- PubkeyChanged: (args: any) => ({ x: args.x, y: args.y }),
88
- TextChanged: (args: any) => ({ key: args.key, value: args.value }),
89
- ContenthashChanged: (args: any) => ({ hash: decodeContenthash(args.hash) }),
90
- InterfaceChanged: (args: any) => ({
91
- interfaceId: args.interfaceId,
115
+ NameChanged: (args: NameChanged) => ({ name: args.name }),
116
+ AbiChanged: (args: AbiChanged) => ({ contentType: args.contentType }),
117
+ PubkeyChanged: (args: PubkeyChanged) => ({ x: args.x, y: args.y }),
118
+ TextChanged: (args: TextChanged) => ({ key: args.key, value: args.value }),
119
+ ContenthashChanged: (args: ContenthashChanged) => ({
120
+ hash: decodeContenthash(args.hash),
121
+ }),
122
+ InterfaceChanged: (args: InterfaceChanged) => ({
123
+ interfaceId: args.interfaceID,
92
124
  implementer: args.implementer,
93
125
  }),
94
- AuthorisationChanged: (args: any) => ({
126
+ AuthorisationChanged: (args: AuthorisationChanged) => ({
95
127
  owner: args.owner,
96
128
  target: args.target,
97
129
  isAuthorized: args.isAuthorized,
98
130
  }),
99
- VersionChanged: (args: any) => ({ version: args.version }),
131
+ VersionChanged: (args: VersionChanged) => ({ version: args.version }),
100
132
  },
101
133
  }
102
134
 
@@ -154,7 +186,7 @@ export async function getHistory(
154
186
  }
155
187
  ...on NameWrapped {
156
188
  fuses
157
- expiry
189
+ expiryDate
158
190
  owner {
159
191
  id
160
192
  }
@@ -166,7 +198,9 @@ export async function getHistory(
166
198
  }
167
199
  ...on FusesSet {
168
200
  fuses
169
- expiry
201
+ }
202
+ ...on ExpiryExtended {
203
+ expiryDate
170
204
  }
171
205
  }
172
206
  registration {
@@ -172,7 +172,7 @@ describe('getNames', () => {
172
172
  type: 'wrappedOwner',
173
173
  page: 0,
174
174
  })
175
- expect(pageOne).toHaveLength(1)
175
+ expect(pageOne).toHaveLength(2)
176
176
  })
177
177
  describe('orderBy', () => {
178
178
  describe('registrations', () => {
@@ -1,7 +1,8 @@
1
1
  import { ENSArgs } from '..'
2
2
  import { truncateFormat } from '../utils/format'
3
- import { CurrentFuses, decodeFuses } from '../utils/fuses'
3
+ import { AllCurrentFuses, decodeFuses } from '../utils/fuses'
4
4
  import { decryptName } from '../utils/labels'
5
+ import { Domain, Registration, WrappedDomain } from '../utils/subgraph-types'
5
6
 
6
7
  export type Name = {
7
8
  id: string
@@ -16,7 +17,7 @@ export type Name = {
16
17
  createdAt?: Date
17
18
  registrationDate?: Date
18
19
  expiryDate?: Date
19
- fuses?: CurrentFuses
20
+ fuses?: AllCurrentFuses
20
21
  registration?: {
21
22
  expiryDate: Date
22
23
  registrationDate: Date
@@ -44,7 +45,7 @@ type OwnerParams = {
44
45
 
45
46
  type WrappedOwnerParams = {
46
47
  type: 'wrappedOwner'
47
- orderBy?: 'expiryDate' | 'labelName'
48
+ orderBy?: 'expiryDate' | 'name'
48
49
  }
49
50
 
50
51
  type AllParams = {
@@ -57,23 +58,35 @@ type AllParams = {
57
58
  type Params = BaseParams &
58
59
  (RegistrantParams | OwnerParams | WrappedOwnerParams | AllParams)
59
60
 
60
- const mapDomain = (domain: any) => {
61
- const decrypted = decryptName(domain.name)
61
+ const mapDomain = ({ name, ...domain }: Domain) => {
62
+ const decrypted = name ? decryptName(name) : undefined
62
63
  return {
63
64
  ...domain,
64
65
  name: decrypted,
65
- truncatedName: truncateFormat(decrypted),
66
+ truncatedName: decrypted ? truncateFormat(decrypted) : undefined,
66
67
  createdAt: new Date(parseInt(domain.createdAt) * 1000),
67
68
  type: 'domain',
68
69
  }
69
70
  }
70
71
 
71
- const mapWrappedDomain = (wrappedDomain: any) => {
72
- const domain = mapDomain(wrappedDomain.domain)
72
+ const mapWrappedDomain = (wrappedDomain: WrappedDomain) => {
73
+ const domain = mapDomain(wrappedDomain.domain) as Omit<
74
+ ReturnType<typeof mapDomain>,
75
+ 'registration'
76
+ > & {
77
+ registration?: {
78
+ expiryDate: string | Date
79
+ registrationDate: string | Date
80
+ }
81
+ }
73
82
  if (domain.registration) {
74
83
  domain.registration = {
75
- expiryDate: new Date(parseInt(domain.registration.expiryDate) * 1000),
76
- registrationDate: new Date(domain.registration.registrationDate * 1000),
84
+ expiryDate: new Date(
85
+ parseInt(domain.registration.expiryDate as string) * 1000,
86
+ ),
87
+ registrationDate: new Date(
88
+ parseInt(domain.registration.registrationDate as string) * 1000,
89
+ ),
77
90
  }
78
91
  }
79
92
  return {
@@ -84,8 +97,8 @@ const mapWrappedDomain = (wrappedDomain: any) => {
84
97
  }
85
98
  }
86
99
 
87
- const mapRegistration = (registration: any) => {
88
- const decrypted = decryptName(registration.domain.name)
100
+ const mapRegistration = (registration: Registration) => {
101
+ const decrypted = decryptName(registration.domain.name!)
89
102
  return {
90
103
  expiryDate: new Date(parseInt(registration.expiryDate) * 1000),
91
104
  registrationDate: new Date(parseInt(registration.registrationDate) * 1000),
@@ -275,7 +288,7 @@ const getNames = async (
275
288
  id: address,
276
289
  first: pageSize,
277
290
  skip: (page || 0) * pageSize,
278
- orderBy,
291
+ orderBy: orderBy === 'labelName' ? 'name' : orderBy,
279
292
  orderDirection,
280
293
  }
281
294
  }