Skip to content

Commit

Permalink
Merge pull request #23 from BigWhaleLabs/upgradeable
Browse files Browse the repository at this point in the history
Make ketl-attestation-contract Upgradeable
  • Loading branch information
wilsonplau committed Jul 20, 2023
2 parents acf7202 + 4a819c1 commit 657f9f1
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 14 deletions.
30 changes: 19 additions & 11 deletions contracts/KetlAttestation.sol
Original file line number Diff line number Diff line change
Expand Up @@ -59,19 +59,23 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

import "@big-whale-labs/versioned-contract/contracts/Versioned.sol";
import "@opengsn/contracts/src/ERC2771Recipient.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol";
import "@zk-kit/incremental-merkle-tree.sol/IncrementalBinaryTree.sol";
import "./interfaces/IAttestationCheckerVerifier.sol";
import "./interfaces/IPasswordCheckerVerifier.sol";

contract KetlAttestation is ERC1155, Ownable, Versioned, ERC2771Recipient {
using Counters for Counters.Counter;
contract KetlAttestation is
ERC1155Upgradeable,
OwnableUpgradeable,
ERC2771Recipient
{
using CountersUpgradeable for CountersUpgradeable.Counter;
using IncrementalBinaryTree for IncrementalTreeData;

string public version;
// Attestations
uint32 public currentTokenId;
uint public attestorPublicKey;
Expand All @@ -85,7 +89,7 @@ contract KetlAttestation is ERC1155, Ownable, Versioned, ERC2771Recipient {
mapping(uint => Counters.Counter) public attestationHashesEntangled;
mapping(uint => uint16) public maxEntanglementsPerAttestation;

mapping(uint => Counters.Counter) public entanglementsCounts;
mapping(uint => CountersUpgradeable.Counter) public entanglementsCounts;
mapping(uint => uint16) public minimumEntanglementCounts;
IPasswordCheckerVerifier public passwordCheckerVerifier;
// Nullifiers
Expand All @@ -97,14 +101,18 @@ contract KetlAttestation is ERC1155, Ownable, Versioned, ERC2771Recipient {
event EntanglementRegistered(uint attestationType, uint entanglement);
event TokenMinted(uint attestationType, uint nullifier);

constructor(
function initialize(
string memory _uri,
string memory _version,
uint _attestorPublicKey,
address _attestationCheckerVerifier,
address _passwordCheckerVerifier,
address _forwarder
) ERC1155(_uri) Versioned(_version) {
) public initializer {
__ERC1155_init(_uri);
__Ownable_init();
version = _version;

attestorPublicKey = _attestorPublicKey;
attestationCheckerVerifier = IAttestationCheckerVerifier(
_attestationCheckerVerifier
Expand Down Expand Up @@ -287,7 +295,7 @@ contract KetlAttestation is ERC1155, Ownable, Versioned, ERC2771Recipient {
function _msgSender()
internal
view
override(Context, ERC2771Recipient)
override(ContextUpgradeable, ERC2771Recipient)
returns (address sender)
{
sender = ERC2771Recipient._msgSender();
Expand All @@ -296,7 +304,7 @@ contract KetlAttestation is ERC1155, Ownable, Versioned, ERC2771Recipient {
function _msgData()
internal
view
override(Context, ERC2771Recipient)
override(ContextUpgradeable, ERC2771Recipient)
returns (bytes calldata ret)
{
return ERC2771Recipient._msgData();
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"@nomiclabs/hardhat-etherscan": "^3.1.7",
"@nomiclabs/hardhat-waffle": "^2.0.6",
"@opengsn/contracts": "^3.0.0-beta.6",
"@openzeppelin/contracts": "^4.8.3",
"@openzeppelin/contracts-upgradeable": "^4.8.3",
"@typechain/ethers-v5": "^10.2.1",
"@typechain/hardhat": "^6.1.6",
"@types/chai": "^4.3.5",
Expand Down
11 changes: 9 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ __metadata:
"@nomiclabs/hardhat-etherscan": ^3.1.7
"@nomiclabs/hardhat-waffle": ^2.0.6
"@opengsn/contracts": ^3.0.0-beta.6
"@openzeppelin/contracts": ^4.8.3
"@openzeppelin/contracts-upgradeable": ^4.8.3
"@openzeppelin/hardhat-upgrades": ^1.26.0
"@typechain/ethers-v5": ^10.2.1
"@typechain/hardhat": ^6.1.6
Expand Down Expand Up @@ -1588,7 +1588,14 @@ __metadata:
languageName: node
linkType: hard

"@openzeppelin/contracts@npm:^4.2.0, @openzeppelin/contracts@npm:^4.8.3":
"@openzeppelin/contracts-upgradeable@npm:^4.8.3":
version: 4.9.2
resolution: "@openzeppelin/contracts-upgradeable@npm:4.9.2"
checksum: 88df083e886006b9fac61848edf224a725b99e1b8a302173165a857e3bbc1d00d61cb9c71590b37d955b179fe23652fc157347a086dbaad8f66ce8470603f151
languageName: node
linkType: hard

"@openzeppelin/contracts@npm:^4.2.0":
version: 4.8.3
resolution: "@openzeppelin/contracts@npm:4.8.3"
checksum: aea130d38d46840c5cbe3adbaa9a7ac645e4bd66ad3f3baf2fa78588c408d1a686170b3408c9e2e5e05530fba22ecdc00d7efb6b27852a8b29f91accbc0af255
Expand Down

0 comments on commit 657f9f1

Please sign in to comment.