Docs
Protocols
Single Asset Shielded Pool
Proposal System

Application Specific Proposals

This page provides an overview of Webb's Asset Transfer protocol specific proposals, the proposal structure for the Asset Transfer protocol implementation and the intended use.

Collectively, there are 9 distinct proposals that are used within the Asset Transfer protocol as you can see from the table below. A proposal simply is a message that is voted on which suggests a change in the merkle roots or system. Proposals can be unsigned and unsigned. Below are the proposal types included in the Asset Transfer protocol.

ProposalsDescription
SetVerifierProposalProposal to set a verifier address
TokenAddProposal to add token to a set
TokenRemoveProposal to remove token from a set
WrappingFeeUpdateProposal to update fee parameter
RescueTokenProposal to move tokens from a Treasury
MaxDepositLimitUpdateProposal to update a maximum deposit limit parameter
MinWithdrawalLimitUpdateProposal to update a minimum withdrawal limit parameter
FeeRecipientUpdateProposalProposal to update a fee recipient account
SetTreasuryHandlerProposalProposal to set a treasury handler address

Definitions

Typed Chain ID

A unique Webb-specific chain identifier that is composed of a chain / virtual machine type and the respective identifier.
Size: 6 bytes

Target System

Relevant for identifying the actual resource / system / contract that is being targeted in the proposal lifecycle.
Size: 26 bytes

Resource ID

Relevant for identifying the system the proposal is being executed on and interacting with. The resource ID contains the target system and the target chain ID to be communicated with.
Size: 32 bytes
Structure: (TargetSystem, TypedChainId)

FunctionSig

Relevant for EVM networks where call data is generic and not directly executable at a specific function.
Size: 4 bytes

Nonce

Relevant for tracking updates to contracts.
Size: 4 bytes

Proposal Header

Size: 40 bytes
Structure: (**Resource ID, FunctionSig, Nonce)

Application Specific Proposals

TokenAddProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 60 bytes1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)
SubstrateProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)

TokenRemoveProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 60 bytes1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)
SubstrateProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token Address (20 bytes)

FeeRecipientUpdateProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 60 bytes1. ProposalHeader (40 bytes)
2. Recipient Address (20 bytes)
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Recipient Address (20 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Recipient Address (20 bytes)

WrappingFeeUpdateProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 42 bytes1. ProposalHeader (40 bytes)
2. Fee percentage (2 byte)
SubstrateProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Fee percentage (2 byte)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Fee percentage (2 byte)

RescueTokensProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 112 bytes1. ProposalHeader (40 bytes)
2. Token address (20 bytes)
3. Recipient address (20 bytes)
4. Amount (32 bytes)
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token address (20 bytes)
3. Recipient address (20 bytes)
4. Amount (32 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Token address (20 bytes)
3. Recipient address (20 bytes)
4. Amount (32 bytes)
SubstrateNot documentedTotal Size: ≥ 40 bytesEncoded call

MaxDepositLimitProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 72 bytes1. ProposalHeader (40 bytes)
2. Deposit limit (32 bytes)
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Deposit limit (32 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Deposit limit (32 bytes)
SubstrateNot documented

MinWithdrawalLimitProposal

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 72 bytes1. ProposalHeader (40 bytes)
2. Withdrawal limit (32 bytes)
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Withdrawal limit (32 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. Withdrawal limit (32 bytes)
SubstrateNot documented

SetTreasuryHandlerProposal

Note: Not required in Substrate implementation.

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 60 bytes1. ProposalHeader (40 bytes)
2. New handler address (20 bytes)
CosmWasmProposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. New handler address (20 bytes)
ink!Proposal Docs (opens in a new tab)Total Size: ≥ 40 bytesEncoded call
1. ProposalHeader (40 bytes)
2. New handler address (20 bytes)

SetVerifierProposal

Note: Not required in Substrate implementation.

ProtocolDocByte SizeArguments
EVMProposal Docs (opens in a new tab)Total Size: 60 bytes1. ProposalHeader (40 bytes)
2. New verifier address (20 bytes)