Skip to content

VeloraDEX/velora-dex-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

velora-dex-lib

Go module for ParaSwap/Velora transaction-building and DEX encoding logic.

The module currently exposes the Go implementation of the generic and direct V6 transaction-builder paths, executor bytecode builders, resolved transaction encoding, a small DEX encoder registry, and Augustus approval checking helpers.

Install

From the consuming service:

go get github.com/VeloraDEX/velora-dex-lib@v0.1.0

Use a version tag in production. During active development a branch or commit SHA can be used temporarily. No GitHub authentication is required when this repository is public and the consuming environment does not force this module path through private-module settings such as GOPRIVATE.

Main Packages

  • txbuilder/builder: public generic and direct swap builder APIs.
  • txbuilder/approvals: Augustus approval checker with TypeScript-compatible cache keys and Multicall3 allowance reads.
  • txbuilder/resolved: resolved build input validation and Augustus V6 calldata encoding.
  • txbuilder/executor: Executor01/02/03/WETH bytecode builders.
  • txbuilder/dex/registry: exact-key DEX encoder registry.

See docs/TXBUILDER_USAGE.md for detailed construction, dependency wiring, and runtime integration notes.

Basic Usage

package example

import (
    "context"

    "github.com/VeloraDEX/velora-dex-lib/txbuilder/builder"
    "github.com/VeloraDEX/velora-dex-lib/txbuilder/executor"
    "github.com/VeloraDEX/velora-dex-lib/txbuilder/resolved"
)

func Build(
    ctx context.Context,
    req builder.BuildRequest,
    dexRegistry builder.DexRegistry,
    approvalChecker builder.ApprovalChecker,
    wethProvider builder.WethCallDataProvider,
) (resolved.BuildOutput, error) {
    deps := builder.Deps{
        EncodingContext: resolved.EncodingContext{
            Network:                   8453,
            AugustusV6Address:         "0x...",
            WrappedNativeTokenAddress: "0x4200000000000000000000000000000000000006",
            ExecutorsAddresses: map[resolved.ExecutorType]resolved.Address{
                resolved.Executor01:   "0x...",
                resolved.Executor02:   "0x...",
                resolved.Executor03:   "0x...",
                resolved.ExecutorWETH: "0x4200000000000000000000000000000000000006",
            },
        },
        AugustusV6ABI:   resolved.MustLoadAugustusV6ABI(),
        ExecutorFactory: executor.NewFactory(),
        DexRegistry:     dexRegistry,
        ApprovalChecker: approvalChecker,
        WethProvider:    wethProvider,
    }

    return builder.BuildGeneric(ctx, req, deps)
}

BuildGeneric returns resolved.BuildOutput, whose TxObject.Data field is the final Augustus V6 transaction calldata. For V6 direct methods, wire Deps.DirectDexRegistry and call builder.BuildDirect, which returns resolved.DirectBuildOutput.

Runtime Dependencies

The consuming service must provide:

  • network-specific resolved.EncodingContext.
  • a builder.DexRegistry containing all DEX route labels the service accepts.
  • a builder.DirectDexRegistry for direct methods when using builder.BuildDirect.
  • a production builder.ApprovalChecker, typically backed by existing allowance state, Redis, or RPC calls. txbuilder/approvals provides the reusable Augustus checker; consuming services wire their Redis and RPC clients through its cache and contract-caller interfaces.
  • a builder.WethCallDataProvider for routes that need aggregate WETH deposit or withdraw calldata.

Notes

  • DEX registry keys are exact-match aliases. Register both canonical keys and public route labels when they differ.
  • Options.SkipApprovalCheck is intended for tests or trusted pre-approved routes. In production, prefer a real ApprovalChecker.
  • This module is intended to be imported by Go services. TypeScript parity fixture generation remains in the source paraswap-dex-lib repository.

License

This repository is licensed under GPL-3.0, matching the public paraswap-dex-lib repository.

About

Go module for Velora DEX transaction building and encoding

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages