@hypercerts-org/marketplace-sdk 0.0.1
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/LICENSE +4 -0
- package/LICENSE-APACHE +10 -0
- package/LICENSE-MIT +21 -0
- package/README.md +101 -0
- package/dist/LooksRare.d.ts +223 -0
- package/dist/abis/IERC1155.json +276 -0
- package/dist/abis/IERC20.json +185 -0
- package/dist/abis/IERC721.json +268 -0
- package/dist/abis/ILooksRareProtocol.json +677 -0
- package/dist/abis/ITransferManager.json +91 -0
- package/dist/abis/IWETH.json +46 -0
- package/dist/abis/LooksRareProtocol.json +1924 -0
- package/dist/abis/OrderValidatorV2A.json +410 -0
- package/dist/abis/ProtocolHelpers.json +366 -0
- package/dist/abis/TransferManager.json +492 -0
- package/dist/abis/WETH.json +361 -0
- package/dist/abis/index.d.ts +7 -0
- package/dist/abis/index.ts +7 -0
- package/dist/constants/addresses.d.ts +7 -0
- package/dist/constants/chains.d.ts +4 -0
- package/dist/constants/eip712.d.ts +10 -0
- package/dist/constants/index.d.ts +14 -0
- package/dist/errors.d.ts +30 -0
- package/dist/index.cjs.js +5251 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.esm.js +5229 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/AffiliateManager.d.ts +210 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/BatchOrderTypehashRegistry.d.ts +35 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/CreatorFeeManagerWithRoyalties.d.ts +47 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/CurrencyManager.d.ts +247 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/ExecutionManager.d.ts +616 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/LooksRareProtocol.d.ts +1005 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/NonceManager.d.ts +148 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/StrategyManager.d.ts +401 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/TransferManager.d.ts +324 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/TransferSelectorNFT.d.ts +620 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/executionStrategies/BaseStrategy.d.ts +97 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/executionStrategies/StrategyCollectionOffer.d.ts +176 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/executionStrategies/index.d.ts +2 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/helpers/OrderValidatorV2A.d.ts +172 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/helpers/ProtocolHelpers.d.ts +148 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/helpers/index.d.ts +2 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/index.d.ts +16 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/IAffiliateManager.d.ts +65 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/ICreatorFeeManager.d.ts +47 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/ICurrencyManager.d.ts +37 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/IExecutionManager.d.ts +64 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/ILooksRareProtocol.d.ts +343 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/INonceManager.d.ts +72 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/IRoyaltyFeeRegistry.d.ts +41 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/IStrategy.d.ts +97 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/IStrategyManager.d.ts +85 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/ITransferManager.d.ts +80 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/contracts/interfaces/index.d.ts +10 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/index.d.ts +4 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/test/index.d.ts +2 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/test/mock/MockRoyaltyFeeRegistry.d.ts +222 -0
- package/dist/typechain/@looksrare/contracts-exchange-v2/test/mock/index.d.ts +1 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/OwnableTwoSteps.d.ts +121 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/PackableReentrancyGuard.d.ts +20 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/index.d.ts +4 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/IOwnableTwoSteps.d.ts +80 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/IReentrancyGuard.d.ts +20 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC1155.d.ts +224 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC1271.d.ts +35 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC165.d.ts +29 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC20.d.ts +129 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC2981.d.ts +49 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IERC721.d.ts +191 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/IWETH.d.ts +43 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/generic/index.d.ts +7 -0
- package/dist/typechain/@looksrare/contracts-libs/contracts/interfaces/index.d.ts +4 -0
- package/dist/typechain/@looksrare/contracts-libs/index.d.ts +2 -0
- package/dist/typechain/@looksrare/index.d.ts +4 -0
- package/dist/typechain/common.d.ts +50 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/AffiliateManager__factory.d.ts +264 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/BatchOrderTypehashRegistry__factory.d.ts +48 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/CreatorFeeManagerWithRoyalties__factory.d.ts +74 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/CurrencyManager__factory.d.ts +307 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/ExecutionManager__factory.d.ts +748 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/LooksRareProtocol__factory.d.ts +1527 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/NonceManager__factory.d.ts +174 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/StrategyManager__factory.d.ts +478 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/TransferManager__factory.d.ts +406 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/TransferSelectorNFT__factory.d.ts +766 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/executionStrategies/BaseStrategy__factory.d.ts +100 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/executionStrategies/StrategyCollectionOffer__factory.d.ts +323 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/executionStrategies/index.d.ts +2 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/helpers/OrderValidatorV2A__factory.d.ts +338 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/helpers/ProtocolHelpers__factory.d.ts +302 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/helpers/index.d.ts +2 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/index.d.ts +13 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/IAffiliateManager__factory.d.ts +50 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/ICreatorFeeManager__factory.d.ts +51 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/ICurrencyManager__factory.d.ts +22 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/IExecutionManager__factory.d.ts +61 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/ILooksRareProtocol__factory.d.ts +540 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/INonceManager__factory.d.ts +57 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/IRoyaltyFeeRegistry__factory.d.ts +29 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/IStrategyManager__factory.d.ts +88 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/IStrategy__factory.d.ts +100 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/ITransferManager__factory.d.ts +77 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/contracts/interfaces/index.d.ts +10 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/index.d.ts +2 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/test/index.d.ts +1 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/test/mock/MockRoyaltyFeeRegistry__factory.d.ts +278 -0
- package/dist/typechain/factories/@looksrare/contracts-exchange-v2/test/mock/index.d.ts +1 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/OwnableTwoSteps__factory.d.ts +130 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/PackableReentrancyGuard__factory.d.ts +11 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/index.d.ts +3 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/IOwnableTwoSteps__factory.d.ts +66 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/IReentrancyGuard__factory.d.ts +11 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC1155__factory.d.ts +222 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC1271__factory.d.ts +25 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC165__factory.d.ts +21 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC20__factory.d.ts +147 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC2981__factory.d.ts +43 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IERC721__factory.d.ts +213 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/IWETH__factory.d.ts +41 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/generic/index.d.ts +7 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/contracts/interfaces/index.d.ts +3 -0
- package/dist/typechain/factories/@looksrare/contracts-libs/index.d.ts +1 -0
- package/dist/typechain/factories/@looksrare/index.d.ts +2 -0
- package/dist/typechain/factories/index.d.ts +3 -0
- package/dist/typechain/factories/solmate/index.d.ts +1 -0
- package/dist/typechain/factories/solmate/src/index.d.ts +1 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.d.ts +67 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC1155.sol/ERC1155__factory.d.ts +250 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC20__factory.d.ts +235 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.d.ts +33 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC721.sol/ERC721__factory.d.ts +261 -0
- package/dist/typechain/factories/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
- package/dist/typechain/factories/solmate/src/tokens/WETH__factory.d.ts +299 -0
- package/dist/typechain/factories/solmate/src/tokens/index.d.ts +4 -0
- package/dist/typechain/factories/src/contracts/index.d.ts +1 -0
- package/dist/typechain/factories/src/contracts/tests/MockERC1155__factory.d.ts +283 -0
- package/dist/typechain/factories/src/contracts/tests/MockERC721__factory.d.ts +308 -0
- package/dist/typechain/factories/src/contracts/tests/Verifier__factory.d.ts +462 -0
- package/dist/typechain/factories/src/contracts/tests/index.d.ts +3 -0
- package/dist/typechain/factories/src/index.d.ts +1 -0
- package/dist/typechain/index.d.ts +97 -0
- package/dist/typechain/solmate/index.d.ts +2 -0
- package/dist/typechain/solmate/src/index.d.ts +2 -0
- package/dist/typechain/solmate/src/tokens/ERC1155.sol/ERC1155.d.ts +236 -0
- package/dist/typechain/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.d.ts +67 -0
- package/dist/typechain/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
- package/dist/typechain/solmate/src/tokens/ERC20.d.ts +181 -0
- package/dist/typechain/solmate/src/tokens/ERC721.sol/ERC721.d.ts +211 -0
- package/dist/typechain/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.d.ts +39 -0
- package/dist/typechain/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
- package/dist/typechain/solmate/src/tokens/WETH.d.ts +219 -0
- package/dist/typechain/solmate/src/tokens/index.d.ts +6 -0
- package/dist/typechain/src/contracts/index.d.ts +2 -0
- package/dist/typechain/src/contracts/tests/MockERC1155.d.ts +252 -0
- package/dist/typechain/src/contracts/tests/MockERC721.d.ts +219 -0
- package/dist/typechain/src/contracts/tests/Verifier.d.ts +174 -0
- package/dist/typechain/src/contracts/tests/index.d.ts +3 -0
- package/dist/typechain/src/index.d.ts +2 -0
- package/dist/types.d.ts +242 -0
- package/dist/utils/Eip712MakerMerkleTree.d.ts +10 -0
- package/dist/utils/Eip712MerkleTree.d.ts +40 -0
- package/dist/utils/calls/exchange.d.ts +10 -0
- package/dist/utils/calls/nonces.d.ts +9 -0
- package/dist/utils/calls/orderValidator.d.ts +3 -0
- package/dist/utils/calls/strategies.d.ts +3 -0
- package/dist/utils/calls/tokens.d.ts +6 -0
- package/dist/utils/calls/transferManager.d.ts +6 -0
- package/dist/utils/eip712.d.ts +12 -0
- package/dist/utils/encodeOrderParams.d.ts +22 -0
- package/dist/utils/signMakerOrders.d.ts +18 -0
- package/package.json +94 -0
package/dist/types.d.ts
ADDED
@@ -0,0 +1,242 @@
|
|
1
|
+
import { BigNumberish, BytesLike, Overrides, TypedDataField, ContractTransactionResponse } from "ethers";
|
2
|
+
import { Eip712MakerMerkleTree } from "./utils/Eip712MakerMerkleTree";
|
3
|
+
/** Addresses used to create a LooksRare instance */
|
4
|
+
export interface Addresses {
|
5
|
+
LOOKS: string;
|
6
|
+
EXCHANGE_V2: string;
|
7
|
+
TRANSFER_MANAGER_V2: string;
|
8
|
+
WETH: string;
|
9
|
+
ORDER_VALIDATOR_V2: string;
|
10
|
+
REVERSE_RECORDS: string;
|
11
|
+
LOOKS_LP_V3: string;
|
12
|
+
STAKING_POOL_FOR_LOOKS_LP: string;
|
13
|
+
AGGREGATOR_UNISWAP_V3: string;
|
14
|
+
}
|
15
|
+
/** List of supported chains */
|
16
|
+
export declare enum ChainId {
|
17
|
+
GOERLI = 5,
|
18
|
+
SEPOLIA = 11155111,
|
19
|
+
HARDHAT = 31337
|
20
|
+
}
|
21
|
+
/** ChainInfo data used to interact with LooksRare ecosystem */
|
22
|
+
export interface ChainInfo {
|
23
|
+
label: string;
|
24
|
+
appUrl: string;
|
25
|
+
rpcUrl: string;
|
26
|
+
explorer: string;
|
27
|
+
baseApiUrl: string;
|
28
|
+
osApiUrl: string;
|
29
|
+
cdnUrl: string;
|
30
|
+
rewardsSubgraphUrl: string;
|
31
|
+
cloudinaryUrl: string;
|
32
|
+
wsUrl: string;
|
33
|
+
}
|
34
|
+
/** List of collection types supported by the protocol */
|
35
|
+
export declare enum CollectionType {
|
36
|
+
ERC721 = 0,
|
37
|
+
ERC1155 = 1,
|
38
|
+
HYPERCERT = 2,
|
39
|
+
HYPERBOARD = 3
|
40
|
+
}
|
41
|
+
/** List of trading strategies */
|
42
|
+
export declare enum StrategyType {
|
43
|
+
standard = 0,
|
44
|
+
collection = 1,
|
45
|
+
collectionWithMerkleTree = 2
|
46
|
+
}
|
47
|
+
/** Type for maker order */
|
48
|
+
export declare enum QuoteType {
|
49
|
+
Bid = 0,
|
50
|
+
Ask = 1
|
51
|
+
}
|
52
|
+
/** Solidity types (used for EIP-712 types) */
|
53
|
+
export type SolidityType = "bool" | "address" | "uint8" | "uint16" | "uint112" | "uint256" | "uint256[]" | "bytes" | "bytes32" | "bytes32[]" | "string";
|
54
|
+
/** EIP712 type data */
|
55
|
+
export type EIP712TypedData = Record<string, Array<TypedDataField>>;
|
56
|
+
/**
|
57
|
+
* Item structure used for batch transfers
|
58
|
+
* @see {@link https://github.com/LooksRare/contracts-exchange-v2/blob/8de425de2571a57112e9e67cf0c925439a83c9e3/contracts/interfaces/ITransferManager.sol#L16 TransferManager interface}
|
59
|
+
*/
|
60
|
+
export interface BatchTransferItem {
|
61
|
+
collection: string;
|
62
|
+
collectionType: CollectionType;
|
63
|
+
itemIds: BigNumberish[];
|
64
|
+
amounts: BigNumberish[];
|
65
|
+
}
|
66
|
+
/** Return type for any on chain call */
|
67
|
+
export interface ContractMethods {
|
68
|
+
call: (additionalOverrides?: Overrides) => Promise<ContractTransactionResponse>;
|
69
|
+
estimateGas: (additionalOverrides?: Overrides) => Promise<bigint>;
|
70
|
+
callStatic: (additionalOverrides?: Overrides) => Promise<any>;
|
71
|
+
}
|
72
|
+
/** Return type for strategyInfo */
|
73
|
+
export interface StrategyInfo {
|
74
|
+
isActive: boolean;
|
75
|
+
standardProtocolFeeBp: number;
|
76
|
+
minTotalFeeBp: number;
|
77
|
+
maxProtocolFeeBp: number;
|
78
|
+
}
|
79
|
+
/** Return object of createMakerAsk */
|
80
|
+
export interface CreateMakerAskOutput {
|
81
|
+
maker: Maker;
|
82
|
+
isTransferManagerApproved: boolean;
|
83
|
+
isCollectionApproved: boolean;
|
84
|
+
}
|
85
|
+
/** Return object of createMakerBid */
|
86
|
+
export interface CreateMakerBidOutput {
|
87
|
+
maker: Maker;
|
88
|
+
isCurrencyApproved: boolean;
|
89
|
+
isBalanceSufficient: boolean;
|
90
|
+
}
|
91
|
+
/** Input of the createMakerAsk function */
|
92
|
+
export interface CreateMakerInput {
|
93
|
+
/** Collection address */
|
94
|
+
collection: string;
|
95
|
+
/** Strategy ID, 0: Standard, 1: Collection, etc*/
|
96
|
+
strategyId: StrategyType;
|
97
|
+
/** Asset type, 0: ERC-721, 1:ERC-1155, etc */
|
98
|
+
collectionType: CollectionType;
|
99
|
+
/** Subset nonce used to group an arbitrary number of orders under the same nonce */
|
100
|
+
subsetNonce: BigNumberish;
|
101
|
+
/** Order nonce, get it from the LooksRare api */
|
102
|
+
orderNonce: BigNumberish;
|
103
|
+
/** Timestamp in seconds when the order becomes invalid */
|
104
|
+
endTime: BigNumberish;
|
105
|
+
/** Asset price in wei */
|
106
|
+
price: BigNumberish;
|
107
|
+
/**
|
108
|
+
* List of items ids to be sold
|
109
|
+
* @defaultValue [1]
|
110
|
+
*/
|
111
|
+
itemIds: BigNumberish[];
|
112
|
+
/** Amount for each item ids (needs to have the same length as itemIds array) */
|
113
|
+
amounts?: BigNumberish[];
|
114
|
+
/**
|
115
|
+
* Currency address
|
116
|
+
* @defaultValue ETH
|
117
|
+
*/
|
118
|
+
currency?: string;
|
119
|
+
/**
|
120
|
+
* Order validity start time
|
121
|
+
* @defaultValue now
|
122
|
+
*/
|
123
|
+
startTime?: BigNumberish;
|
124
|
+
/**
|
125
|
+
* Additional parameters for complex orders
|
126
|
+
* @defaultValue []
|
127
|
+
*/
|
128
|
+
additionalParameters?: any[];
|
129
|
+
}
|
130
|
+
export type CreateMakerCollectionOfferInput = Omit<CreateMakerInput, "strategyId" | "itemIds">;
|
131
|
+
export type CreateMakerCollectionOfferWithProofInput = Omit<CreateMakerInput, "strategyId">;
|
132
|
+
/** Maker object to be used in execute functions */
|
133
|
+
export interface Maker {
|
134
|
+
/** Bid (0) or Ask (1) */
|
135
|
+
quoteType: QuoteType;
|
136
|
+
/** User's current bid / ask nonce */
|
137
|
+
globalNonce: BigNumberish;
|
138
|
+
/** Subset nonce used to group an arbitrary number of orders under the same nonce */
|
139
|
+
subsetNonce: BigNumberish;
|
140
|
+
/** Nonce for this specific order */
|
141
|
+
orderNonce: BigNumberish;
|
142
|
+
/** Strategy ID, 0: Standard, 1: Collection, etc*/
|
143
|
+
strategyId: StrategyType;
|
144
|
+
/** Asset type, 0: ERC-721, 1:ERC-1155, etc */
|
145
|
+
collectionType: CollectionType;
|
146
|
+
/** Collection address */
|
147
|
+
collection: string;
|
148
|
+
/** Currency address (zero address for ETH) */
|
149
|
+
currency: string;
|
150
|
+
/** Signer address */
|
151
|
+
signer: string;
|
152
|
+
/** Timestamp in second of the time when the order starts to be valid */
|
153
|
+
startTime: BigNumberish;
|
154
|
+
/** Timestamp in second of the time when the order becomes invalid */
|
155
|
+
endTime: BigNumberish;
|
156
|
+
/** Minimum price to be received after the trade */
|
157
|
+
price: BigNumberish;
|
158
|
+
/** List of item IDS */
|
159
|
+
itemIds: BigNumberish[];
|
160
|
+
/** List of amount for each item ID (1 for ERC721) */
|
161
|
+
amounts: BigNumberish[];
|
162
|
+
/** Additional parameters for complex orders */
|
163
|
+
additionalParameters: BytesLike;
|
164
|
+
}
|
165
|
+
/** Taker order */
|
166
|
+
export interface Taker {
|
167
|
+
/** Recipient of the transaction */
|
168
|
+
recipient: string;
|
169
|
+
/** Additional parameters for complex orders */
|
170
|
+
additionalParameters: BytesLike;
|
171
|
+
}
|
172
|
+
/** Referrer object to be used in maker order API */
|
173
|
+
export interface Referrer {
|
174
|
+
address: string;
|
175
|
+
rate: BigNumberish;
|
176
|
+
}
|
177
|
+
/** Merkle tree node position (needed by the SC) */
|
178
|
+
export declare enum MerkleTreeNodePosition {
|
179
|
+
Left = 0,
|
180
|
+
Right = 1
|
181
|
+
}
|
182
|
+
/** Merkle tree proof to be used within a merkle tree */
|
183
|
+
export interface MerkleTreeProof {
|
184
|
+
value: string;
|
185
|
+
position: MerkleTreeNodePosition;
|
186
|
+
}
|
187
|
+
/** Merkle root object to be used in the execute function for a multi listing */
|
188
|
+
export interface MerkleTree {
|
189
|
+
root: string;
|
190
|
+
proof: MerkleTreeProof[];
|
191
|
+
}
|
192
|
+
/** Return type of the sign multiple orders function */
|
193
|
+
export interface SignMerkleTreeOrdersOutput {
|
194
|
+
signature: string;
|
195
|
+
merkleTreeProofs: MerkleTree[];
|
196
|
+
tree: Eip712MakerMerkleTree;
|
197
|
+
}
|
198
|
+
/** Error errors returned by the order validator contract */
|
199
|
+
export declare enum OrderValidatorCode {
|
200
|
+
ORDER_EXPECTED_TO_BE_VALID = 0,
|
201
|
+
CURRENCY_NOT_ALLOWED = 101,
|
202
|
+
STRATEGY_NOT_IMPLEMENTED = 111,
|
203
|
+
STRATEGY_INVALID_QUOTE_TYPE = 112,
|
204
|
+
STRATEGY_NOT_ACTIVE = 113,
|
205
|
+
MAKER_ORDER_INVALID_STANDARD_SALE = 201,
|
206
|
+
MAKER_ORDER_PERMANENTLY_INVALID_NON_STANDARD_SALE = 211,
|
207
|
+
MAKER_ORDER_INVALID_CURRENCY_NON_STANDARD_SALE = 212,
|
208
|
+
MAKER_ORDER_TEMPORARILY_INVALID_NON_STANDARD_SALE = 213,
|
209
|
+
USER_SUBSET_NONCE_CANCELLED = 301,
|
210
|
+
USER_ORDER_NONCE_EXECUTED_OR_CANCELLED = 311,
|
211
|
+
USER_ORDER_NONCE_IN_EXECUTION_WITH_OTHER_HASH = 312,
|
212
|
+
INVALID_USER_GLOBAL_BID_NONCE = 321,
|
213
|
+
INVALID_USER_GLOBAL_ASK_NONCE = 322,
|
214
|
+
ORDER_HASH_PROOF_NOT_IN_MERKLE_TREE = 401,
|
215
|
+
MERKLE_PROOF_PROOF_TOO_LARGE = 402,
|
216
|
+
INVALID_SIGNATURE_LENGTH = 411,
|
217
|
+
INVALID_S_PARAMETER_EOA = 412,
|
218
|
+
INVALID_V_PARAMETER_EOA = 413,
|
219
|
+
NULL_SIGNER_EOA = 414,
|
220
|
+
INVALID_SIGNER_EOA = 415,
|
221
|
+
MISSING_IS_VALID_SIGNATURE_FUNCTION_EIP1271 = 421,
|
222
|
+
SIGNATURE_INVALID_EIP1271 = 422,
|
223
|
+
START_TIME_GREATER_THAN_END_TIME = 501,
|
224
|
+
TOO_LATE_TO_EXECUTE_ORDER = 502,
|
225
|
+
TOO_EARLY_TO_EXECUTE_ORDER = 503,
|
226
|
+
SAME_ITEM_ID_IN_BUNDLE = 601,
|
227
|
+
ERC20_BALANCE_INFERIOR_TO_PRICE = 611,
|
228
|
+
ERC20_APPROVAL_INFERIOR_TO_PRICE = 612,
|
229
|
+
ERC721_ITEM_ID_DOES_NOT_EXIST = 621,
|
230
|
+
ERC721_ITEM_ID_NOT_IN_BALANCE = 622,
|
231
|
+
ERC721_NO_APPROVAL_FOR_ALL_OR_ITEM_ID = 623,
|
232
|
+
ERC1155_BALANCE_OF_DOES_NOT_EXIST = 631,
|
233
|
+
ERC1155_BALANCE_OF_ITEM_ID_INFERIOR_TO_AMOUNT = 632,
|
234
|
+
ERC1155_IS_APPROVED_FOR_ALL_DOES_NOT_EXIST = 633,
|
235
|
+
ERC1155_NO_APPROVAL_FOR_ALL = 634,
|
236
|
+
POTENTIAL_INVALID_COLLECTION_TYPE_SHOULD_BE_ERC721 = 701,
|
237
|
+
POTENTIAL_INVALID_COLLECTION_TYPE_SHOULD_BE_ERC1155 = 702,
|
238
|
+
NO_TRANSFER_MANAGER_APPROVAL_BY_USER_FOR_EXCHANGE = 801,
|
239
|
+
TRANSFER_MANAGER_APPROVAL_REVOKED_BY_OWNER_FOR_EXCHANGE = 802,
|
240
|
+
BUNDLE_ERC2981_NOT_SUPPORTED = 901,
|
241
|
+
CREATOR_FEE_TOO_HIGH = 902
|
242
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Eip712MerkleTree } from "./Eip712MerkleTree";
|
2
|
+
import { Maker } from "../types";
|
3
|
+
/**
|
4
|
+
* Specific implementation of Eip712MerkleTree for Maker type
|
5
|
+
* @extends Eip712MerkleTree
|
6
|
+
*/
|
7
|
+
export declare class Eip712MakerMerkleTree extends Eip712MerkleTree<Maker> {
|
8
|
+
makerOrders: Maker[];
|
9
|
+
constructor(makerOrders: Maker[]);
|
10
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { MerkleTree } from "merkletreejs";
|
2
|
+
import { EIP712TypedData } from "../types";
|
3
|
+
type BatchOrderElements<T> = [T, T] | [BatchOrderElements<T>, BatchOrderElements<T>];
|
4
|
+
/**
|
5
|
+
* Generic wrapper around MerkleTreeJS to support EIP signing
|
6
|
+
*/
|
7
|
+
export declare class Eip712MerkleTree<BaseType extends Record<string, any> = any> {
|
8
|
+
types: EIP712TypedData;
|
9
|
+
leafType: string;
|
10
|
+
elements: BaseType[];
|
11
|
+
depth: number;
|
12
|
+
tree: MerkleTree;
|
13
|
+
private completeLeaves;
|
14
|
+
private completeElements;
|
15
|
+
/**
|
16
|
+
* Compute the tree height
|
17
|
+
* @param length length of the array of elements
|
18
|
+
* @returns height as a number
|
19
|
+
*/
|
20
|
+
static getTreeHeight: (length: number) => number;
|
21
|
+
/**
|
22
|
+
*
|
23
|
+
* @param types EIP712 Typed data
|
24
|
+
* @param leafType Leaf type used in the Typed data
|
25
|
+
* @param defaultNode Dummy node
|
26
|
+
* @param elements Array of data blocks
|
27
|
+
* @param depth tree depth
|
28
|
+
*/
|
29
|
+
constructor(types: EIP712TypedData, leafType: string, defaultNode: BaseType, elements: BaseType[], depth: number);
|
30
|
+
get completedSize(): number;
|
31
|
+
get hexRoot(): string;
|
32
|
+
getPositionalProof(i: number): {
|
33
|
+
leaf: string;
|
34
|
+
proof: (string | number)[][];
|
35
|
+
};
|
36
|
+
getDataToSign(): {
|
37
|
+
tree: BatchOrderElements<BaseType>;
|
38
|
+
};
|
39
|
+
}
|
40
|
+
export {};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Signer } from "ethers";
|
2
|
+
import { Maker, MerkleTree, Taker, ContractMethods } from "../../types";
|
3
|
+
import { PayableOverrides } from "../../typechain/common";
|
4
|
+
export declare const executeTakerBid: (signer: Signer, address: string, taker: Taker, maker: Maker, makerSignature: string, merkleTree: MerkleTree, affiliate: string, overrides?: PayableOverrides) => ContractMethods;
|
5
|
+
export declare const executeTakerAsk: (signer: Signer, address: string, taker: Taker, maker: Maker, makerSignature: string, merkleTree: MerkleTree, affiliate: string, overrides?: PayableOverrides) => ContractMethods;
|
6
|
+
export declare const executeMultipleTakerBids: (signer: Signer, address: string, taker: Taker[], maker: Maker[], makerSignature: string[], isAtomic: boolean, merkleTree: MerkleTree[], affiliate: string, overrides?: PayableOverrides) => {
|
7
|
+
call: (additionalOverrides?: PayableOverrides) => Promise<import("ethers").ContractTransactionResponse>;
|
8
|
+
estimateGas: (additionalOverrides?: PayableOverrides) => Promise<bigint>;
|
9
|
+
callStatic: (additionalOverrides?: PayableOverrides) => Promise<void>;
|
10
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { Overrides, BigNumberish, Provider, Signer } from "ethers";
|
2
|
+
import { ContractMethods } from "../../types";
|
3
|
+
export declare const viewUserBidAskNonces: (signerOrProvider: Provider | Signer, address: string, account: string, overrides?: Overrides) => Promise<{
|
4
|
+
bidNonce: bigint;
|
5
|
+
askNonce: bigint;
|
6
|
+
}>;
|
7
|
+
export declare const cancelOrderNonces: (signer: Signer, address: string, nonces: BigNumberish[], overrides?: Overrides) => ContractMethods;
|
8
|
+
export declare const cancelSubsetNonces: (signer: Signer, address: string, nonces: BigNumberish[], overrides?: Overrides) => ContractMethods;
|
9
|
+
export declare const incrementBidAskNonces: (signer: Signer, address: string, bid: boolean, ask: boolean, overrides?: Overrides) => ContractMethods;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { Provider, Overrides, Signer } from "ethers";
|
2
|
+
import { Maker, MerkleTree, OrderValidatorCode } from "../../types";
|
3
|
+
export declare const verifyMakerOrders: (signerOrProvider: Provider | Signer, address: string, makerOrders: Maker[], signatures: string[], merkleTrees: MerkleTree[], overrides?: Overrides) => Promise<OrderValidatorCode[][]>;
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { Overrides, Provider, Signer } from "ethers";
|
2
|
+
import { StrategyType, StrategyInfo } from "../../types";
|
3
|
+
export declare const strategyInfo: (signerOrProvider: Provider | Signer, address: string, strategyId: StrategyType, overrides?: Overrides) => Promise<StrategyInfo>;
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { Provider, Overrides, ContractTransactionResponse, Signer } from "ethers";
|
2
|
+
export declare const setApprovalForAll: (signer: Signer, collection: string, operator: string, approved: boolean, overrides?: Overrides) => Promise<ContractTransactionResponse>;
|
3
|
+
export declare const isApprovedForAll: (signerOrProvider: Provider | Signer, collection: string, account: string, operator: string, overrides?: Overrides) => Promise<boolean>;
|
4
|
+
export declare const allowance: (signerOrProvider: Provider | Signer, currency: string, account: string, operator: string, overrides?: Overrides) => Promise<bigint>;
|
5
|
+
export declare const approve: (signer: Signer, currency: string, operator: string, amount: bigint, overrides?: Overrides) => Promise<ContractTransactionResponse>;
|
6
|
+
export declare const balanceOf: (signerOrProvider: Provider | Signer, currency: string, account: string, overrides?: Overrides) => Promise<bigint>;
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { Overrides, Provider, Signer } from "ethers";
|
2
|
+
import { ContractMethods, BatchTransferItem } from "../../types";
|
3
|
+
export declare const hasUserApprovedOperator: (signerOrProvider: Provider | Signer, address: string, user: string, operator: string, overrides?: Overrides) => Promise<boolean>;
|
4
|
+
export declare const grantApprovals: (signer: Signer, address: string, operators: string[], overrides?: Overrides) => ContractMethods;
|
5
|
+
export declare const revokeApprovals: (signer: Signer, address: string, operators: string[], overrides?: Overrides) => ContractMethods;
|
6
|
+
export declare const transferBatchItemsAcrossCollections: (signer: Signer, address: string, items: BatchTransferItem[], from: string, to: string, overrides?: Overrides) => ContractMethods;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { EIP712TypedData, Maker } from "../types";
|
2
|
+
export declare const MAKER_HASH = "0x003c1bce41a2de73dfe64d6eeb2b3d7f15f1c0c382d9d963c2c6daeb75f0e539";
|
3
|
+
export declare const hashingMakerTypes: string[];
|
4
|
+
export declare const makerTypes: EIP712TypedData;
|
5
|
+
export declare const getBatchOrderTypes: (height: number) => EIP712TypedData;
|
6
|
+
/**
|
7
|
+
* Hash maker ask order.
|
8
|
+
* This function is used for testing purpose in the SDK, but is exposed because it's used by the BE.
|
9
|
+
* @param maker Maker
|
10
|
+
* @returns string (bytes32)
|
11
|
+
*/
|
12
|
+
export declare const getMakerHash: (maker: Maker) => string;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { BytesLike } from "ethers";
|
2
|
+
import { SolidityType, StrategyType } from "../types";
|
3
|
+
/**
|
4
|
+
* Get additional params types for a maker order based on the strategy used
|
5
|
+
* @param strategy Maker strategy
|
6
|
+
* @returns Array of solidity types for encoding
|
7
|
+
*/
|
8
|
+
export declare const getMakerParamsTypes: (strategy: StrategyType) => SolidityType[];
|
9
|
+
/**
|
10
|
+
* Get additional params types for a maker order based on the strategy used
|
11
|
+
* @param strategy Maker strategy
|
12
|
+
* @returns Array of solidity types for encoding
|
13
|
+
*/
|
14
|
+
export declare const getTakerParamsTypes: (strategy: StrategyType) => SolidityType[];
|
15
|
+
/**
|
16
|
+
* Given an array of params, returns the encoded params.
|
17
|
+
* To be used for orders signature and orders execution
|
18
|
+
* @param params Array of params
|
19
|
+
* @param types Array of solidity types
|
20
|
+
* @returns encoded params
|
21
|
+
*/
|
22
|
+
export declare const encodeParams: (params: any[], types: SolidityType[]) => BytesLike;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { TypedDataDomain, Signer } from "ethers";
|
2
|
+
import { Maker, SignMerkleTreeOrdersOutput } from "../types";
|
3
|
+
/**
|
4
|
+
* Sign a maker order
|
5
|
+
* @param signer Ethers typed data signer
|
6
|
+
* @param domain Typed data domain
|
7
|
+
* @param makerOrder Maker order
|
8
|
+
* @returns Signature
|
9
|
+
*/
|
10
|
+
export declare const signMakerOrder: (signer: Signer, domain: TypedDataDomain, makerOrder: Maker) => Promise<string>;
|
11
|
+
/**
|
12
|
+
* Sign a list of maker orders with a merkle tree
|
13
|
+
* @param signer Ethers typed data signer
|
14
|
+
* @param domain Typed data domain
|
15
|
+
* @param makerOrder Maker order
|
16
|
+
* @returns Signature, array of proofs, and tree
|
17
|
+
*/
|
18
|
+
export declare const signMerkleTreeOrders: (signer: Signer, domain: TypedDataDomain, makerOrders: Maker[]) => Promise<SignMerkleTreeOrdersOutput>;
|
package/package.json
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
{
|
2
|
+
"name": "@hypercerts-org/marketplace-sdk",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"license": "MIT",
|
5
|
+
"main": "dist/index.cjs.js",
|
6
|
+
"module": "dist/index.esm.js",
|
7
|
+
"types": "dist/index.d.ts",
|
8
|
+
"files": [
|
9
|
+
"dist"
|
10
|
+
],
|
11
|
+
"publishConfig": {
|
12
|
+
"access": "public",
|
13
|
+
"registry": "https://registry.npmjs.org"
|
14
|
+
},
|
15
|
+
"keywords": [
|
16
|
+
"looksrare"
|
17
|
+
],
|
18
|
+
"homepage": "https://hypercerts.org/",
|
19
|
+
"bugs": "https://github.com/hypercerts-org/hypercerts/issues",
|
20
|
+
"repository": {
|
21
|
+
"type": "git",
|
22
|
+
"url": "git@github.com:hypercerts-org/marketplace-sdk.git"
|
23
|
+
},
|
24
|
+
"engines": {
|
25
|
+
"node": ">= 16.15.1 <= 20.x"
|
26
|
+
},
|
27
|
+
"scripts": {
|
28
|
+
"prebuild": "rm -rf ./src/typechain ./src/artifacts cache dist",
|
29
|
+
"prepublishOnly": "yarn build",
|
30
|
+
"dev": "rollup -c --bundleConfigAsCjs -w",
|
31
|
+
"build:ts": "rollup -c --bundleConfigAsCjs",
|
32
|
+
"build:sc": "hardhat compile",
|
33
|
+
"build": "yarn build:sc && yarn build:ts",
|
34
|
+
"test": "nyc hardhat test",
|
35
|
+
"doc": "typedoc --plugin typedoc-plugin-markdown --tsconfig tsconfig.build.json",
|
36
|
+
"lint": "eslint --max-warnings 0 'src/**/*.{js,ts}'",
|
37
|
+
"format:check": "prettier --check 'src/**/*.{js,ts,json,yaml,yml,md}'",
|
38
|
+
"format:write": "prettier --write 'src/**/*.{js,ts,json,yaml,yml,md}'",
|
39
|
+
"release": "release-it --only-version --set-upstream"
|
40
|
+
},
|
41
|
+
"lint-staged": {
|
42
|
+
"*.{js,jsx,ts,tsx,json,yaml,yml}": "yarn format:write"
|
43
|
+
},
|
44
|
+
"peerDependencies": {
|
45
|
+
"ethers": "^6.6.2"
|
46
|
+
},
|
47
|
+
"devDependencies": {
|
48
|
+
"@commitlint/cli": "^17.0.2",
|
49
|
+
"@commitlint/config-conventional": "^17.0.2",
|
50
|
+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
51
|
+
"@looksrare/contracts-exchange-v1": "^1.2.0",
|
52
|
+
"@looksrare/contracts-exchange-v2": "^0.1.2",
|
53
|
+
"@nomicfoundation/hardhat-ethers": "^3.0.4",
|
54
|
+
"@rollup/plugin-json": "^6.0.0",
|
55
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
56
|
+
"@typechain/ethers-v6": "^0.4.0",
|
57
|
+
"@typechain/hardhat": "^8.0.0",
|
58
|
+
"@types/chai": "^4.3.1",
|
59
|
+
"@types/chai-as-promised": "^7.1.5",
|
60
|
+
"@types/mocha": "^10.0.1",
|
61
|
+
"@types/node": "^18.14.6",
|
62
|
+
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
63
|
+
"@typescript-eslint/parser": "^5.54.1",
|
64
|
+
"chai": "^4.3.6",
|
65
|
+
"chai-as-promised": "^7.1.1",
|
66
|
+
"dotenv": "^16.0.3",
|
67
|
+
"eslint": "^8.17.0",
|
68
|
+
"eslint-config-prettier": "^8.7.0",
|
69
|
+
"eslint-plugin-prettier": "^4.2.1",
|
70
|
+
"ethers": "^6.6.2",
|
71
|
+
"hardhat": "^2.16.1",
|
72
|
+
"hardhat-abi-exporter": "^2.9.0",
|
73
|
+
"husky": "^8.0.1",
|
74
|
+
"lint-staged": "^13.0.0",
|
75
|
+
"nyc": "^15.1.0",
|
76
|
+
"prettier": "^2.6.2",
|
77
|
+
"prettier-plugin-solidity": "^1.1.3",
|
78
|
+
"release-it": "^15.7.0",
|
79
|
+
"rollup": "^3.18.0",
|
80
|
+
"rollup-plugin-bundle-size": "^1.0.3",
|
81
|
+
"rollup-plugin-copy": "^3.4.0",
|
82
|
+
"solhint": "^3.4.1",
|
83
|
+
"solmate": "^6.6.1",
|
84
|
+
"source-map-support": "^0.5.21",
|
85
|
+
"ts-node": "^10.9.1",
|
86
|
+
"typechain": "^8.2.0",
|
87
|
+
"typedoc": "^0.24.7",
|
88
|
+
"typedoc-plugin-markdown": "^3.15.3",
|
89
|
+
"typescript": "^4.7.3"
|
90
|
+
},
|
91
|
+
"dependencies": {
|
92
|
+
"merkletreejs": "^0.3.9"
|
93
|
+
}
|
94
|
+
}
|