auctionflow-sdk 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -2
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,23 @@ const sdk = new AuctionFlowSDK({
|
|
|
36
36
|
});
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
### Using your own deployment
|
|
40
|
+
|
|
41
|
+
AuctionFlow only has a canonical deployment on Base Sepolia. To point the SDK at
|
|
42
|
+
a deployment you run yourself — on Base mainnet, a local fork, or anywhere else
|
|
43
|
+
`TokenAuction.sol` is deployed — pass `auctionAddress`:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
const sdk = new AuctionFlowSDK({
|
|
47
|
+
chainId: 8453, // Base mainnet
|
|
48
|
+
rpcUrl: "https://mainnet.base.org",
|
|
49
|
+
walletClient,
|
|
50
|
+
auctionAddress: "0xYourTokenAuctionDeployment",
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Without it, constructing on a chain that has no built-in deployment throws.
|
|
55
|
+
|
|
39
56
|
## Create an auction
|
|
40
57
|
|
|
41
58
|
The builder validates required fields and basic invariants (`startTime < endTime`,
|
|
@@ -120,13 +137,13 @@ Early buyers pay less; later buyers pay more.
|
|
|
120
137
|
| Chain | Chain ID | Status |
|
|
121
138
|
| --- | --- | --- |
|
|
122
139
|
| Base Sepolia | `84532` | Deployed |
|
|
123
|
-
| Base Mainnet | `8453` |
|
|
140
|
+
| Base Mainnet | `8453` | No canonical deployment — pass `auctionAddress` to use your own |
|
|
124
141
|
|
|
125
142
|
## API
|
|
126
143
|
|
|
127
144
|
| Member | Description |
|
|
128
145
|
| --- | --- |
|
|
129
|
-
| `new AuctionFlowSDK({ chainId, rpcUrl, walletClient? })` | Construct against a supported chain.
|
|
146
|
+
| `new AuctionFlowSDK({ chainId, rpcUrl, walletClient?, auctionAddress? })` | Construct against a supported chain. `auctionAddress` overrides the built-in deployment; without it, a chain with no canonical deployment throws. |
|
|
130
147
|
| `buildAuction()` | Returns an `AuctionBuilder` (fluent config builder). |
|
|
131
148
|
| `createAuction(config)` | Send the `createAuction` transaction. Requires a wallet client. |
|
|
132
149
|
| `buyTokens(auctionId, amount)` | Send the `buyTokens` transaction. Requires a wallet client. |
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -741,10 +741,15 @@ var AuctionFlowSDK = class {
|
|
|
741
741
|
constructor(params) {
|
|
742
742
|
this.chainId = params.chainId;
|
|
743
743
|
this.chain = CHAINS[params.chainId];
|
|
744
|
-
this.auctionAddress = AUCTION_ADDRESSES[params.chainId];
|
|
744
|
+
this.auctionAddress = params.auctionAddress ?? AUCTION_ADDRESSES[params.chainId];
|
|
745
|
+
if (params.auctionAddress === import_viem.zeroAddress) {
|
|
746
|
+
throw new Error(
|
|
747
|
+
"auctionAddress must not be the zero address."
|
|
748
|
+
);
|
|
749
|
+
}
|
|
745
750
|
if (this.auctionAddress === import_viem.zeroAddress) {
|
|
746
751
|
throw new Error(
|
|
747
|
-
`AuctionFlow
|
|
752
|
+
`AuctionFlow has no canonical deployment on chain ${params.chainId}. Chains with a built-in deployment: ${Object.entries(AUCTION_ADDRESSES).filter(([, addr]) => addr !== import_viem.zeroAddress).map(([id]) => id).join(", ")}. Pass \`auctionAddress\` to use your own deployment.`
|
|
748
753
|
);
|
|
749
754
|
}
|
|
750
755
|
this.publicClient = (0, import_viem.createPublicClient)({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/builders/auction-builder.ts","../src/constants/addresses.ts","../src/abis/token-auction.ts","../src/utils/bonding-curve.ts","../src/utils/chains.ts","../src/types/index.ts"],"sourcesContent":["export { AuctionFlowSDK } from \"./client\";\nexport { AuctionBuilder } from \"./builders/auction-builder\";\nexport * from \"./types\";\nexport * from \"./constants/addresses\";\nexport * from \"./utils/bonding-curve\";\n","import {\n createPublicClient,\n http,\n PublicClient,\n WalletClient,\n Chain,\n Address,\n Hash,\n zeroAddress,\n} from \"viem\";\nimport { AuctionBuilder } from \"./builders/auction-builder\";\nimport { AuctionConfig, AuctionData, BuyQuote, SupportedChainId } from \"./types\";\nimport { AUCTION_ADDRESSES } from \"./constants/addresses\";\nimport { tokenAuctionAbi } from \"./abis/token-auction\";\nimport { calculateBuyQuote } from \"./utils/bonding-curve\";\nimport { CHAINS } from \"./utils/chains\";\n\n/** Shape of the nested tuple returned by the on-chain `auctions(id)` getter. */\ninterface RawAuction {\n config: {\n token: Address;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n creator: Address;\n protocolFeeBps: bigint;\n };\n state: number;\n totalRaised: bigint;\n totalSold: bigint;\n}\n\nexport class AuctionFlowSDK {\n public readonly publicClient: PublicClient;\n public readonly walletClient?: WalletClient;\n public readonly auctionAddress: Address;\n public readonly chainId: SupportedChainId;\n private readonly chain: Chain;\n\n constructor(params: {\n chainId: SupportedChainId;\n rpcUrl: string;\n walletClient?: WalletClient;\n }) {\n this.chainId = params.chainId;\n this.chain = CHAINS[params.chainId];\n this.auctionAddress = AUCTION_ADDRESSES[params.chainId];\n\n if (this.auctionAddress === zeroAddress) {\n throw new Error(\n `AuctionFlow is not yet deployed on chain ${params.chainId}. ` +\n `Supported chains: ${Object.entries(AUCTION_ADDRESSES)\n .filter(([, addr]) => addr !== zeroAddress)\n .map(([id]) => id)\n .join(\", \")}.`\n );\n }\n\n this.publicClient = createPublicClient({\n chain: this.chain,\n transport: http(params.rpcUrl),\n });\n\n this.walletClient = params.walletClient;\n }\n\n // Builder\n buildAuction(): AuctionBuilder {\n return new AuctionBuilder();\n }\n\n async createAuction(config: AuctionConfig): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"createAuction\",\n args: [\n config.name,\n config.symbol,\n config.maxSupply,\n config.paymentToken,\n config.basePrice,\n config.slope,\n config.maxRaise,\n config.startTime,\n config.endTime,\n ],\n });\n\n return hash;\n }\n\n async buyTokens(auctionId: bigint, amount: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"buyTokens\",\n args: [auctionId, amount],\n });\n\n return hash;\n }\n\n /**\n * Withdraw a completed auction's raised payment tokens to its creator.\n * Only the auction's creator can call this, and only once.\n */\n async withdrawProceeds(auctionId: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"withdrawProceeds\",\n args: [auctionId],\n });\n\n return hash;\n }\n\n // Read: Has an auction's creator already withdrawn its proceeds?\n async hasWithdrawnProceeds(auctionId: bigint): Promise<boolean> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"proceedsWithdrawn\",\n args: [auctionId],\n }) as Promise<boolean>;\n }\n\n // Read: Get auction data\n async getAuction(auctionId: bigint): Promise<AuctionData> {\n const result = await this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"auctions\",\n args: [auctionId],\n });\n\n // Parse the tuple returned by the contract\n return this.parseAuctionResult(auctionId, result as unknown as RawAuction);\n }\n\n // Read: Get buy quote (off-chain calculation)\n async getQuote(auctionId: bigint, amount: bigint): Promise<BuyQuote> {\n const auction = await this.getAuction(auctionId);\n const quote = calculateBuyQuote(\n auction.totalSold,\n amount,\n auction.basePrice,\n auction.slope,\n auction.protocolFeeBps\n );\n\n return {\n cost: quote.cost,\n fee: quote.fee,\n totalCost: quote.total,\n spotPriceAfter: quote.spotPriceAfter,\n };\n }\n\n // Read: Get spot price\n async getSpotPrice(auctionId: bigint): Promise<bigint> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"getSpotPrice\",\n args: [auctionId],\n }) as Promise<bigint>;\n }\n\n private parseAuctionResult(id: bigint, raw: RawAuction): AuctionData {\n // Mirrors the AuctionData struct returned by the public `auctions` getter.\n return {\n id,\n token: raw.config.token,\n paymentToken: raw.config.paymentToken,\n creator: raw.config.creator,\n basePrice: raw.config.basePrice,\n slope: raw.config.slope,\n maxRaise: raw.config.maxRaise,\n startTime: raw.config.startTime,\n endTime: raw.config.endTime,\n state: raw.state,\n totalRaised: raw.totalRaised,\n totalSold: raw.totalSold,\n protocolFeeBps: raw.config.protocolFeeBps,\n };\n }\n}\n","import { Address } from \"viem\";\nimport { AuctionConfig } from \"../types\";\n\nexport class AuctionBuilder {\n private config: Partial<AuctionConfig> = {};\n\n withToken(name: string, symbol: string, maxSupply: bigint): this {\n this.config.name = name;\n this.config.symbol = symbol;\n this.config.maxSupply = maxSupply;\n return this;\n }\n\n withPaymentToken(address: Address): this {\n this.config.paymentToken = address;\n return this;\n }\n\n withBondingCurve(basePrice: bigint, slope: bigint): this {\n this.config.basePrice = basePrice;\n this.config.slope = slope;\n return this;\n }\n\n withMaxRaise(maxRaise: bigint): this {\n this.config.maxRaise = maxRaise;\n return this;\n }\n\n withSchedule(startTime: bigint, endTime: bigint): this {\n this.config.startTime = startTime;\n this.config.endTime = endTime;\n return this;\n }\n\n build(): AuctionConfig {\n const required: (keyof AuctionConfig)[] = [\n \"name\", \"symbol\", \"maxSupply\", \"paymentToken\",\n \"basePrice\", \"slope\", \"maxRaise\", \"startTime\", \"endTime\",\n ];\n\n for (const key of required) {\n if (this.config[key] === undefined) {\n throw new Error(`Missing required field: ${key}`);\n }\n }\n\n const config = this.config as AuctionConfig;\n\n if (config.maxSupply <= 0n) throw new Error(\"maxSupply must be greater than 0\");\n if (config.basePrice <= 0n) throw new Error(\"basePrice must be greater than 0\");\n if (config.slope < 0n) throw new Error(\"slope must not be negative\");\n if (config.maxRaise <= 0n) throw new Error(\"maxRaise must be greater than 0\");\n if (config.startTime >= config.endTime) {\n throw new Error(\"startTime must be before endTime\");\n }\n\n return config;\n }\n}\n","import { Address } from \"viem\";\nimport { SupportedChainId } from \"../types\";\n\nexport const AUCTION_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0xadc3e02e962eed3856d7bee0315f84d187be1fea\",\n 8453: \"0x0000000000000000000000000000000000000000\", // not yet deployed\n};\n\nexport const USDC_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n 8453: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n};\n","export const tokenAuctionAbi = [\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"feeRecipient_\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"defaultFeeBps_\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctionCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctions\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"config\",\n \"type\": \"tuple\",\n \"internalType\": \"struct TokenAuction.AuctionConfig\",\n \"components\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"contract AuctionToken\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"contract IERC20\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"protocolFeeBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum TokenAuction.AuctionState\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"buyTokens\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"completeAuction\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"createAuction\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"maxSupply\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"defaultFeeBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getBuyCost\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getSpotPrice\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"protocolFeeRecipient\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"userPurchases\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawProceeds\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCompleted\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCreated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionMigrated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"liquidityPool\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TokensPurchased\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"buyer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"protocolFee\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeERC20FailedOperation\",\n \"inputs\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n }\n] as const;\n","/**\n * Off-chain bonding curve calculations (mirrors BondingCurve.sol)\n */\nexport function calculateBuyCost(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n const linearCost = basePrice * amount;\n const curveCost =\n (slope * amount * (2n * currentSupply + amount)) / 2n;\n return linearCost + curveCost;\n}\n\nexport function spotPrice(\n currentSupply: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n return basePrice + slope * currentSupply;\n}\n\nexport function calculateBuyQuote(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint,\n feeBps: bigint\n): { cost: bigint; fee: bigint; total: bigint; spotPriceAfter: bigint } {\n const cost = calculateBuyCost(currentSupply, amount, basePrice, slope);\n const fee = (cost * feeBps) / 10000n;\n return {\n cost,\n fee,\n total: cost + fee,\n spotPriceAfter: spotPrice(currentSupply + amount, basePrice, slope),\n };\n}\n","import { Chain } from \"viem\";\nimport { base, baseSepolia } from \"viem/chains\";\nimport { SupportedChainId } from \"../types\";\n\nexport const CHAINS: Record<SupportedChainId, Chain> = {\n 84532: baseSepolia,\n 8453: base,\n};\n\nexport function getChain(chainId: SupportedChainId): Chain {\n return CHAINS[chainId];\n}\n","import { Address, Hash } from \"viem\";\n\nexport enum AuctionState {\n PENDING = 0,\n ACTIVE = 1,\n COMPLETED = 2,\n MIGRATED = 3,\n}\n\nexport interface AuctionConfig {\n name: string;\n symbol: string;\n maxSupply: bigint;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n}\n\nexport interface AuctionData {\n id: bigint;\n token: Address;\n paymentToken: Address;\n creator: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n state: AuctionState;\n totalRaised: bigint;\n totalSold: bigint;\n protocolFeeBps: bigint;\n}\n\nexport interface BuyQuote {\n cost: bigint;\n fee: bigint;\n totalCost: bigint;\n spotPriceAfter: bigint;\n}\n\nexport interface TransactionResult {\n hash: Hash;\n}\n\nexport type SupportedChainId = 8453 | 84532; // Base, Base Sepolia\n"],"mappings":"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","names":["AuctionState"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/builders/auction-builder.ts","../src/constants/addresses.ts","../src/abis/token-auction.ts","../src/utils/bonding-curve.ts","../src/utils/chains.ts","../src/types/index.ts"],"sourcesContent":["export { AuctionFlowSDK } from \"./client\";\nexport { AuctionBuilder } from \"./builders/auction-builder\";\nexport * from \"./types\";\nexport * from \"./constants/addresses\";\nexport * from \"./utils/bonding-curve\";\n","import {\n createPublicClient,\n http,\n PublicClient,\n WalletClient,\n Chain,\n Address,\n Hash,\n zeroAddress,\n} from \"viem\";\nimport { AuctionBuilder } from \"./builders/auction-builder\";\nimport { AuctionConfig, AuctionData, BuyQuote, SupportedChainId } from \"./types\";\nimport { AUCTION_ADDRESSES } from \"./constants/addresses\";\nimport { tokenAuctionAbi } from \"./abis/token-auction\";\nimport { calculateBuyQuote } from \"./utils/bonding-curve\";\nimport { CHAINS } from \"./utils/chains\";\n\n/** Shape of the nested tuple returned by the on-chain `auctions(id)` getter. */\ninterface RawAuction {\n config: {\n token: Address;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n creator: Address;\n protocolFeeBps: bigint;\n };\n state: number;\n totalRaised: bigint;\n totalSold: bigint;\n}\n\nexport class AuctionFlowSDK {\n public readonly publicClient: PublicClient;\n public readonly walletClient?: WalletClient;\n public readonly auctionAddress: Address;\n public readonly chainId: SupportedChainId;\n private readonly chain: Chain;\n\n constructor(params: {\n chainId: SupportedChainId;\n rpcUrl: string;\n walletClient?: WalletClient;\n auctionAddress?: Address;\n }) {\n this.chainId = params.chainId;\n this.chain = CHAINS[params.chainId];\n this.auctionAddress = params.auctionAddress ?? AUCTION_ADDRESSES[params.chainId];\n\n if (params.auctionAddress === zeroAddress) {\n throw new Error(\n \"auctionAddress must not be the zero address.\"\n );\n }\n\n if (this.auctionAddress === zeroAddress) {\n throw new Error(\n `AuctionFlow has no canonical deployment on chain ${params.chainId}. ` +\n `Chains with a built-in deployment: ${Object.entries(AUCTION_ADDRESSES)\n .filter(([, addr]) => addr !== zeroAddress)\n .map(([id]) => id)\n .join(\", \")}. ` +\n `Pass \\`auctionAddress\\` to use your own deployment.`\n );\n }\n\n this.publicClient = createPublicClient({\n chain: this.chain,\n transport: http(params.rpcUrl),\n });\n\n this.walletClient = params.walletClient;\n }\n\n // Builder\n buildAuction(): AuctionBuilder {\n return new AuctionBuilder();\n }\n\n async createAuction(config: AuctionConfig): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"createAuction\",\n args: [\n config.name,\n config.symbol,\n config.maxSupply,\n config.paymentToken,\n config.basePrice,\n config.slope,\n config.maxRaise,\n config.startTime,\n config.endTime,\n ],\n });\n\n return hash;\n }\n\n async buyTokens(auctionId: bigint, amount: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"buyTokens\",\n args: [auctionId, amount],\n });\n\n return hash;\n }\n\n /**\n * Withdraw a completed auction's raised payment tokens to its creator.\n * Only the auction's creator can call this, and only once.\n */\n async withdrawProceeds(auctionId: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"withdrawProceeds\",\n args: [auctionId],\n });\n\n return hash;\n }\n\n // Read: Has an auction's creator already withdrawn its proceeds?\n async hasWithdrawnProceeds(auctionId: bigint): Promise<boolean> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"proceedsWithdrawn\",\n args: [auctionId],\n }) as Promise<boolean>;\n }\n\n // Read: Get auction data\n async getAuction(auctionId: bigint): Promise<AuctionData> {\n const result = await this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"auctions\",\n args: [auctionId],\n });\n\n // Parse the tuple returned by the contract\n return this.parseAuctionResult(auctionId, result as unknown as RawAuction);\n }\n\n // Read: Get buy quote (off-chain calculation)\n async getQuote(auctionId: bigint, amount: bigint): Promise<BuyQuote> {\n const auction = await this.getAuction(auctionId);\n const quote = calculateBuyQuote(\n auction.totalSold,\n amount,\n auction.basePrice,\n auction.slope,\n auction.protocolFeeBps\n );\n\n return {\n cost: quote.cost,\n fee: quote.fee,\n totalCost: quote.total,\n spotPriceAfter: quote.spotPriceAfter,\n };\n }\n\n // Read: Get spot price\n async getSpotPrice(auctionId: bigint): Promise<bigint> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"getSpotPrice\",\n args: [auctionId],\n }) as Promise<bigint>;\n }\n\n private parseAuctionResult(id: bigint, raw: RawAuction): AuctionData {\n // Mirrors the AuctionData struct returned by the public `auctions` getter.\n return {\n id,\n token: raw.config.token,\n paymentToken: raw.config.paymentToken,\n creator: raw.config.creator,\n basePrice: raw.config.basePrice,\n slope: raw.config.slope,\n maxRaise: raw.config.maxRaise,\n startTime: raw.config.startTime,\n endTime: raw.config.endTime,\n state: raw.state,\n totalRaised: raw.totalRaised,\n totalSold: raw.totalSold,\n protocolFeeBps: raw.config.protocolFeeBps,\n };\n }\n}\n","import { Address } from \"viem\";\nimport { AuctionConfig } from \"../types\";\n\nexport class AuctionBuilder {\n private config: Partial<AuctionConfig> = {};\n\n withToken(name: string, symbol: string, maxSupply: bigint): this {\n this.config.name = name;\n this.config.symbol = symbol;\n this.config.maxSupply = maxSupply;\n return this;\n }\n\n withPaymentToken(address: Address): this {\n this.config.paymentToken = address;\n return this;\n }\n\n withBondingCurve(basePrice: bigint, slope: bigint): this {\n this.config.basePrice = basePrice;\n this.config.slope = slope;\n return this;\n }\n\n withMaxRaise(maxRaise: bigint): this {\n this.config.maxRaise = maxRaise;\n return this;\n }\n\n withSchedule(startTime: bigint, endTime: bigint): this {\n this.config.startTime = startTime;\n this.config.endTime = endTime;\n return this;\n }\n\n build(): AuctionConfig {\n const required: (keyof AuctionConfig)[] = [\n \"name\", \"symbol\", \"maxSupply\", \"paymentToken\",\n \"basePrice\", \"slope\", \"maxRaise\", \"startTime\", \"endTime\",\n ];\n\n for (const key of required) {\n if (this.config[key] === undefined) {\n throw new Error(`Missing required field: ${key}`);\n }\n }\n\n const config = this.config as AuctionConfig;\n\n if (config.maxSupply <= 0n) throw new Error(\"maxSupply must be greater than 0\");\n if (config.basePrice <= 0n) throw new Error(\"basePrice must be greater than 0\");\n if (config.slope < 0n) throw new Error(\"slope must not be negative\");\n if (config.maxRaise <= 0n) throw new Error(\"maxRaise must be greater than 0\");\n if (config.startTime >= config.endTime) {\n throw new Error(\"startTime must be before endTime\");\n }\n\n return config;\n }\n}\n","import { Address } from \"viem\";\nimport { SupportedChainId } from \"../types\";\n\nexport const AUCTION_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0xadc3e02e962eed3856d7bee0315f84d187be1fea\",\n 8453: \"0x0000000000000000000000000000000000000000\", // not yet deployed\n};\n\nexport const USDC_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n 8453: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n};\n","export const tokenAuctionAbi = [\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"feeRecipient_\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"defaultFeeBps_\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctionCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctions\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"config\",\n \"type\": \"tuple\",\n \"internalType\": \"struct TokenAuction.AuctionConfig\",\n \"components\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"contract AuctionToken\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"contract IERC20\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"protocolFeeBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum TokenAuction.AuctionState\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"buyTokens\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"completeAuction\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"createAuction\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"maxSupply\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"defaultFeeBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getBuyCost\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getSpotPrice\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"protocolFeeRecipient\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"userPurchases\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawProceeds\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCompleted\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCreated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionMigrated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"liquidityPool\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TokensPurchased\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"buyer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"protocolFee\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeERC20FailedOperation\",\n \"inputs\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n }\n] as const;\n","/**\n * Off-chain bonding curve calculations (mirrors BondingCurve.sol)\n */\nexport function calculateBuyCost(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n const linearCost = basePrice * amount;\n const curveCost =\n (slope * amount * (2n * currentSupply + amount)) / 2n;\n return linearCost + curveCost;\n}\n\nexport function spotPrice(\n currentSupply: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n return basePrice + slope * currentSupply;\n}\n\nexport function calculateBuyQuote(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint,\n feeBps: bigint\n): { cost: bigint; fee: bigint; total: bigint; spotPriceAfter: bigint } {\n const cost = calculateBuyCost(currentSupply, amount, basePrice, slope);\n const fee = (cost * feeBps) / 10000n;\n return {\n cost,\n fee,\n total: cost + fee,\n spotPriceAfter: spotPrice(currentSupply + amount, basePrice, slope),\n };\n}\n","import { Chain } from \"viem\";\nimport { base, baseSepolia } from \"viem/chains\";\nimport { SupportedChainId } from \"../types\";\n\nexport const CHAINS: Record<SupportedChainId, Chain> = {\n 84532: baseSepolia,\n 8453: base,\n};\n\nexport function getChain(chainId: SupportedChainId): Chain {\n return CHAINS[chainId];\n}\n","import { Address, Hash } from \"viem\";\n\nexport enum AuctionState {\n PENDING = 0,\n ACTIVE = 1,\n COMPLETED = 2,\n MIGRATED = 3,\n}\n\nexport interface AuctionConfig {\n name: string;\n symbol: string;\n maxSupply: bigint;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n}\n\nexport interface AuctionData {\n id: bigint;\n token: Address;\n paymentToken: Address;\n creator: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n state: AuctionState;\n totalRaised: bigint;\n totalSold: bigint;\n protocolFeeBps: bigint;\n}\n\nexport interface BuyQuote {\n cost: bigint;\n fee: bigint;\n totalCost: bigint;\n spotPriceAfter: bigint;\n}\n\nexport interface TransactionResult {\n hash: Hash;\n}\n\nexport type SupportedChainId = 8453 | 84532; // Base, Base Sepolia\n"],"mappings":"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","names":["AuctionState"]}
|
package/dist/index.mjs
CHANGED
|
@@ -712,10 +712,15 @@ var AuctionFlowSDK = class {
|
|
|
712
712
|
constructor(params) {
|
|
713
713
|
this.chainId = params.chainId;
|
|
714
714
|
this.chain = CHAINS[params.chainId];
|
|
715
|
-
this.auctionAddress = AUCTION_ADDRESSES[params.chainId];
|
|
715
|
+
this.auctionAddress = params.auctionAddress ?? AUCTION_ADDRESSES[params.chainId];
|
|
716
|
+
if (params.auctionAddress === zeroAddress) {
|
|
717
|
+
throw new Error(
|
|
718
|
+
"auctionAddress must not be the zero address."
|
|
719
|
+
);
|
|
720
|
+
}
|
|
716
721
|
if (this.auctionAddress === zeroAddress) {
|
|
717
722
|
throw new Error(
|
|
718
|
-
`AuctionFlow
|
|
723
|
+
`AuctionFlow has no canonical deployment on chain ${params.chainId}. Chains with a built-in deployment: ${Object.entries(AUCTION_ADDRESSES).filter(([, addr]) => addr !== zeroAddress).map(([id]) => id).join(", ")}. Pass \`auctionAddress\` to use your own deployment.`
|
|
719
724
|
);
|
|
720
725
|
}
|
|
721
726
|
this.publicClient = createPublicClient({
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts","../src/builders/auction-builder.ts","../src/constants/addresses.ts","../src/abis/token-auction.ts","../src/utils/bonding-curve.ts","../src/utils/chains.ts","../src/types/index.ts"],"sourcesContent":["import {\n createPublicClient,\n http,\n PublicClient,\n WalletClient,\n Chain,\n Address,\n Hash,\n zeroAddress,\n} from \"viem\";\nimport { AuctionBuilder } from \"./builders/auction-builder\";\nimport { AuctionConfig, AuctionData, BuyQuote, SupportedChainId } from \"./types\";\nimport { AUCTION_ADDRESSES } from \"./constants/addresses\";\nimport { tokenAuctionAbi } from \"./abis/token-auction\";\nimport { calculateBuyQuote } from \"./utils/bonding-curve\";\nimport { CHAINS } from \"./utils/chains\";\n\n/** Shape of the nested tuple returned by the on-chain `auctions(id)` getter. */\ninterface RawAuction {\n config: {\n token: Address;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n creator: Address;\n protocolFeeBps: bigint;\n };\n state: number;\n totalRaised: bigint;\n totalSold: bigint;\n}\n\nexport class AuctionFlowSDK {\n public readonly publicClient: PublicClient;\n public readonly walletClient?: WalletClient;\n public readonly auctionAddress: Address;\n public readonly chainId: SupportedChainId;\n private readonly chain: Chain;\n\n constructor(params: {\n chainId: SupportedChainId;\n rpcUrl: string;\n walletClient?: WalletClient;\n }) {\n this.chainId = params.chainId;\n this.chain = CHAINS[params.chainId];\n this.auctionAddress = AUCTION_ADDRESSES[params.chainId];\n\n if (this.auctionAddress === zeroAddress) {\n throw new Error(\n `AuctionFlow is not yet deployed on chain ${params.chainId}. ` +\n `Supported chains: ${Object.entries(AUCTION_ADDRESSES)\n .filter(([, addr]) => addr !== zeroAddress)\n .map(([id]) => id)\n .join(\", \")}.`\n );\n }\n\n this.publicClient = createPublicClient({\n chain: this.chain,\n transport: http(params.rpcUrl),\n });\n\n this.walletClient = params.walletClient;\n }\n\n // Builder\n buildAuction(): AuctionBuilder {\n return new AuctionBuilder();\n }\n\n async createAuction(config: AuctionConfig): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"createAuction\",\n args: [\n config.name,\n config.symbol,\n config.maxSupply,\n config.paymentToken,\n config.basePrice,\n config.slope,\n config.maxRaise,\n config.startTime,\n config.endTime,\n ],\n });\n\n return hash;\n }\n\n async buyTokens(auctionId: bigint, amount: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"buyTokens\",\n args: [auctionId, amount],\n });\n\n return hash;\n }\n\n /**\n * Withdraw a completed auction's raised payment tokens to its creator.\n * Only the auction's creator can call this, and only once.\n */\n async withdrawProceeds(auctionId: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"withdrawProceeds\",\n args: [auctionId],\n });\n\n return hash;\n }\n\n // Read: Has an auction's creator already withdrawn its proceeds?\n async hasWithdrawnProceeds(auctionId: bigint): Promise<boolean> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"proceedsWithdrawn\",\n args: [auctionId],\n }) as Promise<boolean>;\n }\n\n // Read: Get auction data\n async getAuction(auctionId: bigint): Promise<AuctionData> {\n const result = await this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"auctions\",\n args: [auctionId],\n });\n\n // Parse the tuple returned by the contract\n return this.parseAuctionResult(auctionId, result as unknown as RawAuction);\n }\n\n // Read: Get buy quote (off-chain calculation)\n async getQuote(auctionId: bigint, amount: bigint): Promise<BuyQuote> {\n const auction = await this.getAuction(auctionId);\n const quote = calculateBuyQuote(\n auction.totalSold,\n amount,\n auction.basePrice,\n auction.slope,\n auction.protocolFeeBps\n );\n\n return {\n cost: quote.cost,\n fee: quote.fee,\n totalCost: quote.total,\n spotPriceAfter: quote.spotPriceAfter,\n };\n }\n\n // Read: Get spot price\n async getSpotPrice(auctionId: bigint): Promise<bigint> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"getSpotPrice\",\n args: [auctionId],\n }) as Promise<bigint>;\n }\n\n private parseAuctionResult(id: bigint, raw: RawAuction): AuctionData {\n // Mirrors the AuctionData struct returned by the public `auctions` getter.\n return {\n id,\n token: raw.config.token,\n paymentToken: raw.config.paymentToken,\n creator: raw.config.creator,\n basePrice: raw.config.basePrice,\n slope: raw.config.slope,\n maxRaise: raw.config.maxRaise,\n startTime: raw.config.startTime,\n endTime: raw.config.endTime,\n state: raw.state,\n totalRaised: raw.totalRaised,\n totalSold: raw.totalSold,\n protocolFeeBps: raw.config.protocolFeeBps,\n };\n }\n}\n","import { Address } from \"viem\";\nimport { AuctionConfig } from \"../types\";\n\nexport class AuctionBuilder {\n private config: Partial<AuctionConfig> = {};\n\n withToken(name: string, symbol: string, maxSupply: bigint): this {\n this.config.name = name;\n this.config.symbol = symbol;\n this.config.maxSupply = maxSupply;\n return this;\n }\n\n withPaymentToken(address: Address): this {\n this.config.paymentToken = address;\n return this;\n }\n\n withBondingCurve(basePrice: bigint, slope: bigint): this {\n this.config.basePrice = basePrice;\n this.config.slope = slope;\n return this;\n }\n\n withMaxRaise(maxRaise: bigint): this {\n this.config.maxRaise = maxRaise;\n return this;\n }\n\n withSchedule(startTime: bigint, endTime: bigint): this {\n this.config.startTime = startTime;\n this.config.endTime = endTime;\n return this;\n }\n\n build(): AuctionConfig {\n const required: (keyof AuctionConfig)[] = [\n \"name\", \"symbol\", \"maxSupply\", \"paymentToken\",\n \"basePrice\", \"slope\", \"maxRaise\", \"startTime\", \"endTime\",\n ];\n\n for (const key of required) {\n if (this.config[key] === undefined) {\n throw new Error(`Missing required field: ${key}`);\n }\n }\n\n const config = this.config as AuctionConfig;\n\n if (config.maxSupply <= 0n) throw new Error(\"maxSupply must be greater than 0\");\n if (config.basePrice <= 0n) throw new Error(\"basePrice must be greater than 0\");\n if (config.slope < 0n) throw new Error(\"slope must not be negative\");\n if (config.maxRaise <= 0n) throw new Error(\"maxRaise must be greater than 0\");\n if (config.startTime >= config.endTime) {\n throw new Error(\"startTime must be before endTime\");\n }\n\n return config;\n }\n}\n","import { Address } from \"viem\";\nimport { SupportedChainId } from \"../types\";\n\nexport const AUCTION_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0xadc3e02e962eed3856d7bee0315f84d187be1fea\",\n 8453: \"0x0000000000000000000000000000000000000000\", // not yet deployed\n};\n\nexport const USDC_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n 8453: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n};\n","export const tokenAuctionAbi = [\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"feeRecipient_\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"defaultFeeBps_\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctionCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctions\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"config\",\n \"type\": \"tuple\",\n \"internalType\": \"struct TokenAuction.AuctionConfig\",\n \"components\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"contract AuctionToken\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"contract IERC20\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"protocolFeeBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum TokenAuction.AuctionState\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"buyTokens\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"completeAuction\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"createAuction\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"maxSupply\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"defaultFeeBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getBuyCost\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getSpotPrice\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"protocolFeeRecipient\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"userPurchases\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawProceeds\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCompleted\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCreated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionMigrated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"liquidityPool\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TokensPurchased\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"buyer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"protocolFee\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeERC20FailedOperation\",\n \"inputs\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n }\n] as const;\n","/**\n * Off-chain bonding curve calculations (mirrors BondingCurve.sol)\n */\nexport function calculateBuyCost(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n const linearCost = basePrice * amount;\n const curveCost =\n (slope * amount * (2n * currentSupply + amount)) / 2n;\n return linearCost + curveCost;\n}\n\nexport function spotPrice(\n currentSupply: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n return basePrice + slope * currentSupply;\n}\n\nexport function calculateBuyQuote(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint,\n feeBps: bigint\n): { cost: bigint; fee: bigint; total: bigint; spotPriceAfter: bigint } {\n const cost = calculateBuyCost(currentSupply, amount, basePrice, slope);\n const fee = (cost * feeBps) / 10000n;\n return {\n cost,\n fee,\n total: cost + fee,\n spotPriceAfter: spotPrice(currentSupply + amount, basePrice, slope),\n };\n}\n","import { Chain } from \"viem\";\nimport { base, baseSepolia } from \"viem/chains\";\nimport { SupportedChainId } from \"../types\";\n\nexport const CHAINS: Record<SupportedChainId, Chain> = {\n 84532: baseSepolia,\n 8453: base,\n};\n\nexport function getChain(chainId: SupportedChainId): Chain {\n return CHAINS[chainId];\n}\n","import { Address, Hash } from \"viem\";\n\nexport enum AuctionState {\n PENDING = 0,\n ACTIVE = 1,\n COMPLETED = 2,\n MIGRATED = 3,\n}\n\nexport interface AuctionConfig {\n name: string;\n symbol: string;\n maxSupply: bigint;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n}\n\nexport interface AuctionData {\n id: bigint;\n token: Address;\n paymentToken: Address;\n creator: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n state: AuctionState;\n totalRaised: bigint;\n totalSold: bigint;\n protocolFeeBps: bigint;\n}\n\nexport interface BuyQuote {\n cost: bigint;\n fee: bigint;\n totalCost: bigint;\n spotPriceAfter: bigint;\n}\n\nexport interface TransactionResult {\n hash: Hash;\n}\n\nexport type SupportedChainId = 8453 | 84532; // Base, Base Sepolia\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EAMA;AAAA,OACK;;;ACNA,IAAM,iBAAN,MAAqB;AAAA,EAClB,SAAiC,CAAC;AAAA,EAE1C,UAAU,MAAc,QAAgB,WAAyB;AAC/D,SAAK,OAAO,OAAO;AACnB,SAAK,OAAO,SAAS;AACrB,SAAK,OAAO,YAAY;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,SAAwB;AACvC,SAAK,OAAO,eAAe;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,WAAmB,OAAqB;AACvD,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,UAAwB;AACnC,SAAK,OAAO,WAAW;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,WAAmB,SAAuB;AACrD,SAAK,OAAO,YAAY;AACxB,SAAK,OAAO,UAAU;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,QAAuB;AACrB,UAAM,WAAoC;AAAA,MACxC;AAAA,MAAQ;AAAA,MAAU;AAAA,MAAa;AAAA,MAC/B;AAAA,MAAa;AAAA,MAAS;AAAA,MAAY;AAAA,MAAa;AAAA,IACjD;AAEA,eAAW,OAAO,UAAU;AAC1B,UAAI,KAAK,OAAO,GAAG,MAAM,QAAW;AAClC,cAAM,IAAI,MAAM,2BAA2B,GAAG,EAAE;AAAA,MAClD;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAEpB,QAAI,OAAO,aAAa,GAAI,OAAM,IAAI,MAAM,kCAAkC;AAC9E,QAAI,OAAO,aAAa,GAAI,OAAM,IAAI,MAAM,kCAAkC;AAC9E,QAAI,OAAO,QAAQ,GAAI,OAAM,IAAI,MAAM,4BAA4B;AACnE,QAAI,OAAO,YAAY,GAAI,OAAM,IAAI,MAAM,iCAAiC;AAC5E,QAAI,OAAO,aAAa,OAAO,SAAS;AACtC,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACpD;AAEA,WAAO;AAAA,EACT;AACF;;;ACxDO,IAAM,oBAAuD;AAAA,EAClE,OAAO;AAAA,EACP,MAAM;AAAA;AACR;AAEO,IAAM,iBAAoD;AAAA,EAC/D,OAAO;AAAA,EACP,MAAM;AACR;;;ACXO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,IACE,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,cAAc;AAAA,UACZ;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,gBAAgB;AAAA,UAClB;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,IACX,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,IACX,WAAW,CAAC;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,EACb;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,MACR;AAAA,QACE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF;;;ACrlBO,SAAS,iBACd,eACA,QACA,WACA,OACQ;AACR,QAAM,aAAa,YAAY;AAC/B,QAAM,YACH,QAAQ,UAAU,KAAK,gBAAgB,UAAW;AACrD,SAAO,aAAa;AACtB;AAEO,SAAS,UACd,eACA,WACA,OACQ;AACR,SAAO,YAAY,QAAQ;AAC7B;AAEO,SAAS,kBACd,eACA,QACA,WACA,OACA,QACsE;AACtE,QAAM,OAAO,iBAAiB,eAAe,QAAQ,WAAW,KAAK;AACrE,QAAM,MAAO,OAAO,SAAU;AAC9B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,OAAO,OAAO;AAAA,IACd,gBAAgB,UAAU,gBAAgB,QAAQ,WAAW,KAAK;AAAA,EACpE;AACF;;;ACrCA,SAAS,MAAM,mBAAmB;AAG3B,IAAM,SAA0C;AAAA,EACrD,OAAO;AAAA,EACP,MAAM;AACR;;;AL4BO,IAAM,iBAAN,MAAqB;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACC;AAAA,EAEjB,YAAY,QAIT;AACD,SAAK,UAAU,OAAO;AACtB,SAAK,QAAQ,OAAO,OAAO,OAAO;AAClC,SAAK,iBAAiB,kBAAkB,OAAO,OAAO;AAEtD,QAAI,KAAK,mBAAmB,aAAa;AACvC,YAAM,IAAI;AAAA,QACR,4CAA4C,OAAO,OAAO,uBACnC,OAAO,QAAQ,iBAAiB,EAClD,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,SAAS,WAAW,EACzC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAChB,KAAK,IAAI,CAAC;AAAA,MACjB;AAAA,IACF;AAEA,SAAK,eAAe,mBAAmB;AAAA,MACrC,OAAO,KAAK;AAAA,MACZ,WAAW,KAAK,OAAO,MAAM;AAAA,IAC/B,CAAC;AAED,SAAK,eAAe,OAAO;AAAA,EAC7B;AAAA;AAAA,EAGA,eAA+B;AAC7B,WAAO,IAAI,eAAe;AAAA,EAC5B;AAAA,EAEA,MAAM,cAAc,QAAsC;AACxD,QAAI,CAAC,KAAK,aAAc,OAAM,IAAI,MAAM,wBAAwB;AAEhE,UAAM,OAAO,MAAM,KAAK,aAAa,cAAc;AAAA,MACjD,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK,aAAa;AAAA,MAC3B,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAU,WAAmB,QAA+B;AAChE,QAAI,CAAC,KAAK,aAAc,OAAM,IAAI,MAAM,wBAAwB;AAEhE,UAAM,OAAO,MAAM,KAAK,aAAa,cAAc;AAAA,MACjD,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK,aAAa;AAAA,MAC3B,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,WAAW,MAAM;AAAA,IAC1B,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBAAiB,WAAkC;AACvD,QAAI,CAAC,KAAK,aAAc,OAAM,IAAI,MAAM,wBAAwB;AAEhE,UAAM,OAAO,MAAM,KAAK,aAAa,cAAc;AAAA,MACjD,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK,aAAa;AAAA,MAC3B,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,SAAS;AAAA,IAClB,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,qBAAqB,WAAqC;AAC9D,WAAO,KAAK,aAAa,aAAa;AAAA,MACpC,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,SAAS;AAAA,IAClB,CAAC;AAAA,EACH;AAAA;AAAA,EAGA,MAAM,WAAW,WAAyC;AACxD,UAAM,SAAS,MAAM,KAAK,aAAa,aAAa;AAAA,MAClD,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,SAAS;AAAA,IAClB,CAAC;AAGD,WAAO,KAAK,mBAAmB,WAAW,MAA+B;AAAA,EAC3E;AAAA;AAAA,EAGA,MAAM,SAAS,WAAmB,QAAmC;AACnE,UAAM,UAAU,MAAM,KAAK,WAAW,SAAS;AAC/C,UAAM,QAAQ;AAAA,MACZ,QAAQ;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAEA,WAAO;AAAA,MACL,MAAM,MAAM;AAAA,MACZ,KAAK,MAAM;AAAA,MACX,WAAW,MAAM;AAAA,MACjB,gBAAgB,MAAM;AAAA,IACxB;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,aAAa,WAAoC;AACrD,WAAO,KAAK,aAAa,aAAa;AAAA,MACpC,SAAS,KAAK;AAAA,MACd,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,SAAS;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEQ,mBAAmB,IAAY,KAA8B;AAEnE,WAAO;AAAA,MACL;AAAA,MACA,OAAO,IAAI,OAAO;AAAA,MAClB,cAAc,IAAI,OAAO;AAAA,MACzB,SAAS,IAAI,OAAO;AAAA,MACpB,WAAW,IAAI,OAAO;AAAA,MACtB,OAAO,IAAI,OAAO;AAAA,MAClB,UAAU,IAAI,OAAO;AAAA,MACrB,WAAW,IAAI,OAAO;AAAA,MACtB,SAAS,IAAI,OAAO;AAAA,MACpB,OAAO,IAAI;AAAA,MACX,aAAa,IAAI;AAAA,MACjB,WAAW,IAAI;AAAA,MACf,gBAAgB,IAAI,OAAO;AAAA,IAC7B;AAAA,EACF;AACF;;;AMzMO,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,4BAAA,aAAU,KAAV;AACA,EAAAA,4BAAA,YAAS,KAAT;AACA,EAAAA,4BAAA,eAAY,KAAZ;AACA,EAAAA,4BAAA,cAAW,KAAX;AAJU,SAAAA;AAAA,GAAA;","names":["AuctionState"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/builders/auction-builder.ts","../src/constants/addresses.ts","../src/abis/token-auction.ts","../src/utils/bonding-curve.ts","../src/utils/chains.ts","../src/types/index.ts"],"sourcesContent":["import {\n createPublicClient,\n http,\n PublicClient,\n WalletClient,\n Chain,\n Address,\n Hash,\n zeroAddress,\n} from \"viem\";\nimport { AuctionBuilder } from \"./builders/auction-builder\";\nimport { AuctionConfig, AuctionData, BuyQuote, SupportedChainId } from \"./types\";\nimport { AUCTION_ADDRESSES } from \"./constants/addresses\";\nimport { tokenAuctionAbi } from \"./abis/token-auction\";\nimport { calculateBuyQuote } from \"./utils/bonding-curve\";\nimport { CHAINS } from \"./utils/chains\";\n\n/** Shape of the nested tuple returned by the on-chain `auctions(id)` getter. */\ninterface RawAuction {\n config: {\n token: Address;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n creator: Address;\n protocolFeeBps: bigint;\n };\n state: number;\n totalRaised: bigint;\n totalSold: bigint;\n}\n\nexport class AuctionFlowSDK {\n public readonly publicClient: PublicClient;\n public readonly walletClient?: WalletClient;\n public readonly auctionAddress: Address;\n public readonly chainId: SupportedChainId;\n private readonly chain: Chain;\n\n constructor(params: {\n chainId: SupportedChainId;\n rpcUrl: string;\n walletClient?: WalletClient;\n auctionAddress?: Address;\n }) {\n this.chainId = params.chainId;\n this.chain = CHAINS[params.chainId];\n this.auctionAddress = params.auctionAddress ?? AUCTION_ADDRESSES[params.chainId];\n\n if (params.auctionAddress === zeroAddress) {\n throw new Error(\n \"auctionAddress must not be the zero address.\"\n );\n }\n\n if (this.auctionAddress === zeroAddress) {\n throw new Error(\n `AuctionFlow has no canonical deployment on chain ${params.chainId}. ` +\n `Chains with a built-in deployment: ${Object.entries(AUCTION_ADDRESSES)\n .filter(([, addr]) => addr !== zeroAddress)\n .map(([id]) => id)\n .join(\", \")}. ` +\n `Pass \\`auctionAddress\\` to use your own deployment.`\n );\n }\n\n this.publicClient = createPublicClient({\n chain: this.chain,\n transport: http(params.rpcUrl),\n });\n\n this.walletClient = params.walletClient;\n }\n\n // Builder\n buildAuction(): AuctionBuilder {\n return new AuctionBuilder();\n }\n\n async createAuction(config: AuctionConfig): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"createAuction\",\n args: [\n config.name,\n config.symbol,\n config.maxSupply,\n config.paymentToken,\n config.basePrice,\n config.slope,\n config.maxRaise,\n config.startTime,\n config.endTime,\n ],\n });\n\n return hash;\n }\n\n async buyTokens(auctionId: bigint, amount: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"buyTokens\",\n args: [auctionId, amount],\n });\n\n return hash;\n }\n\n /**\n * Withdraw a completed auction's raised payment tokens to its creator.\n * Only the auction's creator can call this, and only once.\n */\n async withdrawProceeds(auctionId: bigint): Promise<Hash> {\n if (!this.walletClient) throw new Error(\"Wallet client required\");\n\n const hash = await this.walletClient.writeContract({\n chain: this.chain,\n account: this.walletClient.account!,\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"withdrawProceeds\",\n args: [auctionId],\n });\n\n return hash;\n }\n\n // Read: Has an auction's creator already withdrawn its proceeds?\n async hasWithdrawnProceeds(auctionId: bigint): Promise<boolean> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"proceedsWithdrawn\",\n args: [auctionId],\n }) as Promise<boolean>;\n }\n\n // Read: Get auction data\n async getAuction(auctionId: bigint): Promise<AuctionData> {\n const result = await this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"auctions\",\n args: [auctionId],\n });\n\n // Parse the tuple returned by the contract\n return this.parseAuctionResult(auctionId, result as unknown as RawAuction);\n }\n\n // Read: Get buy quote (off-chain calculation)\n async getQuote(auctionId: bigint, amount: bigint): Promise<BuyQuote> {\n const auction = await this.getAuction(auctionId);\n const quote = calculateBuyQuote(\n auction.totalSold,\n amount,\n auction.basePrice,\n auction.slope,\n auction.protocolFeeBps\n );\n\n return {\n cost: quote.cost,\n fee: quote.fee,\n totalCost: quote.total,\n spotPriceAfter: quote.spotPriceAfter,\n };\n }\n\n // Read: Get spot price\n async getSpotPrice(auctionId: bigint): Promise<bigint> {\n return this.publicClient.readContract({\n address: this.auctionAddress,\n abi: tokenAuctionAbi,\n functionName: \"getSpotPrice\",\n args: [auctionId],\n }) as Promise<bigint>;\n }\n\n private parseAuctionResult(id: bigint, raw: RawAuction): AuctionData {\n // Mirrors the AuctionData struct returned by the public `auctions` getter.\n return {\n id,\n token: raw.config.token,\n paymentToken: raw.config.paymentToken,\n creator: raw.config.creator,\n basePrice: raw.config.basePrice,\n slope: raw.config.slope,\n maxRaise: raw.config.maxRaise,\n startTime: raw.config.startTime,\n endTime: raw.config.endTime,\n state: raw.state,\n totalRaised: raw.totalRaised,\n totalSold: raw.totalSold,\n protocolFeeBps: raw.config.protocolFeeBps,\n };\n }\n}\n","import { Address } from \"viem\";\nimport { AuctionConfig } from \"../types\";\n\nexport class AuctionBuilder {\n private config: Partial<AuctionConfig> = {};\n\n withToken(name: string, symbol: string, maxSupply: bigint): this {\n this.config.name = name;\n this.config.symbol = symbol;\n this.config.maxSupply = maxSupply;\n return this;\n }\n\n withPaymentToken(address: Address): this {\n this.config.paymentToken = address;\n return this;\n }\n\n withBondingCurve(basePrice: bigint, slope: bigint): this {\n this.config.basePrice = basePrice;\n this.config.slope = slope;\n return this;\n }\n\n withMaxRaise(maxRaise: bigint): this {\n this.config.maxRaise = maxRaise;\n return this;\n }\n\n withSchedule(startTime: bigint, endTime: bigint): this {\n this.config.startTime = startTime;\n this.config.endTime = endTime;\n return this;\n }\n\n build(): AuctionConfig {\n const required: (keyof AuctionConfig)[] = [\n \"name\", \"symbol\", \"maxSupply\", \"paymentToken\",\n \"basePrice\", \"slope\", \"maxRaise\", \"startTime\", \"endTime\",\n ];\n\n for (const key of required) {\n if (this.config[key] === undefined) {\n throw new Error(`Missing required field: ${key}`);\n }\n }\n\n const config = this.config as AuctionConfig;\n\n if (config.maxSupply <= 0n) throw new Error(\"maxSupply must be greater than 0\");\n if (config.basePrice <= 0n) throw new Error(\"basePrice must be greater than 0\");\n if (config.slope < 0n) throw new Error(\"slope must not be negative\");\n if (config.maxRaise <= 0n) throw new Error(\"maxRaise must be greater than 0\");\n if (config.startTime >= config.endTime) {\n throw new Error(\"startTime must be before endTime\");\n }\n\n return config;\n }\n}\n","import { Address } from \"viem\";\nimport { SupportedChainId } from \"../types\";\n\nexport const AUCTION_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0xadc3e02e962eed3856d7bee0315f84d187be1fea\",\n 8453: \"0x0000000000000000000000000000000000000000\", // not yet deployed\n};\n\nexport const USDC_ADDRESSES: Record<SupportedChainId, Address> = {\n 84532: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n 8453: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n};\n","export const tokenAuctionAbi = [\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"name\": \"feeRecipient_\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"defaultFeeBps_\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctionCount\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"auctions\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"config\",\n \"type\": \"tuple\",\n \"internalType\": \"struct TokenAuction.AuctionConfig\",\n \"components\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"contract AuctionToken\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"contract IERC20\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"protocolFeeBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"name\": \"state\",\n \"type\": \"uint8\",\n \"internalType\": \"enum TokenAuction.AuctionState\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"buyTokens\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"completeAuction\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"createAuction\",\n \"inputs\": [\n {\n \"name\": \"name\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\",\n \"internalType\": \"string\"\n },\n {\n \"name\": \"maxSupply\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"defaultFeeBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getBuyCost\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getSpotPrice\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"proceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"bool\",\n \"internalType\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"protocolFeeRecipient\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"userPurchases\",\n \"inputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawProceeds\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCompleted\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"totalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionCreated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"paymentToken\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"basePrice\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"slope\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"maxRaise\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"startTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"endTime\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"AuctionMigrated\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"liquidityPool\",\n \"type\": \"address\",\n \"indexed\": false,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"ProceedsWithdrawn\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"creator\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"TokensPurchased\",\n \"inputs\": [\n {\n \"name\": \"auctionId\",\n \"type\": \"uint256\",\n \"indexed\": true,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"buyer\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"cost\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"protocolFee\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalRaised\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"newTotalSold\",\n \"type\": \"uint256\",\n \"indexed\": false,\n \"internalType\": \"uint256\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"SafeERC20FailedOperation\",\n \"inputs\": [\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n }\n] as const;\n","/**\n * Off-chain bonding curve calculations (mirrors BondingCurve.sol)\n */\nexport function calculateBuyCost(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n const linearCost = basePrice * amount;\n const curveCost =\n (slope * amount * (2n * currentSupply + amount)) / 2n;\n return linearCost + curveCost;\n}\n\nexport function spotPrice(\n currentSupply: bigint,\n basePrice: bigint,\n slope: bigint\n): bigint {\n return basePrice + slope * currentSupply;\n}\n\nexport function calculateBuyQuote(\n currentSupply: bigint,\n amount: bigint,\n basePrice: bigint,\n slope: bigint,\n feeBps: bigint\n): { cost: bigint; fee: bigint; total: bigint; spotPriceAfter: bigint } {\n const cost = calculateBuyCost(currentSupply, amount, basePrice, slope);\n const fee = (cost * feeBps) / 10000n;\n return {\n cost,\n fee,\n total: cost + fee,\n spotPriceAfter: spotPrice(currentSupply + amount, basePrice, slope),\n };\n}\n","import { Chain } from \"viem\";\nimport { base, baseSepolia } from \"viem/chains\";\nimport { SupportedChainId } from \"../types\";\n\nexport const CHAINS: Record<SupportedChainId, Chain> = {\n 84532: baseSepolia,\n 8453: base,\n};\n\nexport function getChain(chainId: SupportedChainId): Chain {\n return CHAINS[chainId];\n}\n","import { Address, Hash } from \"viem\";\n\nexport enum AuctionState {\n PENDING = 0,\n ACTIVE = 1,\n COMPLETED = 2,\n MIGRATED = 3,\n}\n\nexport interface AuctionConfig {\n name: string;\n symbol: string;\n maxSupply: bigint;\n paymentToken: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n}\n\nexport interface AuctionData {\n id: bigint;\n token: Address;\n paymentToken: Address;\n creator: Address;\n basePrice: bigint;\n slope: bigint;\n maxRaise: bigint;\n startTime: bigint;\n endTime: bigint;\n state: AuctionState;\n totalRaised: bigint;\n totalSold: bigint;\n protocolFeeBps: bigint;\n}\n\nexport interface BuyQuote {\n cost: bigint;\n fee: bigint;\n totalCost: bigint;\n spotPriceAfter: bigint;\n}\n\nexport interface TransactionResult {\n hash: Hash;\n}\n\nexport type SupportedChainId = 8453 | 84532; // Base, Base Sepolia\n"],"mappings":"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","names":["AuctionState"]}
|
package/package.json
CHANGED