@sudobility/auctions_contracts 0.1.12 → 0.1.13
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 +86 -0
- package/dist/react-native/evm/evm-auction-client.d.ts +475 -0
- package/dist/react-native/evm/evm-auction-client.d.ts.map +1 -0
- package/dist/react-native/evm/evm-auction-client.js +606 -0
- package/dist/react-native/evm/evm-auction-client.js.map +1 -0
- package/dist/react-native/evm/index.d.ts +2 -0
- package/dist/react-native/evm/index.d.ts.map +1 -0
- package/dist/react-native/evm/index.js +2 -0
- package/dist/react-native/evm/index.js.map +1 -0
- package/dist/react-native/solana/index.d.ts +3 -0
- package/dist/react-native/solana/index.d.ts.map +1 -0
- package/dist/react-native/solana/index.js +3 -0
- package/dist/react-native/solana/index.js.map +1 -0
- package/dist/react-native/solana/solana-auction-client.d.ts +118 -0
- package/dist/react-native/solana/solana-auction-client.d.ts.map +1 -0
- package/dist/react-native/solana/solana-auction-client.js +604 -0
- package/dist/react-native/solana/solana-auction-client.js.map +1 -0
- package/dist/react-native/solana/types.d.ts +19 -0
- package/dist/react-native/solana/types.d.ts.map +1 -0
- package/dist/react-native/solana/types.js +7 -0
- package/dist/react-native/solana/types.js.map +1 -0
- package/dist/react-native/types/common.d.ts +181 -0
- package/dist/react-native/types/common.d.ts.map +1 -0
- package/dist/react-native/types/common.js +222 -0
- package/dist/react-native/types/common.js.map +1 -0
- package/dist/react-native/unified/index.d.ts +3 -0
- package/dist/react-native/unified/index.d.ts.map +1 -0
- package/dist/react-native/unified/index.js +3 -0
- package/dist/react-native/unified/index.js.map +1 -0
- package/dist/react-native/unified/onchain-auction-client.d.ts +90 -0
- package/dist/react-native/unified/onchain-auction-client.d.ts.map +1 -0
- package/dist/react-native/unified/onchain-auction-client.js +205 -0
- package/dist/react-native/unified/onchain-auction-client.js.map +1 -0
- package/dist/unified/evm/evm-auction-client.d.ts +475 -0
- package/dist/unified/evm/evm-auction-client.d.ts.map +1 -0
- package/dist/unified/evm/evm-auction-client.js +606 -0
- package/dist/unified/evm/evm-auction-client.js.map +1 -0
- package/dist/unified/evm/index.d.ts +2 -0
- package/dist/unified/evm/index.d.ts.map +1 -0
- package/dist/unified/evm/index.js +2 -0
- package/dist/unified/evm/index.js.map +1 -0
- package/dist/unified/solana/index.d.ts +3 -0
- package/dist/unified/solana/index.d.ts.map +1 -0
- package/dist/unified/solana/index.js +3 -0
- package/dist/unified/solana/index.js.map +1 -0
- package/dist/unified/solana/solana-auction-client.d.ts +118 -0
- package/dist/unified/solana/solana-auction-client.d.ts.map +1 -0
- package/dist/unified/solana/solana-auction-client.js +604 -0
- package/dist/unified/solana/solana-auction-client.js.map +1 -0
- package/dist/unified/solana/types.d.ts +19 -0
- package/dist/unified/solana/types.d.ts.map +1 -0
- package/dist/unified/solana/types.js +7 -0
- package/dist/unified/solana/types.js.map +1 -0
- package/dist/unified/types/common.d.ts +181 -0
- package/dist/unified/types/common.d.ts.map +1 -0
- package/dist/unified/types/common.js +222 -0
- package/dist/unified/types/common.js.map +1 -0
- package/dist/unified/unified/index.d.ts +3 -0
- package/dist/unified/unified/index.d.ts.map +1 -0
- package/dist/unified/unified/index.js +3 -0
- package/dist/unified/unified/index.js.map +1 -0
- package/dist/unified/unified/onchain-auction-client.d.ts +90 -0
- package/dist/unified/unified/onchain-auction-client.d.ts.map +1 -0
- package/dist/unified/unified/onchain-auction-client.js +205 -0
- package/dist/unified/unified/onchain-auction-client.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana-specific types for the auction program
|
|
3
|
+
*/
|
|
4
|
+
import type { PublicKey } from '@solana/web3.js';
|
|
5
|
+
export interface SolanaWallet {
|
|
6
|
+
publicKey: PublicKey;
|
|
7
|
+
signTransaction: (tx: any) => Promise<any>;
|
|
8
|
+
signAllTransactions: (txs: any[]) => Promise<any[]>;
|
|
9
|
+
}
|
|
10
|
+
export interface SolanaChainInfo {
|
|
11
|
+
rpcUrl: string;
|
|
12
|
+
programId: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SolanaAuctionItem {
|
|
15
|
+
mint: PublicKey;
|
|
16
|
+
isNft: boolean;
|
|
17
|
+
amount: bigint;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/solana/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/solana/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAqBH,uDAAuD;AACvD,6DAA6D"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common types shared across EVM and Solana clients
|
|
3
|
+
*/
|
|
4
|
+
export declare enum AuctionType {
|
|
5
|
+
Traditional = 0,
|
|
6
|
+
Dutch = 1,
|
|
7
|
+
Penny = 2
|
|
8
|
+
}
|
|
9
|
+
export declare enum AuctionStatus {
|
|
10
|
+
Active = 0,
|
|
11
|
+
Expired = 1,
|
|
12
|
+
Finalized = 2,
|
|
13
|
+
Refunded = 3
|
|
14
|
+
}
|
|
15
|
+
export declare enum ItemType {
|
|
16
|
+
ERC20 = 0,
|
|
17
|
+
ERC721 = 1,
|
|
18
|
+
ERC1155 = 2
|
|
19
|
+
}
|
|
20
|
+
export interface AuctionItem {
|
|
21
|
+
tokenAddress: string;
|
|
22
|
+
itemType: ItemType;
|
|
23
|
+
tokenId: bigint;
|
|
24
|
+
amount: bigint;
|
|
25
|
+
}
|
|
26
|
+
export interface AuctionCore {
|
|
27
|
+
dealer: string;
|
|
28
|
+
auctionType: AuctionType;
|
|
29
|
+
status: AuctionStatus;
|
|
30
|
+
paymentToken: string;
|
|
31
|
+
deadline: bigint;
|
|
32
|
+
highBidder: string;
|
|
33
|
+
currentBid: bigint;
|
|
34
|
+
createdAt: bigint;
|
|
35
|
+
}
|
|
36
|
+
export interface TraditionalParams {
|
|
37
|
+
startAmount: bigint;
|
|
38
|
+
increment: bigint;
|
|
39
|
+
reservePrice: bigint;
|
|
40
|
+
acceptanceDeadline: bigint;
|
|
41
|
+
reserveMet: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface DutchParams {
|
|
44
|
+
startPrice: bigint;
|
|
45
|
+
decreaseAmount: bigint;
|
|
46
|
+
decreaseInterval: bigint;
|
|
47
|
+
minimumPrice: bigint;
|
|
48
|
+
startTime: bigint;
|
|
49
|
+
}
|
|
50
|
+
export interface PennyParams {
|
|
51
|
+
incrementAmount: bigint;
|
|
52
|
+
totalPaid: bigint;
|
|
53
|
+
lastBidTime: bigint;
|
|
54
|
+
timerDuration: bigint;
|
|
55
|
+
}
|
|
56
|
+
export interface Auction {
|
|
57
|
+
id: bigint;
|
|
58
|
+
core: AuctionCore;
|
|
59
|
+
items: AuctionItem[];
|
|
60
|
+
params: TraditionalParams | DutchParams | PennyParams;
|
|
61
|
+
}
|
|
62
|
+
export interface CreateTraditionalAuctionParams {
|
|
63
|
+
items: AuctionItem[];
|
|
64
|
+
paymentToken: string;
|
|
65
|
+
startAmount: bigint;
|
|
66
|
+
increment: bigint;
|
|
67
|
+
reservePrice: bigint;
|
|
68
|
+
deadline: bigint;
|
|
69
|
+
}
|
|
70
|
+
export interface CreateDutchAuctionParams {
|
|
71
|
+
items: AuctionItem[];
|
|
72
|
+
paymentToken: string;
|
|
73
|
+
startPrice: bigint;
|
|
74
|
+
decreaseAmount: bigint;
|
|
75
|
+
decreaseInterval: bigint;
|
|
76
|
+
minimumPrice: bigint;
|
|
77
|
+
deadline: bigint;
|
|
78
|
+
}
|
|
79
|
+
export interface CreatePennyAuctionParams {
|
|
80
|
+
items: AuctionItem[];
|
|
81
|
+
paymentToken: string;
|
|
82
|
+
incrementAmount: bigint;
|
|
83
|
+
}
|
|
84
|
+
export interface TransactionResult {
|
|
85
|
+
txHash: string;
|
|
86
|
+
auctionId?: bigint;
|
|
87
|
+
}
|
|
88
|
+
export declare enum ChainType {
|
|
89
|
+
EVM = "evm",
|
|
90
|
+
Solana = "solana"
|
|
91
|
+
}
|
|
92
|
+
export interface ChainInfo {
|
|
93
|
+
chainType: ChainType;
|
|
94
|
+
chainId?: number;
|
|
95
|
+
rpcUrl: string;
|
|
96
|
+
contractAddress: string;
|
|
97
|
+
}
|
|
98
|
+
export declare const PROTOCOL_CONSTANTS: {
|
|
99
|
+
FEE_RATE: bigint;
|
|
100
|
+
FEE_DENOMINATOR: bigint;
|
|
101
|
+
ACCEPTANCE_PERIOD: bigint;
|
|
102
|
+
PENNY_TIMER_DURATION: bigint;
|
|
103
|
+
MAX_FEE_RATE: bigint;
|
|
104
|
+
};
|
|
105
|
+
export declare function calculateFee(amount: bigint, feeRate?: bigint): {
|
|
106
|
+
fee: bigint;
|
|
107
|
+
netAmount: bigint;
|
|
108
|
+
};
|
|
109
|
+
export declare function formatAuctionType(type: AuctionType): string;
|
|
110
|
+
export declare function formatAuctionStatus(status: AuctionStatus): string;
|
|
111
|
+
export declare function formatItemType(type: ItemType): string;
|
|
112
|
+
export interface ValidationResult {
|
|
113
|
+
valid: boolean;
|
|
114
|
+
errors: string[];
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validate Traditional auction parameters
|
|
118
|
+
*/
|
|
119
|
+
export declare function validateTraditionalParams(params: {
|
|
120
|
+
startAmount: bigint;
|
|
121
|
+
increment: bigint;
|
|
122
|
+
reservePrice: bigint;
|
|
123
|
+
deadline: bigint;
|
|
124
|
+
}): ValidationResult;
|
|
125
|
+
/**
|
|
126
|
+
* Validate Dutch auction parameters
|
|
127
|
+
*/
|
|
128
|
+
export declare function validateDutchParams(params: {
|
|
129
|
+
startPrice: bigint;
|
|
130
|
+
decreaseAmount: bigint;
|
|
131
|
+
decreaseInterval: bigint;
|
|
132
|
+
minimumPrice: bigint;
|
|
133
|
+
deadline: bigint;
|
|
134
|
+
}): ValidationResult;
|
|
135
|
+
/**
|
|
136
|
+
* Validate Penny auction parameters
|
|
137
|
+
*/
|
|
138
|
+
export declare function validatePennyParams(params: {
|
|
139
|
+
incrementAmount: bigint;
|
|
140
|
+
timerDuration?: bigint;
|
|
141
|
+
}): ValidationResult;
|
|
142
|
+
/**
|
|
143
|
+
* Validate bid amount for Traditional auction
|
|
144
|
+
*/
|
|
145
|
+
export declare function validateTraditionalBid(currentBid: bigint, newBid: bigint, params: TraditionalParams): ValidationResult;
|
|
146
|
+
/**
|
|
147
|
+
* Check if Traditional auction is active
|
|
148
|
+
*/
|
|
149
|
+
export declare function isTraditionalAuctionActive(status: AuctionStatus, deadline: bigint): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Check if Dutch auction is active
|
|
152
|
+
*/
|
|
153
|
+
export declare function isDutchAuctionActive(status: AuctionStatus, deadline: bigint): boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Check if Penny auction is active
|
|
156
|
+
*/
|
|
157
|
+
export declare function isPennyAuctionActive(status: AuctionStatus, currentDeadline: bigint): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Calculate current Dutch auction price
|
|
160
|
+
*/
|
|
161
|
+
export declare function calculateDutchPrice(params: DutchParams, currentTime?: bigint): bigint;
|
|
162
|
+
/**
|
|
163
|
+
* Calculate time remaining for auction
|
|
164
|
+
*/
|
|
165
|
+
export declare function calculateTimeRemaining(deadline: bigint): {
|
|
166
|
+
total: bigint;
|
|
167
|
+
days: bigint;
|
|
168
|
+
hours: bigint;
|
|
169
|
+
minutes: bigint;
|
|
170
|
+
seconds: bigint;
|
|
171
|
+
expired: boolean;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Format amount with decimals
|
|
175
|
+
*/
|
|
176
|
+
export declare function formatAmount(amount: bigint, decimals: number): string;
|
|
177
|
+
/**
|
|
178
|
+
* Parse amount string to bigint
|
|
179
|
+
*/
|
|
180
|
+
export declare function parseAmount(amount: string, decimals: number): bigint;
|
|
181
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common types shared across EVM and Solana clients
|
|
3
|
+
*/
|
|
4
|
+
// ============ Enums ============
|
|
5
|
+
export var AuctionType;
|
|
6
|
+
(function (AuctionType) {
|
|
7
|
+
AuctionType[AuctionType["Traditional"] = 0] = "Traditional";
|
|
8
|
+
AuctionType[AuctionType["Dutch"] = 1] = "Dutch";
|
|
9
|
+
AuctionType[AuctionType["Penny"] = 2] = "Penny";
|
|
10
|
+
})(AuctionType || (AuctionType = {}));
|
|
11
|
+
export var AuctionStatus;
|
|
12
|
+
(function (AuctionStatus) {
|
|
13
|
+
AuctionStatus[AuctionStatus["Active"] = 0] = "Active";
|
|
14
|
+
AuctionStatus[AuctionStatus["Expired"] = 1] = "Expired";
|
|
15
|
+
AuctionStatus[AuctionStatus["Finalized"] = 2] = "Finalized";
|
|
16
|
+
AuctionStatus[AuctionStatus["Refunded"] = 3] = "Refunded";
|
|
17
|
+
})(AuctionStatus || (AuctionStatus = {}));
|
|
18
|
+
export var ItemType;
|
|
19
|
+
(function (ItemType) {
|
|
20
|
+
ItemType[ItemType["ERC20"] = 0] = "ERC20";
|
|
21
|
+
ItemType[ItemType["ERC721"] = 1] = "ERC721";
|
|
22
|
+
ItemType[ItemType["ERC1155"] = 2] = "ERC1155";
|
|
23
|
+
})(ItemType || (ItemType = {}));
|
|
24
|
+
// ============ Chain Info ============
|
|
25
|
+
export var ChainType;
|
|
26
|
+
(function (ChainType) {
|
|
27
|
+
ChainType["EVM"] = "evm";
|
|
28
|
+
ChainType["Solana"] = "solana";
|
|
29
|
+
})(ChainType || (ChainType = {}));
|
|
30
|
+
// ============ Constants ============
|
|
31
|
+
export const PROTOCOL_CONSTANTS = {
|
|
32
|
+
FEE_RATE: 50n, // 0.5% in basis points
|
|
33
|
+
FEE_DENOMINATOR: 10000n,
|
|
34
|
+
ACCEPTANCE_PERIOD: 24n * 60n * 60n, // 24 hours in seconds
|
|
35
|
+
PENNY_TIMER_DURATION: 5n * 60n, // 5 minutes in seconds
|
|
36
|
+
MAX_FEE_RATE: 1000n, // 10% max
|
|
37
|
+
};
|
|
38
|
+
// ============ Utility Functions ============
|
|
39
|
+
export function calculateFee(amount, feeRate = PROTOCOL_CONSTANTS.FEE_RATE) {
|
|
40
|
+
const fee = (amount * feeRate) / PROTOCOL_CONSTANTS.FEE_DENOMINATOR;
|
|
41
|
+
const netAmount = amount - fee;
|
|
42
|
+
return { fee, netAmount };
|
|
43
|
+
}
|
|
44
|
+
export function formatAuctionType(type) {
|
|
45
|
+
switch (type) {
|
|
46
|
+
case AuctionType.Traditional:
|
|
47
|
+
return 'Traditional';
|
|
48
|
+
case AuctionType.Dutch:
|
|
49
|
+
return 'Dutch';
|
|
50
|
+
case AuctionType.Penny:
|
|
51
|
+
return 'Penny';
|
|
52
|
+
default:
|
|
53
|
+
return 'Unknown';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function formatAuctionStatus(status) {
|
|
57
|
+
switch (status) {
|
|
58
|
+
case AuctionStatus.Active:
|
|
59
|
+
return 'Active';
|
|
60
|
+
case AuctionStatus.Expired:
|
|
61
|
+
return 'Expired';
|
|
62
|
+
case AuctionStatus.Finalized:
|
|
63
|
+
return 'Finalized';
|
|
64
|
+
case AuctionStatus.Refunded:
|
|
65
|
+
return 'Refunded';
|
|
66
|
+
default:
|
|
67
|
+
return 'Unknown';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export function formatItemType(type) {
|
|
71
|
+
switch (type) {
|
|
72
|
+
case ItemType.ERC20:
|
|
73
|
+
return 'ERC-20';
|
|
74
|
+
case ItemType.ERC721:
|
|
75
|
+
return 'ERC-721';
|
|
76
|
+
case ItemType.ERC1155:
|
|
77
|
+
return 'ERC-1155';
|
|
78
|
+
default:
|
|
79
|
+
return 'Unknown';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Validate Traditional auction parameters
|
|
84
|
+
*/
|
|
85
|
+
export function validateTraditionalParams(params) {
|
|
86
|
+
const errors = [];
|
|
87
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
88
|
+
if (params.startAmount <= 0n) {
|
|
89
|
+
errors.push('Start amount must be greater than 0');
|
|
90
|
+
}
|
|
91
|
+
if (params.increment <= 0n) {
|
|
92
|
+
errors.push('Increment must be greater than 0');
|
|
93
|
+
}
|
|
94
|
+
if (params.reservePrice < params.startAmount) {
|
|
95
|
+
errors.push('Reserve price must be >= start amount');
|
|
96
|
+
}
|
|
97
|
+
if (params.deadline <= now) {
|
|
98
|
+
errors.push('Deadline must be in the future');
|
|
99
|
+
}
|
|
100
|
+
return { valid: errors.length === 0, errors };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Validate Dutch auction parameters
|
|
104
|
+
*/
|
|
105
|
+
export function validateDutchParams(params) {
|
|
106
|
+
const errors = [];
|
|
107
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
108
|
+
if (params.startPrice <= 0n) {
|
|
109
|
+
errors.push('Start price must be greater than 0');
|
|
110
|
+
}
|
|
111
|
+
if (params.decreaseAmount <= 0n) {
|
|
112
|
+
errors.push('Decrease amount must be greater than 0');
|
|
113
|
+
}
|
|
114
|
+
if (params.decreaseInterval <= 0n) {
|
|
115
|
+
errors.push('Decrease interval must be greater than 0');
|
|
116
|
+
}
|
|
117
|
+
if (params.minimumPrice >= params.startPrice) {
|
|
118
|
+
errors.push('Minimum price must be less than start price');
|
|
119
|
+
}
|
|
120
|
+
if (params.deadline <= now) {
|
|
121
|
+
errors.push('Deadline must be in the future');
|
|
122
|
+
}
|
|
123
|
+
return { valid: errors.length === 0, errors };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Validate Penny auction parameters
|
|
127
|
+
*/
|
|
128
|
+
export function validatePennyParams(params) {
|
|
129
|
+
const errors = [];
|
|
130
|
+
if (params.incrementAmount <= 0n) {
|
|
131
|
+
errors.push('Increment amount must be greater than 0');
|
|
132
|
+
}
|
|
133
|
+
if (params.timerDuration !== undefined && params.timerDuration <= 0n) {
|
|
134
|
+
errors.push('Timer duration must be greater than 0');
|
|
135
|
+
}
|
|
136
|
+
return { valid: errors.length === 0, errors };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validate bid amount for Traditional auction
|
|
140
|
+
*/
|
|
141
|
+
export function validateTraditionalBid(currentBid, newBid, params) {
|
|
142
|
+
const errors = [];
|
|
143
|
+
const minBid = currentBid === 0n ? params.startAmount : currentBid + params.increment;
|
|
144
|
+
if (newBid < minBid) {
|
|
145
|
+
errors.push(`Bid must be at least ${minBid.toString()}`);
|
|
146
|
+
}
|
|
147
|
+
return { valid: errors.length === 0, errors };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check if Traditional auction is active
|
|
151
|
+
*/
|
|
152
|
+
export function isTraditionalAuctionActive(status, deadline) {
|
|
153
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
154
|
+
return status === AuctionStatus.Active && deadline > now;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check if Dutch auction is active
|
|
158
|
+
*/
|
|
159
|
+
export function isDutchAuctionActive(status, deadline) {
|
|
160
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
161
|
+
return status === AuctionStatus.Active && deadline > now;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if Penny auction is active
|
|
165
|
+
*/
|
|
166
|
+
export function isPennyAuctionActive(status, currentDeadline) {
|
|
167
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
168
|
+
// Penny auction is active if no deadline set yet, or deadline not passed
|
|
169
|
+
return status === AuctionStatus.Active && (currentDeadline === 0n || currentDeadline > now);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Calculate current Dutch auction price
|
|
173
|
+
*/
|
|
174
|
+
export function calculateDutchPrice(params, currentTime) {
|
|
175
|
+
const now = currentTime ?? BigInt(Math.floor(Date.now() / 1000));
|
|
176
|
+
const elapsed = now - params.startTime;
|
|
177
|
+
if (elapsed <= 0n) {
|
|
178
|
+
return params.startPrice;
|
|
179
|
+
}
|
|
180
|
+
const intervals = elapsed / params.decreaseInterval;
|
|
181
|
+
const decrease = intervals * params.decreaseAmount;
|
|
182
|
+
const currentPrice = params.startPrice - decrease;
|
|
183
|
+
return currentPrice > params.minimumPrice ? currentPrice : params.minimumPrice;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Calculate time remaining for auction
|
|
187
|
+
*/
|
|
188
|
+
export function calculateTimeRemaining(deadline) {
|
|
189
|
+
const now = BigInt(Math.floor(Date.now() / 1000));
|
|
190
|
+
const remaining = deadline - now;
|
|
191
|
+
if (remaining <= 0n) {
|
|
192
|
+
return { total: 0n, days: 0n, hours: 0n, minutes: 0n, seconds: 0n, expired: true };
|
|
193
|
+
}
|
|
194
|
+
const days = remaining / 86400n;
|
|
195
|
+
const hours = (remaining % 86400n) / 3600n;
|
|
196
|
+
const minutes = (remaining % 3600n) / 60n;
|
|
197
|
+
const seconds = remaining % 60n;
|
|
198
|
+
return { total: remaining, days, hours, minutes, seconds, expired: false };
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Format amount with decimals
|
|
202
|
+
*/
|
|
203
|
+
export function formatAmount(amount, decimals) {
|
|
204
|
+
const divisor = BigInt(10 ** decimals);
|
|
205
|
+
const wholePart = amount / divisor;
|
|
206
|
+
const fractionalPart = amount % divisor;
|
|
207
|
+
if (fractionalPart === 0n) {
|
|
208
|
+
return wholePart.toString();
|
|
209
|
+
}
|
|
210
|
+
const fractionalStr = fractionalPart.toString().padStart(decimals, '0');
|
|
211
|
+
const trimmedFractional = fractionalStr.replace(/0+$/, '');
|
|
212
|
+
return `${wholePart}.${trimmedFractional}`;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Parse amount string to bigint
|
|
216
|
+
*/
|
|
217
|
+
export function parseAmount(amount, decimals) {
|
|
218
|
+
const [whole, fraction = ''] = amount.split('.');
|
|
219
|
+
const paddedFraction = fraction.padEnd(decimals, '0').slice(0, decimals);
|
|
220
|
+
return BigInt(whole + paddedFraction);
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/types/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unified/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/unified/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Onchain Auction Client
|
|
3
|
+
* Stateless client that detects chain type and routes to appropriate platform client
|
|
4
|
+
*/
|
|
5
|
+
import type { PublicClient } from 'viem';
|
|
6
|
+
import type { Connection } from '@solana/web3.js';
|
|
7
|
+
import { type ChainInfo, type AuctionCore, type AuctionItem, type TraditionalParams, type DutchParams, type PennyParams, type CreateTraditionalAuctionParams, type CreateDutchAuctionParams, type CreatePennyAuctionParams, type TransactionResult } from '../types/common.js';
|
|
8
|
+
import type { EVMWallet } from '../evm/evm-auction-client.js';
|
|
9
|
+
import type { SolanaWallet, SolanaChainInfo } from '../solana/types.js';
|
|
10
|
+
export type UnifiedWallet = EVMWallet | SolanaWallet;
|
|
11
|
+
/**
|
|
12
|
+
* Unified Onchain Auction Client
|
|
13
|
+
* Lazy-loads platform-specific clients to optimize bundle size
|
|
14
|
+
*/
|
|
15
|
+
export declare class OnchainAuctionClient {
|
|
16
|
+
private static evmClient;
|
|
17
|
+
private static solanaClient;
|
|
18
|
+
/**
|
|
19
|
+
* Lazy-load EVM client
|
|
20
|
+
*/
|
|
21
|
+
private getEVMClient;
|
|
22
|
+
/**
|
|
23
|
+
* Lazy-load Solana client
|
|
24
|
+
*/
|
|
25
|
+
private getSolanaClient;
|
|
26
|
+
/**
|
|
27
|
+
* Detect wallet type
|
|
28
|
+
*/
|
|
29
|
+
private isEVMWallet;
|
|
30
|
+
/**
|
|
31
|
+
* Detect chain type from ChainInfo
|
|
32
|
+
*/
|
|
33
|
+
private isEVMChain;
|
|
34
|
+
/**
|
|
35
|
+
* Get auction details
|
|
36
|
+
*/
|
|
37
|
+
getAuction(chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, publicClientOrConnection?: PublicClient | Connection): Promise<{
|
|
38
|
+
core: AuctionCore;
|
|
39
|
+
items: AuctionItem[];
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Get Traditional auction parameters
|
|
43
|
+
*/
|
|
44
|
+
getTraditionalParams(chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, publicClientOrConnection?: PublicClient | Connection): Promise<TraditionalParams>;
|
|
45
|
+
/**
|
|
46
|
+
* Get Dutch auction parameters
|
|
47
|
+
*/
|
|
48
|
+
getDutchParams(chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, publicClientOrConnection?: PublicClient | Connection): Promise<DutchParams>;
|
|
49
|
+
/**
|
|
50
|
+
* Get current Dutch auction price
|
|
51
|
+
*/
|
|
52
|
+
getDutchCurrentPrice(chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, publicClientOrConnection?: PublicClient | Connection): Promise<bigint>;
|
|
53
|
+
/**
|
|
54
|
+
* Get Penny auction parameters
|
|
55
|
+
*/
|
|
56
|
+
getPennyParams(chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, publicClientOrConnection?: PublicClient | Connection): Promise<PennyParams>;
|
|
57
|
+
/**
|
|
58
|
+
* Create a Traditional auction
|
|
59
|
+
*/
|
|
60
|
+
createTraditionalAuction(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, params: CreateTraditionalAuctionParams): Promise<TransactionResult>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a Dutch auction
|
|
63
|
+
*/
|
|
64
|
+
createDutchAuction(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, params: CreateDutchAuctionParams): Promise<TransactionResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Create a Penny auction
|
|
67
|
+
*/
|
|
68
|
+
createPennyAuction(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, params: CreatePennyAuctionParams): Promise<TransactionResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Place a bid on a Traditional auction
|
|
71
|
+
*/
|
|
72
|
+
bidTraditional(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array, amount: bigint): Promise<TransactionResult>;
|
|
73
|
+
/**
|
|
74
|
+
* Buy at current price in a Dutch auction
|
|
75
|
+
*/
|
|
76
|
+
buyDutch(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array): Promise<TransactionResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Place a bid on a Penny auction
|
|
79
|
+
*/
|
|
80
|
+
bidPenny(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array): Promise<TransactionResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Finalize an auction
|
|
83
|
+
*/
|
|
84
|
+
finalizeAuction(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array): Promise<TransactionResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Dealer accepts bid below reserve (Traditional only)
|
|
87
|
+
*/
|
|
88
|
+
dealerAcceptBid(wallet: UnifiedWallet, chainInfo: ChainInfo | SolanaChainInfo, auctionId: bigint | Uint8Array): Promise<TransactionResult>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=onchain-auction-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onchain-auction-client.d.ts","sourceRoot":"","sources":["../../../src/unified/onchain-auction-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;AAErD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IACrC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAa;IAExC;;OAEG;YACW,YAAY;IAQ1B;;OAEG;YACW,eAAe;IAQ7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,wBAAwB,CAAC,EAAE,YAAY,GAAG,UAAU,GACnD,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAkBvD;;OAEG;IACG,oBAAoB,CACxB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,wBAAwB,CAAC,EAAE,YAAY,GAAG,UAAU,GACnD,OAAO,CAAC,iBAAiB,CAAC;IAa7B;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,wBAAwB,CAAC,EAAE,YAAY,GAAG,UAAU,GACnD,OAAO,CAAC,WAAW,CAAC;IAavB;;OAEG;IACG,oBAAoB,CACxB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,wBAAwB,CAAC,EAAE,YAAY,GAAG,UAAU,GACnD,OAAO,CAAC,MAAM,CAAC;IAalB;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,wBAAwB,CAAC,EAAE,YAAY,GAAG,UAAU,GACnD,OAAO,CAAC,WAAW,CAAC;IAevB;;OAEG;IACG,wBAAwB,CAC5B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,OAAO,CAAC,iBAAiB,CAAC;CAQ9B"}
|