Skip to content

Commit 02a710c

Browse files
authored
Feature/node 4948 fix broken pkppermissions helper lookup (#81)
* quick fix of the pkphelper contract. * update js/ts contratc tests * simplify and updated abi * Update PKP Helper V2 as well. * Prettier. * Update ABI Staleness
1 parent d872158 commit 02a710c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+686
-471
lines changed

blockchain/contracts/abis/ContractResolver.abi

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -388,19 +388,6 @@
388388
"stateMutability": "view",
389389
"type": "function"
390390
},
391-
{
392-
"inputs": [],
393-
"name": "PUB_KEY_ROUTER_VIEWS_CONTRACT",
394-
"outputs": [
395-
{
396-
"internalType": "bytes32",
397-
"name": "",
398-
"type": "bytes32"
399-
}
400-
],
401-
"stateMutability": "view",
402-
"type": "function"
403-
},
404391
{
405392
"inputs": [],
406393
"name": "RATE_LIMIT_NFT_CONTRACT",

blockchain/contracts/abis/PKPHelper.abi

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,19 @@
568568
"stateMutability": "view",
569569
"type": "function"
570570
},
571+
{
572+
"inputs": [],
573+
"name": "getPubkeyRouterAddress",
574+
"outputs": [
575+
{
576+
"internalType": "address",
577+
"name": "",
578+
"type": "address"
579+
}
580+
],
581+
"stateMutability": "view",
582+
"type": "function"
583+
},
571584
{
572585
"inputs": [
573586
{

blockchain/contracts/contracts/lit-core/ContractResolver.sol

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ contract ContractResolver is AccessControl {
2323
bytes32 public constant LIT_TOKEN_CONTRACT = keccak256("LIT_TOKEN");
2424
bytes32 public constant PUB_KEY_ROUTER_CONTRACT =
2525
keccak256("PUB_KEY_ROUTER"); // 0xb1f79813bc7630a52ae948bc99781397e409d0dd3521953bf7d8d7a2db6147f7
26-
bytes32 public constant PUB_KEY_ROUTER_VIEWS_CONTRACT =
27-
keccak256("PUB_KEY_ROUTER_VIEWS"); // 0x4c3f3e2f3e5d3e6f0c8e4f6b7a1e8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8091
2826
bytes32 public constant PKP_NFT_CONTRACT = keccak256("PKP_NFT"); // 0xb7b4fde9944d3c13e9a78835431c33a5084d90a7f0c73def76d7886315fe87b0
2927
bytes32 public constant RATE_LIMIT_NFT_CONTRACT =
3028
keccak256("RATE_LIMIT_NFT"); // 0xb931b2719aeb2a65a5035fa0a190bfdc4c8622ce8cbff7a3d1ab42531fb1a918

blockchain/contracts/contracts/lit-node/PKPHelper.sol

Lines changed: 59 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Base64 } from "@openzeppelin/contracts/utils/Base64.sol";
99
import { IERC721Receiver } from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
1010
import { ContractResolver } from "../lit-core/ContractResolver.sol";
1111
import { PKPNFTFacet } from "./PKPNFT/PKPNFTFacet.sol";
12+
import { PubkeyRouterViewsFacet } from "./PubkeyRouter/PubkeyRouterViewsFacet.sol";
1213
import "@openzeppelin/contracts/access/AccessControl.sol";
1314
import "hardhat/console.sol";
1415

@@ -108,6 +109,13 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
108109
);
109110
}
110111

112+
function getPubkeyRouterAddress() public view returns (address) {
113+
return
114+
contractResolver.getContract(
115+
contractResolver.PUB_KEY_ROUTER_CONTRACT(),
116+
env
117+
);
118+
}
111119
/* ========== MUTATIVE FUNCTIONS ========== */
112120

113121
function mintNextAndAddAuthMethods(
@@ -198,7 +206,7 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
198206
}
199207
}
200208

201-
address pkpEthAddress = PKPPermissionsFacet(getPkpPermissionsAddress())
209+
address pkpEthAddress = PubkeyRouterViewsFacet(getPubkeyRouterAddress())
202210
.getEthAddress(tokenId);
203211

204212
// add the pkp eth address as a permitted address
@@ -248,6 +256,10 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
248256
value: msg.value
249257
}(params.keyType, params.keySetId);
250258

259+
PKPPermissionsFacet pkpPermissions = PKPPermissionsFacet(
260+
getPkpPermissionsAddress()
261+
);
262+
251263
// sanity checking array lengths
252264
require(
253265
params.permittedIpfsCIDs.length ==
@@ -278,24 +290,22 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
278290
// permit the action
279291
if (params.permittedIpfsCIDs.length != 0) {
280292
for (uint256 i = 0; i < params.permittedIpfsCIDs.length; i++) {
281-
PKPPermissionsFacet(getPkpPermissionsAddress())
282-
.addPermittedAction(
283-
tokenId,
284-
params.permittedIpfsCIDs[i],
285-
params.permittedIpfsCIDScopes[i]
286-
);
293+
pkpPermissions.addPermittedAction(
294+
tokenId,
295+
params.permittedIpfsCIDs[i],
296+
params.permittedIpfsCIDScopes[i]
297+
);
287298
}
288299
}
289300

290301
// permit the address
291302
if (params.permittedAddresses.length != 0) {
292303
for (uint256 i = 0; i < params.permittedAddresses.length; i++) {
293-
PKPPermissionsFacet(getPkpPermissionsAddress())
294-
.addPermittedAddress(
295-
tokenId,
296-
params.permittedAddresses[i],
297-
params.permittedAddressesScopes[i]
298-
);
304+
pkpPermissions.addPermittedAddress(
305+
tokenId,
306+
params.permittedAddresses[i],
307+
params.permittedAddressesScopes[i]
308+
);
299309
}
300310
}
301311

@@ -306,25 +316,24 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
306316
i < params.permittedAuthMethodTypes.length;
307317
i++
308318
) {
309-
PKPPermissionsFacet(getPkpPermissionsAddress())
310-
.addPermittedAuthMethod(
311-
tokenId,
312-
LibPKPPermissionsStorage.AuthMethod(
313-
params.permittedAuthMethodTypes[i],
314-
params.permittedAuthMethodIds[i],
315-
params.permittedAuthMethodPubkeys[i]
316-
),
317-
params.permittedAuthMethodScopes[i]
318-
);
319+
pkpPermissions.addPermittedAuthMethod(
320+
tokenId,
321+
LibPKPPermissionsStorage.AuthMethod(
322+
params.permittedAuthMethodTypes[i],
323+
params.permittedAuthMethodIds[i],
324+
params.permittedAuthMethodPubkeys[i]
325+
),
326+
params.permittedAuthMethodScopes[i]
327+
);
319328
}
320329
}
321330

322-
address pkpEthAddress = PKPPermissionsFacet(getPkpPermissionsAddress())
331+
address pkpEthAddress = PubkeyRouterViewsFacet(getPubkeyRouterAddress())
323332
.getEthAddress(tokenId);
324333

325334
// add the pkp eth address as a permitted address
326335
if (params.addPkpEthAddressAsPermittedAddress) {
327-
PKPPermissionsFacet(getPkpPermissionsAddress()).addPermittedAddress(
336+
pkpPermissions.addPermittedAddress(
328337
tokenId,
329338
pkpEthAddress,
330339
new uint256[](0)
@@ -442,6 +451,10 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
442451
claimMaterial.stakingContractAddress
443452
);
444453

454+
PKPPermissionsFacet pkpPermissions = PKPPermissionsFacet(
455+
getPkpPermissionsAddress()
456+
);
457+
445458
require(
446459
authMethodData.permittedIpfsCIDs.length ==
447460
authMethodData.permittedIpfsCIDScopes.length,
@@ -475,12 +488,11 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
475488
i < authMethodData.permittedIpfsCIDs.length;
476489
i++
477490
) {
478-
PKPPermissionsFacet(getPkpPermissionsAddress())
479-
.addPermittedAction(
480-
tokenId,
481-
authMethodData.permittedIpfsCIDs[i],
482-
authMethodData.permittedIpfsCIDScopes[i]
483-
);
491+
pkpPermissions.addPermittedAction(
492+
tokenId,
493+
authMethodData.permittedIpfsCIDs[i],
494+
authMethodData.permittedIpfsCIDScopes[i]
495+
);
484496
}
485497
}
486498

@@ -491,12 +503,11 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
491503
i < authMethodData.permittedAddresses.length;
492504
i++
493505
) {
494-
PKPPermissionsFacet(getPkpPermissionsAddress())
495-
.addPermittedAddress(
496-
tokenId,
497-
authMethodData.permittedAddresses[i],
498-
authMethodData.permittedAddressScopes[i]
499-
);
506+
pkpPermissions.addPermittedAddress(
507+
tokenId,
508+
authMethodData.permittedAddresses[i],
509+
authMethodData.permittedAddressScopes[i]
510+
);
500511
}
501512
}
502513

@@ -507,25 +518,24 @@ contract PKPHelper is Ownable, IERC721Receiver, AccessControl {
507518
i < authMethodData.permittedAuthMethodTypes.length;
508519
i++
509520
) {
510-
PKPPermissionsFacet(getPkpPermissionsAddress())
511-
.addPermittedAuthMethod(
512-
tokenId,
513-
LibPKPPermissionsStorage.AuthMethod(
514-
authMethodData.permittedAuthMethodTypes[i],
515-
authMethodData.permittedAuthMethodIds[i],
516-
authMethodData.permittedAuthMethodPubkeys[i]
517-
),
518-
authMethodData.permittedAuthMethodScopes[i]
519-
);
521+
pkpPermissions.addPermittedAuthMethod(
522+
tokenId,
523+
LibPKPPermissionsStorage.AuthMethod(
524+
authMethodData.permittedAuthMethodTypes[i],
525+
authMethodData.permittedAuthMethodIds[i],
526+
authMethodData.permittedAuthMethodPubkeys[i]
527+
),
528+
authMethodData.permittedAuthMethodScopes[i]
529+
);
520530
}
521531
}
522532

523-
address pkpEthAddress = PKPPermissionsFacet(getPkpPermissionsAddress())
533+
address pkpEthAddress = PubkeyRouterViewsFacet(getPubkeyRouterAddress())
524534
.getEthAddress(tokenId);
525535

526536
// add the pkp eth address as a permitted address
527537
if (authMethodData.addPkpEthAddressAsPermittedAddress) {
528-
PKPPermissionsFacet(getPkpPermissionsAddress()).addPermittedAddress(
538+
pkpPermissions.addPermittedAddress(
529539
tokenId,
530540
pkpEthAddress,
531541
new uint256[](0)

blockchain/contracts/contracts/lit-node/PKPHelperV2.sol

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
55
import { IERC721Receiver } from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
66
import { ContractResolver } from "../lit-core/ContractResolver.sol";
77
import { PKPNFTFacet } from "./PKPNFT/PKPNFTFacet.sol";
8+
import { PubkeyRouterViewsFacet } from "./PubkeyRouter/PubkeyRouterViewsFacet.sol";
89
import "hardhat/console.sol";
910

1011
import { LibPKPPermissionsStorage } from "./PKPPermissions/LibPKPPermissionsStorage.sol";
@@ -73,6 +74,13 @@ contract PKPHelperV2 is Ownable, IERC721Receiver {
7374
);
7475
}
7576

77+
function getPubkeyRouterAddress() public view returns (address) {
78+
return
79+
contractResolver.getContract(
80+
contractResolver.PUB_KEY_ROUTER_CONTRACT(),
81+
env
82+
);
83+
}
7684
/* ========== MUTATIVE FUNCTIONS ========== */
7785

7886
function mintNextAndAddAuthMethods(
@@ -89,6 +97,10 @@ contract PKPHelperV2 is Ownable, IERC721Receiver {
8997
value: msg.value
9098
}(params.keyType, params.keySetId);
9199

100+
PKPPermissionsFacet pkpPermissions = PKPPermissionsFacet(
101+
getPkpPermissionsAddress()
102+
);
103+
92104
require(
93105
params.permittedAuthMethodTypes.length ==
94106
params.permittedAuthMethodIds.length,
@@ -112,25 +124,24 @@ contract PKPHelperV2 is Ownable, IERC721Receiver {
112124
i < params.permittedAuthMethodTypes.length;
113125
i++
114126
) {
115-
PKPPermissionsFacet(getPkpPermissionsAddress())
116-
.addPermittedAuthMethod(
117-
tokenId,
118-
LibPKPPermissionsStorage.AuthMethod(
119-
params.permittedAuthMethodTypes[i],
120-
params.permittedAuthMethodIds[i],
121-
params.permittedAuthMethodPubkeys[i]
122-
),
123-
params.permittedAuthMethodScopes[i]
124-
);
127+
pkpPermissions.addPermittedAuthMethod(
128+
tokenId,
129+
LibPKPPermissionsStorage.AuthMethod(
130+
params.permittedAuthMethodTypes[i],
131+
params.permittedAuthMethodIds[i],
132+
params.permittedAuthMethodPubkeys[i]
133+
),
134+
params.permittedAuthMethodScopes[i]
135+
);
125136
}
126137
}
127138

128-
address pkpEthAddress = PKPPermissionsFacet(getPkpPermissionsAddress())
139+
address pkpEthAddress = PubkeyRouterViewsFacet(getPubkeyRouterAddress())
129140
.getEthAddress(tokenId);
130141

131142
// add the pkp eth address as a permitted address
132143
if (params.addPkpEthAddressAsPermittedAddress) {
133-
PKPPermissionsFacet(getPkpPermissionsAddress()).addPermittedAddress(
144+
pkpPermissions.addPermittedAddress(
134145
tokenId,
135146
pkpEthAddress,
136147
params.pkpEthAddressScopes

blockchain/contracts/contracts/lit-node/PKPPermissions/PKPPermissionsFacet.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ contract PKPPermissionsFacet is ERC2771 {
7878
function getRouterAddress() public view returns (address) {
7979
return
8080
s().contractResolver.getContract(
81-
s().contractResolver.PUB_KEY_ROUTER_VIEWS_CONTRACT(),
81+
s().contractResolver.PUB_KEY_ROUTER_CONTRACT(),
8282
s().env
8383
);
8484
}

blockchain/contracts/test/domain-wallets/DomainWalletRegistry.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ describe('DomainWalletRegistry', function () {
198198
pkpPermissionsContract: pkpPermissionsFacet,
199199
pkpNftMetadataContract: pkpNftMetadata,
200200
pubkeyRouterContract: pubkeyRouter,
201-
pubkeyRouterViewsContract: pubkeyRouterViews,
202201
hdKeyDeriverContract: keyDeriver,
203202
stakingContract: stakingFacet,
204203
tokenContract: token,

blockchain/contracts/test/lit-node/PKPHelper.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ describe('PKPHelper', function () {
136136
pkpPermissionsContract: pkpPermissions,
137137
hdKeyDeriverContract: keyDeriver,
138138
pubkeyRouterContract: router,
139-
pubkeyRouterViewsContract: routerViews,
140139
});
141140

142141
// Mint enough tokens for the deployer

blockchain/contracts/test/lit-node/PKPNFT.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ describe('PKPNFT', function () {
160160
pkpNftMetadataContract: pkpNftMetadata,
161161
hdKeyDeriverContract: keyDeriver,
162162
pubkeyRouterContract: router,
163-
pubkeyRouterViewsContract: routerViews,
164163
stylusContractP256: supportsArbitrumStylus(hre.network.config)
165164
? hre.network.config.stylusContractsForTests.p256
166165
: undefined,

blockchain/contracts/test/lit-node/PKPPermissions.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ describe('PKPPermissions', function () {
147147
pkpPermissionsContract: pkpPermissions,
148148
hdKeyDeriverContract: keyDeriver,
149149
pubkeyRouterContract: router,
150-
pubkeyRouterViewsContract: routerViews,
151150
});
152151

153152
await stakingKeySetsFacet.setKeySet({

0 commit comments

Comments
 (0)