git.delta.rocks / unique-network / refs/commits / 46330dd65bb1

difftreelog

CORE-386 Fix after rebase

Trubnikov Sergey2022-06-09parent: #ebbe668.patch.diff
in: master

9 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
201 Ok(())201 Ok(())
202 }202 }
203203
204 fn remove_admin(&self, caller: caller, admin: address) -> Result<void> {204 fn remove_collection_admin(&self, caller: caller, admin: address) -> Result<void> {
205 let caller = T::CrossAccountId::from_eth(caller);205 let caller = T::CrossAccountId::from_eth(caller);
206 let admin = T::CrossAccountId::from_eth(admin);206 let admin = T::CrossAccountId::from_eth(admin);
207 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;207 <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
modifiedpallets/common/src/lib.rsdiffbeforeafterboth

no syntactic changes

modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
51 event MintingFinished();51 event MintingFinished();
52}52}
53
54// Selector: 2da6e59e
55contract Collection is Dummy, ERC165 {
56 // Selector: setCollectionProperty(string,bytes) 2f073f66
57 function setCollectionProperty(string memory key, bytes memory value)
58 public
59 {
60 require(false, stub_error);
61 key;
62 value;
63 dummy = 0;
64 }
65
66 // Selector: deleteCollectionProperty(string) 7b7debce
67 function deleteCollectionProperty(string memory key) public {
68 require(false, stub_error);
69 key;
70 dummy = 0;
71 }
72
73 // Throws error if key not found
74 //
75 // Selector: collectionProperty(string) cf24fd6d
76 function collectionProperty(string memory key)
77 public
78 view
79 returns (bytes memory)
80 {
81 require(false, stub_error);
82 key;
83 dummy;
84 return hex"";
85 }
86
87 // Selector: setCollectionSponsor(address) 7623402e
88 function setCollectionSponsor(address sponsor) public {
89 require(false, stub_error);
90 sponsor;
91 dummy = 0;
92 }
93
94 // Selector: confirmCollectionSponsorship() 3c50e97a
95 function confirmCollectionSponsorship() public {
96 require(false, stub_error);
97 dummy = 0;
98 }
99
100 // Selector: setCollectionLimit(string,uint32) 6a3841db
101 function setCollectionLimit(string memory limit, uint32 value) public {
102 require(false, stub_error);
103 limit;
104 value;
105 dummy = 0;
106 }
107
108 // Selector: setCollectionLimit(string,bool) 993b7fba
109 function setCollectionLimit(string memory limit, bool value) public {
110 require(false, stub_error);
111 limit;
112 value;
113 dummy = 0;
114 }
115
116 // Selector: contractAddress() f6b4dfb4
117 function contractAddress() public view returns (address) {
118 require(false, stub_error);
119 dummy;
120 return 0x0000000000000000000000000000000000000000;
121 }
122
123 // Selector: addCollectionAdminSubstrate(uint256) 5730062b
124 function addCollectionAdminSubstrate(uint256 newAdmin) public view {
125 require(false, stub_error);
126 newAdmin;
127 dummy;
128 }
129
130 // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
131 function removeCollectionAdminSubstrate(uint256 newAdmin) public view {
132 require(false, stub_error);
133 newAdmin;
134 dummy;
135 }
136
137 // Selector: addCollectionAdmin(address) 92e462c7
138 function addCollectionAdmin(address newAdmin) public view {
139 require(false, stub_error);
140 newAdmin;
141 dummy;
142 }
143
144 // Selector: removeAdmin(address) 1785f53c
145 function removeAdmin(address admin) public view {
146 require(false, stub_error);
147 admin;
148 dummy;
149 }
150
151 // Selector: setNesting(bool) e8fc50dd
152 function setNesting(bool enable) public {
153 require(false, stub_error);
154 enable;
155 dummy = 0;
156 }
157
158 // Selector: setNesting(bool,address[]) 7df12a9a
159 function setNesting(bool enable, address[] memory collections) public {
160 require(false, stub_error);
161 enable;
162 collections;
163 dummy = 0;
164 }
165
166 // Selector: setCollectionAccess(uint8) 41835d4c
167 function setCollectionAccess(uint8 mode) public {
168 require(false, stub_error);
169 mode;
170 dummy = 0;
171 }
172
173 // Selector: addToCollectionAllowList(address) 67844fe6
174 function addToCollectionAllowList(address user) public view {
175 require(false, stub_error);
176 user;
177 dummy;
178 }
179
180 // Selector: removeFromCollectionAllowList(address) 85c51acb
181 function removeFromCollectionAllowList(address user) public view {
182 require(false, stub_error);
183 user;
184 dummy;
185 }
186
187 // Selector: setMintMode(bool) 5dea9bd5
188 function setMintMode(bool mode) public {
189 require(false, stub_error);
190 mode;
191 dummy = 0;
192 }
193}
19453
195// Selector: 4136937754// Selector: 41369377
196contract TokenProperties is Dummy, ERC165 {55contract TokenProperties is Dummy, ERC165 {
471 }330 }
472}331}
332
333// Selector: c0de6be0
334contract Collection is Dummy, ERC165 {
335 // Selector: setCollectionProperty(string,bytes) 2f073f66
336 function setCollectionProperty(string memory key, bytes memory value)
337 public
338 {
339 require(false, stub_error);
340 key;
341 value;
342 dummy = 0;
343 }
344
345 // Selector: deleteCollectionProperty(string) 7b7debce
346 function deleteCollectionProperty(string memory key) public {
347 require(false, stub_error);
348 key;
349 dummy = 0;
350 }
351
352 // Throws error if key not found
353 //
354 // Selector: collectionProperty(string) cf24fd6d
355 function collectionProperty(string memory key)
356 public
357 view
358 returns (bytes memory)
359 {
360 require(false, stub_error);
361 key;
362 dummy;
363 return hex"";
364 }
365
366 // Selector: setCollectionSponsor(address) 7623402e
367 function setCollectionSponsor(address sponsor) public {
368 require(false, stub_error);
369 sponsor;
370 dummy = 0;
371 }
372
373 // Selector: confirmCollectionSponsorship() 3c50e97a
374 function confirmCollectionSponsorship() public {
375 require(false, stub_error);
376 dummy = 0;
377 }
378
379 // Selector: setCollectionLimit(string,uint32) 6a3841db
380 function setCollectionLimit(string memory limit, uint32 value) public {
381 require(false, stub_error);
382 limit;
383 value;
384 dummy = 0;
385 }
386
387 // Selector: setCollectionLimit(string,bool) 993b7fba
388 function setCollectionLimit(string memory limit, bool value) public {
389 require(false, stub_error);
390 limit;
391 value;
392 dummy = 0;
393 }
394
395 // Selector: contractAddress() f6b4dfb4
396 function contractAddress() public view returns (address) {
397 require(false, stub_error);
398 dummy;
399 return 0x0000000000000000000000000000000000000000;
400 }
401
402 // Selector: addCollectionAdminSubstrate(uint256) 5730062b
403 function addCollectionAdminSubstrate(uint256 newAdmin) public view {
404 require(false, stub_error);
405 newAdmin;
406 dummy;
407 }
408
409 // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
410 function removeCollectionAdminSubstrate(uint256 newAdmin) public view {
411 require(false, stub_error);
412 newAdmin;
413 dummy;
414 }
415
416 // Selector: addCollectionAdmin(address) 92e462c7
417 function addCollectionAdmin(address newAdmin) public view {
418 require(false, stub_error);
419 newAdmin;
420 dummy;
421 }
422
423 // Selector: removeCollectionAdmin(address) fafd7b42
424 function removeCollectionAdmin(address admin) public view {
425 require(false, stub_error);
426 admin;
427 dummy;
428 }
429
430 // Selector: setNesting(bool) e8fc50dd
431 function setNesting(bool enable) public {
432 require(false, stub_error);
433 enable;
434 dummy = 0;
435 }
436
437 // Selector: setNesting(bool,address[]) 7df12a9a
438 function setNesting(bool enable, address[] memory collections) public {
439 require(false, stub_error);
440 enable;
441 collections;
442 dummy = 0;
443 }
444
445 // Selector: setCollectionAccess(uint8) 41835d4c
446 function setCollectionAccess(uint8 mode) public {
447 require(false, stub_error);
448 mode;
449 dummy = 0;
450 }
451
452 // Selector: addToCollectionAllowList(address) 67844fe6
453 function addToCollectionAllowList(address user) public view {
454 require(false, stub_error);
455 user;
456 dummy;
457 }
458
459 // Selector: removeFromCollectionAllowList(address) 85c51acb
460 function removeFromCollectionAllowList(address user) public view {
461 require(false, stub_error);
462 user;
463 dummy;
464 }
465
466 // Selector: setMintMode(bool) 5dea9bd5
467 function setMintMode(bool mode) public {
468 require(false, stub_error);
469 mode;
470 dummy = 0;
471 }
472}
473473
474// Selector: d74d154f474// Selector: d74d154f
475contract ERC721UniqueExtensions is Dummy, ERC165 {475contract ERC721UniqueExtensions is Dummy, ERC165 {
modifiedruntime/tests/src/tests.rsdiffbeforeafterboth
1286 account(3)1286 account(3)
1287 )));1287 )));
12881288
1289 // remove admin 3 1289 // remove admin 3
1290 assert_ok!(Unique::remove_collection_admin(1290 assert_ok!(Unique::remove_collection_admin(
1291 origin1,1291 origin1,
1292 CollectionId(1),1292 CollectionId(1),
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
42 event MintingFinished();42 event MintingFinished();
43}43}
44
45// Selector: 2da6e59e
46interface Collection is Dummy, ERC165 {
47 // Selector: setCollectionProperty(string,bytes) 2f073f66
48 function setCollectionProperty(string memory key, bytes memory value)
49 external;
50
51 // Selector: deleteCollectionProperty(string) 7b7debce
52 function deleteCollectionProperty(string memory key) external;
53
54 // Throws error if key not found
55 //
56 // Selector: collectionProperty(string) cf24fd6d
57 function collectionProperty(string memory key)
58 external
59 view
60 returns (bytes memory);
61
62 // Selector: setCollectionSponsor(address) 7623402e
63 function setCollectionSponsor(address sponsor) external;
64
65 // Selector: confirmCollectionSponsorship() 3c50e97a
66 function confirmCollectionSponsorship() external;
67
68 // Selector: setCollectionLimit(string,uint32) 6a3841db
69 function setCollectionLimit(string memory limit, uint32 value) external;
70
71 // Selector: setCollectionLimit(string,bool) 993b7fba
72 function setCollectionLimit(string memory limit, bool value) external;
73
74 // Selector: contractAddress() f6b4dfb4
75 function contractAddress() external view returns (address);
76
77 // Selector: addCollectionAdminSubstrate(uint256) 5730062b
78 function addCollectionAdminSubstrate(uint256 newAdmin) external view;
79
80 // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
81 function removeCollectionAdminSubstrate(uint256 newAdmin) external view;
82
83 // Selector: addCollectionAdmin(address) 92e462c7
84 function addCollectionAdmin(address newAdmin) external view;
85
86 // Selector: removeAdmin(address) 1785f53c
87 function removeAdmin(address admin) external view;
88
89 // Selector: setNesting(bool) e8fc50dd
90 function setNesting(bool enable) external;
91
92 // Selector: setNesting(bool,address[]) 7df12a9a
93 function setNesting(bool enable, address[] memory collections) external;
94
95 // Selector: setCollectionAccess(uint8) 41835d4c
96 function setCollectionAccess(uint8 mode) external;
97
98 // Selector: addToCollectionAllowList(address) 67844fe6
99 function addToCollectionAllowList(address user) external view;
100
101 // Selector: removeFromCollectionAllowList(address) 85c51acb
102 function removeFromCollectionAllowList(address user) external view;
103
104 // Selector: setMintMode(bool) 5dea9bd5
105 function setMintMode(bool mode) external;
106}
10744
108// Selector: 4136937745// Selector: 41369377
109interface TokenProperties is Dummy, ERC165 {46interface TokenProperties is Dummy, ERC165 {
254 function totalSupply() external view returns (uint256);191 function totalSupply() external view returns (uint256);
255}192}
193
194// Selector: c0de6be0
195interface Collection is Dummy, ERC165 {
196 // Selector: setCollectionProperty(string,bytes) 2f073f66
197 function setCollectionProperty(string memory key, bytes memory value)
198 external;
199
200 // Selector: deleteCollectionProperty(string) 7b7debce
201 function deleteCollectionProperty(string memory key) external;
202
203 // Throws error if key not found
204 //
205 // Selector: collectionProperty(string) cf24fd6d
206 function collectionProperty(string memory key)
207 external
208 view
209 returns (bytes memory);
210
211 // Selector: setCollectionSponsor(address) 7623402e
212 function setCollectionSponsor(address sponsor) external;
213
214 // Selector: confirmCollectionSponsorship() 3c50e97a
215 function confirmCollectionSponsorship() external;
216
217 // Selector: setCollectionLimit(string,uint32) 6a3841db
218 function setCollectionLimit(string memory limit, uint32 value) external;
219
220 // Selector: setCollectionLimit(string,bool) 993b7fba
221 function setCollectionLimit(string memory limit, bool value) external;
222
223 // Selector: contractAddress() f6b4dfb4
224 function contractAddress() external view returns (address);
225
226 // Selector: addCollectionAdminSubstrate(uint256) 5730062b
227 function addCollectionAdminSubstrate(uint256 newAdmin) external view;
228
229 // Selector: removeCollectionAdminSubstrate(uint256) 4048fcf9
230 function removeCollectionAdminSubstrate(uint256 newAdmin) external view;
231
232 // Selector: addCollectionAdmin(address) 92e462c7
233 function addCollectionAdmin(address newAdmin) external view;
234
235 // Selector: removeCollectionAdmin(address) fafd7b42
236 function removeCollectionAdmin(address admin) external view;
237
238 // Selector: setNesting(bool) e8fc50dd
239 function setNesting(bool enable) external;
240
241 // Selector: setNesting(bool,address[]) 7df12a9a
242 function setNesting(bool enable, address[] memory collections) external;
243
244 // Selector: setCollectionAccess(uint8) 41835d4c
245 function setCollectionAccess(uint8 mode) external;
246
247 // Selector: addToCollectionAllowList(address) 67844fe6
248 function addToCollectionAllowList(address user) external view;
249
250 // Selector: removeFromCollectionAllowList(address) 85c51acb
251 function removeFromCollectionAllowList(address user) external view;
252
253 // Selector: setMintMode(bool) 5dea9bd5
254 function setMintMode(bool mode) external;
255}
256256
257// Selector: d74d154f257// Selector: d74d154f
258interface ERC721UniqueExtensions is Dummy, ERC165 {258interface ERC721UniqueExtensions is Dummy, ERC165 {
modifiedtests/src/eth/contractSponsoring.test.tsdiffbeforeafterboth
221 expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');221 expect(await helpers.methods.getSponsoringRateLimit(flipper.options.address).call()).to.be.equals('7200');
222 });222 });
223223
224 //TODO: CORE-302 add eth methods
225 itWeb3('Sponsoring collection from evm address via access list', async ({api, web3}) => {224 itWeb3('Sponsoring collection from evm address via access list', async ({api, web3}) => {
226 const owner = await createEthAccountWithBalance(api, web3);225 const owner = await createEthAccountWithBalance(api, web3);
227 const collectionHelpers = evmCollectionHelpers(web3, owner);226 const collectionHelpers = evmCollectionHelpers(web3, owner);
228 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();227 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();
229 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);228 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
230 const sponsor = await createEthAccountWithBalance(api, web3);229 const sponsor = await createEthAccountWithBalance(api, web3);
231 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);230 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
232 result = await collectionEvm.methods.ethSetSponsor(sponsor).send({from: owner});231 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send({from: owner});
233 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;232 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
234 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;233 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
235 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));234 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
236 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');235 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
237236
238 await collectionEvm.methods.ethConfirmSponsorship().send({from: sponsor});237 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});
239 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;238 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
240 expect(collectionSub.sponsorship.isConfirmed).to.be.true;239 expect(collectionSub.sponsorship.isConfirmed).to.be.true;
241 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));240 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
248 expect(oldPermissions.mintMode).to.be.false;247 expect(oldPermissions.mintMode).to.be.false;
249 expect(oldPermissions.access).to.be.equal('Normal');248 expect(oldPermissions.access).to.be.equal('Normal');
250249
251 await collectionEvm.methods.setAccess('AllowList').send({from: owner});250 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});
252 await collectionEvm.methods.addToAllowList(user).send({from: owner});251 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});
253 await collectionEvm.methods.setMintMode(true).send({from: owner});252 await collectionEvm.methods.setMintMode(true).send({from: owner});
254253
255 const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();254 const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();
256 expect(newPermissions.mintMode).to.be.true;255 expect(newPermissions.mintMode).to.be.true;
257 expect(newPermissions.access).to.be.equal('AllowList');256 expect(newPermissions.access).to.be.equal('AllowList');
258257
259 // const [alicesBalanceBefore] = await getBalance(api, [alicesPublicKey]);258 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
259 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);
260260
261 {261 {
262 const nextTokenId = await collectionEvm.methods.nextTokenId().call();262 const nextTokenId = await collectionEvm.methods.nextTokenId().call();
265 user,265 user,
266 nextTokenId,266 nextTokenId,
267 'Test URI',267 'Test URI',
268 ).call({from: user});268 ).send({from: user});
269 console.log(result);
270 const events = normalizeEvents(result.events);269 const events = normalizeEvents(result.events);
271270
272 expect(events).to.be.deep.equal([271 expect(events).to.be.deep.equal([
273 {272 {
274 collectionIdAddress,273 address: collectionIdAddress,
275 event: 'Transfer',274 event: 'Transfer',
276 args: {275 args: {
277 from: '0x0000000000000000000000000000000000000000',276 from: '0x0000000000000000000000000000000000000000',
281 },280 },
282 ]);281 ]);
282
283 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);
284 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);
283285
284 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');286 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');
287 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);
288 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;
285 }289 }
286 });290 });
287291
292 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);296 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
293 const sponsor = await createEthAccountWithBalance(api, web3);297 const sponsor = await createEthAccountWithBalance(api, web3);
294 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);298 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
295 result = await collectionEvm.methods.ethSetSponsor(sponsor).send();299 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();
296 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;300 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
297 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;301 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;
298 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));302 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
299 await expect(collectionEvm.methods.ethConfirmSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');303 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('Caller is not set as sponsor');
300 const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);304 const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);
301 await sponsorCollection.methods.ethConfirmSponsorship().send();305 await sponsorCollection.methods.confirmCollectionSponsorship().send();
302 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;306 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;
303 expect(collectionSub.sponsorship.isConfirmed).to.be.true;307 expect(collectionSub.sponsorship.isConfirmed).to.be.true;
304 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));308 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor));
305309
306 const user = createEthAccount(web3);310 const user = createEthAccount(web3);
307 await collectionEvm.methods.addAdmin(user).send();311 await collectionEvm.methods.addCollectionAdmin(user).send();
308 312
309 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);313 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);
310 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);314 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);
modifiedtests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth
302 "inputs": [302 "inputs": [
303 { "internalType": "address", "name": "admin", "type": "address" }303 { "internalType": "address", "name": "admin", "type": "address" }
304 ],304 ],
305 "name": "removeAdmin",305 "name": "removeCollectionAdmin",
306 "outputs": [],306 "outputs": [],
307 "stateMutability": "view",307 "stateMutability": "view",
308 "type": "function"308 "type": "function"
modifiedtests/src/eth/proxy/nonFungibleProxy.test.tsdiffbeforeafterboth
99 const collectionEvmOwned = evmCollection(web3, owner, collectionIdAddress);99 const collectionEvmOwned = evmCollection(web3, owner, collectionIdAddress);
100 const collectionEvm = evmCollection(web3, caller, collectionIdAddress);100 const collectionEvm = evmCollection(web3, caller, collectionIdAddress);
101 const contract = await proxyWrap(api, web3, collectionEvm);101 const contract = await proxyWrap(api, web3, collectionEvm);
102 await collectionEvmOwned.methods.addAdmin(contract.options.address).send();102 await collectionEvmOwned.methods.addCollectionAdmin(contract.options.address).send();
103103
104 {104 {
105 const nextTokenId = await contract.methods.nextTokenId().call();105 const nextTokenId = await contract.methods.nextTokenId().call();