@hypercerts-org/marketplace-sdk 0.0.7 → 0.0.9

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/index.cjs.js CHANGED
@@ -3,6 +3,8 @@
3
3
  var ethers = require('ethers');
4
4
  var contracts = require('@hypercerts-org/contracts');
5
5
  var merkletreejs = require('merkletreejs');
6
+ var supabaseJs = require('@supabase/supabase-js');
7
+ var sdk = require('@hypercerts-org/sdk');
6
8
  var jsSha3 = require('js-sha3');
7
9
 
8
10
  var abiIERC721 = [
@@ -1060,16 +1062,69 @@ var signMakerOrders = /*#__PURE__*/Object.freeze({
1060
1062
  signMerkleTreeOrders: signMerkleTreeOrders
1061
1063
  });
1062
1064
 
1063
- function asChainId(chainId) {
1065
+ const asDeployedChain = (chainId) => {
1064
1066
  if (!Object.values(exports.ChainId).includes(chainId)) {
1065
1067
  throw new Error(`Invalid chainId: ${chainId}`);
1066
1068
  }
1067
1069
  return chainId;
1068
- }
1070
+ };
1071
+
1072
+ var asDeployedChain$1 = /*#__PURE__*/Object.freeze({
1073
+ __proto__: null,
1074
+ asDeployedChain: asDeployedChain
1075
+ });
1076
+
1077
+ const HYPERCERTS_MARKETPLACE_API_URL = "http://localhost:3000/api";
1078
+ const SUPABASE_HYPERCERTS_URL = "https://clagjjfinooizoqdkvqc.supabase.co";
1079
+ const SUPABASE_HYPERCERTS_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNsYWdqamZpbm9vaXpvcWRrdnFjIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzY5NTAxNDAsImV4cCI6MTk5MjUyNjE0MH0.LOIW3NcYEfF7w893PS3Ne1VrntACE3OPeSRFkspvyqw";
1080
+ const supabaseHypercerts = supabaseJs.createClient(SUPABASE_HYPERCERTS_URL, SUPABASE_HYPERCERTS_ANON_KEY);
1081
+ const fetchOrderNonce = async ({ address, chainId }) => {
1082
+ return fetch(`${HYPERCERTS_MARKETPLACE_API_URL}/marketplace/order-nonce`, {
1083
+ method: "POST",
1084
+ headers: {
1085
+ "Content-Type": "application/json",
1086
+ },
1087
+ body: JSON.stringify({
1088
+ address,
1089
+ chainId,
1090
+ }),
1091
+ })
1092
+ .then((res) => res.json())
1093
+ .then((res) => res.data);
1094
+ };
1095
+ const createOrder = async ({ order, signer, signature, quoteType, chainId, }) => {
1096
+ const { globalNonce, ...orderWithoutGlobalNonce } = order;
1097
+ return fetch(`${HYPERCERTS_MARKETPLACE_API_URL}/marketplace/order`, {
1098
+ method: "POST",
1099
+ headers: {
1100
+ "Content-Type": "application/json",
1101
+ },
1102
+ body: JSON.stringify({
1103
+ ...orderWithoutGlobalNonce,
1104
+ globalNonce: globalNonce.toString(10),
1105
+ price: order.price.toString(10),
1106
+ quoteType,
1107
+ signer,
1108
+ signature,
1109
+ chainId,
1110
+ }),
1111
+ }).then((res) => res.json());
1112
+ };
1113
+ const fetchOrdersByHypercertId = async ({ hypercertId, chainId }) => {
1114
+ const hypercertsClient = new sdk.HypercertClient({
1115
+ chain: { id: chainId },
1116
+ });
1117
+ const fractions = await hypercertsClient.indexer.fractionsByClaim(hypercertId);
1118
+ const tokenIds = fractions.claimTokens.map((fraction) => fraction.tokenID);
1119
+ return supabaseHypercerts.from("marketplace-orders").select("*").containedBy("itemIds", tokenIds).throwOnError();
1120
+ };
1069
1121
 
1070
- var asChainId$1 = /*#__PURE__*/Object.freeze({
1122
+ var api = /*#__PURE__*/Object.freeze({
1071
1123
  __proto__: null,
1072
- asChainId: asChainId
1124
+ createOrder: createOrder,
1125
+ fetchOrderNonce: fetchOrderNonce,
1126
+ fetchOrdersByHypercertId: fetchOrdersByHypercertId,
1127
+ supabaseHypercerts: supabaseHypercerts
1073
1128
  });
1074
1129
 
1075
1130
  const goerliAddresses = {
@@ -1079,10 +1134,14 @@ const goerliAddresses = {
1079
1134
  ORDER_VALIDATOR_V2: contracts.deployments[5].OrderValidatorV2A,
1080
1135
  };
1081
1136
  const sepoliaAddresses = {
1082
- EXCHANGE_V2: contracts.deployments[11155111].HypercertExchange,
1083
- TRANSFER_MANAGER_V2: contracts.deployments[11155111].TransferManager,
1137
+ // EXCHANGE_V2: deployments[11155111].HypercertExchange as string,
1138
+ // EXCHANGE_V2: "0x2d7C5512bC3BBE1A12FB9EC1F8CD7Ab0C99E6de5",
1139
+ EXCHANGE_V2: "0x7d7b6011c7BaB5A850Bd44f7A5B29C3502fd6491",
1140
+ // TRANSFER_MANAGER_V2: deployments[11155111].TransferManager as string,
1141
+ TRANSFER_MANAGER_V2: "0x2aDc7d015701e347C75415477dEb0203C36E082e",
1084
1142
  WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
1085
- ORDER_VALIDATOR_V2: contracts.deployments[11155111].OrderValidatorV2A,
1143
+ // ORDER_VALIDATOR_V2: deployments[11155111].OrderValidatorV2A as string,
1144
+ ORDER_VALIDATOR_V2: "0xff9ef4786bf31158ba152638746c2a678d2c4ade",
1086
1145
  };
1087
1146
  /**
1088
1147
  * List of useful contract addresses
@@ -5195,7 +5254,8 @@ const utils = {
5195
5254
  ...encode,
5196
5255
  ...signMakerOrders,
5197
5256
  ...eip712,
5198
- ...asChainId$1,
5257
+ ...asDeployedChain$1,
5258
+ api,
5199
5259
  };
5200
5260
 
5201
5261
  exports.Eip712MakerMerkleTree = Eip712MakerMerkleTree;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ import * as api from "./utils/api";
1
2
  declare const utils: {
2
- asChainId(chainId: number): import("./types").ChainId;
3
+ api: typeof api;
4
+ asDeployedChain: (chainId: number) => import("./types").ChainId;
3
5
  MAKER_HASH: "0x003c1bce41a2de73dfe64d6eeb2b3d7f15f1c0c382d9d963c2c6daeb75f0e539";
4
6
  hashingMakerTypes: string[];
5
7
  makerTypes: import("./types").EIP712TypedData;
package/dist/index.esm.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { Contract, ZeroAddress, AbiCoder, TypedDataEncoder, keccak256, solidityPackedKeccak256, ethers, ZeroHash, MaxUint256 } from 'ethers';
2
2
  import { HypercertExchangeAbi, TransferManagerAbi, OrderValidatorV2A as OrderValidatorV2A$1, deployments } from '@hypercerts-org/contracts';
3
3
  import { MerkleTree } from 'merkletreejs';
4
+ import { createClient } from '@supabase/supabase-js';
5
+ import { HypercertClient } from '@hypercerts-org/sdk';
4
6
  import { keccak256 as keccak256$1 } from 'js-sha3';
5
7
 
6
8
  var abiIERC721 = [
@@ -1058,16 +1060,69 @@ var signMakerOrders = /*#__PURE__*/Object.freeze({
1058
1060
  signMerkleTreeOrders: signMerkleTreeOrders
1059
1061
  });
1060
1062
 
1061
- function asChainId(chainId) {
1063
+ const asDeployedChain = (chainId) => {
1062
1064
  if (!Object.values(ChainId).includes(chainId)) {
1063
1065
  throw new Error(`Invalid chainId: ${chainId}`);
1064
1066
  }
1065
1067
  return chainId;
1066
- }
1068
+ };
1069
+
1070
+ var asDeployedChain$1 = /*#__PURE__*/Object.freeze({
1071
+ __proto__: null,
1072
+ asDeployedChain: asDeployedChain
1073
+ });
1074
+
1075
+ const HYPERCERTS_MARKETPLACE_API_URL = "http://localhost:3000/api";
1076
+ const SUPABASE_HYPERCERTS_URL = "https://clagjjfinooizoqdkvqc.supabase.co";
1077
+ const SUPABASE_HYPERCERTS_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNsYWdqamZpbm9vaXpvcWRrdnFjIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzY5NTAxNDAsImV4cCI6MTk5MjUyNjE0MH0.LOIW3NcYEfF7w893PS3Ne1VrntACE3OPeSRFkspvyqw";
1078
+ const supabaseHypercerts = createClient(SUPABASE_HYPERCERTS_URL, SUPABASE_HYPERCERTS_ANON_KEY);
1079
+ const fetchOrderNonce = async ({ address, chainId }) => {
1080
+ return fetch(`${HYPERCERTS_MARKETPLACE_API_URL}/marketplace/order-nonce`, {
1081
+ method: "POST",
1082
+ headers: {
1083
+ "Content-Type": "application/json",
1084
+ },
1085
+ body: JSON.stringify({
1086
+ address,
1087
+ chainId,
1088
+ }),
1089
+ })
1090
+ .then((res) => res.json())
1091
+ .then((res) => res.data);
1092
+ };
1093
+ const createOrder = async ({ order, signer, signature, quoteType, chainId, }) => {
1094
+ const { globalNonce, ...orderWithoutGlobalNonce } = order;
1095
+ return fetch(`${HYPERCERTS_MARKETPLACE_API_URL}/marketplace/order`, {
1096
+ method: "POST",
1097
+ headers: {
1098
+ "Content-Type": "application/json",
1099
+ },
1100
+ body: JSON.stringify({
1101
+ ...orderWithoutGlobalNonce,
1102
+ globalNonce: globalNonce.toString(10),
1103
+ price: order.price.toString(10),
1104
+ quoteType,
1105
+ signer,
1106
+ signature,
1107
+ chainId,
1108
+ }),
1109
+ }).then((res) => res.json());
1110
+ };
1111
+ const fetchOrdersByHypercertId = async ({ hypercertId, chainId }) => {
1112
+ const hypercertsClient = new HypercertClient({
1113
+ chain: { id: chainId },
1114
+ });
1115
+ const fractions = await hypercertsClient.indexer.fractionsByClaim(hypercertId);
1116
+ const tokenIds = fractions.claimTokens.map((fraction) => fraction.tokenID);
1117
+ return supabaseHypercerts.from("marketplace-orders").select("*").containedBy("itemIds", tokenIds).throwOnError();
1118
+ };
1067
1119
 
1068
- var asChainId$1 = /*#__PURE__*/Object.freeze({
1120
+ var api = /*#__PURE__*/Object.freeze({
1069
1121
  __proto__: null,
1070
- asChainId: asChainId
1122
+ createOrder: createOrder,
1123
+ fetchOrderNonce: fetchOrderNonce,
1124
+ fetchOrdersByHypercertId: fetchOrdersByHypercertId,
1125
+ supabaseHypercerts: supabaseHypercerts
1071
1126
  });
1072
1127
 
1073
1128
  const goerliAddresses = {
@@ -1077,10 +1132,14 @@ const goerliAddresses = {
1077
1132
  ORDER_VALIDATOR_V2: deployments[5].OrderValidatorV2A,
1078
1133
  };
1079
1134
  const sepoliaAddresses = {
1080
- EXCHANGE_V2: deployments[11155111].HypercertExchange,
1081
- TRANSFER_MANAGER_V2: deployments[11155111].TransferManager,
1135
+ // EXCHANGE_V2: deployments[11155111].HypercertExchange as string,
1136
+ // EXCHANGE_V2: "0x2d7C5512bC3BBE1A12FB9EC1F8CD7Ab0C99E6de5",
1137
+ EXCHANGE_V2: "0x7d7b6011c7BaB5A850Bd44f7A5B29C3502fd6491",
1138
+ // TRANSFER_MANAGER_V2: deployments[11155111].TransferManager as string,
1139
+ TRANSFER_MANAGER_V2: "0x2aDc7d015701e347C75415477dEb0203C36E082e",
1082
1140
  WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",
1083
- ORDER_VALIDATOR_V2: deployments[11155111].OrderValidatorV2A,
1141
+ // ORDER_VALIDATOR_V2: deployments[11155111].OrderValidatorV2A as string,
1142
+ ORDER_VALIDATOR_V2: "0xff9ef4786bf31158ba152638746c2a678d2c4ade",
1084
1143
  };
1085
1144
  /**
1086
1145
  * List of useful contract addresses
@@ -5193,7 +5252,8 @@ const utils = {
5193
5252
  ...encode,
5194
5253
  ...signMakerOrders,
5195
5254
  ...eip712,
5196
- ...asChainId$1,
5255
+ ...asDeployedChain$1,
5256
+ api,
5197
5257
  };
5198
5258
 
5199
5259
  export { ChainId, CollectionType, Eip712MakerMerkleTree, Eip712MerkleTree, ErrorItemId, ErrorMerkleTreeDepth, ErrorQuoteType, ErrorSigner, ErrorStrategyType, ErrorTimestamp, IERC1155 as IERC1155Abi, abiIERC20 as IERC20Abi, abiIERC721 as IERC721Abi, LooksRare, LooksRareProtocol as LooksRareProtocolAbi, MAX_ORDERS_PER_TREE, MerkleTreeNodePosition, OrderValidatorCode, OrderValidatorV2A as OrderValidatorV2AAbi, QuoteType, StrategyType, TransferManager as TransferManagerAbi, WETH as WETHAbi, addressesByNetwork, chainInfo, defaultMerkleTree, utils };