From 3ec863fecba8ef6a113cb578c22435c8d1fb50dc Mon Sep 17 00:00:00 2001 From: Jeffrey Doyle Date: Tue, 29 Aug 2023 13:41:43 -0700 Subject: [PATCH 1/6] Adds FCW project grants --- projects/flow-core-wallet/README.md | 13 +++++++ .../flow-core-wallet/on-chain-recovery.md | 35 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 projects/flow-core-wallet/README.md create mode 100644 projects/flow-core-wallet/on-chain-recovery.md diff --git a/projects/flow-core-wallet/README.md b/projects/flow-core-wallet/README.md new file mode 100644 index 0000000..dca2f5b --- /dev/null +++ b/projects/flow-core-wallet/README.md @@ -0,0 +1,13 @@ +# Flow Core Wallet - Grants + +# Overview + +Flow Core Wallet is an open ecosystem wallet on Flow, as such, it aims to encourage a variety of contributions from interested developers. + +The following projects are available for developers to submit grant proposals to implement. + +## Available Grant Projects + +| Grant | Link | +| --------------------------------------------------- | ---- | +| On Chain Account Recovery | https://www.github.com/onflow/developer-grants/blob/main/projects/flow-core-wallet/on-chain-recovery.md | diff --git a/projects/flow-core-wallet/on-chain-recovery.md b/projects/flow-core-wallet/on-chain-recovery.md new file mode 100644 index 0000000..50d3e7f --- /dev/null +++ b/projects/flow-core-wallet/on-chain-recovery.md @@ -0,0 +1,35 @@ +# Flow Core Wallet - On Chain Recovery + +# Description + +A user may wish to configure their account with an on-chain recovery mechanism in order to regain access to their account in the event they lose access to one of their account keys. + +There should be the possibility for many varying types of account recovery mechanisms to exist. These mechanisms should have their own individual logic for how they facilitate account recovery. For example, a recovery mechanic could be, but are not limited to: + +- Allow a user to set a new key to an account if the account’s Flow balance falls below a set amount. +- Allow a user to set a new key to an account if a set group of authorized accounts successfully vote to set a new key to the account. +- Allow a user to set a new key to an account if the account has not signed a transaction for a specified number of blocks. + +A user of Flow Core Wallet should choose which account recovery mechanism they may wish to configure their account with, and that account recovery mechanism should be invocable from within Flow Core Wallet. All recovery mechanisms should conform to the same interface so they can consistently be executed. As an example, here is an example interface that could work: + +https://github.com/JeffreyDoyle/flow-account-recovery/blob/main/cadence/contracts/account-recovery.cdc#L1-L8 + +In this case, every recovery mechanism would implement the interface and the recover method. The recovery method consumes a new key to set on the account, along with an opaque data parameter which allows the method to consume additional data required to perform its recovery mechanic. To facilitate the recovery mechanic, the recovery mechanism could additionally implement other methods. + +Here is an example of a base case recovery mechanism, which sets a new key on the account: + +https://github.com/JeffreyDoyle/flow-account-recovery/blob/main/cadence/contracts/basic-account-recovery.cdc + +This toy example would be undesirable to use in practice as it does not require any condition to be met for the new key to be set on the account. + +## Integration + +Flow Core Wallet will need to use the on-chain account recovery mechanism framework to allow users to configure their account with their desired account recovery mechanism, and execute account recovery if the conditions for the mechanism are met within the Flow Core Wallet UI. + +## Impact + +On-chain recovery mechanisms promote safer self-custody options for account management on blockchain. By providing a framework for developers to build their own account recovery mechanics on-chain, that leverage a shared interface, users can choose their desired account recovery mechanisms to configure their account with. + +# Grant Application + +To apply for a developer grant to be compensated for addressing this project, follow the existing grant applicatin process and reference this fea From 75d772cd0fc47b7c6a098b8071d91a49b225479a Mon Sep 17 00:00:00 2001 From: Jeffrey Doyle Date: Tue, 29 Aug 2023 14:06:47 -0700 Subject: [PATCH 2/6] Adds FCW project grants --- projects/flow-core-wallet/README.md | 4 ++-- projects/flow-core-wallet/on-chain-recovery.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/flow-core-wallet/README.md b/projects/flow-core-wallet/README.md index dca2f5b..47cc4c7 100644 --- a/projects/flow-core-wallet/README.md +++ b/projects/flow-core-wallet/README.md @@ -2,9 +2,9 @@ # Overview -Flow Core Wallet is an open ecosystem wallet on Flow, as such, it aims to encourage a variety of contributions from interested developers. +Flow Core Wallet is an open ecosystem wallet on Flow, as such, it aims to encourage a variety of contributions from interested developers! -The following projects are available for developers to submit grant proposals to implement. +The following projects are available for developers to submit grant proposals to implement: ## Available Grant Projects diff --git a/projects/flow-core-wallet/on-chain-recovery.md b/projects/flow-core-wallet/on-chain-recovery.md index 50d3e7f..dceda4f 100644 --- a/projects/flow-core-wallet/on-chain-recovery.md +++ b/projects/flow-core-wallet/on-chain-recovery.md @@ -32,4 +32,4 @@ On-chain recovery mechanisms promote safer self-custody options for account mana # Grant Application -To apply for a developer grant to be compensated for addressing this project, follow the existing grant applicatin process and reference this fea +To apply for a developer grant to be compensated for addressing this project, follow the existing grant applicatin process and reference this project in your application. From 53655e92c7d8281538c326b05e4200e91cafff24 Mon Sep 17 00:00:00 2001 From: Jeffrey Doyle Date: Tue, 29 Aug 2023 14:24:42 -0700 Subject: [PATCH 3/6] Adds FCW project grants --- .../flow-core-wallet/on-chain-recovery.md | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/projects/flow-core-wallet/on-chain-recovery.md b/projects/flow-core-wallet/on-chain-recovery.md index dceda4f..ff40751 100644 --- a/projects/flow-core-wallet/on-chain-recovery.md +++ b/projects/flow-core-wallet/on-chain-recovery.md @@ -4,19 +4,23 @@ A user may wish to configure their account with an on-chain recovery mechanism in order to regain access to their account in the event they lose access to one of their account keys. -There should be the possibility for many varying types of account recovery mechanisms to exist. These mechanisms should have their own individual logic for how they facilitate account recovery. For example, a recovery mechanic could be, but are not limited to: +There should be many varying types of on-chain account recovery mechanisms that exist. These mechanisms should have their own individual logic for how they facilitate account recovery. -- Allow a user to set a new key to an account if the account’s Flow balance falls below a set amount. -- Allow a user to set a new key to an account if a set group of authorized accounts successfully vote to set a new key to the account. -- Allow a user to set a new key to an account if the account has not signed a transaction for a specified number of blocks. +For example, recovery mechanics could be, but are not limited to: -A user of Flow Core Wallet should choose which account recovery mechanism they may wish to configure their account with, and that account recovery mechanism should be invocable from within Flow Core Wallet. All recovery mechanisms should conform to the same interface so they can consistently be executed. As an example, here is an example interface that could work: +- Allow a user to configure a new key on their account if the account’s Flow balance falls below a set amount. +- Allow a user to configure a new key on their account if a predefined group of other accounts successfully vote to configure a new key on the account. +- Allow a user to configure a new key on their account if the account has not signed a transaction for a specified number of blocks. + +A user should choose which account recovery mechanisms they may wish to enable on their account. The chosen account recovery mechanisms should be invocable from within the users wallet. All recovery mechanisms should conform to the same interface so they can be executed consistently. + +As an example, here is a possible on-chain interface that each on-chain recovery mechanic could implement: https://github.com/JeffreyDoyle/flow-account-recovery/blob/main/cadence/contracts/account-recovery.cdc#L1-L8 -In this case, every recovery mechanism would implement the interface and the recover method. The recovery method consumes a new key to set on the account, along with an opaque data parameter which allows the method to consume additional data required to perform its recovery mechanic. To facilitate the recovery mechanic, the recovery mechanism could additionally implement other methods. +Every recovery mechanism would implement the interface, and the specified recover method. The recovery method consumes a new key to configure on the account, along with an opaque data parameter which allows the method to consume additional data required to perform its specific recovery mechanic. Each recovery mechanism could implement additional methods beyond those specified in the interface to help them perform their individual mechanics. -Here is an example of a base case recovery mechanism, which sets a new key on the account: +Here is a toy example of a base-case account recovery mechanism, which configures a new key on the account: https://github.com/JeffreyDoyle/flow-account-recovery/blob/main/cadence/contracts/basic-account-recovery.cdc @@ -24,11 +28,13 @@ This toy example would be undesirable to use in practice as it does not require ## Integration -Flow Core Wallet will need to use the on-chain account recovery mechanism framework to allow users to configure their account with their desired account recovery mechanism, and execute account recovery if the conditions for the mechanism are met within the Flow Core Wallet UI. +The on-chain account recovery framework will need to be created, along with several on-chain account mechanisms that implement a variety of account recovery possibilities. + +Flow Core Wallet will need to use the on-chain account recovery framework to allow users to configure their account with their desired account recovery mechanisms. Users will need to be able to perform account recovery if the conditions for their account recovery mechanisms are met within Flow Core Wallet. ## Impact -On-chain recovery mechanisms promote safer self-custody options for account management on blockchain. By providing a framework for developers to build their own account recovery mechanics on-chain, that leverage a shared interface, users can choose their desired account recovery mechanisms to configure their account with. +On-chain recovery mechanisms will promote safer self-custody of user assets on Flow. By providing a framework for developers to build their own account on-chain recovery mechanisms, that all implement a shared interface, users can choose their desired account recovery mechanisms to configure their account with all within their wallet. # Grant Application From 9330900023038bc86b8958809ef46dc30f0f3a93 Mon Sep 17 00:00:00 2001 From: Jeffrey Doyle Date: Tue, 29 Aug 2023 14:25:42 -0700 Subject: [PATCH 4/6] Adds FCW project grants --- projects/flow-core-wallet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/flow-core-wallet/README.md b/projects/flow-core-wallet/README.md index 47cc4c7..ef9a9a5 100644 --- a/projects/flow-core-wallet/README.md +++ b/projects/flow-core-wallet/README.md @@ -2,7 +2,7 @@ # Overview -Flow Core Wallet is an open ecosystem wallet on Flow, as such, it aims to encourage a variety of contributions from interested developers! +Flow Core Wallet is an open ecosystem wallet on Flow. As such, it aims to encourage a variety of contributions from interested developers! The following projects are available for developers to submit grant proposals to implement: From 096d45bae7aa519108bb123683bd1407e0611bb9 Mon Sep 17 00:00:00 2001 From: Jeff Doyle Date: Wed, 20 Sep 2023 13:05:31 +0900 Subject: [PATCH 5/6] Update README.md --- projects/flow-core-wallet/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/flow-core-wallet/README.md b/projects/flow-core-wallet/README.md index ef9a9a5..0a8f6b1 100644 --- a/projects/flow-core-wallet/README.md +++ b/projects/flow-core-wallet/README.md @@ -1,8 +1,8 @@ -# Flow Core Wallet - Grants +# Flow Reference Wallet - Grants # Overview -Flow Core Wallet is an open ecosystem wallet on Flow. As such, it aims to encourage a variety of contributions from interested developers! +Flow Reference Wallet is an open ecosystem wallet on Flow. As such, it aims to encourage a variety of contributions from interested developers! The following projects are available for developers to submit grant proposals to implement: From c9a41c19cb96ba33ad2f357db46641e300a27df8 Mon Sep 17 00:00:00 2001 From: Jeff Doyle Date: Wed, 20 Sep 2023 13:05:48 +0900 Subject: [PATCH 6/6] Update on-chain-recovery.md --- projects/flow-core-wallet/on-chain-recovery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/flow-core-wallet/on-chain-recovery.md b/projects/flow-core-wallet/on-chain-recovery.md index ff40751..13106ab 100644 --- a/projects/flow-core-wallet/on-chain-recovery.md +++ b/projects/flow-core-wallet/on-chain-recovery.md @@ -1,4 +1,4 @@ -# Flow Core Wallet - On Chain Recovery +# Flow Reference Wallet - On Chain Recovery # Description