@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
package/dist/index.esm.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import { Contract, ZeroAddress, AbiCoder, TypedDataEncoder, keccak256, solidityPackedKeccak256, ethers, ZeroHash, MaxUint256 } from 'ethers';
|
2
|
-
import { HypercertExchangeAbi, TransferManagerAbi, OrderValidatorV2AAbi, deployments } from '@hypercerts-org/contracts';
|
2
|
+
import { HypercertExchangeAbi, TransferManagerAbi, OrderValidatorV2AAbi, deployments, asDeployedChain as asDeployedChain$2 } from '@hypercerts-org/contracts';
|
3
3
|
import { MerkleTree } from 'merkletreejs';
|
4
4
|
import { keccak256 as keccak256$1 } from 'js-sha3';
|
5
5
|
import { createClient } from '@supabase/supabase-js';
|
6
|
-
import {
|
6
|
+
import { parseClaimOrFractionId, CONSTANTS } from '@hypercerts-org/sdk';
|
7
7
|
|
8
8
|
var abiIERC721 = [
|
9
9
|
{
|
@@ -686,7 +686,11 @@ var strategies = /*#__PURE__*/Object.freeze({
|
|
686
686
|
var ChainId;
|
687
687
|
(function (ChainId) {
|
688
688
|
ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA";
|
689
|
+
ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA";
|
689
690
|
ChainId[ChainId["HARDHAT"] = 31337] = "HARDHAT";
|
691
|
+
ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM";
|
692
|
+
ChainId[ChainId["CELO"] = 42220] = "CELO";
|
693
|
+
ChainId[ChainId["BASE"] = 8453] = "BASE";
|
690
694
|
})(ChainId || (ChainId = {}));
|
691
695
|
/** List of collection types supported by the protocol */
|
692
696
|
var CollectionType;
|
@@ -1095,26 +1099,119 @@ const sepoliaAddresses = {
|
|
1095
1099
|
EXCHANGE_V2: deployments[11155111].HypercertExchange,
|
1096
1100
|
TRANSFER_MANAGER_V2: deployments[11155111].TransferManager,
|
1097
1101
|
ORDER_VALIDATOR_V2: deployments[11155111].OrderValidatorV2A,
|
1098
|
-
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1099
1102
|
MINTER: deployments[11155111].HypercertMinterUUPS,
|
1100
1103
|
};
|
1104
|
+
const baseSepoliaAddresses = {
|
1105
|
+
EXCHANGE_V2: deployments[84532].HypercertExchange,
|
1106
|
+
TRANSFER_MANAGER_V2: deployments[84532].TransferManager,
|
1107
|
+
ORDER_VALIDATOR_V2: deployments[84532].OrderValidatorV2A,
|
1108
|
+
MINTER: deployments[84532].HypercertMinterUUPS,
|
1109
|
+
};
|
1110
|
+
const optimismAddresses = {
|
1111
|
+
EXCHANGE_V2: deployments[10].HypercertExchange,
|
1112
|
+
TRANSFER_MANAGER_V2: deployments[10].TransferManager,
|
1113
|
+
ORDER_VALIDATOR_V2: deployments[10].OrderValidatorV2A,
|
1114
|
+
MINTER: deployments[10].HypercertMinterUUPS,
|
1115
|
+
};
|
1116
|
+
const celoAddresses = {
|
1117
|
+
EXCHANGE_V2: deployments[42220].HypercertExchange,
|
1118
|
+
TRANSFER_MANAGER_V2: deployments[42220].TransferManager,
|
1119
|
+
ORDER_VALIDATOR_V2: deployments[42220].OrderValidatorV2A,
|
1120
|
+
MINTER: deployments[42220].HypercertMinterUUPS,
|
1121
|
+
};
|
1122
|
+
const baseAddresses = {
|
1123
|
+
EXCHANGE_V2: deployments[8453].HypercertExchange,
|
1124
|
+
TRANSFER_MANAGER_V2: deployments[8453].TransferManager,
|
1125
|
+
ORDER_VALIDATOR_V2: deployments[8453].OrderValidatorV2A,
|
1126
|
+
MINTER: deployments[8453].HypercertMinterUUPS,
|
1127
|
+
};
|
1101
1128
|
/**
|
1102
1129
|
* List of useful contract addresses
|
1103
1130
|
*/
|
1104
1131
|
const addressesByNetwork = {
|
1132
|
+
// Testnets
|
1105
1133
|
[ChainId.SEPOLIA]: sepoliaAddresses,
|
1106
1134
|
[ChainId.HARDHAT]: sepoliaAddresses,
|
1135
|
+
[ChainId.BASE_SEPOLIA]: baseSepoliaAddresses,
|
1136
|
+
// Production nets
|
1137
|
+
[ChainId.OPTIMISM]: optimismAddresses,
|
1138
|
+
[ChainId.CELO]: celoAddresses,
|
1139
|
+
[ChainId.BASE]: baseAddresses,
|
1140
|
+
};
|
1141
|
+
|
1142
|
+
const currencyAddressesPerChain = {
|
1143
|
+
[ChainId.SEPOLIA]: {
|
1144
|
+
ETH: ZeroAddress,
|
1145
|
+
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1146
|
+
DAI: "0x68194a729C2450ad26072b3D33ADaCbcef39D574",
|
1147
|
+
USDC: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
1148
|
+
},
|
1149
|
+
[ChainId.HARDHAT]: {
|
1150
|
+
ETH: ZeroAddress,
|
1151
|
+
WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
|
1152
|
+
DAI: "0x68194a729C2450ad26072b3D33ADaCbcef39D574",
|
1153
|
+
USDC: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
1154
|
+
},
|
1155
|
+
[ChainId.BASE_SEPOLIA]: {
|
1156
|
+
ETH: ZeroAddress,
|
1157
|
+
WETH: "0x1BDD24840e119DC2602dCC587Dd182812427A5Cc",
|
1158
|
+
DAI: "0xbEC8ab89b34835F6b99fFc29c088426E8e708ceA",
|
1159
|
+
USDC: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
1160
|
+
},
|
1161
|
+
[ChainId.OPTIMISM]: {
|
1162
|
+
ETH: ZeroAddress,
|
1163
|
+
WETH: "0x4200000000000000000000000000000000000006",
|
1164
|
+
DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",
|
1165
|
+
USDC: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
1166
|
+
},
|
1167
|
+
[ChainId.CELO]: {
|
1168
|
+
ETH: ZeroAddress,
|
1169
|
+
WETH: "0x66803fb87abd4aac3cbb3fad7c3aa01f6f3fb207",
|
1170
|
+
DAI: "0xE4fE50cdD716522A56204352f00AA110F731932d",
|
1171
|
+
USDC: "0xef4229c8c3250C675F21BCefa42f58EfbfF6002a",
|
1172
|
+
},
|
1173
|
+
[ChainId.BASE]: {
|
1174
|
+
ETH: ZeroAddress,
|
1175
|
+
WETH: "0x4200000000000000000000000000000000000006",
|
1176
|
+
DAI: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb",
|
1177
|
+
USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
1178
|
+
},
|
1179
|
+
};
|
1180
|
+
const getCurrencies = (chainId) => {
|
1181
|
+
const currenciesForChain = currencyAddressesPerChain[chainId];
|
1182
|
+
return {
|
1183
|
+
ETH: {
|
1184
|
+
symbol: "ETH",
|
1185
|
+
address: currenciesForChain.ETH,
|
1186
|
+
decimals: 18,
|
1187
|
+
},
|
1188
|
+
WETH: {
|
1189
|
+
symbol: "WETH",
|
1190
|
+
address: currenciesForChain.WETH,
|
1191
|
+
decimals: 18,
|
1192
|
+
},
|
1193
|
+
DAI: {
|
1194
|
+
symbol: "DAI",
|
1195
|
+
address: currenciesForChain.DAI,
|
1196
|
+
decimals: 18,
|
1197
|
+
},
|
1198
|
+
USDC: {
|
1199
|
+
symbol: "USDC",
|
1200
|
+
address: currenciesForChain.USDC,
|
1201
|
+
decimals: 6,
|
1202
|
+
},
|
1203
|
+
};
|
1204
|
+
};
|
1205
|
+
const currenciesByNetwork = {
|
1206
|
+
[ChainId.SEPOLIA]: getCurrencies(ChainId.SEPOLIA),
|
1207
|
+
[ChainId.HARDHAT]: getCurrencies(ChainId.HARDHAT),
|
1208
|
+
[ChainId.BASE_SEPOLIA]: getCurrencies(ChainId.BASE_SEPOLIA),
|
1209
|
+
[ChainId.OPTIMISM]: getCurrencies(ChainId.OPTIMISM),
|
1210
|
+
[ChainId.CELO]: getCurrencies(ChainId.CELO),
|
1211
|
+
[ChainId.BASE]: getCurrencies(ChainId.BASE),
|
1107
1212
|
};
|
1108
1213
|
|
1109
1214
|
const chainInfo = {
|
1110
|
-
// [ChainId.GOERLI]: {
|
1111
|
-
// label: "Goerli",
|
1112
|
-
// appUrl: "https://goerli.looksrare.org",
|
1113
|
-
// explorer: "https://goerli.etherscan.io",
|
1114
|
-
// rpcUrl: "https://eth-goerli.g.alchemy.com/v2",
|
1115
|
-
// baseApiUrl: "https://graphql-goerli.looksrare.org",
|
1116
|
-
// osApiUrl: "https://testnets-api.opensea.io",
|
1117
|
-
// },
|
1118
1215
|
[ChainId.SEPOLIA]: {
|
1119
1216
|
label: "Sepolia",
|
1120
1217
|
appUrl: "https://sepolia.looksrare.org",
|
@@ -1131,6 +1228,38 @@ const chainInfo = {
|
|
1131
1228
|
baseApiUrl: "http://localhost:4000",
|
1132
1229
|
osApiUrl: "https://testnets-api.opensea.io",
|
1133
1230
|
},
|
1231
|
+
[ChainId.BASE_SEPOLIA]: {
|
1232
|
+
label: "Base Sepolia",
|
1233
|
+
appUrl: "https://sepolia.base.looksrare.org",
|
1234
|
+
explorer: "https://sepolia.basescan.org",
|
1235
|
+
rpcUrl: "https://sepolia.base.org",
|
1236
|
+
baseApiUrl: "https://api-sepolia.basescan.org/api",
|
1237
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1238
|
+
},
|
1239
|
+
[ChainId.OPTIMISM]: {
|
1240
|
+
label: "Optimism",
|
1241
|
+
appUrl: "https://optimism.looksrare.org",
|
1242
|
+
explorer: "https://optimism.etherscan.io",
|
1243
|
+
rpcUrl: "https://optimism.g.alchemy.com/v2",
|
1244
|
+
baseApiUrl: "https://graphql-optimism.looksrare.org",
|
1245
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1246
|
+
},
|
1247
|
+
[ChainId.CELO]: {
|
1248
|
+
label: "Celo",
|
1249
|
+
appUrl: "https://celo.looksrare.org",
|
1250
|
+
explorer: "https://explorer.celo.org",
|
1251
|
+
rpcUrl: "https://forno.celo.org",
|
1252
|
+
baseApiUrl: "https://api.celo.looksrare.org",
|
1253
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1254
|
+
},
|
1255
|
+
[ChainId.BASE]: {
|
1256
|
+
label: "Base",
|
1257
|
+
appUrl: "https://base.looksrare.org",
|
1258
|
+
explorer: "https://base.etherscan.io",
|
1259
|
+
rpcUrl: "https://eth-base.g.alchemy.com/v2",
|
1260
|
+
baseApiUrl: "https://graphql-base.looksrare.org",
|
1261
|
+
osApiUrl: "https://testnets-api.opensea.io",
|
1262
|
+
},
|
1134
1263
|
};
|
1135
1264
|
|
1136
1265
|
/** Maximum amount of orders in a merkle tree
|
@@ -5512,9 +5641,69 @@ function print(e) {
|
|
5512
5641
|
return m$1[e.kind] ? m$1[e.kind](e) : "";
|
5513
5642
|
}
|
5514
5643
|
|
5644
|
+
function initGraphQLTada() {
|
5645
|
+
function graphql(e, i) {
|
5646
|
+
var a = parse(e).definitions;
|
5647
|
+
var t = new Set;
|
5648
|
+
for (var s of i || []) {
|
5649
|
+
for (var d of s.definitions) {
|
5650
|
+
if (d.kind === e$2.FRAGMENT_DEFINITION && !t.has(d)) {
|
5651
|
+
a.push(d);
|
5652
|
+
t.add(d);
|
5653
|
+
}
|
5654
|
+
}
|
5655
|
+
}
|
5656
|
+
if (a[0].kind === e$2.FRAGMENT_DEFINITION && a[0].directives) {
|
5657
|
+
a[0].directives = a[0].directives.filter((n => "_unmask" !== n.name.value));
|
5658
|
+
}
|
5659
|
+
return {
|
5660
|
+
kind: e$2.DOCUMENT,
|
5661
|
+
definitions: a
|
5662
|
+
};
|
5663
|
+
}
|
5664
|
+
graphql.scalar = function scalar(n, r) {
|
5665
|
+
return r;
|
5666
|
+
};
|
5667
|
+
graphql.persisted = function persisted(r, e) {
|
5668
|
+
return {
|
5669
|
+
kind: e$2.DOCUMENT,
|
5670
|
+
definitions: e ? e.definitions : [],
|
5671
|
+
documentId: r
|
5672
|
+
};
|
5673
|
+
};
|
5674
|
+
return graphql;
|
5675
|
+
}
|
5676
|
+
|
5677
|
+
var e$1 = initGraphQLTada();
|
5678
|
+
|
5679
|
+
const fractionsByIdQuery = e$1(`
|
5680
|
+
query fractionsById($fraction_id: String!) {
|
5681
|
+
fractions(where: { hypercert_id: { eq: $fraction_id } }) {
|
5682
|
+
data {
|
5683
|
+
creation_block_timestamp
|
5684
|
+
fraction_id
|
5685
|
+
last_update_block_timestamp
|
5686
|
+
owner_address
|
5687
|
+
units
|
5688
|
+
}
|
5689
|
+
}
|
5690
|
+
}
|
5691
|
+
`);
|
5692
|
+
const getFractionsById = async (fractionId, client) => {
|
5693
|
+
const { data, error } = await client
|
5694
|
+
.query(fractionsByIdQuery, {
|
5695
|
+
fraction_id: fractionId,
|
5696
|
+
})
|
5697
|
+
.toPromise();
|
5698
|
+
if (error) {
|
5699
|
+
throw new Error(error.message);
|
5700
|
+
}
|
5701
|
+
return data?.fractions.data;
|
5702
|
+
};
|
5703
|
+
|
5515
5704
|
var teardownPlaceholder = () => {};
|
5516
5705
|
|
5517
|
-
var e
|
5706
|
+
var e = teardownPlaceholder;
|
5518
5707
|
|
5519
5708
|
function start(e) {
|
5520
5709
|
return {
|
@@ -5536,7 +5725,7 @@ var identity = e => e;
|
|
5536
5725
|
|
5537
5726
|
function filter(r) {
|
5538
5727
|
return t => i => {
|
5539
|
-
var a = e
|
5728
|
+
var a = e;
|
5540
5729
|
t((e => {
|
5541
5730
|
if (0 === e) {
|
5542
5731
|
i(0);
|
@@ -5565,7 +5754,7 @@ function map(e) {
|
|
5565
5754
|
function mergeMap(r) {
|
5566
5755
|
return t => i => {
|
5567
5756
|
var a = [];
|
5568
|
-
var f = e
|
5757
|
+
var f = e;
|
5569
5758
|
var n = !1;
|
5570
5759
|
var s = !1;
|
5571
5760
|
t((t => {
|
@@ -5579,7 +5768,7 @@ function mergeMap(r) {
|
|
5579
5768
|
} else {
|
5580
5769
|
n = !1;
|
5581
5770
|
!function applyInnerSource(r) {
|
5582
|
-
var t = e
|
5771
|
+
var t = e;
|
5583
5772
|
r((e => {
|
5584
5773
|
if (0 === e) {
|
5585
5774
|
if (a.length) {
|
@@ -5708,7 +5897,7 @@ function onStart(e) {
|
|
5708
5897
|
|
5709
5898
|
function share(r) {
|
5710
5899
|
var t = [];
|
5711
|
-
var i = e
|
5900
|
+
var i = e;
|
5712
5901
|
var a = !1;
|
5713
5902
|
return e => {
|
5714
5903
|
t.push(e);
|
@@ -5748,8 +5937,8 @@ function share(r) {
|
|
5748
5937
|
|
5749
5938
|
function switchMap(r) {
|
5750
5939
|
return t => i => {
|
5751
|
-
var a = e
|
5752
|
-
var f = e
|
5940
|
+
var a = e;
|
5941
|
+
var f = e;
|
5753
5942
|
var n = !1;
|
5754
5943
|
var s = !1;
|
5755
5944
|
var l = !1;
|
@@ -5765,7 +5954,7 @@ function switchMap(r) {
|
|
5765
5954
|
} else {
|
5766
5955
|
if (l) {
|
5767
5956
|
f(1);
|
5768
|
-
f = e
|
5957
|
+
f = e;
|
5769
5958
|
}
|
5770
5959
|
if (!n) {
|
5771
5960
|
n = !0;
|
@@ -5825,7 +6014,7 @@ function switchMap(r) {
|
|
5825
6014
|
|
5826
6015
|
function take(r) {
|
5827
6016
|
return t => i => {
|
5828
|
-
var a = e
|
6017
|
+
var a = e;
|
5829
6018
|
var f = !1;
|
5830
6019
|
var n = 0;
|
5831
6020
|
t((e => {
|
@@ -5864,8 +6053,8 @@ function take(r) {
|
|
5864
6053
|
|
5865
6054
|
function takeUntil(r) {
|
5866
6055
|
return t => i => {
|
5867
|
-
var a = e
|
5868
|
-
var f = e
|
6056
|
+
var a = e;
|
6057
|
+
var f = e;
|
5869
6058
|
var n = !1;
|
5870
6059
|
t((e => {
|
5871
6060
|
if (n) ; else if (0 === e) {
|
@@ -5902,7 +6091,7 @@ function takeUntil(r) {
|
|
5902
6091
|
|
5903
6092
|
function takeWhile(r, t) {
|
5904
6093
|
return i => a => {
|
5905
|
-
var f = e
|
6094
|
+
var f = e;
|
5906
6095
|
var n = !1;
|
5907
6096
|
i((e => {
|
5908
6097
|
if (n) ; else if (0 === e) {
|
@@ -6086,7 +6275,7 @@ function makeSubject() {
|
|
6086
6275
|
|
6087
6276
|
function subscribe(r) {
|
6088
6277
|
return t => {
|
6089
|
-
var i = e
|
6278
|
+
var i = e;
|
6090
6279
|
var a = !1;
|
6091
6280
|
t((e => {
|
6092
6281
|
if (0 === e) {
|
@@ -6115,7 +6304,7 @@ function publish(e) {
|
|
6115
6304
|
|
6116
6305
|
function toPromise(r) {
|
6117
6306
|
return new Promise((t => {
|
6118
|
-
var i = e
|
6307
|
+
var i = e;
|
6119
6308
|
var a;
|
6120
6309
|
r((e => {
|
6121
6310
|
if (0 === e) {
|
@@ -7238,76 +7427,12 @@ var C = function Client(e) {
|
|
7238
7427
|
return p;
|
7239
7428
|
};
|
7240
7429
|
|
7241
|
-
|
7242
|
-
|
7243
|
-
|
7244
|
-
|
7245
|
-
for (var s of i || []) {
|
7246
|
-
for (var d of s.definitions) {
|
7247
|
-
if (d.kind === e$2.FRAGMENT_DEFINITION && !t.has(d)) {
|
7248
|
-
a.push(d);
|
7249
|
-
t.add(d);
|
7250
|
-
}
|
7251
|
-
}
|
7252
|
-
}
|
7253
|
-
if (a[0].kind === e$2.FRAGMENT_DEFINITION && a[0].directives) {
|
7254
|
-
a[0].directives = a[0].directives.filter((n => "_unmask" !== n.name.value));
|
7255
|
-
}
|
7256
|
-
return {
|
7257
|
-
kind: e$2.DOCUMENT,
|
7258
|
-
definitions: a
|
7259
|
-
};
|
7260
|
-
}
|
7261
|
-
graphql.scalar = function scalar(n, r) {
|
7262
|
-
return r;
|
7263
|
-
};
|
7264
|
-
graphql.persisted = function persisted(r, e) {
|
7265
|
-
return {
|
7266
|
-
kind: e$2.DOCUMENT,
|
7267
|
-
definitions: e ? e.definitions : [],
|
7268
|
-
documentId: r
|
7269
|
-
};
|
7270
|
-
};
|
7271
|
-
return graphql;
|
7272
|
-
}
|
7273
|
-
|
7274
|
-
var e = initGraphQLTada();
|
7275
|
-
|
7276
|
-
const urqlClient = new C({
|
7277
|
-
url: CONSTANTS.ENDPOINTS["test"],
|
7278
|
-
exchanges: [cacheExchange, fetchExchange],
|
7279
|
-
});
|
7280
|
-
const fractionsByIdQuery = e(`
|
7281
|
-
query fractionsById($fraction_id: String!) {
|
7282
|
-
fractions(where: { hypercert_id: { eq: $fraction_id } }) {
|
7283
|
-
data {
|
7284
|
-
creation_block_timestamp
|
7285
|
-
fraction_id
|
7286
|
-
last_update_block_timestamp
|
7287
|
-
owner_address
|
7288
|
-
units
|
7289
|
-
}
|
7290
|
-
}
|
7291
|
-
}
|
7292
|
-
`);
|
7293
|
-
const getFractionsById = async (fractionId) => {
|
7294
|
-
const { data, error } = await urqlClient
|
7295
|
-
.query(fractionsByIdQuery, {
|
7296
|
-
fraction_id: fractionId,
|
7297
|
-
})
|
7298
|
-
.toPromise();
|
7299
|
-
if (error) {
|
7300
|
-
throw new Error(error.message);
|
7301
|
-
}
|
7302
|
-
return data?.fractions.data;
|
7303
|
-
};
|
7304
|
-
|
7305
|
-
const HYPERCERTS_MARKETPLACE_API_URL = process.env.HYPERCERTS_MARKETPLACE_API_URL;
|
7306
|
-
const SUPABASE_HYPERCERTS_URL = process.env.SUPABASE_HYPERCERTS_URL;
|
7307
|
-
const SUPABASE_HYPERCERTS_ANON_KEY = process.env.SUPABASE_HYPERCERTS_ANON_KEY;
|
7308
|
-
const supabaseHypercerts = createClient(SUPABASE_HYPERCERTS_URL, SUPABASE_HYPERCERTS_ANON_KEY);
|
7430
|
+
const SUPABASE_HYPERCERTS_DATA_STAGING_URL = "https://zgvoyckkistexkfdmjqc.supabase.co";
|
7431
|
+
const SUPABASE_HYPERCERTS_DATA_STAGING_ANON_KEY_STAGING = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inpndm95Y2traXN0ZXhrZmRtanFjIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTc4ODM1MjAsImV4cCI6MjAxMzQ1OTUyMH0.6FWDhwP3ZOM1O3ObvyRKtOsvwhJjbrZL2B1N-0MSpFg";
|
7432
|
+
const SUPABASE_HYPERCERTS_DATA_PRODUCTION_URL = "https://ueebbafxdbglaqtyslwv.supabase.co";
|
7433
|
+
const SUPABASE_HYPERCERTS_DATA_PRODUCTION_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVlZWJiYWZ4ZGJnbGFxdHlzbHd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTc1NTA1MzUsImV4cCI6MjAxMzEyNjUzNX0.mhClRFe8QL6IQLMvTXjdprR6agr_OXF9g2CUJBww4mE";
|
7309
7434
|
class ApiClient {
|
7310
|
-
constructor(baseUrl) {
|
7435
|
+
constructor(indexerEnvironment, baseUrl) {
|
7311
7436
|
this.baseUrl = baseUrl;
|
7312
7437
|
/**
|
7313
7438
|
* Fetches order nonce from api
|
@@ -7362,7 +7487,7 @@ class ApiClient {
|
|
7362
7487
|
* @param strategy strategy for the order
|
7363
7488
|
*/
|
7364
7489
|
this.fetchOrders = async ({ signer, claimTokenIds, chainId, strategy }) => {
|
7365
|
-
let baseQuery =
|
7490
|
+
let baseQuery = this._supabaseHypercerts.from("marketplace_orders").select("*");
|
7366
7491
|
if (signer) {
|
7367
7492
|
baseQuery.eq("signer", signer);
|
7368
7493
|
}
|
@@ -7383,9 +7508,9 @@ class ApiClient {
|
|
7383
7508
|
* @param chainId Chain ID
|
7384
7509
|
*/
|
7385
7510
|
this.fetchOrdersByHypercertId = async ({ hypercertId }) => {
|
7386
|
-
const fractions = await getFractionsById(hypercertId);
|
7511
|
+
const fractions = await getFractionsById(hypercertId, this._urqlClient);
|
7387
7512
|
const tokenIds = fractions?.flatMap(() => fractions.map((fraction) => parseClaimOrFractionId(fraction.fraction_id).id)) || [];
|
7388
|
-
const result = await
|
7513
|
+
const result = await this._supabaseHypercerts.from("marketplace_orders").select("*").overlaps("itemIds", tokenIds);
|
7389
7514
|
return result;
|
7390
7515
|
};
|
7391
7516
|
this.handleResponse = async (res) => {
|
@@ -7395,11 +7520,18 @@ class ApiClient {
|
|
7395
7520
|
}
|
7396
7521
|
return (await res.json());
|
7397
7522
|
};
|
7398
|
-
const url = baseUrl ||
|
7523
|
+
const url = baseUrl || `${CONSTANTS.ENDPOINTS[indexerEnvironment]}/v1`;
|
7399
7524
|
if (!url) {
|
7400
7525
|
throw new Error("No API URL provided");
|
7401
7526
|
}
|
7402
7527
|
this._baseUrl = url;
|
7528
|
+
this._urqlClient = new C({
|
7529
|
+
url: `${CONSTANTS.ENDPOINTS[indexerEnvironment]}/v1/graphql`,
|
7530
|
+
exchanges: [cacheExchange, fetchExchange],
|
7531
|
+
});
|
7532
|
+
this._supabaseHypercerts = createClient(indexerEnvironment === "test" ? SUPABASE_HYPERCERTS_DATA_STAGING_URL : SUPABASE_HYPERCERTS_DATA_PRODUCTION_URL, indexerEnvironment === "test"
|
7533
|
+
? SUPABASE_HYPERCERTS_DATA_STAGING_ANON_KEY_STAGING
|
7534
|
+
: SUPABASE_HYPERCERTS_DATA_PRODUCTION_ANON_KEY);
|
7403
7535
|
}
|
7404
7536
|
}
|
7405
7537
|
|
@@ -7416,14 +7548,20 @@ class HypercertExchangeClient {
|
|
7416
7548
|
* @param overrides Override contract addresses or api endpoint used
|
7417
7549
|
*/
|
7418
7550
|
constructor(chainId, provider, signer, overrides) {
|
7551
|
+
const deployment = CONSTANTS.DEPLOYMENTS[asDeployedChain$2(chainId)];
|
7552
|
+
if (!deployment) {
|
7553
|
+
throw new Error("Chain not supported");
|
7554
|
+
}
|
7555
|
+
const indexerEnvironment = deployment.isTestnet ? "test" : "production";
|
7419
7556
|
this.chainId = chainId;
|
7420
7557
|
this.addresses = overrides?.addresses ?? addressesByNetwork[this.chainId];
|
7558
|
+
this.currencies = overrides?.currencies ?? currenciesByNetwork[this.chainId];
|
7421
7559
|
this.signer = signer;
|
7422
7560
|
this.provider = provider;
|
7423
|
-
this.api = new ApiClient(overrides?.apiEndpoint);
|
7561
|
+
this.api = new ApiClient(indexerEnvironment, overrides?.apiEndpoint);
|
7424
7562
|
}
|
7425
7563
|
/**
|
7426
|
-
* Return the signer
|
7564
|
+
* Return the signer if it's set, throw an exception otherwise
|
7427
7565
|
* @returns Signer
|
7428
7566
|
*/
|
7429
7567
|
getSigner() {
|
@@ -7498,7 +7636,7 @@ class HypercertExchangeClient {
|
|
7498
7636
|
* @param CreateMakerInput
|
7499
7637
|
* @returns the maker object, isCurrencyApproved, and isBalanceSufficient
|
7500
7638
|
*/
|
7501
|
-
async createMakerBid({ collection, strategyId, collectionType, subsetNonce, orderNonce, endTime, price, itemIds, amounts = [1], currency = this.
|
7639
|
+
async createMakerBid({ collection, strategyId, collectionType, subsetNonce, orderNonce, endTime, price, itemIds, amounts = [1], currency = this.currencies.WETH.address, startTime = Math.floor(Date.now() / 1000), additionalParameters = [], }) {
|
7502
7640
|
const signer = this.getSigner();
|
7503
7641
|
if (!this.isTimestampValid(startTime) || !this.isTimestampValid(endTime)) {
|
7504
7642
|
throw new ErrorTimestamp();
|
@@ -7805,7 +7943,7 @@ class HypercertExchangeClient {
|
|
7805
7943
|
* @param currency Currency used to buy the fractions (default to WETH)
|
7806
7944
|
* @param additionalParameters Additional parameters used to support complex orders
|
7807
7945
|
*/
|
7808
|
-
async createDirectFractionsSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.
|
7946
|
+
async createDirectFractionsSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.currencies.WETH.address, additionalParameters = [], }) {
|
7809
7947
|
const address = await this.signer?.getAddress();
|
7810
7948
|
if (!address) {
|
7811
7949
|
throw new Error("No signer address could be determined");
|
@@ -7846,7 +7984,7 @@ class HypercertExchangeClient {
|
|
7846
7984
|
* @param sellLeftoverFraction Whether or not the seller wants to sell the leftover units
|
7847
7985
|
* @param root Merkle tree root (optional)
|
7848
7986
|
*/
|
7849
|
-
async createFractionalSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.
|
7987
|
+
async createFractionalSaleMakerAsk({ itemIds, price, startTime, endTime, currency = this.currencies.WETH.address, maxUnitAmount, minUnitAmount, minUnitsToKeep, sellLeftoverFraction, root, }) {
|
7850
7988
|
const address = await this.signer?.getAddress();
|
7851
7989
|
if (!address) {
|
7852
7990
|
throw new Error("No signer address could be determined");
|
@@ -7931,4 +8069,4 @@ const utils = {
|
|
7931
8069
|
...asDeployedChain$1,
|
7932
8070
|
};
|
7933
8071
|
|
7934
|
-
export { ApiClient, ChainId, CollectionType, Eip712MakerMerkleTree, Eip712MerkleTree, ErrorItemId, ErrorMerkleTreeDepth, ErrorQuoteType, ErrorSigner, ErrorStrategyType, ErrorTimestamp, HypercertExchangeClient, IERC1155 as IERC1155Abi, abiIERC20 as IERC20Abi, abiIERC721 as IERC721Abi, LooksRareProtocol as LooksRareProtocolAbi, MAX_ORDERS_PER_TREE, MerkleTreeNodePosition, OrderValidatorCode, OrderValidatorV2A as OrderValidatorV2AAbi, QuoteType, StrategyType, TransferManager as TransferManagerAbi, WETH as WETHAbi, addressesByNetwork, chainInfo, defaultMerkleTree, utils };
|
8072
|
+
export { ApiClient, ChainId, CollectionType, Eip712MakerMerkleTree, Eip712MerkleTree, ErrorItemId, ErrorMerkleTreeDepth, ErrorQuoteType, ErrorSigner, ErrorStrategyType, ErrorTimestamp, HypercertExchangeClient, IERC1155 as IERC1155Abi, abiIERC20 as IERC20Abi, abiIERC721 as IERC721Abi, LooksRareProtocol as LooksRareProtocolAbi, MAX_ORDERS_PER_TREE, MerkleTreeNodePosition, OrderValidatorCode, OrderValidatorV2A as OrderValidatorV2AAbi, QuoteType, StrategyType, TransferManager as TransferManagerAbi, WETH as WETHAbi, addressesByNetwork, chainInfo, currenciesByNetwork, defaultMerkleTree, utils };
|
package/dist/types.d.ts
CHANGED
@@ -4,14 +4,30 @@ import { Eip712MakerMerkleTree } from "./utils/Eip712MakerMerkleTree";
|
|
4
4
|
export interface Addresses {
|
5
5
|
EXCHANGE_V2: `0x${string}`;
|
6
6
|
TRANSFER_MANAGER_V2: `0x${string}`;
|
7
|
-
WETH: `0x${string}`;
|
8
7
|
ORDER_VALIDATOR_V2: `0x${string}`;
|
9
8
|
MINTER: `0x${string}`;
|
10
9
|
}
|
10
|
+
/** List of supported currencies */
|
11
|
+
export interface Currencies {
|
12
|
+
ETH: Currency;
|
13
|
+
WETH: Currency;
|
14
|
+
USDC: Currency;
|
15
|
+
DAI: Currency;
|
16
|
+
}
|
17
|
+
/** Available information about a currency */
|
18
|
+
interface Currency {
|
19
|
+
symbol: string;
|
20
|
+
address: `0x${string}`;
|
21
|
+
decimals: number;
|
22
|
+
}
|
11
23
|
/** List of supported chains */
|
12
24
|
export declare enum ChainId {
|
13
25
|
SEPOLIA = 11155111,
|
14
|
-
|
26
|
+
BASE_SEPOLIA = 84532,
|
27
|
+
HARDHAT = 31337,
|
28
|
+
OPTIMISM = 10,
|
29
|
+
CELO = 42220,
|
30
|
+
BASE = 8453
|
15
31
|
}
|
16
32
|
/** ChainInfo data used to interact with HypercertExchange ecosystem */
|
17
33
|
export interface ChainInfo {
|
@@ -239,3 +255,4 @@ export declare enum OrderValidatorCode {
|
|
239
255
|
BUNDLE_ERC2981_NOT_SUPPORTED = 901,
|
240
256
|
CREATOR_FEE_TOO_HIGH = 902
|
241
257
|
}
|
258
|
+
export {};
|