From c21685ef113748d368d65fd839155be8519c474f Mon Sep 17 00:00:00 2001 From: spengrah Date: Wed, 3 Jul 2024 16:24:15 -0500 Subject: [PATCH 01/20] draft metadata --- modules/PublicLockV14EligibilityHatter.json | 132 ++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 modules/PublicLockV14EligibilityHatter.json diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json new file mode 100644 index 0000000..7e4b8cc --- /dev/null +++ b/modules/PublicLockV14EligibilityHatter.json @@ -0,0 +1,132 @@ +{ + "name": "Unlock Protocol Eligibility (PublicLock V14)", + "details": [ + "Use this module to make a hat only wearable by addresses that have purchased an Unlock Protocol key NFT.", + "Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key." + ], + "links": [ + { + "label": "GitHub", + "link": "https://github.com/Hats-Protocol/unlock-eligibility" + } + ], + "parameters": [ + { + "label": "Referrer", + "functionName": "REFERRER", + "displayType": "address" + }, + { + "label": "Referrer Fee Percentage", + "functionName": "REFERRER_FEE_PERCENTAGE", + "displayType": "uint256" + }, + { + "label": "Lock Contract", + "functionName": "lock", + "displayType": "address" + }, + { + "label": "Price", + "functionName": "keyPurchasePrice", + "displayType": "amountWithDecimals" + }, + { + "label": "Token", + "functionName": "keyPurchaseToken", + "displayType": "token" + } + ], + "type": { + "eligibility": true, + "toggle": false, + "hatter": true + }, + "tags": [], + "implementationAddress": "0", + "deployments": [ + { + "chainId": "5", + "block": "0" + }, + { + "chainId": "11155111", + "block": "0" + }, + { + "chainId": "10", + "block": "0" + }, + { + "chainId": "137", + "block": "0" + }, + { + "chainId": "42161", + "block": "0" + }, + { + "chainId": "100", + "block": "0" + }, + { + "chainId": "8453", + "block": "0" + }, + { + "chainId": "42220", + "block": "0" + } + ], + "creationArgs": { + "useHatId": true, + "immutable": [], + "mutable": [ + { + "name": "Renewal Period", + "description": "How often a payment must be made to keep the hat", + "type": "uint256", + "example": "2592000", + "displayType": "seconds" + }, + { + "name": "Payment Token", + "description": "The token used to make payments", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "token" + }, + { + "name": "Payment Price", + "description": "The price of a payment for a single renewal period", + "type": "uint256", + "example": "5000000000000000000", + "displayType": "amountWithDecimals" + }, + { + "name": "Max Purchasers", + "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", + "type": "uint256", + "example": "100", + "displayType": "default" + }, + { + "name": "Lock Manager", + "description": "The manager of the lock contract, who can modify many of the lock's settings.", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "address" + }, + { + "name": "Lock Name", + "description": "The name of the lock NFT. Suggested to include the name of this hat.", + "type": "string", + "example": "My Hat Lock", + "displayType": "default" + } + ] + }, + "customRoles": [], + "writeFunctions": [], + "abi": [] +} \ No newline at end of file From b4b10bf82e2338eb727e94d8d15f6708f664abee Mon Sep 17 00:00:00 2001 From: spengrah Date: Wed, 3 Jul 2024 21:20:54 -0500 Subject: [PATCH 02/20] add new parameters --- modules/PublicLockV14EligibilityHatter.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 7e4b8cc..4090479 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -35,6 +35,16 @@ "label": "Token", "functionName": "keyPurchaseToken", "displayType": "token" + }, + { + "label": "Renewal Period", + "functionName": "expirationDuration", + "displayType": "seconds" + }, + { + "label": "Max Purchasers", + "functionName": "maxNumberOfKeys", + "displayType": "default" } ], "type": { From a7edeb7999f3f6ccb0de154a40f2f5c830a0c512 Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 30 Aug 2024 14:24:07 -0500 Subject: [PATCH 03/20] subscription module submissions revisions --- modules/PublicLockV14EligibilityHatter.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 4090479..739b63c 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -1,8 +1,9 @@ { - "name": "Unlock Protocol Eligibility (PublicLock V14)", + "name": "Subscription Eligibility (Unlock Protocol V14)", "details": [ - "Use this module to make a hat only wearable by addresses that have purchased an Unlock Protocol key NFT.", - "Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key." + "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", + "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", + "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." ], "links": [ { @@ -93,7 +94,7 @@ "immutable": [], "mutable": [ { - "name": "Renewal Period", + "name": "Subscription Period", "description": "How often a payment must be made to keep the hat", "type": "uint256", "example": "2592000", @@ -107,14 +108,14 @@ "displayType": "token" }, { - "name": "Payment Price", - "description": "The price of a payment for a single renewal period", + "name": "Subscription Price", + "description": "The price of a payment for a single subscription period", "type": "uint256", "example": "5000000000000000000", "displayType": "amountWithDecimals" }, { - "name": "Max Purchasers", + "name": "Max Subscribers", "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", "type": "uint256", "example": "100", From cfba61435a63d05ceaa4464cbe7551ffee60b4ef Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 30 Aug 2024 14:29:54 -0500 Subject: [PATCH 04/20] add test deployment --- modules/PublicLockV14EligibilityHatter.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 739b63c..1838fe5 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -53,8 +53,10 @@ "toggle": false, "hatter": true }, - "tags": [], - "implementationAddress": "0", + "tags": [ + "version: test3" + ], + "implementationAddress": "0x13d7ca8F08CDCb248df0792bcC5989509CE119E0", "deployments": [ { "chainId": "5", @@ -62,7 +64,7 @@ }, { "chainId": "11155111", - "block": "0" + "block": "6601907" }, { "chainId": "10", From ac8211e81ee2717812ae8c03263691f0a2d418a0 Mon Sep 17 00:00:00 2001 From: spengrah Date: Wed, 3 Jul 2024 16:24:15 -0500 Subject: [PATCH 05/20] draft metadata --- modules/PublicLockV14EligibilityHatter.json | 132 ++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 modules/PublicLockV14EligibilityHatter.json diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json new file mode 100644 index 0000000..7e4b8cc --- /dev/null +++ b/modules/PublicLockV14EligibilityHatter.json @@ -0,0 +1,132 @@ +{ + "name": "Unlock Protocol Eligibility (PublicLock V14)", + "details": [ + "Use this module to make a hat only wearable by addresses that have purchased an Unlock Protocol key NFT.", + "Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key." + ], + "links": [ + { + "label": "GitHub", + "link": "https://github.com/Hats-Protocol/unlock-eligibility" + } + ], + "parameters": [ + { + "label": "Referrer", + "functionName": "REFERRER", + "displayType": "address" + }, + { + "label": "Referrer Fee Percentage", + "functionName": "REFERRER_FEE_PERCENTAGE", + "displayType": "uint256" + }, + { + "label": "Lock Contract", + "functionName": "lock", + "displayType": "address" + }, + { + "label": "Price", + "functionName": "keyPurchasePrice", + "displayType": "amountWithDecimals" + }, + { + "label": "Token", + "functionName": "keyPurchaseToken", + "displayType": "token" + } + ], + "type": { + "eligibility": true, + "toggle": false, + "hatter": true + }, + "tags": [], + "implementationAddress": "0", + "deployments": [ + { + "chainId": "5", + "block": "0" + }, + { + "chainId": "11155111", + "block": "0" + }, + { + "chainId": "10", + "block": "0" + }, + { + "chainId": "137", + "block": "0" + }, + { + "chainId": "42161", + "block": "0" + }, + { + "chainId": "100", + "block": "0" + }, + { + "chainId": "8453", + "block": "0" + }, + { + "chainId": "42220", + "block": "0" + } + ], + "creationArgs": { + "useHatId": true, + "immutable": [], + "mutable": [ + { + "name": "Renewal Period", + "description": "How often a payment must be made to keep the hat", + "type": "uint256", + "example": "2592000", + "displayType": "seconds" + }, + { + "name": "Payment Token", + "description": "The token used to make payments", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "token" + }, + { + "name": "Payment Price", + "description": "The price of a payment for a single renewal period", + "type": "uint256", + "example": "5000000000000000000", + "displayType": "amountWithDecimals" + }, + { + "name": "Max Purchasers", + "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", + "type": "uint256", + "example": "100", + "displayType": "default" + }, + { + "name": "Lock Manager", + "description": "The manager of the lock contract, who can modify many of the lock's settings.", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "address" + }, + { + "name": "Lock Name", + "description": "The name of the lock NFT. Suggested to include the name of this hat.", + "type": "string", + "example": "My Hat Lock", + "displayType": "default" + } + ] + }, + "customRoles": [], + "writeFunctions": [], + "abi": [] +} \ No newline at end of file From ad31c1899db8dadfd28224a6d8658a7b726c98d0 Mon Sep 17 00:00:00 2001 From: spengrah Date: Wed, 3 Jul 2024 21:20:54 -0500 Subject: [PATCH 06/20] add new parameters --- modules/PublicLockV14EligibilityHatter.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 7e4b8cc..4090479 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -35,6 +35,16 @@ "label": "Token", "functionName": "keyPurchaseToken", "displayType": "token" + }, + { + "label": "Renewal Period", + "functionName": "expirationDuration", + "displayType": "seconds" + }, + { + "label": "Max Purchasers", + "functionName": "maxNumberOfKeys", + "displayType": "default" } ], "type": { From e644cf505f329c109ac88de94721b9bd26ec81cb Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 30 Aug 2024 14:24:07 -0500 Subject: [PATCH 07/20] subscription module submissions revisions --- modules/PublicLockV14EligibilityHatter.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 4090479..739b63c 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -1,8 +1,9 @@ { - "name": "Unlock Protocol Eligibility (PublicLock V14)", + "name": "Subscription Eligibility (Unlock Protocol V14)", "details": [ - "Use this module to make a hat only wearable by addresses that have purchased an Unlock Protocol key NFT.", - "Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key." + "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", + "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", + "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." ], "links": [ { @@ -93,7 +94,7 @@ "immutable": [], "mutable": [ { - "name": "Renewal Period", + "name": "Subscription Period", "description": "How often a payment must be made to keep the hat", "type": "uint256", "example": "2592000", @@ -107,14 +108,14 @@ "displayType": "token" }, { - "name": "Payment Price", - "description": "The price of a payment for a single renewal period", + "name": "Subscription Price", + "description": "The price of a payment for a single subscription period", "type": "uint256", "example": "5000000000000000000", "displayType": "amountWithDecimals" }, { - "name": "Max Purchasers", + "name": "Max Subscribers", "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", "type": "uint256", "example": "100", From 0e6332970f04b66488f53029a6a39e56c47d2d63 Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 30 Aug 2024 14:29:54 -0500 Subject: [PATCH 08/20] add test deployment --- modules/PublicLockV14EligibilityHatter.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json index 739b63c..1838fe5 100644 --- a/modules/PublicLockV14EligibilityHatter.json +++ b/modules/PublicLockV14EligibilityHatter.json @@ -53,8 +53,10 @@ "toggle": false, "hatter": true }, - "tags": [], - "implementationAddress": "0", + "tags": [ + "version: test3" + ], + "implementationAddress": "0x13d7ca8F08CDCb248df0792bcC5989509CE119E0", "deployments": [ { "chainId": "5", @@ -62,7 +64,7 @@ }, { "chainId": "11155111", - "block": "0" + "block": "6601907" }, { "chainId": "10", From 19f2fcb2cece443e6257ee3ba509cd3742cd810d Mon Sep 17 00:00:00 2001 From: spengrah Date: Thu, 12 Sep 2024 15:45:29 -0500 Subject: [PATCH 09/20] add new ABI --- modules/PublicLockV14EligibilityHatter.json | 145 ----- ...ic-lock-v14-eligibility-hatter_v0.1.0.json | 565 ++++++++++++++++++ 2 files changed, 565 insertions(+), 145 deletions(-) delete mode 100644 modules/PublicLockV14EligibilityHatter.json create mode 100644 modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json diff --git a/modules/PublicLockV14EligibilityHatter.json b/modules/PublicLockV14EligibilityHatter.json deleted file mode 100644 index 1838fe5..0000000 --- a/modules/PublicLockV14EligibilityHatter.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "name": "Subscription Eligibility (Unlock Protocol V14)", - "details": [ - "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", - "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", - "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." - ], - "links": [ - { - "label": "GitHub", - "link": "https://github.com/Hats-Protocol/unlock-eligibility" - } - ], - "parameters": [ - { - "label": "Referrer", - "functionName": "REFERRER", - "displayType": "address" - }, - { - "label": "Referrer Fee Percentage", - "functionName": "REFERRER_FEE_PERCENTAGE", - "displayType": "uint256" - }, - { - "label": "Lock Contract", - "functionName": "lock", - "displayType": "address" - }, - { - "label": "Price", - "functionName": "keyPurchasePrice", - "displayType": "amountWithDecimals" - }, - { - "label": "Token", - "functionName": "keyPurchaseToken", - "displayType": "token" - }, - { - "label": "Renewal Period", - "functionName": "expirationDuration", - "displayType": "seconds" - }, - { - "label": "Max Purchasers", - "functionName": "maxNumberOfKeys", - "displayType": "default" - } - ], - "type": { - "eligibility": true, - "toggle": false, - "hatter": true - }, - "tags": [ - "version: test3" - ], - "implementationAddress": "0x13d7ca8F08CDCb248df0792bcC5989509CE119E0", - "deployments": [ - { - "chainId": "5", - "block": "0" - }, - { - "chainId": "11155111", - "block": "6601907" - }, - { - "chainId": "10", - "block": "0" - }, - { - "chainId": "137", - "block": "0" - }, - { - "chainId": "42161", - "block": "0" - }, - { - "chainId": "100", - "block": "0" - }, - { - "chainId": "8453", - "block": "0" - }, - { - "chainId": "42220", - "block": "0" - } - ], - "creationArgs": { - "useHatId": true, - "immutable": [], - "mutable": [ - { - "name": "Subscription Period", - "description": "How often a payment must be made to keep the hat", - "type": "uint256", - "example": "2592000", - "displayType": "seconds" - }, - { - "name": "Payment Token", - "description": "The token used to make payments", - "type": "address", - "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", - "displayType": "token" - }, - { - "name": "Subscription Price", - "description": "The price of a payment for a single subscription period", - "type": "uint256", - "example": "5000000000000000000", - "displayType": "amountWithDecimals" - }, - { - "name": "Max Subscribers", - "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", - "type": "uint256", - "example": "100", - "displayType": "default" - }, - { - "name": "Lock Manager", - "description": "The manager of the lock contract, who can modify many of the lock's settings.", - "type": "address", - "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", - "displayType": "address" - }, - { - "name": "Lock Name", - "description": "The name of the lock NFT. Suggested to include the name of this hat.", - "type": "string", - "example": "My Hat Lock", - "displayType": "default" - } - ] - }, - "customRoles": [], - "writeFunctions": [], - "abi": [] -} \ No newline at end of file diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json new file mode 100644 index 0000000..5da881c --- /dev/null +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json @@ -0,0 +1,565 @@ +{ + "name": "Subscription Eligibility (Unlock Protocol V14)", + "details": [ + "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", + "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", + "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." + ], + "links": [ + { + "label": "GitHub", + "link": "https://github.com/Hats-Protocol/unlock-eligibility" + } + ], + "parameters": [ + { + "label": "Referrer", + "functionName": "REFERRER", + "displayType": "address" + }, + { + "label": "Referrer Fee Percentage", + "functionName": "referrerFeePercentage", + "displayType": "uint256" + }, + { + "label": "Lock Contract", + "functionName": "lock", + "displayType": "address" + }, + { + "label": "Price", + "functionName": "keyPurchasePrice", + "displayType": "amountWithDecimals" + }, + { + "label": "Token", + "functionName": "keyPurchaseToken", + "displayType": "token" + }, + { + "label": "Renewal Period", + "functionName": "expirationDuration", + "displayType": "seconds" + }, + { + "label": "Max Purchasers", + "functionName": "maxNumberOfKeys", + "displayType": "default" + } + ], + "type": { + "eligibility": true, + "toggle": false, + "hatter": true + }, + "tags": ["version: 0.1.0"], + "implementationAddress": "0xA235F37A5e98980Ee439deB0600F06d956707D61", + "deployments": [ + { + "chainId": "11155111", + "block": "6678414" + } + ], + "creationArgs": { + "useHatId": true, + "immutable": [], + "mutable": [ + { + "name": "Subscription Period", + "description": "How often a payment must be made to keep the hat", + "type": "uint256", + "example": "2592000", + "displayType": "seconds" + }, + { + "name": "Payment Token", + "description": "The token used to make payments", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "token" + }, + { + "name": "Subscription Price", + "description": "The price of a payment for a single subscription period", + "type": "uint256", + "example": "5000000000000000000", + "displayType": "amountWithDecimals" + }, + { + "name": "Max Subscribers", + "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", + "type": "uint256", + "example": "100", + "displayType": "default" + }, + { + "name": "Lock Manager", + "description": "The manager of the lock contract, who can modify many of the lock's settings.", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "address" + }, + { + "name": "Lock Name", + "description": "The name of the lock NFT. Suggested to include the name of this hat.", + "type": "string", + "example": "My Hat Lock", + "displayType": "default" + } + ] + }, + "customRoles": [], + "writeFunctions": [], + "abi": [ + [ + { + "inputs": [ + { + "internalType": "string", + "name": "_version", + "type": "string" + }, + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + }, + { + "internalType": "address", + "name": "_referrer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "HatMintFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidReferrerFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotLock", + "type": "error" + }, + { + "inputs": [], + "name": "NotReferrer", + "type": "error" + }, + { + "inputs": [], + "name": "NotTransferable", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNetwork", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { + "internalType": "contract IHats", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wearer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getWearerStatus", + "outputs": [ + { + "internalType": "bool", + "name": "eligible", + "type": "bool" + }, + { + "internalType": "bool", + "name": "standing", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "minKeyPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_initData", + "type": "bytes" + } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + ] +} From 95135bc59623fb0d862beb544904113939290b8c Mon Sep 17 00:00:00 2001 From: spengrah Date: Thu, 12 Sep 2024 16:28:30 -0500 Subject: [PATCH 10/20] add id and version properties --- ...ic-lock-v14-eligibility-hatter_v0.1.0.json | 904 +++++++++--------- 1 file changed, 452 insertions(+), 452 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json index 5da881c..73b9d52 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json @@ -1,5 +1,7 @@ { - "name": "Subscription Eligibility (Unlock Protocol V14)", + "id": "haberdasher-labs_public-lock-v14-eligibility-hatter", + "version": "v0.1.0", + "name": "Subscription Eligibility — Unlock Protocol V14", "details": [ "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", @@ -53,7 +55,7 @@ "toggle": false, "hatter": true }, - "tags": ["version: 0.1.0"], + "tags": [], "implementationAddress": "0xA235F37A5e98980Ee439deB0600F06d956707D61", "deployments": [ { @@ -112,454 +114,452 @@ "customRoles": [], "writeFunctions": [], "abi": [ - [ - { - "inputs": [ - { - "internalType": "string", - "name": "_version", - "type": "string" - }, - { - "internalType": "contract IUnlock", - "name": "_unlock", - "type": "address" - }, - { - "internalType": "address", - "name": "_referrer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "__referrerFeePercentage", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "HatMintFailed", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReferrerFee", - "type": "error" - }, - { - "inputs": [], - "name": "NotLock", - "type": "error" - }, - { - "inputs": [], - "name": "NotReferrer", - "type": "error" - }, - { - "inputs": [], - "name": "NotTransferable", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedNetwork", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "referrerFeePercentage", - "type": "uint256" - } - ], - "name": "ImplementationReferrerFeePercentageSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "HATS", - "outputs": [ - { - "internalType": "contract IHats", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "IMPLEMENTATION", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "LOCK_VERSION", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REFERRER", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "expirationDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_wearer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "getWearerStatus", - "outputs": [ - { - "internalType": "bool", - "name": "eligible", - "type": "bool" - }, - { - "internalType": "bool", - "name": "standing", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hatId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "implementationReferrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "keyPurchasePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "minKeyPrice", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchaseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lock", - "outputs": [ - { - "internalType": "contract IPublicLock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxNumberOfKeys", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyPurchase", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyTransfer", - "outputs": [], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "referrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_referrerFeePercentage", - "type": "uint256" - } - ], - "name": "setImplementationReferrerFeePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_initData", - "type": "bytes" - } - ], - "name": "setUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unlock", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlock_", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version_", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ] + { + "inputs": [ + { + "internalType": "string", + "name": "_version", + "type": "string" + }, + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + }, + { + "internalType": "address", + "name": "_referrer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "HatMintFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidReferrerFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotLock", + "type": "error" + }, + { + "inputs": [], + "name": "NotReferrer", + "type": "error" + }, + { + "inputs": [], + "name": "NotTransferable", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNetwork", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { + "internalType": "contract IHats", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wearer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getWearerStatus", + "outputs": [ + { + "internalType": "bool", + "name": "eligible", + "type": "bool" + }, + { + "internalType": "bool", + "name": "standing", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "minKeyPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_initData", + "type": "bytes" + } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } ] -} +} \ No newline at end of file From e43115f80f04c587fb00d9315db970b36f9925a1 Mon Sep 17 00:00:00 2001 From: spengrah Date: Thu, 12 Sep 2024 16:29:24 -0500 Subject: [PATCH 11/20] fmt --- ...erdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json index 73b9d52..4762914 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json @@ -562,4 +562,4 @@ "type": "function" } ] -} \ No newline at end of file +} From 437de94abf577b377c5bbe0fea411c9f279a8bfa Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 13 Sep 2024 16:44:00 -0500 Subject: [PATCH 12/20] switch away from struct-encoded creation args --- ...sher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json index 4762914..e5dc12c 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json @@ -1,7 +1,7 @@ { "id": "haberdasher-labs_public-lock-v14-eligibility-hatter", "version": "v0.1.0", - "name": "Subscription Eligibility — Unlock Protocol V14", + "name": "Subscription Eligibility (Unlock Protocol V14)", "details": [ "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", @@ -56,11 +56,11 @@ "hatter": true }, "tags": [], - "implementationAddress": "0xA235F37A5e98980Ee439deB0600F06d956707D61", + "implementationAddress": "0x717BfAb137Cd514Eff4753EFad06266083950233", "deployments": [ { "chainId": "11155111", - "block": "6678414" + "block": "6680028" } ], "creationArgs": { From 88c28d761516064ac27470eb30d4e49b5094cdcc Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 13 Sep 2024 17:06:29 -0500 Subject: [PATCH 13/20] new implementation --- ...ic-lock-v14-eligibility-hatter_v0.1.0.json | 433 +++++++++--------- 1 file changed, 223 insertions(+), 210 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json index e5dc12c..c493fc6 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json @@ -56,11 +56,11 @@ "hatter": true }, "tags": [], - "implementationAddress": "0x717BfAb137Cd514Eff4753EFad06266083950233", + "implementationAddress": "0x24C2EAb36d41324688475e25Bbe37559615874bE", "deployments": [ { "chainId": "11155111", - "block": "6680028" + "block": "6686244" } ], "creationArgs": { @@ -78,7 +78,7 @@ "name": "Payment Token", "description": "The token used to make payments", "type": "address", - "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "example": "0xb16f35c0ae2912430dac15764477e179d9b9ebea", "displayType": "token" }, { @@ -115,451 +115,464 @@ "writeFunctions": [], "abi": [ { + "type": "constructor", "inputs": [ { - "internalType": "string", "name": "_version", - "type": "string" + "type": "string", + "internalType": "string" }, { - "internalType": "contract IUnlock", "name": "_unlock", - "type": "address" + "type": "address", + "internalType": "contract IUnlock" }, { - "internalType": "address", "name": "_referrer", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "uint256", "name": "__referrerFeePercentage", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "HatMintFailed", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReferrerFee", - "type": "error" - }, - { - "inputs": [], - "name": "NotLock", - "type": "error" - }, - { - "inputs": [], - "name": "NotReferrer", - "type": "error" + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "NotTransferable", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedNetwork", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "referrerFeePercentage", - "type": "uint256" - } - ], - "name": "ImplementationReferrerFeePercentageSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], + "type": "function", "name": "HATS", + "inputs": [], "outputs": [ { - "internalType": "contract IHats", "name": "", - "type": "address" + "type": "address", + "internalType": "contract IHats" } ], - "stateMutability": "pure", - "type": "function" + "stateMutability": "pure" }, { - "inputs": [], + "type": "function", "name": "IMPLEMENTATION", + "inputs": [], "outputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" } ], - "stateMutability": "pure", - "type": "function" + "stateMutability": "pure" }, { - "inputs": [], + "type": "function", "name": "LOCK_VERSION", + "inputs": [], "outputs": [ { - "internalType": "uint16", "name": "", - "type": "uint16" + "type": "uint16", + "internalType": "uint16" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "REFERRER", + "inputs": [], "outputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "expirationDuration", + "inputs": [], "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "getWearerStatus", "inputs": [ { - "internalType": "address", "name": "_wearer", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "name": "getWearerStatus", "outputs": [ { - "internalType": "bool", "name": "eligible", - "type": "bool" + "type": "bool", + "internalType": "bool" }, { - "internalType": "bool", "name": "standing", - "type": "bool" + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "hatId", + "inputs": [], "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "pure", - "type": "function" + "stateMutability": "pure" }, { - "inputs": [], + "type": "function", "name": "implementationReferrerFeePercentage", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "keyPurchasePrice", + "inputs": [], "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "keyPurchasePrice", "inputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "bytes", "name": "", - "type": "bytes" + "type": "bytes", + "internalType": "bytes" } ], - "name": "keyPurchasePrice", "outputs": [ { - "internalType": "uint256", "name": "minKeyPrice", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "keyPurchaseToken", + "inputs": [], "outputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "lock", + "inputs": [], "outputs": [ { - "internalType": "contract IPublicLock", "name": "", - "type": "address" + "type": "address", + "internalType": "contract IPublicLock" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "maxNumberOfKeys", + "inputs": [], "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "onKeyPurchase", "inputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "recipient", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "bytes", "name": "", - "type": "bytes" + "type": "bytes", + "internalType": "bytes" }, { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" }, { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "name": "onKeyPurchase", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "onKeyTransfer", "inputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "address", "name": "", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "name": "onKeyTransfer", "outputs": [], - "stateMutability": "pure", - "type": "function" + "stateMutability": "pure" }, { - "inputs": [], + "type": "function", "name": "referrerFeePercentage", + "inputs": [], "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "setImplementationReferrerFeePercentage", "inputs": [ { - "internalType": "uint256", "name": "_referrerFeePercentage", - "type": "uint256" + "type": "uint256", + "internalType": "uint256" } ], - "name": "setImplementationReferrerFeePercentage", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "setUp", "inputs": [ { - "internalType": "bytes", "name": "_initData", - "type": "bytes" + "type": "bytes", + "internalType": "bytes" } ], - "name": "setUp", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { - "inputs": [], + "type": "function", "name": "unlock", + "inputs": [], "outputs": [ { - "internalType": "contract IUnlock", "name": "", - "type": "address" + "type": "address", + "internalType": "contract IUnlock" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "unlock_", + "inputs": [], "outputs": [ { - "internalType": "contract IUnlock", "name": "", - "type": "address" + "type": "address", + "internalType": "contract IUnlock" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "version", + "inputs": [], "outputs": [ { - "internalType": "string", "name": "", - "type": "string" + "type": "string", + "internalType": "string" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], + "type": "function", "name": "version_", + "inputs": [], "outputs": [ { - "internalType": "string", "name": "", - "type": "string" + "type": "string", + "internalType": "string" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" + }, + { + "type": "event", + "name": "ImplementationReferrerFeePercentageSet", + "inputs": [ + { + "name": "referrerFeePercentage", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "HatMintFailed", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidReferrerFee", + "inputs": [] + }, + { + "type": "error", + "name": "NotLock", + "inputs": [] + }, + { + "type": "error", + "name": "NotReferrer", + "inputs": [] + }, + { + "type": "error", + "name": "NotTransferable", + "inputs": [] + }, + { + "type": "error", + "name": "UnsupportedNetwork", + "inputs": [] } ] } From 3c55d310a76f99c4956d1277d988e878c48f2181 Mon Sep 17 00:00:00 2001 From: spengrah Date: Fri, 13 Sep 2024 17:30:04 -0500 Subject: [PATCH 14/20] update to v0.1.1 --- ...rdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename modules/{haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json => haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json} (99%) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json similarity index 99% rename from modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json rename to modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json index c493fc6..3211ed2 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.0.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json @@ -1,6 +1,6 @@ { "id": "haberdasher-labs_public-lock-v14-eligibility-hatter", - "version": "v0.1.0", + "version": "v0.1.1", "name": "Subscription Eligibility (Unlock Protocol V14)", "details": [ "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", From 55da0fcda33e424bfa3fecec00fec5e5e718dff0 Mon Sep 17 00:00:00 2001 From: spengrah Date: Sat, 14 Sep 2024 11:13:01 -0500 Subject: [PATCH 15/20] copy abi from etherscan --- ...ic-lock-v14-eligibility-hatter_v0.1.1.json | 922 +++++++++--------- 1 file changed, 462 insertions(+), 460 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json index 3211ed2..44d255f 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json @@ -114,465 +114,467 @@ "customRoles": [], "writeFunctions": [], "abi": [ - { - "type": "constructor", - "inputs": [ - { - "name": "_version", - "type": "string", - "internalType": "string" - }, - { - "name": "_unlock", - "type": "address", - "internalType": "contract IUnlock" - }, - { - "name": "_referrer", - "type": "address", - "internalType": "address" - }, - { - "name": "__referrerFeePercentage", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "HATS", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract IHats" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "IMPLEMENTATION", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "LOCK_VERSION", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint16", - "internalType": "uint16" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "REFERRER", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "expirationDuration", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getWearerStatus", - "inputs": [ - { - "name": "_wearer", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "eligible", - "type": "bool", - "internalType": "bool" - }, - { - "name": "standing", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "hatId", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "implementationReferrerFeePercentage", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "keyPurchasePrice", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "keyPurchasePrice", - "inputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "minKeyPrice", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "keyPurchaseToken", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "lock", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract IPublicLock" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "maxNumberOfKeys", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "onKeyPurchase", - "inputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "recipient", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "onKeyTransfer", - "inputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "referrerFeePercentage", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "setImplementationReferrerFeePercentage", - "inputs": [ - { - "name": "_referrerFeePercentage", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "setUp", - "inputs": [ - { - "name": "_initData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "unlock", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract IUnlock" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "unlock_", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "address", - "internalType": "contract IUnlock" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "string", - "internalType": "string" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "version_", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "string", - "internalType": "string" - } - ], - "stateMutability": "view" - }, - { - "type": "event", - "name": "ImplementationReferrerFeePercentageSet", - "inputs": [ - { - "name": "referrerFeePercentage", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Initialized", - "inputs": [ - { - "name": "version", - "type": "uint8", - "indexed": false, - "internalType": "uint8" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "HatMintFailed", - "inputs": [] - }, - { - "type": "error", - "name": "InvalidReferrerFee", - "inputs": [] - }, - { - "type": "error", - "name": "NotLock", - "inputs": [] - }, - { - "type": "error", - "name": "NotReferrer", - "inputs": [] - }, - { - "type": "error", - "name": "NotTransferable", - "inputs": [] - }, - { - "type": "error", - "name": "UnsupportedNetwork", - "inputs": [] - } + [ + { + "inputs": [ + { + "internalType": "string", + "name": "_version", + "type": "string" + }, + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + }, + { + "internalType": "address", + "name": "_referrer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "HatMintFailed", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidReferrerFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotLock", + "type": "error" + }, + { + "inputs": [], + "name": "NotReferrer", + "type": "error" + }, + { + "inputs": [], + "name": "NotTransferable", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNetwork", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { + "internalType": "contract IHats", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wearer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getWearerStatus", + "outputs": [ + { + "internalType": "bool", + "name": "eligible", + "type": "bool" + }, + { + "internalType": "bool", + "name": "standing", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "minKeyPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_initData", + "type": "bytes" + } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ] ] } From 5e89eaf48e44b9e7f217ed2bdeb2dde0b2b5eacb Mon Sep 17 00:00:00 2001 From: Ido Date: Sat, 14 Sep 2024 19:33:24 +0300 Subject: [PATCH 16/20] copy abi from etherscan --- ...ic-lock-v14-eligibility-hatter_v0.1.1.json | 714 +++++++----------- 1 file changed, 252 insertions(+), 462 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json index 44d255f..b4eb1a6 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json @@ -114,467 +114,257 @@ "customRoles": [], "writeFunctions": [], "abi": [ - [ - { - "inputs": [ - { - "internalType": "string", - "name": "_version", - "type": "string" - }, - { - "internalType": "contract IUnlock", - "name": "_unlock", - "type": "address" - }, - { - "internalType": "address", - "name": "_referrer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "__referrerFeePercentage", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "HatMintFailed", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReferrerFee", - "type": "error" - }, - { - "inputs": [], - "name": "NotLock", - "type": "error" - }, - { - "inputs": [], - "name": "NotReferrer", - "type": "error" - }, - { - "inputs": [], - "name": "NotTransferable", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedNetwork", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "referrerFeePercentage", - "type": "uint256" - } - ], - "name": "ImplementationReferrerFeePercentageSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "HATS", - "outputs": [ - { - "internalType": "contract IHats", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "IMPLEMENTATION", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "LOCK_VERSION", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REFERRER", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "expirationDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_wearer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "getWearerStatus", - "outputs": [ - { - "internalType": "bool", - "name": "eligible", - "type": "bool" - }, - { - "internalType": "bool", - "name": "standing", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hatId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "implementationReferrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchasePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "keyPurchasePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "minKeyPrice", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchaseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lock", - "outputs": [ - { - "internalType": "contract IPublicLock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxNumberOfKeys", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyPurchase", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyTransfer", - "outputs": [], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "referrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_referrerFeePercentage", - "type": "uint256" - } - ], - "name": "setImplementationReferrerFeePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_initData", - "type": "bytes" - } - ], - "name": "setUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unlock", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlock_", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version_", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ] + { + "inputs": [ + { "internalType": "string", "name": "_version", "type": "string" }, + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + }, + { "internalType": "address", "name": "_referrer", "type": "address" }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { "inputs": [], "name": "HatMintFailed", "type": "error" }, + { "inputs": [], "name": "InvalidReferrerFee", "type": "error" }, + { "inputs": [], "name": "NotLock", "type": "error" }, + { "inputs": [], "name": "NotReferrer", "type": "error" }, + { "inputs": [], "name": "NotTransferable", "type": "error" }, + { "inputs": [], "name": "UnsupportedNetwork", "type": "error" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { "internalType": "contract IHats", "name": "", "type": "address" } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "_wearer", "type": "address" }, + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "name": "getWearerStatus", + "outputs": [ + { "internalType": "bool", "name": "eligible", "type": "bool" }, + { "internalType": "bool", "name": "standing", "type": "bool" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchasePrice", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "bytes", "name": "", "type": "bytes" } + ], + "name": "keyPurchasePrice", + "outputs": [ + { "internalType": "uint256", "name": "minKeyPrice", "type": "uint256" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "recipient", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "bytes", "name": "", "type": "bytes" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "uint256", "name": "", "type": "uint256" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "address", "name": "", "type": "address" }, + { "internalType": "uint256", "name": "", "type": "uint256" } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes", "name": "_initData", "type": "bytes" } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { "internalType": "contract IUnlock", "name": "", "type": "address" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { "internalType": "contract IUnlock", "name": "", "type": "address" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [{ "internalType": "string", "name": "", "type": "string" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [{ "internalType": "string", "name": "", "type": "string" }], + "stateMutability": "view", + "type": "function" + } ] } From 075e3cf9fa4c61e896d5e7e7d0e7300fcf21561d Mon Sep 17 00:00:00 2001 From: spengrah Date: Sun, 15 Sep 2024 19:00:29 -0500 Subject: [PATCH 17/20] new implementation and deployments to more chains --- ...ic-lock-v14-eligibility-hatter_v0.1.1.json | 765 ++++++++++++------ 1 file changed, 511 insertions(+), 254 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json index b4eb1a6..09f688a 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json @@ -56,11 +56,35 @@ "hatter": true }, "tags": [], - "implementationAddress": "0x24C2EAb36d41324688475e25Bbe37559615874bE", + "implementationAddress": "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637", "deployments": [ { "chainId": "11155111", - "block": "6686244" + "block": "6699345" + }, + { + "chainId": "10", + "block": "125422530" + }, + { + "chainId": "137", + "block": "61873232" + }, + { + "chainId": "42161", + "block": "253931725" + }, + { + "chainId": "100", + "block": "36021503" + }, + { + "chainId": "8453", + "block": "19827469" + }, + { + "chainId": "42220", + "block": "" } ], "creationArgs": { @@ -114,257 +138,490 @@ "customRoles": [], "writeFunctions": [], "abi": [ - { - "inputs": [ - { "internalType": "string", "name": "_version", "type": "string" }, - { - "internalType": "contract IUnlock", - "name": "_unlock", - "type": "address" - }, - { "internalType": "address", "name": "_referrer", "type": "address" }, - { - "internalType": "uint256", - "name": "__referrerFeePercentage", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { "inputs": [], "name": "HatMintFailed", "type": "error" }, - { "inputs": [], "name": "InvalidReferrerFee", "type": "error" }, - { "inputs": [], "name": "NotLock", "type": "error" }, - { "inputs": [], "name": "NotReferrer", "type": "error" }, - { "inputs": [], "name": "NotTransferable", "type": "error" }, - { "inputs": [], "name": "UnsupportedNetwork", "type": "error" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "referrerFeePercentage", - "type": "uint256" - } - ], - "name": "ImplementationReferrerFeePercentageSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "HATS", - "outputs": [ - { "internalType": "contract IHats", "name": "", "type": "address" } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "IMPLEMENTATION", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "LOCK_VERSION", - "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REFERRER", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "expirationDuration", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "_wearer", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "getWearerStatus", - "outputs": [ - { "internalType": "bool", "name": "eligible", "type": "bool" }, - { "internalType": "bool", "name": "standing", "type": "bool" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hatId", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "implementationReferrerFeePercentage", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchasePrice", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "name": "keyPurchasePrice", - "outputs": [ - { "internalType": "uint256", "name": "minKeyPrice", "type": "uint256" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchaseToken", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lock", - "outputs": [ - { - "internalType": "contract IPublicLock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxNumberOfKeys", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes", "name": "", "type": "bytes" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "onKeyPurchase", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "onKeyTransfer", - "outputs": [], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "referrerFeePercentage", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_referrerFeePercentage", - "type": "uint256" - } - ], - "name": "setImplementationReferrerFeePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes", "name": "_initData", "type": "bytes" } - ], - "name": "setUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unlock", - "outputs": [ - { "internalType": "contract IUnlock", "name": "", "type": "address" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlock_", - "outputs": [ - { "internalType": "contract IUnlock", "name": "", "type": "address" } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version_", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "stateMutability": "view", - "type": "function" - } + [ + { + "inputs": [ + { + "internalType": "string", + "name": "_version", + "type": "string" + }, + { + "internalType": "address", + "name": "_referrer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + }, + { + "internalType": "address", + "name": "__initializer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "HatMintFailed", + "type": "error" + }, + { + "inputs": [], + "name": "ImplementationAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidReferrerFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializer", + "type": "error" + }, + { + "inputs": [], + "name": "NotLock", + "type": "error" + }, + { + "inputs": [], + "name": "NotReferrer", + "type": "error" + }, + { + "inputs": [], + "name": "NotTransferable", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNetwork", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { + "internalType": "contract IHats", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wearer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getWearerStatus", + "outputs": [ + { + "internalType": "bool", + "name": "eligible", + "type": "bool" + }, + { + "internalType": "bool", + "name": "standing", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "minKeyPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + } + ], + "name": "setUnlock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_initData", + "type": "bytes" + } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ] ] } From 28ac48ad66a1055f99f77fd321202b3e79d81d8a Mon Sep 17 00:00:00 2001 From: spengrah Date: Sun, 15 Sep 2024 19:14:04 -0500 Subject: [PATCH 18/20] update version --- ...ic-lock-v14-eligibility-hatter_v0.1.1.json | 627 ------------------ ...ic-lock-v14-eligibility-hatter_v0.1.2.json | 625 +++++++++++++++++ 2 files changed, 625 insertions(+), 627 deletions(-) delete mode 100644 modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json create mode 100644 modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json deleted file mode 100644 index 09f688a..0000000 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.1.json +++ /dev/null @@ -1,627 +0,0 @@ -{ - "id": "haberdasher-labs_public-lock-v14-eligibility-hatter", - "version": "v0.1.1", - "name": "Subscription Eligibility (Unlock Protocol V14)", - "details": [ - "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", - "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", - "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." - ], - "links": [ - { - "label": "GitHub", - "link": "https://github.com/Hats-Protocol/unlock-eligibility" - } - ], - "parameters": [ - { - "label": "Referrer", - "functionName": "REFERRER", - "displayType": "address" - }, - { - "label": "Referrer Fee Percentage", - "functionName": "referrerFeePercentage", - "displayType": "uint256" - }, - { - "label": "Lock Contract", - "functionName": "lock", - "displayType": "address" - }, - { - "label": "Price", - "functionName": "keyPurchasePrice", - "displayType": "amountWithDecimals" - }, - { - "label": "Token", - "functionName": "keyPurchaseToken", - "displayType": "token" - }, - { - "label": "Renewal Period", - "functionName": "expirationDuration", - "displayType": "seconds" - }, - { - "label": "Max Purchasers", - "functionName": "maxNumberOfKeys", - "displayType": "default" - } - ], - "type": { - "eligibility": true, - "toggle": false, - "hatter": true - }, - "tags": [], - "implementationAddress": "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637", - "deployments": [ - { - "chainId": "11155111", - "block": "6699345" - }, - { - "chainId": "10", - "block": "125422530" - }, - { - "chainId": "137", - "block": "61873232" - }, - { - "chainId": "42161", - "block": "253931725" - }, - { - "chainId": "100", - "block": "36021503" - }, - { - "chainId": "8453", - "block": "19827469" - }, - { - "chainId": "42220", - "block": "" - } - ], - "creationArgs": { - "useHatId": true, - "immutable": [], - "mutable": [ - { - "name": "Subscription Period", - "description": "How often a payment must be made to keep the hat", - "type": "uint256", - "example": "2592000", - "displayType": "seconds" - }, - { - "name": "Payment Token", - "description": "The token used to make payments", - "type": "address", - "example": "0xb16f35c0ae2912430dac15764477e179d9b9ebea", - "displayType": "token" - }, - { - "name": "Subscription Price", - "description": "The price of a payment for a single subscription period", - "type": "uint256", - "example": "5000000000000000000", - "displayType": "amountWithDecimals" - }, - { - "name": "Max Subscribers", - "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", - "type": "uint256", - "example": "100", - "displayType": "default" - }, - { - "name": "Lock Manager", - "description": "The manager of the lock contract, who can modify many of the lock's settings.", - "type": "address", - "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", - "displayType": "address" - }, - { - "name": "Lock Name", - "description": "The name of the lock NFT. Suggested to include the name of this hat.", - "type": "string", - "example": "My Hat Lock", - "displayType": "default" - } - ] - }, - "customRoles": [], - "writeFunctions": [], - "abi": [ - [ - { - "inputs": [ - { - "internalType": "string", - "name": "_version", - "type": "string" - }, - { - "internalType": "address", - "name": "_referrer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "__referrerFeePercentage", - "type": "uint256" - }, - { - "internalType": "address", - "name": "__initializer", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "HatMintFailed", - "type": "error" - }, - { - "inputs": [], - "name": "ImplementationAlreadyInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReferrerFee", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializer", - "type": "error" - }, - { - "inputs": [], - "name": "NotLock", - "type": "error" - }, - { - "inputs": [], - "name": "NotReferrer", - "type": "error" - }, - { - "inputs": [], - "name": "NotTransferable", - "type": "error" - }, - { - "inputs": [], - "name": "UnsupportedNetwork", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "referrerFeePercentage", - "type": "uint256" - } - ], - "name": "ImplementationReferrerFeePercentageSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "HATS", - "outputs": [ - { - "internalType": "contract IHats", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "IMPLEMENTATION", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "LOCK_VERSION", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REFERRER", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "expirationDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_wearer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "getWearerStatus", - "outputs": [ - { - "internalType": "bool", - "name": "eligible", - "type": "bool" - }, - { - "internalType": "bool", - "name": "standing", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hatId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "implementationReferrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchasePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "keyPurchasePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "minKeyPrice", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "keyPurchaseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lock", - "outputs": [ - { - "internalType": "contract IPublicLock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxNumberOfKeys", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyPurchase", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "onKeyTransfer", - "outputs": [], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "referrerFeePercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_referrerFeePercentage", - "type": "uint256" - } - ], - "name": "setImplementationReferrerFeePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IUnlock", - "name": "_unlock", - "type": "address" - } - ], - "name": "setUnlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_initData", - "type": "bytes" - } - ], - "name": "setUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unlock", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlock_", - "outputs": [ - { - "internalType": "contract IUnlock", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version_", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ] - ] -} diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json new file mode 100644 index 0000000..6c32282 --- /dev/null +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json @@ -0,0 +1,625 @@ +{ + "id": "haberdasher-labs_public-lock-v14-eligibility-hatter", + "version": "v0.1.2", + "name": "Subscription Eligibility (Unlock Protocol V14)", + "details": [ + "This module adds a subscription requirement to a hat. Wearers must make a recurring payment to keep the hat.", + "This module is powered by Unlock Protocol. Deploying this module will also create a new lock contract (Public Lock version 14), and will automatically mint a hat to the recipient of a newly purchased key. The wearer will remain eligible as long as their subscription is active.", + "To work properly, this module must be set as the eligibility module for the target hat and wear one of the target hat's admin hats." + ], + "links": [ + { + "label": "GitHub", + "link": "https://github.com/Hats-Protocol/unlock-eligibility" + } + ], + "parameters": [ + { + "label": "Referrer", + "functionName": "REFERRER", + "displayType": "address" + }, + { + "label": "Referrer Fee Percentage", + "functionName": "referrerFeePercentage", + "displayType": "uint256" + }, + { + "label": "Lock Contract", + "functionName": "lock", + "displayType": "address" + }, + { + "label": "Price", + "functionName": "keyPurchasePrice", + "displayType": "amountWithDecimals" + }, + { + "label": "Token", + "functionName": "keyPurchaseToken", + "displayType": "token" + }, + { + "label": "Renewal Period", + "functionName": "expirationDuration", + "displayType": "seconds" + }, + { + "label": "Max Purchasers", + "functionName": "maxNumberOfKeys", + "displayType": "default" + } + ], + "type": { + "eligibility": true, + "toggle": false, + "hatter": true + }, + "tags": [], + "implementationAddress": "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637", + "deployments": [ + { + "chainId": "11155111", + "block": "6699345" + }, + { + "chainId": "10", + "block": "125422530" + }, + { + "chainId": "137", + "block": "61873232" + }, + { + "chainId": "42161", + "block": "253931725" + }, + { + "chainId": "100", + "block": "36021503" + }, + { + "chainId": "8453", + "block": "19827469" + }, + { + "chainId": "42220", + "block": "" + } + ], + "creationArgs": { + "useHatId": true, + "immutable": [], + "mutable": [ + { + "name": "Subscription Period", + "description": "How often a payment must be made to keep the hat", + "type": "uint256", + "example": "2592000", + "displayType": "seconds" + }, + { + "name": "Payment Token", + "description": "The token used to make payments", + "type": "address", + "example": "0xb16f35c0ae2912430dac15764477e179d9b9ebea", + "displayType": "token" + }, + { + "name": "Subscription Price", + "description": "The price of a payment for a single subscription period", + "type": "uint256", + "example": "5000000000000000000", + "displayType": "amountWithDecimals" + }, + { + "name": "Max Subscribers", + "description": "The maximum number of addresses that can pay for this hat. Suggested greater than or equal to the max wearers for this hat.", + "type": "uint256", + "example": "100", + "displayType": "default" + }, + { + "name": "Lock Manager", + "description": "The manager of the lock contract, who can modify many of the lock's settings.", + "type": "address", + "example": "0x1d256A1154382921067d4B17CA52209f2d3bE106", + "displayType": "address" + }, + { + "name": "Lock Name", + "description": "The name of the lock NFT. Suggested to include the name of this hat.", + "type": "string", + "example": "My Hat Lock", + "displayType": "default" + } + ] + }, + "customRoles": [], + "writeFunctions": [], + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_version", + "type": "string" + }, + { + "internalType": "address", + "name": "_referrer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "__referrerFeePercentage", + "type": "uint256" + }, + { + "internalType": "address", + "name": "__initializer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "HatMintFailed", + "type": "error" + }, + { + "inputs": [], + "name": "ImplementationAlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidReferrerFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializer", + "type": "error" + }, + { + "inputs": [], + "name": "NotLock", + "type": "error" + }, + { + "inputs": [], + "name": "NotReferrer", + "type": "error" + }, + { + "inputs": [], + "name": "NotTransferable", + "type": "error" + }, + { + "inputs": [], + "name": "UnsupportedNetwork", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "referrerFeePercentage", + "type": "uint256" + } + ], + "name": "ImplementationReferrerFeePercentageSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "HATS", + "outputs": [ + { + "internalType": "contract IHats", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "IMPLEMENTATION", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "LOCK_VERSION", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFERRER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "expirationDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_wearer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getWearerStatus", + "outputs": [ + { + "internalType": "bool", + "name": "eligible", + "type": "bool" + }, + { + "internalType": "bool", + "name": "standing", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "hatId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "implementationReferrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "keyPurchasePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "minKeyPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "keyPurchaseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lock", + "outputs": [ + { + "internalType": "contract IPublicLock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxNumberOfKeys", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyPurchase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "onKeyTransfer", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "referrerFeePercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_referrerFeePercentage", + "type": "uint256" + } + ], + "name": "setImplementationReferrerFeePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IUnlock", + "name": "_unlock", + "type": "address" + } + ], + "name": "setUnlock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_initData", + "type": "bytes" + } + ], + "name": "setUp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unlock", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlock_", + "outputs": [ + { + "internalType": "contract IUnlock", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version_", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ] +} From 134ef87bea3ef4e4e2404d8aec0d4b27ad5c9520 Mon Sep 17 00:00:00 2001 From: Ido Date: Tue, 17 Sep 2024 11:24:06 +0300 Subject: [PATCH 19/20] test module only on sepolia --- test/arbitrumDeployments.test.ts | 9 +++++++++ test/baseDeployments.test.ts | 9 +++++++++ test/celoDeployments.test.ts | 9 +++++++++ test/gnosisDeployments.test.ts | 9 +++++++++ test/mainnetDeployments.test.ts | 9 +++++++++ test/optimismDeployments.test.ts | 9 +++++++++ test/polygonDeployments.test.ts | 9 +++++++++ 7 files changed, 63 insertions(+) diff --git a/test/arbitrumDeployments.test.ts b/test/arbitrumDeployments.test.ts index d80aeed..caf7364 100644 --- a/test/arbitrumDeployments.test.ts +++ b/test/arbitrumDeployments.test.ts @@ -69,6 +69,15 @@ describe("Arbitrum deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnArbitrum = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/baseDeployments.test.ts b/test/baseDeployments.test.ts index 0d3f987..ea1aeea 100644 --- a/test/baseDeployments.test.ts +++ b/test/baseDeployments.test.ts @@ -69,6 +69,15 @@ describe("Base deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnBase = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/celoDeployments.test.ts b/test/celoDeployments.test.ts index 7b3e251..4da3002 100644 --- a/test/celoDeployments.test.ts +++ b/test/celoDeployments.test.ts @@ -69,6 +69,15 @@ describe("Celo deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnCelo = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/gnosisDeployments.test.ts b/test/gnosisDeployments.test.ts index 8d8c603..a7bcfb7 100644 --- a/test/gnosisDeployments.test.ts +++ b/test/gnosisDeployments.test.ts @@ -69,6 +69,15 @@ describe("Gnosis deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnGnosis = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/mainnetDeployments.test.ts b/test/mainnetDeployments.test.ts index c059b72..c9efae7 100644 --- a/test/mainnetDeployments.test.ts +++ b/test/mainnetDeployments.test.ts @@ -69,6 +69,15 @@ describe("Mainnet deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnMainnet = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/optimismDeployments.test.ts b/test/optimismDeployments.test.ts index 9dbec8d..4564da4 100644 --- a/test/optimismDeployments.test.ts +++ b/test/optimismDeployments.test.ts @@ -69,6 +69,15 @@ describe("Optimism deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnOptimism = false; for (let i = 0; i < module.deployments.length; i++) { diff --git a/test/polygonDeployments.test.ts b/test/polygonDeployments.test.ts index 584b3a0..b832067 100644 --- a/test/polygonDeployments.test.ts +++ b/test/polygonDeployments.test.ts @@ -69,6 +69,15 @@ describe("Polygon deployments", () => { if (module.name === "JokeRace Eligibility") { continue; } + + // the unlock module has dependencies on other external contracts + if ( + module.implementationAddress === + "0x4c7803041851f7a17Fc6b5Ff5c911FC748160637" + ) { + continue; + } + // check if module is deployed on goerli. If not, then skip let isOnPolygon = false; for (let i = 0; i < module.deployments.length; i++) { From 4caabe144ae17e24a2c513eb9a2defe3a61debfd Mon Sep 17 00:00:00 2001 From: spengrah Date: Tue, 17 Sep 2024 15:24:00 -0500 Subject: [PATCH 20/20] use default displayType & add Celo block number --- ...er-labs_public-lock-v14-eligibility-hatter_v0.1.2.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json index 6c32282..18b4026 100644 --- a/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json +++ b/modules/haberdasher-labs_public-lock-v14-eligibility-hatter_v0.1.2.json @@ -17,17 +17,17 @@ { "label": "Referrer", "functionName": "REFERRER", - "displayType": "address" + "displayType": "default" }, { "label": "Referrer Fee Percentage", "functionName": "referrerFeePercentage", - "displayType": "uint256" + "displayType": "default" }, { "label": "Lock Contract", "functionName": "lock", - "displayType": "address" + "displayType": "default" }, { "label": "Price", @@ -84,7 +84,7 @@ }, { "chainId": "42220", - "block": "" + "block": "27754441" } ], "creationArgs": {