@hypercerts-org/marketplace-sdk 0.3.12 → 0.3.14
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/dist/HypercertExchangeClient.d.ts +6 -2
- package/dist/constants/currencies.d.ts +2 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/index.cjs.js +240 -101
- package/dist/index.esm.js +242 -104
- package/dist/types.d.ts +19 -2
- package/dist/utils/api.d.ts +3 -509
- package/dist/utils/graphl.d.ts +1 -2
- package/package.json +16 -16
@@ -1,5 +1,5 @@
|
|
1
1
|
import { BigNumberish, ContractTransactionResponse, Overrides, Provider, Signer, TypedDataDomain } from "ethers";
|
2
|
-
import { Addresses, BatchTransferItem, ChainId, ContractMethods, CreateMakerAskOutput, CreateMakerBidOutput, CreateMakerCollectionOfferInput, CreateMakerCollectionOfferWithProofInput, CreateMakerInput, Maker, MerkleTree, OrderValidatorCode, SignMerkleTreeOrdersOutput, StrategyInfo, StrategyType, Taker } from "./types";
|
2
|
+
import { Addresses, BatchTransferItem, ChainId, ContractMethods, CreateMakerAskOutput, CreateMakerBidOutput, CreateMakerCollectionOfferInput, CreateMakerCollectionOfferWithProofInput, CreateMakerInput, Currencies, Maker, MerkleTree, OrderValidatorCode, SignMerkleTreeOrdersOutput, StrategyInfo, StrategyType, Taker } from "./types";
|
3
3
|
import { ApiClient } from "./utils/api";
|
4
4
|
/**
|
5
5
|
* HypercertExchange
|
@@ -10,6 +10,9 @@ export declare class HypercertExchangeClient {
|
|
10
10
|
readonly chainId: ChainId;
|
11
11
|
/** Mapping of Hypercert protocol addresses for the current chain */
|
12
12
|
readonly addresses: Addresses;
|
13
|
+
/** List of supported currencies for the current chain */
|
14
|
+
readonly currencies: Currencies;
|
15
|
+
/** API client to interact with the HypercertExchange API */
|
13
16
|
readonly api: ApiClient;
|
14
17
|
/**
|
15
18
|
* Ethers signer
|
@@ -30,10 +33,11 @@ export declare class HypercertExchangeClient {
|
|
30
33
|
*/
|
31
34
|
constructor(chainId: ChainId, provider: Provider, signer?: Signer, overrides?: {
|
32
35
|
addresses: Addresses;
|
36
|
+
currencies: Currencies;
|
33
37
|
apiEndpoint?: string;
|
34
38
|
});
|
35
39
|
/**
|
36
|
-
* Return the signer
|
40
|
+
* Return the signer if it's set, throw an exception otherwise
|
37
41
|
* @returns Signer
|
38
42
|
*/
|
39
43
|
private getSigner;
|
package/dist/index.cjs.js
CHANGED
@@ -688,7 +688,11 @@ var strategies = /*#__PURE__*/Object.freeze({
|
|
688
688
|
exports.ChainId = void 0;
|
689
689
|
(function (ChainId) {
|
690
690
|
ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA";
|
691
|
+
ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA";
|
691
692
|
ChainId[ChainId["HARDHAT"] = 31337] = "HARDHAT";
|
693
|
+
ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM";
|
694
|
+
ChainId[ChainId["CELO"] = 42220] = "CELO";
|
695
|
+
ChainId[ChainId["BASE"] = 8453] = "BASE";
|
692
696
|
})(exports.ChainId || (exports.ChainId = {}));
|
693
697
|
/** List of collection types supported by the protocol */
|
694
698
|
exports.CollectionType = void 0;
|
@@ -1097,26 +1101,119 @@ const sepoliaAddresses = {
|
|
1097
1101
|
EXCHANGE_V2: contracts.deployments[11155111].HypercertExchange,
|
1098
1102
|
TRANSFER_MANAGER_V2: contracts.deployments[11155111].TransferManager,
|
1099
1103
|
ORDER_VALIDATOR_V2: contracts.deployments[11155111].OrderValidatorV2A,
|
1100
|
-
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1101
1104
|
MINTER: contracts.deployments[11155111].HypercertMinterUUPS,
|
1102
1105
|
};
|
1106
|
+
const baseSepoliaAddresses = {
|
1107
|
+
EXCHANGE_V2: contracts.deployments[84532].HypercertExchange,
|
1108
|
+
TRANSFER_MANAGER_V2: contracts.deployments[84532].TransferManager,
|
1109
|
+
ORDER_VALIDATOR_V2: contracts.deployments[84532].OrderValidatorV2A,
|
1110
|
+
MINTER: contracts.deployments[84532].HypercertMinterUUPS,
|
1111
|
+
};
|
1112
|
+
const optimismAddresses = {
|
1113
|
+
EXCHANGE_V2: contracts.deployments[10].HypercertExchange,
|
1114
|
+
TRANSFER_MANAGER_V2: contracts.deployments[10].TransferManager,
|
1115
|
+
ORDER_VALIDATOR_V2: contracts.deployments[10].OrderValidatorV2A,
|
1116
|
+
MINTER: contracts.deployments[10].HypercertMinterUUPS,
|
1117
|
+
};
|
1118
|
+
const celoAddresses = {
|
1119
|
+
EXCHANGE_V2: contracts.deployments[42220].HypercertExchange,
|
1120
|
+
TRANSFER_MANAGER_V2: contracts.deployments[42220].TransferManager,
|
1121
|
+
ORDER_VALIDATOR_V2: contracts.deployments[42220].OrderValidatorV2A,
|
1122
|
+
MINTER: contracts.deployments[42220].HypercertMinterUUPS,
|
1123
|
+
};
|
1124
|
+
const baseAddresses = {
|
1125
|
+
EXCHANGE_V2: contracts.deployments[8453].HypercertExchange,
|
1126
|
+
TRANSFER_MANAGER_V2: contracts.deployments[8453].TransferManager,
|
1127
|
+
ORDER_VALIDATOR_V2: contracts.deployments[8453].OrderValidatorV2A,
|
1128
|
+
MINTER: contracts.deployments[8453].HypercertMinterUUPS,
|
1129
|
+
};
|
1103
1130
|
/**
|
1104
1131
|
* List of useful contract addresses
|
1105
1132
|
*/
|
1106
1133
|
const addressesByNetwork = {
|
1134
|
+
// Testnets
|
1107
1135
|
[exports.ChainId.SEPOLIA]: sepoliaAddresses,
|
1108
1136
|
[exports.ChainId.HARDHAT]: sepoliaAddresses,
|
1137
|
+
[exports.ChainId.BASE_SEPOLIA]: baseSepoliaAddresses,
|
1138
|
+
// Production nets
|
1139
|
+
[exports.ChainId.OPTIMISM]: optimismAddresses,
|
1140
|
+
[exports.ChainId.CELO]: celoAddresses,
|
1141
|
+
[exports.ChainId.BASE]: baseAddresses,
|
1142
|
+
};
|
1143
|
+
|
1144
|
+
const currencyAddressesPerChain = {
|
1145
|
+
[exports.ChainId.SEPOLIA]: {
|
1146
|
+
ETH: ethers.ZeroAddress,
|
1147
|
+
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1148
|
+
DAI: "0x68194a729C2450ad26072b3D33ADaCbcef39D574",
|
1149
|
+
USDC: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
1150
|
+
},
|
1151
|
+
[exports.ChainId.HARDHAT]: {
|
1152
|
+
ETH: ethers.ZeroAddress,
|
1153
|
+
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1154
|
+
DAI: "0x68194a729C2450ad26072b3D33ADaCbcef39D574",
|
1155
|
+
USDC: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
1156
|
+
},
|
1157
|
+
[exports.ChainId.BASE_SEPOLIA]: {
|
1158
|
+
ETH: ethers.ZeroAddress,
|
1159
|
+
WETH: "0x1BDD24840e119DC2602dCC587Dd182812427A5Cc",
|
1160
|
+
DAI: "0xbEC8ab89b34835F6b99fFc29c088426E8e708ceA",
|
1161
|
+
USDC: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
1162
|
+
},
|
1163
|
+
[exports.ChainId.OPTIMISM]: {
|
1164
|
+
ETH: ethers.ZeroAddress,
|
1165
|
+
WETH: "0x4200000000000000000000000000000000000006",
|
1166
|
+
DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",
|
1167
|
+
USDC: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
1168
|
+
},
|
1169
|
+
[exports.ChainId.CELO]: {
|
1170
|
+
ETH: ethers.ZeroAddress,
|
1171
|
+
WETH: "0x66803fb87abd4aac3cbb3fad7c3aa01f6f3fb207",
|
1172
|
+
DAI: "0xE4fE50cdD716522A56204352f00AA110F731932d",
|
1173
|
+
USDC: "0xef4229c8c3250C675F21BCefa42f58EfbfF6002a",
|
1174
|
+
},
|
1175
|
+
[exports.ChainId.BASE]: {
|
1176
|
+
ETH: ethers.ZeroAddress,
|
1177
|
+
WETH: "0x4200000000000000000000000000000000000006",
|
1178
|
+
DAI: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb",
|
1179
|
+
USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
1180
|
+
},
|
1181
|
+
};
|
1182
|
+
const getCurrencies = (chainId) => {
|
1183
|
+
const currenciesForChain = currencyAddressesPerChain[chainId];
|
1184
|
+
return {
|
1185
|
+
ETH: {
|
1186
|
+
symbol: "ETH",
|
1187
|
+
address: currenciesForChain.ETH,
|
1188
|
+
decimals: 18,
|
1189
|
+
},
|
1190
|
+
WETH: {
|
1191
|
+
symbol: "WETH",
|
1192
|
+
address: currenciesForChain.WETH,
|
1193
|
+
decimals: 18,
|
1194
|
+
},
|
1195
|
+
DAI: {
|
1196
|
+
symbol: "DAI",
|
1197
|
+
address: currenciesForChain.DAI,
|
1198
|
+
decimals: 18,
|
1199
|
+
},
|
1200
|
+
USDC: {
|
1201
|
+
symbol: "USDC",
|
1202
|
+
address: currenciesForChain.USDC,
|
1203
|
+
decimals: 6,
|
1204
|
+
},
|
1205
|
+
};
|
1206
|
+
};
|
1207
|
+
const currenciesByNetwork = {
|
1208
|
+
[exports.ChainId.SEPOLIA]: getCurrencies(exports.ChainId.SEPOLIA),
|
1209
|
+
[exports.ChainId.HARDHAT]: getCurrencies(exports.ChainId.HARDHAT),
|
1210
|
+
[exports.ChainId.BASE_SEPOLIA]: getCurrencies(exports.ChainId.BASE_SEPOLIA),
|
1211
|
+
[exports.ChainId.OPTIMISM]: getCurrencies(exports.ChainId.OPTIMISM),
|
1212
|
+
[exports.ChainId.CELO]: getCurrencies(exports.ChainId.CELO),
|
1213
|
+
[exports.ChainId.BASE]: getCurrencies(exports.ChainId.BASE),
|
1109
1214
|
};
|
1110
1215
|
|
1111
1216
|
const chainInfo = {
|
1112
|
-
// [ChainId.GOERLI]: {
|
1113
|
-
// label: "Goerli",
|
1114
|
-
// appUrl: "https://goerli.looksrare.org",
|
1115
|
-
// explorer: "https://goerli.etherscan.io",
|
1116
|
-
// rpcUrl: "https://eth-goerli.g.alchemy.com/v2",
|
1117
|
-
// baseApiUrl: "https://graphql-goerli.looksrare.org",
|
1118
|
-
// osApiUrl: "https://testnets-api.opensea.io",
|
1119
|
-
// },
|
1120
1217
|
[exports.ChainId.SEPOLIA]: {
|
1121
1218
|
label: "Sepolia",
|
1122
1219
|
appUrl: "https://sepolia.looksrare.org",
|
@@ -1133,6 +1230,38 @@ const chainInfo = {
|
|
1133
1230
|
baseApiUrl: "http://localhost:4000",
|
1134
1231
|
osApiUrl: "https://testnets-api.opensea.io",
|
1135
1232
|
},
|
1233
|
+
[exports.ChainId.BASE_SEPOLIA]: {
|
1234
|
+
label: "Base Sepolia",
|
1235
|
+
appUrl: "https://sepolia.base.looksrare.org",
|
1236
|
+
explorer: "https://sepolia.basescan.org",
|
1237
|
+
rpcUrl: "https://sepolia.base.org",
|
1238
|
+
baseApiUrl: "https://api-sepolia.basescan.org/api",
|
1239
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1240
|
+
},
|
1241
|
+
[exports.ChainId.OPTIMISM]: {
|
1242
|
+
label: "Optimism",
|
1243
|
+
appUrl: "https://optimism.looksrare.org",
|
1244
|
+
explorer: "https://optimism.etherscan.io",
|
1245
|
+
rpcUrl: "https://optimism.g.alchemy.com/v2",
|
1246
|
+
baseApiUrl: "https://graphql-optimism.looksrare.org",
|
1247
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1248
|
+
},
|
1249
|
+
[exports.ChainId.CELO]: {
|
1250
|
+
label: "Celo",
|
1251
|
+
appUrl: "https://celo.looksrare.org",
|
1252
|
+
explorer: "https://explorer.celo.org",
|
1253
|
+
rpcUrl: "https://forno.celo.org",
|
1254
|
+
baseApiUrl: "https://api.celo.looksrare.org",
|
1255
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1256
|
+
},
|
1257
|
+
[exports.ChainId.BASE]: {
|
1258
|
+
label: "Base",
|
1259
|
+
appUrl: "https://base.looksrare.org",
|
1260
|
+
explorer: "https://base.etherscan.io",
|
1261
|
+
rpcUrl: "https://eth-base.g.alchemy.com/v2",
|
1262
|
+
baseApiUrl: "https://graphql-base.looksrare.org",
|
1263
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1264
|
+
},
|
1136
1265
|
};
|
1137
1266
|
|
1138
1267
|
/** Maximum amount of orders in a merkle tree
|
@@ -5514,9 +5643,69 @@ function print(e) {
|
|
5514
5643
|
return m$1[e.kind] ? m$1[e.kind](e) : "";
|
5515
5644
|
}
|
5516
5645
|
|
5646
|
+
function initGraphQLTada() {
|
5647
|
+
function graphql(e, i) {
|
5648
|
+
var a = parse(e).definitions;
|
5649
|
+
var t = new Set;
|
5650
|
+
for (var s of i || []) {
|
5651
|
+
for (var d of s.definitions) {
|
5652
|
+
if (d.kind === e$2.FRAGMENT_DEFINITION && !t.has(d)) {
|
5653
|
+
a.push(d);
|
5654
|
+
t.add(d);
|
5655
|
+
}
|
5656
|
+
}
|
5657
|
+
}
|
5658
|
+
if (a[0].kind === e$2.FRAGMENT_DEFINITION && a[0].directives) {
|
5659
|
+
a[0].directives = a[0].directives.filter((n => "_unmask" !== n.name.value));
|
5660
|
+
}
|
5661
|
+
return {
|
5662
|
+
kind: e$2.DOCUMENT,
|
5663
|
+
definitions: a
|
5664
|
+
};
|
5665
|
+
}
|
5666
|
+
graphql.scalar = function scalar(n, r) {
|
5667
|
+
return r;
|
5668
|
+
};
|
5669
|
+
graphql.persisted = function persisted(r, e) {
|
5670
|
+
return {
|
5671
|
+
kind: e$2.DOCUMENT,
|
5672
|
+
definitions: e ? e.definitions : [],
|
5673
|
+
documentId: r
|
5674
|
+
};
|
5675
|
+
};
|
5676
|
+
return graphql;
|
5677
|
+
}
|
5678
|
+
|
5679
|
+
var e$1 = initGraphQLTada();
|
5680
|
+
|
5681
|
+
const fractionsByIdQuery = e$1(`
|
5682
|
+
query fractionsById($fraction_id: String!) {
|
5683
|
+
fractions(where: { hypercert_id: { eq: $fraction_id } }) {
|
5684
|
+
data {
|
5685
|
+
creation_block_timestamp
|
5686
|
+
fraction_id
|
5687
|
+
last_update_block_timestamp
|
5688
|
+
owner_address
|
5689
|
+
units
|
5690
|
+
}
|
5691
|
+
}
|
5692
|
+
}
|
5693
|
+
`);
|
5694
|
+
const getFractionsById = async (fractionId, client) => {
|
5695
|
+
const { data, error } = await client
|
5696
|
+
.query(fractionsByIdQuery, {
|
5697
|
+
fraction_id: fractionId,
|
5698
|
+
})
|
5699
|
+
.toPromise();
|
5700
|
+
if (error) {
|
5701
|
+
throw new Error(error.message);
|
5702
|
+
}
|
5703
|
+
return data?.fractions.data;
|
5704
|
+
};
|
5705
|
+
|
5517
5706
|
var teardownPlaceholder = () => {};
|
5518
5707
|
|
5519
|
-
var e
|
5708
|
+
var e = teardownPlaceholder;
|
5520
5709
|
|
5521
5710
|
function start(e) {
|
5522
5711
|
return {
|
@@ -5538,7 +5727,7 @@ var identity = e => e;
|
|
5538
5727
|
|
5539
5728
|
function filter(r) {
|
5540
5729
|
return t => i => {
|
5541
|
-
var a = e
|
5730
|
+
var a = e;
|
5542
5731
|
t((e => {
|
5543
5732
|
if (0 === e) {
|
5544
5733
|
i(0);
|
@@ -5567,7 +5756,7 @@ function map(e) {
|
|
5567
5756
|
function mergeMap(r) {
|
5568
5757
|
return t => i => {
|
5569
5758
|
var a = [];
|
5570
|
-
var f = e
|
5759
|
+
var f = e;
|
5571
5760
|
var n = !1;
|
5572
5761
|
var s = !1;
|
5573
5762
|
t((t => {
|
@@ -5581,7 +5770,7 @@ function mergeMap(r) {
|
|
5581
5770
|
} else {
|
5582
5771
|
n = !1;
|
5583
5772
|
!function applyInnerSource(r) {
|
5584
|
-
var t = e
|
5773
|
+
var t = e;
|
5585
5774
|
r((e => {
|
5586
5775
|
if (0 === e) {
|
5587
5776
|
if (a.length) {
|
@@ -5710,7 +5899,7 @@ function onStart(e) {
|
|
5710
5899
|
|
5711
5900
|
function share(r) {
|
5712
5901
|
var t = [];
|
5713
|
-
var i = e
|
5902
|
+
var i = e;
|
5714
5903
|
var a = !1;
|
5715
5904
|
return e => {
|
5716
5905
|
t.push(e);
|
@@ -5750,8 +5939,8 @@ function share(r) {
|
|
5750
5939
|
|
5751
5940
|
function switchMap(r) {
|
5752
5941
|
return t => i => {
|
5753
|
-
var a = e
|
5754
|
-
var f = e
|
5942
|
+
var a = e;
|
5943
|
+
var f = e;
|
5755
5944
|
var n = !1;
|
5756
5945
|
var s = !1;
|
5757
5946
|
var l = !1;
|
@@ -5767,7 +5956,7 @@ function switchMap(r) {
|
|
5767
5956
|
} else {
|
5768
5957
|
if (l) {
|
5769
5958
|
f(1);
|
5770
|
-
f = e
|
5959
|
+
f = e;
|
5771
5960
|
}
|
5772
5961
|
if (!n) {
|
5773
5962
|
n = !0;
|
@@ -5827,7 +6016,7 @@ function switchMap(r) {
|
|
5827
6016
|
|
5828
6017
|
function take(r) {
|
5829
6018
|
return t => i => {
|
5830
|
-
var a = e
|
6019
|
+
var a = e;
|
5831
6020
|
var f = !1;
|
5832
6021
|
var n = 0;
|
5833
6022
|
t((e => {
|
@@ -5866,8 +6055,8 @@ function take(r) {
|
|
5866
6055
|
|
5867
6056
|
function takeUntil(r) {
|
5868
6057
|
return t => i => {
|
5869
|
-
var a = e
|
5870
|
-
var f = e
|
6058
|
+
var a = e;
|
6059
|
+
var f = e;
|
5871
6060
|
var n = !1;
|
5872
6061
|
t((e => {
|
5873
6062
|
if (n) ; else if (0 === e) {
|
@@ -5904,7 +6093,7 @@ function takeUntil(r) {
|
|
5904
6093
|
|
5905
6094
|
function takeWhile(r, t) {
|
5906
6095
|
return i => a => {
|
5907
|
-
var f = e
|
6096
|
+
var f = e;
|
5908
6097
|
var n = !1;
|
5909
6098
|
i((e => {
|
5910
6099
|
if (n) ; else if (0 === e) {
|
@@ -6088,7 +6277,7 @@ function makeSubject() {
|
|
6088
6277
|
|
6089
6278
|
function subscribe(r) {
|
6090
6279
|
return t => {
|
6091
|
-
var i = e
|
6280
|
+
var i = e;
|
6092
6281
|
var a = !1;
|
6093
6282
|
t((e => {
|
6094
6283
|
if (0 === e) {
|
@@ -6117,7 +6306,7 @@ function publish(e) {
|
|
6117
6306
|
|
6118
6307
|
function toPromise(r) {
|
6119
6308
|
return new Promise((t => {
|
6120
|
-
var i = e
|
6309
|
+
var i = e;
|
6121
6310
|
var a;
|
6122
6311
|
r((e => {
|
6123
6312
|
if (0 === e) {
|
@@ -7240,76 +7429,12 @@ var C = function Client(e) {
|
|
7240
7429
|
return p;
|
7241
7430
|
};
|
7242
7431
|
|
7243
|
-
|
7244
|
-
|
7245
|
-
|
7246
|
-
|
7247
|
-
for (var s of i || []) {
|
7248
|
-
for (var d of s.definitions) {
|
7249
|
-
if (d.kind === e$2.FRAGMENT_DEFINITION && !t.has(d)) {
|
7250
|
-
a.push(d);
|
7251
|
-
t.add(d);
|
7252
|
-
}
|
7253
|
-
}
|
7254
|
-
}
|
7255
|
-
if (a[0].kind === e$2.FRAGMENT_DEFINITION && a[0].directives) {
|
7256
|
-
a[0].directives = a[0].directives.filter((n => "_unmask" !== n.name.value));
|
7257
|
-
}
|
7258
|
-
return {
|
7259
|
-
kind: e$2.DOCUMENT,
|
7260
|
-
definitions: a
|
7261
|
-
};
|
7262
|
-
}
|
7263
|
-
graphql.scalar = function scalar(n, r) {
|
7264
|
-
return r;
|
7265
|
-
};
|
7266
|
-
graphql.persisted = function persisted(r, e) {
|
7267
|
-
return {
|
7268
|
-
kind: e$2.DOCUMENT,
|
7269
|
-
definitions: e ? e.definitions : [],
|
7270
|
-
documentId: r
|
7271
|
-
};
|
7272
|
-
};
|
7273
|
-
return graphql;
|
7274
|
-
}
|
7275
|
-
|
7276
|
-
var e = initGraphQLTada();
|
7277
|
-
|
7278
|
-
const urqlClient = new C({
|
7279
|
-
url: sdk.CONSTANTS.ENDPOINTS["test"],
|
7280
|
-
exchanges: [cacheExchange, fetchExchange],
|
7281
|
-
});
|
7282
|
-
const fractionsByIdQuery = e(`
|
7283
|
-
query fractionsById($fraction_id: String!) {
|
7284
|
-
fractions(where: { hypercert_id: { eq: $fraction_id } }) {
|
7285
|
-
data {
|
7286
|
-
creation_block_timestamp
|
7287
|
-
fraction_id
|
7288
|
-
last_update_block_timestamp
|
7289
|
-
owner_address
|
7290
|
-
units
|
7291
|
-
}
|
7292
|
-
}
|
7293
|
-
}
|
7294
|
-
`);
|
7295
|
-
const getFractionsById = async (fractionId) => {
|
7296
|
-
const { data, error } = await urqlClient
|
7297
|
-
.query(fractionsByIdQuery, {
|
7298
|
-
fraction_id: fractionId,
|
7299
|
-
})
|
7300
|
-
.toPromise();
|
7301
|
-
if (error) {
|
7302
|
-
throw new Error(error.message);
|
7303
|
-
}
|
7304
|
-
return data?.fractions.data;
|
7305
|
-
};
|
7306
|
-
|
7307
|
-
const HYPERCERTS_MARKETPLACE_API_URL = process.env.HYPERCERTS_MARKETPLACE_API_URL;
|
7308
|
-
const SUPABASE_HYPERCERTS_URL = process.env.SUPABASE_HYPERCERTS_URL;
|
7309
|
-
const SUPABASE_HYPERCERTS_ANON_KEY = process.env.SUPABASE_HYPERCERTS_ANON_KEY;
|
7310
|
-
const supabaseHypercerts = supabaseJs.createClient(SUPABASE_HYPERCERTS_URL, SUPABASE_HYPERCERTS_ANON_KEY);
|
7432
|
+
const SUPABASE_HYPERCERTS_DATA_STAGING_URL = "https://zgvoyckkistexkfdmjqc.supabase.co";
|
7433
|
+
const SUPABASE_HYPERCERTS_DATA_STAGING_ANON_KEY_STAGING = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inpndm95Y2traXN0ZXhrZmRtanFjIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTc4ODM1MjAsImV4cCI6MjAxMzQ1OTUyMH0.6FWDhwP3ZOM1O3ObvyRKtOsvwhJjbrZL2B1N-0MSpFg";
|
7434
|
+
const SUPABASE_HYPERCERTS_DATA_PRODUCTION_URL = "https://ueebbafxdbglaqtyslwv.supabase.co";
|
7435
|
+
const SUPABASE_HYPERCERTS_DATA_PRODUCTION_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVlZWJiYWZ4ZGJnbGFxdHlzbHd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTc1NTA1MzUsImV4cCI6MjAxMzEyNjUzNX0.mhClRFe8QL6IQLMvTXjdprR6agr_OXF9g2CUJBww4mE";
|
7311
7436
|
class ApiClient {
|
7312
|
-
constructor(baseUrl) {
|
7437
|
+
constructor(indexerEnvironment, baseUrl) {
|
7313
7438
|
this.baseUrl = baseUrl;
|
7314
7439
|
/**
|
7315
7440
|
* Fetches order nonce from api
|
@@ -7364,7 +7489,7 @@ class ApiClient {
|
|
7364
7489
|
* @param strategy strategy for the order
|
7365
7490
|
*/
|
7366
7491
|
this.fetchOrders = async ({ signer, claimTokenIds, chainId, strategy }) => {
|
7367
|
-
let baseQuery =
|
7492
|
+
let baseQuery = this._supabaseHypercerts.from("marketplace_orders").select("*");
|
7368
7493
|
if (signer) {
|
7369
7494
|
baseQuery.eq("signer", signer);
|
7370
7495
|
}
|
@@ -7385,9 +7510,9 @@ class ApiClient {
|
|
7385
7510
|
* @param chainId Chain ID
|
7386
7511
|
*/
|
7387
7512
|
this.fetchOrdersByHypercertId = async ({ hypercertId }) => {
|
7388
|
-
const fractions = await getFractionsById(hypercertId);
|
7513
|
+
const fractions = await getFractionsById(hypercertId, this._urqlClient);
|
7389
7514
|
const tokenIds = fractions?.flatMap(() => fractions.map((fraction) => sdk.parseClaimOrFractionId(fraction.fraction_id).id)) || [];
|
7390
|
-
const result = await
|
7515
|
+
const result = await this._supabaseHypercerts.from("marketplace_orders").select("*").overlaps("itemIds", tokenIds);
|
7391
7516
|
return result;
|
7392
7517
|
};
|
7393
7518
|
this.handleResponse = async (res) => {
|
@@ -7397,11 +7522,18 @@ class ApiClient {
|
|
7397
7522
|
}
|
7398
7523
|
return (await res.json());
|
7399
7524
|
};
|
7400
|
-
const url = baseUrl ||
|
7525
|
+
const url = baseUrl || `${sdk.CONSTANTS.ENDPOINTS[indexerEnvironment]}/v1`;
|
7401
7526
|
if (!url) {
|
7402
7527
|
throw new Error("No API URL provided");
|
7403
7528
|
}
|
7404
7529
|
this._baseUrl = url;
|
7530
|
+
this._urqlClient = new C({
|
7531
|
+
url: `${sdk.CONSTANTS.ENDPOINTS[indexerEnvironment]}/v1/graphql`,
|
7532
|
+
exchanges: [cacheExchange, fetchExchange],
|
7533
|
+
});
|
7534
|
+
this._supabaseHypercerts = supabaseJs.createClient(indexerEnvironment === "test" ? SUPABASE_HYPERCERTS_DATA_STAGING_URL : SUPABASE_HYPERCERTS_DATA_PRODUCTION_URL, indexerEnvironment === "test"
|
7535
|
+
? SUPABASE_HYPERCERTS_DATA_STAGING_ANON_KEY_STAGING
|
7536
|
+
: SUPABASE_HYPERCERTS_DATA_PRODUCTION_ANON_KEY);
|
7405
7537
|
}
|
7406
7538
|
}
|
7407
7539
|
|
@@ -7418,14 +7550,20 @@ class HypercertExchangeClient {
|
|
7418
7550
|
* @param overrides Override contract addresses or api endpoint used
|
7419
7551
|
*/
|
7420
7552
|
constructor(chainId, provider, signer, overrides) {
|
7553
|
+
const deployment = sdk.CONSTANTS.DEPLOYMENTS[contracts.asDeployedChain(chainId)];
|
7554
|
+
if (!deployment) {
|
7555
|
+
throw new Error("Chain not supported");
|
7556
|
+
}
|
7557
|
+
const indexerEnvironment = deployment.isTestnet ? "test" : "production";
|
7421
7558
|
this.chainId = chainId;
|
7422
7559
|
this.addresses = overrides?.addresses ?? addressesByNetwork[this.chainId];
|
7560
|
+
this.currencies = overrides?.currencies ?? currenciesByNetwork[this.chainId];
|
7423
7561
|
this.signer = signer;
|
7424
7562
|
this.provider = provider;
|
7425
|
-
this.api = new ApiClient(overrides?.apiEndpoint);
|
7563
|
+
this.api = new ApiClient(indexerEnvironment, overrides?.apiEndpoint);
|
7426
7564
|
}
|
7427
7565
|
/**
|
7428
|
-
* Return the signer
|
7566
|
+
* Return the signer if it's set, throw an exception otherwise
|
7429
7567
|
* @returns Signer
|
7430
7568
|
*/
|
7431
7569
|
getSigner() {
|
@@ -7500,7 +7638,7 @@ class HypercertExchangeClient {
|
|
7500
7638
|
* @param CreateMakerInput
|
7501
7639
|
* @returns the maker object, isCurrencyApproved, and isBalanceSufficient
|
7502
7640
|
*/
|
7503
|
-
async createMakerBid({ collection, strategyId, collectionType, subsetNonce, orderNonce, endTime, price, itemIds, amounts = [1], currency = this.
|
7641
|
+
async createMakerBid({ collection, strategyId, collectionType, subsetNonce, orderNonce, endTime, price, itemIds, amounts = [1], currency = this.currencies.WETH.address, startTime = Math.floor(Date.now() / 1000), additionalParameters = [], }) {
|
7504
7642
|
const signer = this.getSigner();
|
7505
7643
|
if (!this.isTimestampValid(startTime) || !this.isTimestampValid(endTime)) {
|
7506
7644
|
throw new ErrorTimestamp();
|
@@ -7807,7 +7945,7 @@ class HypercertExchangeClient {
|
|
7807
7945
|
* @param currency Currency used to buy the fractions (default to WETH)
|
7808
7946
|
* @param additionalParameters Additional parameters used to support complex orders
|
7809
7947
|
*/
|
7810
|
-
async createDirectFractionsSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.
|
7948
|
+
async createDirectFractionsSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.currencies.WETH.address, additionalParameters = [], }) {
|
7811
7949
|
const address = await this.signer?.getAddress();
|
7812
7950
|
if (!address) {
|
7813
7951
|
throw new Error("No signer address could be determined");
|
@@ -7848,7 +7986,7 @@ class HypercertExchangeClient {
|
|
7848
7986
|
* @param sellLeftoverFraction Whether or not the seller wants to sell the leftover units
|
7849
7987
|
* @param root Merkle tree root (optional)
|
7850
7988
|
*/
|
7851
|
-
async createFractionalSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.
|
7989
|
+
async createFractionalSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.currencies.WETH.address, maxUnitAmount, minUnitAmount, minUnitsToKeep, sellLeftoverFraction, root, }) {
|
7852
7990
|
const address = await this.signer?.getAddress();
|
7853
7991
|
if (!address) {
|
7854
7992
|
throw new Error("No signer address could be determined");
|
@@ -7953,5 +8091,6 @@ exports.TransferManagerAbi = TransferManager;
|
|
7953
8091
|
exports.WETHAbi = WETH;
|
7954
8092
|
exports.addressesByNetwork = addressesByNetwork;
|
7955
8093
|
exports.chainInfo = chainInfo;
|
8094
|
+
exports.currenciesByNetwork = currenciesByNetwork;
|
7956
8095
|
exports.defaultMerkleTree = defaultMerkleTree;
|
7957
8096
|
exports.utils = utils;
|