maxAirdropProofBytes
untyped bigintValue
(2079 <untyped> bigint)
AirdropRecord
typeAirdropRecord keeps the whole funded allocation encumbered until recipients claim. Claims never expire, and nothing sweeps or returns an unclaimed remainder.
Value
v1.AirdropRecord
requireAirdropRoot
func(root string)- OID
- 074f74…a30c:3
requireAirdropRoot details
CreateAirdrop
func(id string, root string, total int64)CreateAirdrop funds one immutable campaign for a token from its creator's allowance. Its Merkle leaves are sha256(0x00 || "launchpad-airdrop-v1|\<token-id>|\<index>|\<beneficiary>|\<amount>"). The token ID in every leaf prevents a proof from authorizing a claim on a different launch, even if two creators publish the same tree shape.
- OID
- 074f74…a30c:5
CreateAirdrop details
GetAirdrop
func(id string) v1.AirdropRecord- OID
- 074f74…a30c:6
GetAirdrop details
AirdropClaimed
func(id string, index int) bool- OID
- 074f74…a30c:7
AirdropClaimed details
ClaimAirdrop
func(id string, index int, beneficiary .uverse.address, amount int64, proof string)ClaimAirdrop remains available while the airdrop lane is paused. Anyone can submit a proof; the destination is always the leaf's beneficiary. A leaf whose beneficiary is not written as the chain writes a caller's address can never be claimed: the token ledger would credit a balance no caller can reach.
- OID
- 074f74…a30c:8
ClaimAirdrop details
maxAllocationBytes
untyped bigintValue
(8192 <untyped> bigint)
maxAllocations
untyped bigintValue
(50 <untyped> bigint)
allocation
typeValue
v1.allocation
decimal
func(s string) int64- OID
- 074f74…a30c:9
decimal details
parseAllocations
func(encoded string) ([]v1.allocation, int64)parseAllocations accepts a single bounded, canonical MsgCall argument. Each record is address:amount:start:cliff:duration:revocable, with the address order providing both a stable encoding and duplicate rejection.
- OID
- 074f74…a30c:11
parseAllocations details
maxFairHoldingGateBytes
untyped bigintValue
(256 <untyped> bigint)
maxFairProofBytes
untyped bigintValue
(2079 <untyped> bigint)
fairHoldingGate
typeValue
v1.fairHoldingGate
parseFairHoldingGates
func(spec string) []v1.fairHoldingGateGates are at most three canonical, strictly token-ID-ordered records: token:T\<n>:\<positive base units>. Collection gates remain unavailable until the collection realm and its BalanceOf interface are implemented.
- OID
- 074f74…a30c:12
parseFairHoldingGates details
validateFairEligibility
func(root string, gates string)- OID
- 074f74…a30c:14
validateFairEligibility details
requireFairEligibility
func(id string, r v1.FairSaleRecord, buyer .uverse.address, proof string)The leaf is sha256(0x00 || "launchpad-fair-v1|\<token-id>|\<buyer>"). The token ID prevents a valid proof from being reused for a different sale.
- OID
- 074f74…a30c:15
requireFairEligibility details
FairSaleRecord
typeFairSaleRecord fixes the sale terms and records funded whole-lot orders. Settlement splits GrossQuote into the primary fee, owed to the protocol, and CreatorQuote, owed to the creator: the fee is GrossQuote minus CreatorQuote. RefundPaid and TokensClaimed count what buyer claims have taken out of this sale, so no claim can pay more than the sale itself owes.
Value
v1.FairSaleRecord
FairBuyerRecord
typeValue
v1.FairBuyerRecord
fairEscrowLiability
map[string]int64- OID
- 074f74…a30c:17
fairEscrowLiability details
fairRefundLiability
map[string]int64- OID
- 074f74…a30c:19
fairRefundLiability details
fairProceedsLiability
map[string]int64- OID
- 074f74…a30c:21
fairProceedsLiability details
openFairSale
func(r *v1.FairSaleRecord) int64openFairSale gates a new sale on the live config, pins its primary fee, bounds the most quote it can ever hold in escrow, and collects its creation fee, which it returns.
- OID
- 074f74…a30c:22
openFairSale details
fairTerms
func(creator .uverse.address, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64) v1.FairSaleRecord- OID
- 074f74…a30c:24
fairTerms details
emitFairCreated
func(id string, funding string, r v1.FairSaleRecord, fee int64)- OID
- 074f74…a30c:25
emitFairCreated details
CreateFairSale
func(name string, ticker string, decimals int, initialSupply int64, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64, description string, image string, website string, xHandle string, telegram string) stringCreateFairSale mints a fixed-supply fair-sale token and encumbers its whole- lot allocation in sales custody. The creator receives the initial supply remainder.
- OID
- 074f74…a30c:26
CreateFairSale details
CreateGatedFairSale
func(name string, ticker string, decimals int, initialSupply int64, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64, description string, image string, website string, xHandle string, telegram string, expectedID string, allowlistRoot string, holdingGates string) stringCreateGatedFairSale binds a precomputed token ID to a Merkle root and/or token-holding gates. The expected ID prevents an intervening creation from silently attaching the root to a different token.
- OID
- 074f74…a30c:27
CreateGatedFairSale details
createFairSale
func(name string, ticker string, decimals int, initialSupply int64, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64, description string, image string, website string, xHandle string, telegram string, expectedID string, allowlistRoot string, holdingGates string) string- OID
- 074f74…a30c:28
createFairSale details
CreateFairSaleFromToken
func(id string, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64)CreateFairSaleFromToken locks an existing direct token's exact creator-funded allocation. Other token liabilities remain encumbered in the same custody balance. One token can have at most one fair sale.
- OID
- 074f74…a30c:29
CreateFairSaleFromToken details
CreateGatedFairSaleFromToken
func(id string, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64, allowlistRoot string, holdingGates string)- OID
- 074f74…a30c:30
CreateGatedFairSaleFromToken details
createFairSaleFromToken
func(id string, saleAllocation int64, lotSize int64, hardLots int64, walletCapLots int64, softQuote int64, quoteCurrency string, expectedVersion int64, start int64, end int64, startPrice int64, floorPrice int64, decrement int64, intervalSeconds int64, allowlistRoot string, holdingGates string)- OID
- 074f74…a30c:31
createFairSaleFromToken details
GetFairSale
func(id string) v1.FairSaleRecord- OID
- 074f74…a30c:32
GetFairSale details
GetFairBuyer
func(id string, buyer .uverse.address) v1.FairBuyerRecord- OID
- 074f74…a30c:33
GetFairBuyer details
assertWithinSale
func(r v1.FairSaleRecord)assertWithinSale runs on every exit of a settled sale. Quote and tokens sit in balances pooled across sales, and the custody checks compare a balance with totals only: an exit that overpaid one sale while lowering the totals by as much would pass them, paid with other sales' money. Settlement asserted GrossQuote + RefundQuote = TotalDeposits, so with these bounds a sale never pays out more quote than it took in, nor more tokens than it sold. Settlement also sets CreatorQuote to GrossQuote minus the fee, so the last bound cannot fail on a record settlement wrote; it stays as a defence should a later change break that.
- OID
- 074f74…a30c:34
assertWithinSale details
SettleFair
func(id string)SettleFair closes a sale at its recorded hard-cap fill or scheduled end. It returns every unsold token to the creator and partitions deposits into buyer refunds, the creator's proceeds and the protocol's primary fee. The fee joins the bucket SweepFees pays; nothing is paid out here, so neither receiver can hold up settlement or buyer claims.
- OID
- 074f74…a30c:35
SettleFair details
ClaimFair
func(id string, buyer .uverse.address)ClaimFair lets anyone release a buyer's recorded tokens and quote refund to that buyer. Claims never expire and ignore current pause/listing.
- OID
- 074f74…a30c:36
ClaimFair details
ReleaseFairProceeds
func(id string) int64ReleaseFairProceeds pays a succeeded sale's creator what settlement recorded for them, once, and returns the amount. Anyone can call it; the receiver is always the recorded creator. It stays open while the lane is paused or the currency delisted.
- OID
- 074f74…a30c:37
ReleaseFairProceeds details
ContributeFair
func(id string, lots int64, maxDeposit int64)ContributeFair escrows exact quote atoms for whole token lots at this transaction's schedule price. The direct caller is both payer and buyer, and maxDeposit is the most the order may cost. A native order attaches exactly maxDeposit and gets maxDeposit minus the cost back in the same transaction; a token order pulls only the cost from the buyer's allowance.
- OID
- 074f74…a30c:38
ContributeFair details
ContributeFairWithProof
func(id string, lots int64, maxDeposit int64, proof string)ContributeFairWithProof verifies the recorded allowlist and holding gates against the direct buyer's live address and balances before collecting quote.
- OID
- 074f74…a30c:39
ContributeFairWithProof details
contributeFair
func(id string, lots int64, maxDeposit int64, proof string)- OID
- 074f74…a30c:40
contributeFair details
CancelFairSale
func(id string)CancelFairSale returns the entire unsold allocation to its creator while there are no contributions. It remains callable if the new-sale lane is paused or the quote currency has since been delisted. The creation fee is not returned.
- OID
- 074f74…a30c:41
CancelFairSale details
salesPath
untyped stringValue
"gno.land/r/samcrew/launchpad/sales/v1"
launchpadTokenRegistryPrefix
untyped stringValue
"gno.land/r/samcrew/launchpad/tokens/v1.T"
VestingRecord
typeValue
v1.VestingRecord
feeLiability
map[string]int64- OID
- 074f74…a30c:43
feeLiability details
directCaller
func() .uverse.address- OID
- 074f74…a30c:44
directCaller details
directFee
func(version int64, key string) int64- OID
- 074f74…a30c:46
directFee details
collectCreationFee
func(key string, amount int64)- OID
- 074f74…a30c:47
collectCreationFee details
collectQuote
func(key string, amount int64)collectQuote takes amount from the immediate caller, as attached coins or from a token allowance. Both routes pay from that caller and no one else.
- OID
- 074f74…a30c:48
collectQuote details
quoteBalance
func(self .uverse.address, key string) int64- OID
- 074f74…a30c:49
quoteBalance details
owedIn
func(key string) int64owedIn is everything the realm owes in one currency: fees, escrow, refunds and proceeds.
- OID
- 074f74…a30c:50
owedIn details
assertQuoteCovered
func(key string)assertQuoteCovered follows every movement of quote: the realm must still hold everything it owes in that currency. An exit ends with it; a creation runs it right after collecting its fee.
- OID
- 074f74…a30c:51
assertQuoteCovered details
payQuote
func(key string, to .uverse.address, amount int64)- OID
- 074f74…a30c:52
payQuote details
SweepFees
func(currencyKey string) int64SweepFees pays every fee recorded in one currency, creation fees and fair-sale primary fees alike, to the treasury of the current config, and returns the amount. Anyone can call it; the caller chooses neither the receiver nor the amount. A fee is only ever recorded once a treasury is named, and config never lets the treasury be removed.
- OID
- 074f74…a30c:53
SweepFees details
CreateDirect
func(mode string, name string, ticker string, decimals int, initialSupply int64, maxSupply int64, currencyKey string, expectedVersion int64, description string, image string, website string, xHandle string, telegram string, allocations string) stringCreateDirect creates a direct token without an initial airdrop. The allocation string is parsed and the whole amount partitioned before any payment. The caller, payer and initial mint's creator are the same live direct user.
- OID
- 074f74…a30c:54
CreateDirect details
CreateDirectWithAirdrop
func(mode string, name string, ticker string, decimals int, initialSupply int64, maxSupply int64, currencyKey string, expectedVersion int64, description string, image string, website string, xHandle string, telegram string, allocations string, expectedID string, airdropRoot string, airdropTotal int64) stringCreateDirectWithAirdrop reserves part of the initial mint for one Merkle campaign. The caller commits to the next token ID used in every leaf. If another launch takes that ID first, this transaction rejects before payment.
- OID
- 074f74…a30c:55
CreateDirectWithAirdrop details
createDirect
func(mode string, name string, ticker string, decimals int, initialSupply int64, maxSupply int64, currencyKey string, expectedVersion int64, description string, image string, website string, xHandle string, telegram string, allocations string, expectedID string, airdropRoot string, airdropTotal int64) string- OID
- 074f74…a30c:56
createDirect details
MintCappedAllocated
func(id string, amount int64, allocations string)MintCappedAllocated requires the token's current mint authority to be the immediate user or realm caller. Every new unit is assigned to an immediate or vested allocation; there is no implicit receiver or unrecorded sales balance. No additional creation fee is charged, and attached native coins are rejected. Pausing the direct lane stops new mints without blocking claims.
- OID
- 074f74…a30c:57
MintCappedAllocated details
VestingCount
func(id string) int- OID
- 074f74…a30c:58
VestingCount details
GetVesting
func(id string, index int) v1.VestingRecord- OID
- 074f74…a30c:59
GetVesting details
TokenLiability
func(id string) int64- OID
- 074f74…a30c:60
TokenLiability details
ClaimVested
func(id string, index int) int64ClaimVested remains open even when the direct-launch lane is paused. Anyone may trigger release, but the destination is always the recorded beneficiary. This also permits a realm beneficiary to receive its vested tokens.
- OID
- 074f74…a30c:61
ClaimVested details
RevokeVesting
func(id string, index int) int64RevokeVesting returns only unvested tokens to the original creator. The beneficiary retains its accrued vested entitlement and claim right.
- OID
- 074f74…a30c:62
RevokeVesting details
vestingCaller
func() .uverse.address- OID
- 074f74…a30c:63
vestingCaller details
ProposeVestingBeneficiary
func(id string, index int, next .uverse.address)ProposeVestingBeneficiary is callable by the current beneficiary, including a beneficiary realm. A pending move freezes claims until acceptance or cancellation, so the old beneficiary cannot drain accrued entitlement.
- OID
- 074f74…a30c:64
ProposeVestingBeneficiary details
CancelVestingBeneficiary
func(id string, index int)- OID
- 074f74…a30c:65
CancelVestingBeneficiary details
AcceptVestingBeneficiary
func(id string, index int)- OID
- 074f74…a30c:66
AcceptVestingBeneficiary details
vestings
*v0.Tree// "\<token id>:\<index>" -> VestingRecord
- OID
- 074f74…a30c:68
vestings details
vestingCounts
*v0.Tree// token id -> int
- OID
- 074f74…a30c:71
vestingCounts details
tokenLiabilities
*v0.Tree// token id -> int64
- OID
- 074f74…a30c:74
tokenLiabilities details
airdrops
*v0.Tree// token id -> AirdropRecord
- OID
- 074f74…a30c:77
airdrops details
airdropClaims
*v0.Tree// "\<token id>:\<index>" -> true
- OID
- 074f74…a30c:80
airdropClaims details
fairSales
*v0.Tree// token id -> FairSaleRecord
- OID
- 074f74…a30c:83
fairSales details
fairBuyers
*v0.Tree// "\<token id>:\<buyer>" -> FairBuyerRecord
- OID
- 074f74…a30c:86
fairBuyers details
indexKey
func(id string, index int) stringA token id is "T" and digits, so ":" separates it from what follows.
- OID
- 074f74…a30c:88
indexKey details
buyerKey
func(id string, buyer .uverse.address) string- OID
- 074f74…a30c:90
buyerKey details
vestingCount
func(id string) int- OID
- 074f74…a30c:91
vestingCount details
vestingAt
func(id string, index int) v1.VestingRecordvestingAt returns record index of a token, which the caller has checked to be below vestingCount.
- OID
- 074f74…a30c:92
vestingAt details
setVesting
func(id string, index int, r v1.VestingRecord)- OID
- 074f74…a30c:93
setVesting details
appendVesting
func(id string, r v1.VestingRecord)- OID
- 074f74…a30c:94
appendVesting details
tokenOwed
func(id string) int64- OID
- 074f74…a30c:95
tokenOwed details
setTokenOwed
func(id string, amount int64)A token that is owed nothing has no entry.
- OID
- 074f74…a30c:96
setTokenOwed details
airdropOf
func(id string) v1.AirdropRecordairdropOf returns the zero record for a token without a campaign.
- OID
- 074f74…a30c:97
airdropOf details
jsonInt
func(v int64) string- OID
- 074f74…a30c:98
jsonInt details
fairRecordJSON
func(r v1.FairSaleRecord) stringfairRecordJSON reports a sale's terms and outcome. Once settled, the primary fee is what was raised minus the creator's share.
- OID
- 074f74…a30c:100
fairRecordJSON details
airdropRecordJSON
func(r v1.AirdropRecord) string- OID
- 074f74…a30c:101
airdropRecordJSON details
TermsJSON
func(currencyKey string) stringTermsJSON is what launching a token in a currency costs under the current config version: the fee a direct creation and a fair-sale creation attach, exactly; the most one fair sale may raise; and the primary fee a new sale pins. A fee of -1 means the currency has no terms. A creation names this version, so if the terms change before it lands it fails with "config changed" and takes nothing. Whether a lane takes new launches now is config's ActionStatusJSON.
- OID
- 074f74…a30c:102
TermsJSON details
SolvencyJSON
func(currencyKey string) stringSolvencyJSON is the realm's books in one currency: the balance it holds and what it owes, in total and by liability. fees is what SweepFees would pay now. Every movement of quote ends with balance >= owed, so a watcher that sees otherwise has found a fault; what the balance holds above owed was sent outside the entry points and is owed to no one. An empty key or one over 200 bytes panics "invalid currency"; a key that is neither ugnot nor a registered GRC20 aborts in the registry ("unknown token").
- OID
- 074f74…a30c:103
SolvencyJSON details
LaunchJSON
func(id string) stringLaunchJSON is a token's launch state: the ledger's record of the token, what sales still owes in it, how many vesting records it has, and its fair sale and airdrop campaign, each null when the token has none.
- OID
- 074f74…a30c:104
LaunchJSON details
FairBuyerJSON
func(id string, buyer .uverse.address) stringFairBuyerJSON is one buyer's record in a sale and, once the sale is settled and until the buyer is paid, what ClaimFair would send them. Before settlement both amounts are 0 and settled is false: settle first.
- OID
- 074f74…a30c:105
FairBuyerJSON details
VestingJSON
func(id string, index int) stringVestingJSON is one vesting record: its schedule, who holds the claim right and who has been proposed to take it.
- OID
- 074f74…a30c:106