From 7810122941edf280f905ebf24ba7a1780a9cf2dd Mon Sep 17 00:00:00 2001 From: ChiaChi Tsai Date: Wed, 10 Jan 2024 14:39:32 +0800 Subject: [PATCH] update readme --- README.md | 44 +++++++------------------------------------- 1 file changed, 7 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 6d626a6..fddcd9e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # TzSafe -TzSafe is a multisig wallet aiming at providing better assurance of security and management of ownership than a traditional single-signed wallet. TzSafe adheres to the [TZIP26](https://gitlab.com/tezos/tzip/-/blob/master/drafts/current/draft-proof-of-event/proof_of_event.md) standard, which is known as "Proof of event." +TzSafe is a multisig wallet aiming at providing better assurance of security and management of ownership than a traditional single-signed wallet. TzSafe adheres to the [TZIP27](https://gitlab.com/tezos/tzip/-/blob/master/drafts/current/draft-proof-of-event/proof_of_event.md) standard, which is the way of signing message for account abstraction. Multi-signature (also multisig) wallet allows to share the ownership of an account by a smart contract. Each owner can create a proposal to propose transferring Tez or executing other contracts. Signer provides approval stored on-chain by performing Tezos transaction. Once gathering the minimal approvals, the multisig will perform the proposal. @@ -12,48 +12,18 @@ The minimal required version can be found by performing `make ligo-version`. ## Entrypoints of multisig ### default This entrypoint can receive Tez from any source. -- Emit event - - tag: `default` - - data: `(sender, address)` ### create_proposal -Each owner can create proposal through this entrypoint. The entrypoint supports creating a batch of transactions. The batch is atomic and execution by order. If modifing settings are proposed, the modified setting will NOT apply in this batch immediately. The setting will effect on a next batch/transaction. - -- proposal that owner can create - - `Transfer of { target:address; parameter:unit; amount:tez }` - - transfer amount only - - `Execute of { target:address; parameter:'a; amount:tez }` - - execute contract with type of parameter `'a` - - `Execute_lambda of { metadata: bytes option; lambda: (unit -> operation)}` - - execute lambda, note that the cost of using `Transfer` and `Execute`is cheaper than `Execute_lambda` - - `Adjust_threshold of nat` - - adjust threshold. the threshold should be >0. Otherwises, errors will occur. - - `Add_owners of address set` - - add owners - - `Remove_owners of address set` - - remove owners - -- Emit event - - tag: `create_proposal` - - data: `(proposal id, created proposal)` +Each owner can create proposal through this entrypoint. The entrypoint supports creating a batch of transactions. The batch is atomic and execution by order. If modifing settings are proposed, the modified setting will NOT apply in this batch immediately. The setting will effect on a next batch/transaction. Once a proposal is created, its ID can be located in the corresponding emitted event and can be used for both the signing and resolution of the created proposal. ### sign_proposal Signers can provide an approval or a disapproval through this entrypoint. -- Emit event - - tag: `sign_proposal` - - data: `(proposal id, owner, agreement)` +### resolve_proposal +Through this entrypoint, owners have the capability to resolve a proposal. Whether the proposal is executed, rejected, or expires, the allocated storage space will consequently be freed. ### proof_of_event_challenge -The adaptation to the TZIP-26 standard includes renaming the `resolve_proposal` entrypoint as `proof_of_event_challenge`. In this context, the `challenge_id` now represents the `proposal_id`, while the payload corresponds to the content of the proposal. - -Signers can resolve proposal when minimal requestment is statisfied. - -- Emit event - - tag: `resolve_proposal` - - data: `(proposal id, owner)` - - tag: `proof_of_event` - - data: `(chellenge_id, payload)` +If TzSafe requires signing message, the contract owner can process the proof-of-event challenge by initiating a proof-of-event proposal through this entrypoint. This proposal, once created, necessitates signing and resolution as the other regular proposals. Following the resolution of the proposal, an event with tag "%proof_of_event" will be emitted, serving as the equivalent of the signature. # Deploy We provide several steps for quick deploying contracts in `app/` to ghostnet. @@ -66,5 +36,5 @@ We provide several steps for quick deploying contracts in `app/` to ghostnet. # Changelog - 0.1.x: (release-1.0) -- 0.2.x: base on 0.1.x and support the ticket (main branch) -- 0.3.x: base on 0.1.x and support TZIP-26 (release-3.0) +- 0.2.x: base on 0.1.x and support the ticket (release-2.0) +- 0.3.x: base on 0.1.x, better storage space management and support TZIP-27 (release-3.0)