Documentation
¶
Index ¶
- Constants
- type CTFClient
- func (c *CTFClient) CheckReadyForCTF(ctx context.Context, amountStr string) (bool, string, error)
- func (c *CTFClient) GetAddress() string
- func (c *CTFClient) GetFunderAddress() string
- func (c *CTFClient) GetNativeUsdcBalance(ctx context.Context) (decimal.Decimal, error)
- func (c *CTFClient) GetPositionBalance(ctx context.Context, conditionID string) (*PositionBalance, error)
- func (c *CTFClient) GetPositionBalanceByTokenIds(ctx context.Context, conditionID string, tokenIds TokenIds) (*PositionBalance, error)
- func (c *CTFClient) GetUsdcBalance(ctx context.Context) (decimal.Decimal, error)
- func (c *CTFClient) Merge(ctx context.Context, conditionID string, amountStr string) (string, error)
- func (c *CTFClient) Redeem(ctx context.Context, conditionID string, outcome string) (string, error)
- func (c *CTFClient) RedeemByTokenIds(ctx context.Context, conditionID string, tokenIds map[string]string, ...) (string, error)
- func (c *CTFClient) Split(ctx context.Context, conditionID string, amountStr string) (string, error)
- type CTFClientConfig
- type PositionBalance
- type SafeWalletClient
- func (s *SafeWalletClient) Merge(ctx context.Context, conditionID string, amount string, negRisk bool) (string, error)
- func (s *SafeWalletClient) Redeem(ctx context.Context, conditionID string, negRisk bool) (string, error)
- func (s *SafeWalletClient) Split(ctx context.Context, conditionID string, amount string, negRisk bool) (string, error)
- type SafeWalletConfig
- type TokenIds
Constants ¶
const ( CTFContractAddress = "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045" USDCContractAddress = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" // USDC.e NativeUSDCAddress = "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359" NegRiskCTFExchange = "0xC5d563A36AE78145C45a50134d48A1215220f80a" NegRiskAdapter = "0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296" USDC_DECIMALS = 6 )
Contract Addresses (Polygon Mainnet)
const ( OperationCall uint8 = 0 OperationDelegateCall uint8 = 1 )
Gnosis Safe operation types
const CTF_ABI_FOR_ENCODING = `` /* 987-byte string literal not displayed */
const ERC20_ABI_FOR_ENCODING = `` /* 225-byte string literal not displayed */
const (
NEG_RISK_ADAPTER_ADDR = "0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296"
)
const SAFE_ABI = `` /* 1657-byte string literal not displayed */
Gnosis Safe ABI (only the methods we need)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CTFClient ¶
type CTFClient struct {
// contains filtered or unexported fields
} // struct end
CTFClient handles interactions with the Conditional Token Framework
func NewCTFClient ¶
func NewCTFClient(config CTFClientConfig) (*CTFClient, error)
NewCTFClient creates a new CTFClient
func (*CTFClient) CheckReadyForCTF ¶
CheckReadyForCTF checks if the wallet is ready for CTF operations
func (*CTFClient) GetAddress ¶
GetAddress returns the wallet address (EOA)
func (*CTFClient) GetFunderAddress ¶
GetFunderAddress returns the funder address (Proxy or EOA)
func (*CTFClient) GetNativeUsdcBalance ¶
GetNativeUsdcBalance returns the Native USDC balance of the Funder Address
func (*CTFClient) GetPositionBalance ¶
func (c *CTFClient) GetPositionBalance(ctx context.Context, conditionID string) (*PositionBalance, error)
GetPositionBalance gets token balances using calculated Position IDs (Standard CTF)
func (*CTFClient) GetPositionBalanceByTokenIds ¶
func (c *CTFClient) GetPositionBalanceByTokenIds(ctx context.Context, conditionID string, tokenIds TokenIds) (*PositionBalance, error)
GetPositionBalanceByTokenIds gets token balances using explicit Token IDs (CLOB)
func (*CTFClient) GetUsdcBalance ¶
GetUsdcBalance returns the USDC.e balance of the Funder Address
func (*CTFClient) Merge ¶
func (c *CTFClient) Merge(ctx context.Context, conditionID string, amountStr string) (string, error)
Merge merges YES/NO tokens back to USDC If Safe Wallet is configured, routes to SafeWalletClient; otherwise executes directly
type CTFClientConfig ¶
type CTFClientConfig struct {
PrivateKeyHex string
RPCURL string
ChainID int64
FunderAddress string // Optional: Proxy/Safe address
}
CTFClientConfig holds configuration for CTFClient
type PositionBalance ¶
type PositionBalance struct {
ConditionID string
YesBalance decimal.Decimal
NoBalance decimal.Decimal
YesPositionID string
NoPositionID string
}
PositionBalance holds balance info for a condition
type SafeWalletClient ¶
type SafeWalletClient struct {
// contains filtered or unexported fields
}
SafeWalletClient handles CTF operations via Gnosis Safe execTransaction
func NewSafeWalletClient ¶
func NewSafeWalletClient(ctx context.Context, config SafeWalletConfig) (*SafeWalletClient, error)
NewSafeWalletClient creates a client for CTF operations via Gnosis Safe
func (*SafeWalletClient) Merge ¶
func (s *SafeWalletClient) Merge(ctx context.Context, conditionID string, amount string, negRisk bool) (string, error)
Merge executes Merge operation via Gnosis Safe