Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions e2e/tests/accounts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,11 @@ describe("CoreSDK - accounts", () => {
});

test("add sellers", async () => {
const [seller, { coreSDK, fundedWallet }] = await Promise.all([
const [sellers, { coreSDK, fundedWallet }] = await Promise.all([
ensureCreatedSeller(sellerWallet),
initCoreSDKWithFundedWallet(protocolAdminWallet)
]);
const [seller] = sellers;
const disputeResolverAddress = fundedWallet.address.toLowerCase();

const { disputeResolver } = await createDisputeResolver(
Expand Down Expand Up @@ -264,10 +265,11 @@ describe("CoreSDK - accounts", () => {
});

test("remove sellers", async () => {
const [seller, { coreSDK, fundedWallet }] = await Promise.all([
const [sellers, { coreSDK, fundedWallet }] = await Promise.all([
ensureCreatedSeller(sellerWallet),
initCoreSDKWithFundedWallet(protocolAdminWallet)
]);
const [seller] = sellers;
const disputeResolverAddress = fundedWallet.address.toLowerCase();

const { disputeResolver: disputeResolverBeforeUpdate } =
Expand Down
21 changes: 14 additions & 7 deletions e2e/tests/core-sdk.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ describe("core-sdk", () => {
const { coreSDK, fundedWallet } = await initCoreSDKWithFundedWallet(
seedWallet
);
const seller = await ensureCreatedSeller(fundedWallet);
const sellers = await ensureCreatedSeller(fundedWallet);
const [seller] = sellers;

const funds = await depositFunds({
coreSDK,
Expand All @@ -110,7 +111,8 @@ describe("core-sdk", () => {
const { coreSDK, fundedWallet } = await initCoreSDKWithFundedWallet(
seedWallet
);
const seller = await ensureCreatedSeller(fundedWallet);
const sellers = await ensureCreatedSeller(fundedWallet);
const [seller] = sellers;

await ensureMintedAndAllowedTokens([fundedWallet], sellerFundsDeposit);

Expand Down Expand Up @@ -308,7 +310,8 @@ describe("core-sdk", () => {
const { coreSDK, fundedWallet } = await initCoreSDKWithFundedWallet(
seedWallet
);
const seller = await ensureCreatedSeller(fundedWallet);
const sellers = await ensureCreatedSeller(fundedWallet);
const [seller] = sellers;

const funds = await depositFunds({
coreSDK,
Expand Down Expand Up @@ -336,7 +339,8 @@ describe("core-sdk", () => {
const { coreSDK, fundedWallet } = await initCoreSDKWithFundedWallet(
seedWallet
);
const seller = await ensureCreatedSeller(fundedWallet);
const sellers = await ensureCreatedSeller(fundedWallet);
const [seller] = sellers;

const ethFunds = await depositFunds({
coreSDK,
Expand Down Expand Up @@ -393,7 +397,8 @@ describe("core-sdk", () => {

beforeEach(async () => {
await waitForGraphNodeIndexing();
const seller = await ensureCreatedSeller(sellerWallet);
const sellers = await ensureCreatedSeller(sellerWallet);
const [seller] = sellers;

// before each case, create offer + commit + redeem
const createdOffer = await createOffer(sellerCoreSDK, seller.id);
Expand Down Expand Up @@ -431,7 +436,8 @@ describe("core-sdk", () => {

test("expired dispute", async () => {
// create another offer with very small resolutionPeriod + commit + redeem
const seller = await ensureCreatedSeller(sellerWallet);
const sellers = await ensureCreatedSeller(sellerWallet);
const [seller] = sellers;

const createdOffer = await createOffer(sellerCoreSDK, seller.id, {
resolutionPeriodDurationInMS: 1000
Expand Down Expand Up @@ -581,7 +587,8 @@ describe("core-sdk", () => {

const sellerId = seller.id;

const seller2 = await coreSDK.getSellerByAddress(fundedWallet.address);
const sellers2 = await coreSDK.getSellersByAddress(fundedWallet.address);
const [seller2] = sellers2;
expect(seller2).toBeTruthy();
expect(seller2.id).toEqual(sellerId);
});
Expand Down
4 changes: 2 additions & 2 deletions e2e/tests/meta-tx.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ describe("meta-tx", () => {

async function createOfferAndDepositFunds(sellerWallet: Wallet) {
const sellerCoreSDK = initCoreSDKWithWallet(sellerWallet);
const seller = await sellerCoreSDK.getSellerByAddress(sellerAddress);

const sellers = await sellerCoreSDK.getSellersByAddress(sellerAddress);
const [seller] = sellers;
// Store metadata
const metadataHash = await sellerCoreSDK.storeMetadata({
...metadata,
Expand Down
3 changes: 2 additions & 1 deletion e2e/tests/productV1.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ async function createOffer(
sellerWallet: Wallet,
offerArgs: CreateOfferArgs
) {
const seller = await ensureCreatedSeller(sellerWallet);
const sellers = await ensureCreatedSeller(sellerWallet);
const [seller] = sellers;
// Check the disputeResolver exists and is active
const disputeResolverId = offerArgs.disputeResolverId;

Expand Down
8 changes: 4 additions & 4 deletions e2e/tests/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,9 +217,9 @@ export async function createFundedWallet(
export async function ensureCreatedSeller(sellerWallet: Wallet) {
const sellerAddress = sellerWallet.address;
const sellerCoreSDK = initCoreSDKWithWallet(sellerWallet);
let seller = await sellerCoreSDK.getSellerByAddress(sellerAddress);
let sellers = await sellerCoreSDK.getSellersByAddress(sellerAddress);

if (!seller) {
if (!sellers.length) {
const tx = await sellerCoreSDK.createSeller({
operator: sellerAddress,
treasury: sellerAddress,
Expand All @@ -233,10 +233,10 @@ export async function ensureCreatedSeller(sellerWallet: Wallet) {
});
await tx.wait();
await waitForGraphNodeIndexing();
seller = await sellerCoreSDK.getSellerByAddress(sellerAddress);
sellers = await sellerCoreSDK.getSellersByAddress(sellerAddress);
}

return seller;
return sellers;
}

export async function ensureMintedAndAllowedTokens(
Expand Down
20 changes: 12 additions & 8 deletions packages/core-sdk/src/core-sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -278,14 +278,14 @@ export class CoreSDK {
* @param queryVars - Optional query variables to skip, order or filter.
* @returns Seller entity from subgraph.
*/
public async getSellerByAddress(
public async getSellersByAddress(
address: string,
queryVars?: subgraph.GetSellersQueryQueryVariables
): Promise<subgraph.SellerFieldsFragment> {
): Promise<subgraph.SellerFieldsFragment[]> {
if (address === AddressZero) {
throw new Error(`Unsupported search address '${AddressZero}'`);
}
let seller = await accounts.subgraph.getSellerByAddress(
const seller = await accounts.subgraph.getSellerByAddress(
this._subgraphUrl,
address,
queryVars
Expand All @@ -294,15 +294,19 @@ export class CoreSDK {
// If seller is not found per address, try to find per authToken
const tokenType = AuthTokenType.LENS; // only LENS for now
const tokenIds = await this.fetchUserAuthTokens(address, tokenType);
const promises: Promise<subgraph.SellerFieldsFragment>[] = [];
for (const tokenId of tokenIds) {
// Just in case the user owns several auth tokens
seller = await this.getSellerByAuthToken(tokenId, tokenType, queryVars);
if (seller) {
return seller;
}
const sellerPromise = this.getSellerByAuthToken(
tokenId,
tokenType,
queryVars
);
promises.push(sellerPromise);
}
return (await Promise.all(promises)).filter((seller) => !!seller);
}
return seller;
return [seller].filter((seller) => !!seller);
}

/**
Expand Down
6 changes: 4 additions & 2 deletions packages/core-sdk/tests/core-sdk.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ describe("#renderContractualAgreementForOffer()", () => {
});
});

describe("getSellerByAddress()", () => {
describe("getSellersByAddress()", () => {
test("shall fail if search address is ZERO_ADDRESS", async () => {
const mockedRawSellerFromSubgraph = mockRawSellerFromSubgraph({
operator: ADDRESS
Expand All @@ -114,7 +114,9 @@ describe("getSellerByAddress()", () => {
chainId: defaultConfig.chainId
});
expect(coreSDK).toBeInstanceOf(CoreSDK);
await expect(coreSDK.getSellerByAddress(ZERO_ADDRESS)).rejects.toThrowError(
await expect(
coreSDK.getSellersByAddress(ZERO_ADDRESS)
).rejects.toThrowError(
/^Unsupported search address '0x0000000000000000000000000000000000000000'/
);
});
Expand Down
6 changes: 4 additions & 2 deletions packages/react-kit/src/components/searchBar/SearchBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export const SearchBar = ({

const sellerByIdPromise = coreSdk.getSellerById(value);

const sellerByAddressPromise = coreSdk.getSellerByAddress(value);
const sellerByAddressPromise = coreSdk.getSellersByAddress(value);

const buyerByAddressPromise = coreSdk.getBuyers({
buyersFilter: {
Expand Down Expand Up @@ -106,7 +106,9 @@ export const SearchBar = ({
buyerByAddressPromise
]);

const sellerByAddressList = sellerByAddress ? [sellerByAddress] : [];
const sellerByAddressList = sellerByAddress?.length
? sellerByAddress
: [];
const sellerByIdList = sellerById ? [sellerById] : [];

productSearchResults = [
Expand Down