Skip to content

Multisignature wallet in Move (with support for adding and removing participants).

Notifications You must be signed in to change notification settings

pentagonxyz/multisig-wallet-move

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Multiture: A Dynamic Multisignature Wallet on Sui and Aptos

Multiture is a dynamic (i.e., supports modifying participants) multisignature wallet (similar to Gnosis Safe) built on Sui and Aptos for storing coins, tokens, and generic objects.

Public Functions

Sui

  • public entry fun enable_deposits<AssetType>(ctx: &mut TxContext)
  • public entry fun enable_object_deposits<T: store>(ctx: &mut TxContext)
  • public entry fun create_multisig(participants: vector<address>, approval_threshold: u64, cancellation_threshold: u64, ctx: &mut TxContext)
  • public fun deposit_object<T: store>(multisig: &Multisig, record: &mut ObjectDepositRecord<T>, obj: T)
  • public fun deposit<AssetType>(multisig: &Multisig, record: &mut DepositRecord<AssetType>, coin: Coin<AssetType>)
  • public fun create_proposal(account: &signer, multisig: &mut Multisig, add_participants: vector<address>, remove_participants: vector<address>, approve_messages: vector<vector<u8>>)
  • public fun request_authed_object_withdrawal<T: store>(account: &signer, multisig: &Multisig, record: &mut PendingAuthedObjectWithdrawalRecord<T>, proposal_id: u64, ids: vector<u64>)
  • public fun request_authed_withdrawal<AssetType>(account: &signer, multisig: &Multisig, record: &mut PendingAuthedWithdrawalRecord<AssetType>, proposal_id: u64, amount: u64)
  • public fun request_withdrawal_transfer<AssetType>(account: &signer, multisig: &Multisig, record: &mut PendingWithdrawalTransferRecord<AssetType>, proposal_id: u64, recipient: address, amount: u64)
  • public fun post_proposal(account: &signer, multisig: &mut Multisig, proposal_id: u64): AuthToken
  • public fun cast_vote(account: &signer, multisig: &mut Multisig, proposal_id: u64, vote: bool)
  • public fun execute_participant_changes(multisig: &mut Multisig, proposal_id: u64)
  • public fun withdraw_to<AssetType>(multisig: &mut Multisig, record1: &mut PendingWithdrawalTransferRecord<AssetType>, record2: &mut DepositRecord<AssetType>, proposal_id: u64, ctx: &mut TxContext)
  • public fun withdraw<AssetType>(multisig: &Multisig, record1: &mut PendingAuthedWithdrawalRecord<AssetType>, record2: &mut DepositRecord<AssetType>, auth_token: &AuthToken, ctx: &mut TxContext): Coin<AssetType>
  • public fun withdraw_objects<T: store>(multisig: &Multisig, record1: &mut PendingAuthedObjectWithdrawalRecord<T>, record2: &mut ObjectDepositRecord<T>, auth_token: &AuthToken): vector<T>
  • public fun withdraw_objects_to<T: key + store>(multisig: &Multisig, record1: &mut PendingObjectWithdrawalTransferRecord<T>, record2: &mut ObjectDepositRecord<T>, auth_token: &AuthToken)

Aptos

  • public entry fun initialize(root: &signer)
  • public entry fun enable_deposits<AssetType>(root: &signer)
  • public entry fun enable_object_deposits<T: store>(root: &signer)
  • public fun create_multisig(participants: vector<address>, approval_threshold: u64, cancellation_threshold: u64): u64
  • public fun deposit_object<T: store>(multisig_id: u64, obj: T)
  • public fun deposit<AssetType>(multisig_id: u64, coin: Coin<AssetType>)
  • public fun create_pending_token_withdrawal(tokenId: TokenId, value: u64, recipient: address): PendingTokenWithdrawal
  • public fun create_proposal(account: &signer, multisig_id: u64, add_participants: vector<address>, remove_participants: vector<address>, approve_messages: vector<vector<u8>>, withdraw_tokens: vector<PendingTokenWithdrawal>)
  • public entry fun request_authed_object_withdrawal<T: store>(account: &signer, multisig_id: u64, proposal_id: u64, ids: vector<u64>)
  • public entry fun request_authed_withdrawal<AssetType>(account: &signer, multisig_id: u64, proposal_id: u64, amount: u64)
  • public entry fun request_withdrawal_transfer<AssetType>(account: &signer, multisig_id: u64, proposal_id: u64, recipient: address, amount: u64)
  • public fun post_proposal(account: &signer, multisig_id: u64, proposal_id: u64): AuthToken
  • public entry fun cast_vote(account: &signer, multisig_id: u64, proposal_id: u64, vote: bool)
  • public entry fun execute_participant_changes(multisig_id: u64, proposal_id: u64)
  • public entry fun execute_token_withdrawals(dummy: &signer, multisig_id: u64, proposal_id: u64)
  • public entry fun withdraw_to<AssetType>(multisig_id: u64, proposal_id: u64)
  • public fun withdraw<AssetType>(auth_token: &AuthToken): Coin<AssetType>
  • public fun withdraw_objects<T: store>(auth_token: &AuthToken): vector<T>

About

Multisignature wallet in Move (with support for adding and removing participants).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages