ulxly

package
v0.1.74 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2025 License: AGPL-3.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ArgGasLimit             = "gas-limit"
	ArgChainID              = "chain-id"
	ArgPrivateKey           = "private-key"
	ArgValue                = "value"
	ArgRPCURL               = "rpc-url"
	ArgBridgeAddress        = "bridge-address"
	ArgRollupManagerAddress = "rollup-manager-address"
	ArgDestNetwork          = "destination-network"
	ArgDestAddress          = "destination-address"
	ArgForceUpdate          = "force-update-root"
	ArgCallData             = "call-data"
	ArgCallDataFile         = "call-data-file"
	ArgTimeout              = "transaction-receipt-timeout"
	ArgDepositCount         = "deposit-count"
	ArgDepositNetwork       = "deposit-network"
	ArgRollupID             = "rollup-id"
	ArgCompleteMT           = "complete-merkle-tree"
	ArgBridgeServiceURL     = "bridge-service-url"
	ArgFileName             = "file-name"
	ArgFromBlock            = "from-block"
	ArgToBlock              = "to-block"
	ArgFilterSize           = "filter-size"
	ArgTokenAddress         = "token-address"
	ArgGlobalIndex          = "global-index"
	ArgDryRun               = "dry-run"
	ArgGasPrice             = "gas-price"
	ArgBridgeMappings       = "bridge-service-map"
	ArgBridgeLimit          = "bridge-limit"
	ArgBridgeOffset         = "bridge-offset"
	ArgWait                 = "wait"
)
View Source
const (
	// TreeDepth of 32 is pulled directly from the
	// _DEPOSIT_CONTRACT_TREE_DEPTH from the smart contract. We
	// could make this a variable as well
	// https://github.com/0xPolygonHermez/zkevm-contracts/blob/54f58c8b64806429bc4d5c52248f29cf80ba401c/contracts/v2/lib/DepositContractBase.sol#L15
	TreeDepth = 32
)

Variables

View Source
var (
	ErrNotReadyForClaim        = errors.New("the claim transaction is not yet ready to be claimed, try again in a few blocks")
	ErrDepositAlreadyClaimed   = errors.New("the claim transaction has already been claimed")
	ErrUnableToRetrieveDeposit = errors.New("the bridge deposit was not found")
)
View Source
var ULxLyCmd = &cobra.Command{
	Use:   "ulxly",
	Short: "Utilities for interacting with the uLxLy bridge",
	Long:  "Basic utility commands for interacting with the bridge contracts, bridge services, and generating proofs",
	Args:  cobra.NoArgs,
}

Functions

func Check added in v0.1.74

func Check(roots []common.Hash, leaf common.Hash, position uint32, siblings [32]common.Hash) (common.Hash, error)

Check is a sanity check of a proof in order to make sure that the proof that was generated creates a root that we recognize. This was useful while testing in order to avoid verifying that the proof works or doesn't work onchain

func String added in v0.1.74

func String[T any](p T) string

String will create the json representation of the proof

func WaitMineTransaction added in v0.1.67

func WaitMineTransaction(ctx context.Context, client *ethclient.Client, tx *types.Transaction, txTimeout uint64) error

Wait for the transaction to be mined

Types

type BridgeDeposit added in v0.1.67

type BridgeDeposit struct {
	LeafType      uint8  `json:"leaf_type"`
	OrigNet       uint32 `json:"orig_net"`
	OrigAddr      string `json:"orig_addr"`
	Amount        string `json:"amount"`
	DestNet       uint32 `json:"dest_net"`
	DestAddr      string `json:"dest_addr"`
	BlockNum      string `json:"block_num"`
	DepositCnt    uint32 `json:"deposit_cnt"`
	NetworkID     uint32 `json:"network_id"`
	TxHash        string `json:"tx_hash"`
	ClaimTxHash   string `json:"claim_tx_hash"`
	Metadata      string `json:"metadata"`
	ReadyForClaim bool   `json:"ready_for_claim"`
	GlobalIndex   string `json:"global_index"`
}

type BridgeDepositResponse added in v0.1.67

type BridgeDepositResponse struct {
	Deposit BridgeDeposit `json:"deposit"`
	Code    *int          `json:"code"`
	Message *string       `json:"message"`
}

type BridgeProof

type BridgeProof struct {
	Proof struct {
		MerkleProof       []string `json:"merkle_proof"`
		RollupMerkleProof []string `json:"rollup_merkle_proof"`
		MainExitRoot      string   `json:"main_exit_root"`
		RollupExitRoot    string   `json:"rollup_exit_root"`
	} `json:"proof"`
}

type DepositID added in v0.1.67

type DepositID struct {
	DepositCnt uint32 `json:"deposit_cnt"`
	NetworkID  uint32 `json:"network_id"`
}

type GetDepositOptions added in v0.1.74

type GetDepositOptions struct {
	BridgeAddress string
}

func (*GetDepositOptions) AddFlags added in v0.1.74

func (o *GetDepositOptions) AddFlags(cmd *cobra.Command)

type GetDepositsAndVerifyBatchesSharedOptions added in v0.1.74

type GetDepositsAndVerifyBatchesSharedOptions struct {
	URL                            string
	FromBlock, ToBlock, FilterSize uint64
}

func (*GetDepositsAndVerifyBatchesSharedOptions) AddFlags added in v0.1.74

type GetVerifyBatchesOptions added in v0.1.74

type GetVerifyBatchesOptions struct {
	RollupManagerAddress string
}

func (*GetVerifyBatchesOptions) AddFlags added in v0.1.74

func (o *GetVerifyBatchesOptions) AddFlags(cmd *cobra.Command)

type IMT

type IMT struct {
	Branches   map[uint32][]common.Hash
	Leaves     map[uint32]common.Hash
	Roots      []common.Hash
	ZeroHashes []common.Hash
	Proofs     map[uint32]Proof
}

func (*IMT) AddLeaf

func (s *IMT) AddLeaf(leaf common.Hash, position uint32)

AddLeaf will take a given deposit and add it to the collection of leaves. It will also update the

func (*IMT) GetProof

func (s *IMT) GetProof(depositNum uint32) Proof

GetProof will return an object containing the proof data necessary for verification

func (*IMT) GetRoot

func (s *IMT) GetRoot(depositNum uint32) common.Hash

GetRoot will return the root for a particular deposit

func (*IMT) Init

func (s *IMT) Init()

Init will allocate the objects in the IMT

type JsonError added in v0.1.67

type JsonError struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data"`
}

type Proof

type Proof struct {
	Siblings     [TreeDepth]common.Hash
	Root         common.Hash
	DepositCount uint32
	LeafHash     common.Hash
}

type ProofOptions added in v0.1.74

type ProofOptions struct {
	DepositCount uint32
}

func (*ProofOptions) AddFlags added in v0.1.74

func (o *ProofOptions) AddFlags(cmd *cobra.Command)

type ProofsSharedOptions added in v0.1.74

type ProofsSharedOptions struct {
	FileName string
}

func (*ProofsSharedOptions) AddFlags added in v0.1.74

func (o *ProofsSharedOptions) AddFlags(cmd *cobra.Command)

type RollupsProof added in v0.1.74

type RollupsProof struct {
	Siblings [TreeDepth]common.Hash
	Root     common.Hash
	RollupID uint32
	LeafHash common.Hash
}

func ComputeSiblings added in v0.1.74

func ComputeSiblings(rollupID uint32, leaves []common.Hash, height uint8) (*RollupsProof, error)

type RollupsProofOptions added in v0.1.74

type RollupsProofOptions struct {
	RollupID           uint32
	CompleteMerkleTree bool
}

func (*RollupsProofOptions) AddFlags added in v0.1.74

func (o *RollupsProofOptions) AddFlags(cmd *cobra.Command)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL