decentraland-dapps 24.9.0 → 24.10.0

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.
Files changed (32) hide show
  1. package/dist/containers/Navbar/Navbar.types.d.ts +3 -1
  2. package/dist/containers/Navbar/Navbar2.container.js +2 -0
  3. package/dist/containers/Navbar/Navbar2.container.js.map +1 -1
  4. package/dist/containers/Navbar/Navbar2.js +6 -1
  5. package/dist/containers/Navbar/Navbar2.js.map +1 -1
  6. package/dist/lib/credits.d.ts +110 -0
  7. package/dist/lib/credits.js +242 -0
  8. package/dist/lib/credits.js.map +1 -0
  9. package/dist/lib/entities.js +1 -0
  10. package/dist/lib/entities.js.map +1 -1
  11. package/dist/modules/campaign/ContentfulClient.d.ts +2 -1
  12. package/dist/modules/campaign/ContentfulClient.js +41 -25
  13. package/dist/modules/campaign/ContentfulClient.js.map +1 -1
  14. package/dist/modules/credits/CreditsClient.d.ts +11 -0
  15. package/dist/modules/credits/CreditsClient.js +22 -0
  16. package/dist/modules/credits/CreditsClient.js.map +1 -0
  17. package/dist/modules/credits/actions.d.ts +24 -0
  18. package/dist/modules/credits/actions.js +12 -0
  19. package/dist/modules/credits/actions.js.map +1 -0
  20. package/dist/modules/credits/reducer.d.ts +11 -0
  21. package/dist/modules/credits/reducer.js +40 -0
  22. package/dist/modules/credits/reducer.js.map +1 -0
  23. package/dist/modules/credits/sagas.d.ts +4 -0
  24. package/dist/modules/credits/sagas.js +57 -0
  25. package/dist/modules/credits/sagas.js.map +1 -0
  26. package/dist/modules/credits/selectors.d.ts +6 -0
  27. package/dist/modules/credits/selectors.js +9 -0
  28. package/dist/modules/credits/selectors.js.map +1 -0
  29. package/dist/modules/credits/types.d.ts +15 -0
  30. package/dist/modules/credits/types.js +2 -0
  31. package/dist/modules/credits/types.js.map +1 -0
  32. package/package.json +3 -3
@@ -4,6 +4,7 @@ import { AuthIdentity } from '@dcl/crypto';
4
4
  import { NavbarProps as NavbarComponentProps } from 'decentraland-ui/dist/components/Navbar/Navbar.types';
5
5
  import { NavbarProps as NavbarComponentProps2 } from 'decentraland-ui2';
6
6
  import { disconnectWalletRequest, switchNetworkRequest, SwitchNetworkRequestAction } from '../../modules/wallet/actions';
7
+ import { getCredits } from '../../modules/credits/selectors';
7
8
  export type NavbarProps = NavbarComponentProps & {
8
9
  withChainSelector?: boolean;
9
10
  chainId?: ChainId;
@@ -30,10 +31,11 @@ export type NavbarProps2 = NavbarComponentProps2 & {
30
31
  identity?: AuthIdentity;
31
32
  locale: string;
32
33
  walletError: string | null;
34
+ credits?: ReturnType<typeof getCredits>;
33
35
  onSwitchNetwork: typeof switchNetworkRequest;
34
36
  onSignOut: typeof disconnectWalletRequest;
35
37
  onSignIn: () => void;
36
38
  };
37
- export type MapStateProps = Pick<NavbarProps, 'manaBalances' | 'address' | 'isSignedIn' | 'isDisconnecting' | 'isSigningIn' | 'chainId' | 'appChainId' | 'isSwitchingNetwork' | 'avatar' | 'locale' | 'walletError'>;
39
+ export type MapStateProps = Pick<NavbarProps, 'manaBalances' | 'address' | 'isSignedIn' | 'isDisconnecting' | 'isSigningIn' | 'chainId' | 'appChainId' | 'isSwitchingNetwork' | 'avatar' | 'locale' | 'walletError'> & Pick<NavbarProps2, 'credits'>;
38
40
  export type MapDispatchProps = Pick<NavbarProps, 'onSwitchNetwork' | 'onSignOut'>;
39
41
  export type MapDispatch = Dispatch<SwitchNetworkRequestAction>;
@@ -4,6 +4,7 @@ import { getData as getProfiles } from '../../modules/profile/selectors';
4
4
  import { getError as getWalletError } from '../../modules/wallet/selectors';
5
5
  import { getLocale } from '../../modules/translation/selectors';
6
6
  import { disconnectWalletRequest, switchNetworkRequest } from '../../modules/wallet/actions';
7
+ import { getCredits } from '../../modules/credits/selectors';
7
8
  import Navbar2 from './Navbar2';
8
9
  const mapState = (state) => {
9
10
  const address = getAddress(state);
@@ -12,6 +13,7 @@ const mapState = (state) => {
12
13
  avatar: profile ? profile.avatars[0] : undefined,
13
14
  chainId: getChainId(state),
14
15
  manaBalances: getManaBalances(state),
16
+ credits: address ? getCredits(state, address) : null,
15
17
  address: getAddress(state),
16
18
  locale: getLocale(state),
17
19
  isSignedIn: isConnected(state),
@@ -1 +1 @@
1
- {"version":3,"file":"Navbar2.container.js","sourceRoot":"","sources":["../../../src/containers/Navbar/Navbar2.container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,8BAA8B,CAAA;AAGrC,OAAO,OAAO,MAAM,WAAW,CAAA;AAG/B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAiB,EAAE;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAChD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;QAC1B,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC;QACpC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;QAC1B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;QACxB,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;QAC9B,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC;QACvC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC;QAChC,kBAAkB,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAC7C,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC;KACnC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,QAAsB,EAAoB,EAAE,CAAC,CAAC;IACjE,eAAe,EAAE,CAAC,OAAgB,EAAE,WAAoB,EAAE,EAAE,CAC1D,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;CACrD,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CACjB,UAAyB,EACzB,aAA+B,EAC/B,QAAsB,EACR,EAAE,CAAC,CAAC;IAClB,GAAG,UAAU;IACb,GAAG,aAAa;IAChB,GAAG,QAAQ;CACZ,CAAC,CAAA;AAEF,eAAe,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAQ,CAAA"}
1
+ {"version":3,"file":"Navbar2.container.js","sourceRoot":"","sources":["../../../src/containers/Navbar/Navbar2.container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAG5D,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAiB,EAAE;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAChD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;QAC1B,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACpD,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;QAC1B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;QACxB,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;QAC9B,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC;QACvC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC;QAChC,kBAAkB,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAC7C,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC;KACnC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,QAAsB,EAAoB,EAAE,CAAC,CAAC;IACjE,eAAe,EAAE,CAAC,OAAgB,EAAE,WAAoB,EAAE,EAAE,CAC1D,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC;CACrD,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CACjB,UAAyB,EACzB,aAA+B,EAC/B,QAAsB,EACR,EAAE,CAAC,CAAC;IAClB,GAAG,UAAU;IACb,GAAG,aAAa;IAChB,GAAG,QAAQ;CACZ,CAAC,CAAA;AAEF,eAAe,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAQ,CAAA"}
@@ -13,6 +13,7 @@ import { CHANGE_NETWORK, NAVBAR_DOWNLOAD_EVENT, DROPDOWN_MENU_BALANCE_CLICK_EVEN
13
13
  import { NAVBAR_CLICK_EVENT } from './constants';
14
14
  import useNotifications from '../../hooks/useNotifications';
15
15
  import { NavbarContainer } from './Navbar2.styled';
16
+ import { ethers } from 'ethers';
16
17
  const BASE_URL = getBaseUrl();
17
18
  const Navbar2 = ({ appChainId, isSwitchingNetwork, withNotifications, withChainSelector, identity, docsUrl = 'https://docs.decentraland.org', enablePartialSupportAlert = true, walletError, ...props }) => {
18
19
  const expectedChainName = getChainName(appChainId);
@@ -66,9 +67,13 @@ const Navbar2 = ({ appChainId, isSwitchingNetwork, withNotifications, withChainS
66
67
  props.onSignOut();
67
68
  }, 300);
68
69
  }, [analytics]);
70
+ const creditsBalance = {
71
+ balance: Number(ethers.utils.formatEther(props.credits?.totalCredits.toString() ?? 0)),
72
+ expiresAt: Number(props.credits?.credits[0]?.expiresAt * 1000) ?? 0
73
+ };
69
74
  return (React.createElement(NavbarContainer, null,
70
75
  React.createElement(ChainProvider, null, ({ chainId, isUnsupported }) => (React.createElement(React.Fragment, null,
71
- React.createElement(NavbarComponent, { ...props, notifications: withNotifications
76
+ React.createElement(NavbarComponent, { ...props, creditsBalance: creditsBalance, notifications: withNotifications
72
77
  ? {
73
78
  locale: props.locale,
74
79
  isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"Navbar2.js","sourceRoot":"","sources":["../../../src/containers/Navbar/Navbar2.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navbar2.js","sourceRoot":"","sources":["../../../src/containers/Navbar/Navbar2.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { Item, NFT, Order, Trade } from '@dcl/schemas';
2
+ import { ContractData } from 'decentraland-transactions';
3
+ import { Credit } from '../modules/credits/types';
4
+ export type CreditsData = {
5
+ value: string;
6
+ expiresAt: number;
7
+ salt: string;
8
+ };
9
+ export type UseCreditsArgs = {
10
+ credits: {
11
+ value: string;
12
+ expiresAt: number;
13
+ salt: string;
14
+ }[];
15
+ creditsSignatures: string[];
16
+ externalCall: {
17
+ target: string;
18
+ selector: string;
19
+ data: string;
20
+ expiresAt: number;
21
+ salt: string;
22
+ };
23
+ customExternalCallSignature: string;
24
+ maxUncreditedValue: string | number;
25
+ maxCreditedValue: string | number;
26
+ };
27
+ export type ExternalCallParams = {
28
+ target: string;
29
+ selector: string;
30
+ data: string;
31
+ };
32
+ export declare class CreditsService {
33
+ /**
34
+ * Prepares common credits data and gets the CreditsManager contract
35
+ * @param credits - The user's credits
36
+ * @param chainId - The chain ID
37
+ * @returns Object containing the contract, creditsData, and creditsSignatures
38
+ */
39
+ private prepareCreditsData;
40
+ /**
41
+ * Prepares the external call parameters
42
+ * @param params - The external call parameters
43
+ * @returns The external call object
44
+ */
45
+ private prepareExternalCall;
46
+ /**
47
+ * Executes the useCredits transaction
48
+ * @param contract - The CreditsManager contract
49
+ * @param creditsData - The prepared credits data
50
+ * @param creditsSignatures - The prepared credits signatures
51
+ * @param externalCall - The external call object
52
+ * @param maxCreditedValue - The maximum amount of MANA that can be credited
53
+ * @returns The transaction hash
54
+ */
55
+ private executeUseCredits;
56
+ prepareCreditsCollectionStore(item: Item, walletAddress: string, credits: Credit[]): {
57
+ contract: ContractData;
58
+ creditsData: CreditsData[];
59
+ creditsSignatures: string[];
60
+ externalCall: ExternalCallParams;
61
+ maxUncreditedValue: string;
62
+ maxCreditedValue: string;
63
+ };
64
+ /**
65
+ * Use credits for buying items from the CollectionStore
66
+ * @param item - The item to buy
67
+ * @param walletAddress - The user's wallet address
68
+ * @param credits - The user's credits
69
+ * @returns The transaction hash
70
+ */
71
+ useCreditsCollectionStore(item: Item, walletAddress: string, credits: Credit[]): Promise<string>;
72
+ prepareCreditsMarketplace(trade: Trade, walletAddress: string, credits: Credit[]): {
73
+ contract: ContractData;
74
+ creditsData: CreditsData[];
75
+ creditsSignatures: string[];
76
+ externalCall: ExternalCallParams;
77
+ maxUncreditedValue: string;
78
+ maxCreditedValue: string;
79
+ };
80
+ /**
81
+ * Use credits for buying NFTs from the Marketplace (using trades)
82
+ * @param trade - The trade to accept
83
+ * @param walletAddress - The user's wallet address
84
+ * @param credits - The user's credits
85
+ * @returns The transaction hash
86
+ */
87
+ useCreditsMarketplace(trade: Trade, walletAddress: string, credits: Credit[]): Promise<string>;
88
+ prepareCreditsLegacyMarketplace(nft: NFT, order: Order, credits: Credit[]): {
89
+ contract: ContractData;
90
+ creditsData: CreditsData[];
91
+ creditsSignatures: string[];
92
+ externalCall: ExternalCallParams;
93
+ maxUncreditedValue: string;
94
+ maxCreditedValue: string;
95
+ };
96
+ /**
97
+ * Use credits for buying NFTs from the Legacy Marketplace
98
+ * @param nft - The NFT to buy
99
+ * @param order - The order to execute
100
+ * @param credits - The user's credits
101
+ * @returns The transaction hash
102
+ */
103
+ useCreditsLegacyMarketplace(nft: NFT, order: Order, credits: Credit[]): Promise<string>;
104
+ /**
105
+ * Helper method to get the price of a trade
106
+ * @param trade - The trade to get the price from
107
+ * @returns The trade price
108
+ */
109
+ private getTradePrice;
110
+ }
@@ -0,0 +1,242 @@
1
+ import { ethers } from 'ethers';
2
+ import { Network, TradeAssetType } from '@dcl/schemas';
3
+ import { ContractName, getContract } from 'decentraland-transactions';
4
+ import { sendTransaction } from '../modules/wallet/utils';
5
+ import { getOnChainTrade } from './trades';
6
+ export class CreditsService {
7
+ /**
8
+ * Prepares common credits data and gets the CreditsManager contract
9
+ * @param credits - The user's credits
10
+ * @param chainId - The chain ID
11
+ * @returns Object containing the contract, creditsData, and creditsSignatures
12
+ */
13
+ prepareCreditsData(credits, chainId) {
14
+ // Get the CreditsManager contract
15
+ const contract = getContract(ContractName.CreditsManager, chainId);
16
+ // Prepare the credits data
17
+ const creditsData = credits.map(credit => {
18
+ // Make sure the salt is a valid bytes32 value
19
+ let salt = '';
20
+ if (credit.id) {
21
+ if (!credit.id.startsWith('0x')) {
22
+ // If it's not a hex string, convert it to one
23
+ salt = ethers.utils.hexZeroPad('0x' + Buffer.from(credit.id).toString('hex'), 32);
24
+ }
25
+ else {
26
+ // If it's already a hex string, ensure it's 32 bytes
27
+ salt = ethers.utils.hexZeroPad(credit.id, 32);
28
+ }
29
+ }
30
+ return {
31
+ value: credit.amount,
32
+ expiresAt: parseInt(credit.expiresAt),
33
+ salt
34
+ };
35
+ });
36
+ // Prepare the signatures
37
+ const creditsSignatures = credits.map(credit => credit.signature);
38
+ return { contract, creditsData, creditsSignatures };
39
+ }
40
+ /**
41
+ * Prepares the external call parameters
42
+ * @param params - The external call parameters
43
+ * @returns The external call object
44
+ */
45
+ prepareExternalCall({ target, selector, data }) {
46
+ // Set expiration time (can be adjusted as needed)
47
+ const expiresAt = Math.floor(Date.now() / 1000) + 3600 * 24; // 24 hours from now
48
+ // Random salt for the external call
49
+ const salt = ethers.utils.hexlify(ethers.utils.randomBytes(32));
50
+ // Prepare the external call
51
+ return {
52
+ target,
53
+ selector,
54
+ data,
55
+ expiresAt,
56
+ salt
57
+ };
58
+ }
59
+ /**
60
+ * Executes the useCredits transaction
61
+ * @param contract - The CreditsManager contract
62
+ * @param creditsData - The prepared credits data
63
+ * @param creditsSignatures - The prepared credits signatures
64
+ * @param externalCall - The external call object
65
+ * @param maxCreditedValue - The maximum amount of MANA that can be credited
66
+ * @returns The transaction hash
67
+ */
68
+ async executeUseCredits(contract, creditsData, creditsSignatures, externalCall, maxCreditedValue, maxUncreditedValue) {
69
+ // Prepare the UseCreditsArgs
70
+ const useCreditsArgs = {
71
+ credits: creditsData,
72
+ creditsSignatures,
73
+ externalCall,
74
+ customExternalCallSignature: '0x', // Empty since we're not using a custom external call
75
+ maxUncreditedValue,
76
+ maxCreditedValue
77
+ };
78
+ // Send the transaction
79
+ return sendTransaction(contract, 'useCredits', useCreditsArgs);
80
+ }
81
+ prepareCreditsCollectionStore(item, walletAddress, credits) {
82
+ // Prepare common credits data
83
+ const { contract, creditsData, creditsSignatures } = this.prepareCreditsData(credits, item.chainId);
84
+ // Get the CollectionStore contract address
85
+ const collectionStoreContract = getContract(ContractName.CollectionStore, item.chainId);
86
+ const collectionStoreAddress = collectionStoreContract.address;
87
+ // Create a contract interface for the CollectionStore to get the function selector
88
+ const collectionStoreInterface = new ethers.utils.Interface(collectionStoreContract.abi);
89
+ // The selector for the buy function in the CollectionStore contract
90
+ const buySelector = collectionStoreInterface.getSighash('buy');
91
+ // Create the ItemToBuy structure as shown in the tests
92
+ const itemsToBuy = [
93
+ {
94
+ collection: item.contractAddress,
95
+ ids: [item.itemId],
96
+ prices: [item.price],
97
+ beneficiaries: [walletAddress]
98
+ }
99
+ ];
100
+ // Encode the buy function parameters using abi.encode
101
+ const buyData = ethers.utils.defaultAbiCoder.encode([
102
+ 'tuple(address collection, uint256[] ids, uint256[] prices, address[] beneficiaries)[]'
103
+ ], [itemsToBuy]);
104
+ // Prepare the external call
105
+ const externalCall = this.prepareExternalCall({
106
+ target: collectionStoreAddress,
107
+ selector: buySelector,
108
+ data: buyData
109
+ });
110
+ const creditsValue = credits.reduce((acc, credit) => acc + parseInt(credit.amount), 0);
111
+ const whatUserHasToPay = BigInt(item.price) - BigInt(creditsValue);
112
+ const maxUncreditedValue = whatUserHasToPay < BigInt(0) ? '0' : whatUserHasToPay.toString();
113
+ return {
114
+ contract,
115
+ creditsData,
116
+ creditsSignatures,
117
+ externalCall,
118
+ maxUncreditedValue,
119
+ maxCreditedValue: item.price
120
+ };
121
+ }
122
+ /**
123
+ * Use credits for buying items from the CollectionStore
124
+ * @param item - The item to buy
125
+ * @param walletAddress - The user's wallet address
126
+ * @param credits - The user's credits
127
+ * @returns The transaction hash
128
+ */
129
+ async useCreditsCollectionStore(item, walletAddress, credits) {
130
+ // Prepare common credits data
131
+ const { contract, creditsData, creditsSignatures, externalCall, maxUncreditedValue, maxCreditedValue } = this.prepareCreditsCollectionStore(item, walletAddress, credits);
132
+ // Execute the transaction
133
+ return this.executeUseCredits(contract, creditsData, creditsSignatures, externalCall, maxCreditedValue, maxUncreditedValue);
134
+ }
135
+ prepareCreditsMarketplace(trade, walletAddress, credits) {
136
+ // Prepare common credits data
137
+ const { contract, creditsData, creditsSignatures } = this.prepareCreditsData(credits, trade.chainId);
138
+ // Get the OffChainMarketplace contract address
139
+ const marketplaceContract = getContract(ContractName.OffChainMarketplace, trade.chainId);
140
+ const marketplaceAddress = marketplaceContract.address;
141
+ // Create a contract interface for the OffChainMarketplace to get the function selector
142
+ const marketplaceInterface = new ethers.utils.Interface(marketplaceContract.abi);
143
+ // The selector for the accept function in the OffChainMarketplace contract
144
+ const acceptSelector = marketplaceInterface.getSighash('accept');
145
+ const onChainTrade = getOnChainTrade(trade, walletAddress);
146
+ // Encode the accept function parameters based on the correct ABI
147
+ const acceptData = ethers.utils.defaultAbiCoder.encode([
148
+ 'tuple(address signer, bytes signature, tuple(uint256 uses, uint256 expiration, uint256 effective, bytes32 salt, uint256 contractSignatureIndex, uint256 signerSignatureIndex, bytes32 allowedRoot, bytes32[] allowedProof, tuple(address contractAddress, bytes4 selector, bytes value, bool required)[] externalChecks) checks, tuple(uint256 assetType, address contractAddress, uint256 value, address beneficiary, bytes extra)[] sent, tuple(uint256 assetType, address contractAddress, uint256 value, address beneficiary, bytes extra)[] received)[]'
149
+ ], [[onChainTrade]]);
150
+ // Prepare the external call
151
+ const externalCall = this.prepareExternalCall({
152
+ target: marketplaceAddress,
153
+ selector: acceptSelector,
154
+ data: acceptData
155
+ });
156
+ // Get the trade price
157
+ // Execute the transaction
158
+ const tradePrice = this.getTradePrice(trade);
159
+ const creditsValue = credits.reduce((acc, credit) => acc + parseInt(credit.amount), 0);
160
+ const whatUserHasToPay = BigInt(tradePrice) - BigInt(creditsValue);
161
+ const maxUncreditedValue = whatUserHasToPay < BigInt(0) ? '0' : whatUserHasToPay.toString();
162
+ return {
163
+ contract,
164
+ creditsData,
165
+ creditsSignatures,
166
+ externalCall,
167
+ maxUncreditedValue,
168
+ maxCreditedValue: tradePrice
169
+ };
170
+ }
171
+ /**
172
+ * Use credits for buying NFTs from the Marketplace (using trades)
173
+ * @param trade - The trade to accept
174
+ * @param walletAddress - The user's wallet address
175
+ * @param credits - The user's credits
176
+ * @returns The transaction hash
177
+ */
178
+ async useCreditsMarketplace(trade, walletAddress, credits) {
179
+ // Prepare common credits data
180
+ const { contract, creditsData, creditsSignatures, externalCall, maxUncreditedValue, maxCreditedValue } = this.prepareCreditsMarketplace(trade, walletAddress, credits);
181
+ return this.executeUseCredits(contract, creditsData, creditsSignatures, externalCall, maxCreditedValue, maxUncreditedValue);
182
+ }
183
+ prepareCreditsLegacyMarketplace(nft, order, credits) {
184
+ // Prepare common credits data
185
+ const { contract, creditsData, creditsSignatures } = this.prepareCreditsData(credits, nft.chainId);
186
+ // Get the Marketplace contract address
187
+ const marketplaceContract = getContract(nft.network === Network.ETHEREUM
188
+ ? ContractName.Marketplace
189
+ : ContractName.MarketplaceV2, nft.chainId);
190
+ const marketplaceAddress = marketplaceContract.address;
191
+ // Create a contract interface for the Marketplace to get the function selector
192
+ const marketplaceInterface = new ethers.utils.Interface(marketplaceContract.abi);
193
+ // The selector for the executeOrder function in the Marketplace contract
194
+ const executeOrderSelector = marketplaceInterface.getSighash('executeOrder');
195
+ // Encode the executeOrder function parameters
196
+ const executeOrderData = ethers.utils.defaultAbiCoder.encode(['address', 'uint256', 'uint256'], [nft.contractAddress, nft.tokenId, order.price]);
197
+ // Prepare the external call
198
+ const externalCall = this.prepareExternalCall({
199
+ target: marketplaceAddress,
200
+ selector: executeOrderSelector,
201
+ data: executeOrderData
202
+ });
203
+ const creditsValue = credits.reduce((acc, credit) => acc + parseInt(credit.amount), 0);
204
+ const whatUserHasToPay = BigInt(order.price) - BigInt(creditsValue);
205
+ const maxUncreditedValue = whatUserHasToPay < BigInt(0) ? '0' : whatUserHasToPay.toString();
206
+ return {
207
+ contract,
208
+ creditsData,
209
+ creditsSignatures,
210
+ externalCall,
211
+ maxUncreditedValue,
212
+ maxCreditedValue: order.price
213
+ };
214
+ }
215
+ /**
216
+ * Use credits for buying NFTs from the Legacy Marketplace
217
+ * @param nft - The NFT to buy
218
+ * @param order - The order to execute
219
+ * @param credits - The user's credits
220
+ * @returns The transaction hash
221
+ */
222
+ async useCreditsLegacyMarketplace(nft, order, credits) {
223
+ // Prepare common credits data
224
+ const { contract, creditsData, creditsSignatures, externalCall, maxUncreditedValue, maxCreditedValue } = this.prepareCreditsLegacyMarketplace(nft, order, credits);
225
+ // Execute the transaction
226
+ return this.executeUseCredits(contract, creditsData, creditsSignatures, externalCall, maxCreditedValue, maxUncreditedValue);
227
+ }
228
+ /**
229
+ * Helper method to get the price of a trade
230
+ * @param trade - The trade to get the price from
231
+ * @returns The trade price
232
+ */
233
+ getTradePrice(trade) {
234
+ // Find the ERC20 asset in the received array (this is the payment)
235
+ const paymentAsset = trade.received.find(asset => asset.assetType === TradeAssetType.ERC20);
236
+ if (paymentAsset && 'amount' in paymentAsset) {
237
+ return paymentAsset.amount;
238
+ }
239
+ return '0';
240
+ }
241
+ }
242
+ //# sourceMappingURL=credits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/lib/credits.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,7 @@ export class EntitiesOperator {
58
58
  };
59
59
  const catalystContentClient = this.catalystContentClientWithoutGbCollector ?? this.catalystContentClient;
60
60
  const contentUrl = this.peerWithNoGbCollectorUrl ?? this.peerUrl;
61
+ debugger;
61
62
  const entityToDeploy = await buildEntityWithoutNewFiles(createFetchComponent(), { contentUrl: `${contentUrl}/content`, ...options });
62
63
  const authChain = Authenticator.signPayload(identity, entityToDeploy.entityId);
63
64
  return catalystContentClient.deploy({
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/lib/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAA;AAEzD,OAAO,EAEL,mBAAmB,EACpB,MAAM,+CAA+C,CAAA;AAEtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAE7E,MAAM,OAAO,gBAAgB;IAOjB;IACA;IAPF,qBAAqB,CAAe,CAAC,iCAAiC;IAC9E,sGAAsG;IAC9F,uCAAuC,CAAsB,CAAC,iCAAiC;IACtF,OAAO,CAAS;IAEjC,YACU,OAAe,EACf,wBAAiC;QADjC,YAAO,GAAP,OAAO,CAAQ;QACf,6BAAwB,GAAxB,wBAAwB,CAAS;QAEzC,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;YAC/C,GAAG,EAAE,GAAG,OAAO,UAAU;YACzB,OAAO,EAAE,oBAAoB,EAAE;SAChC,CAAC,CAAA;QACF,IAAI,CAAC,uCAAuC,GAAG,wBAAwB;YACrE,CAAC,CAAC,mBAAmB,CAAC;gBAClB,GAAG,EAAE,GAAG,OAAO,UAAU;gBACzB,OAAO,EAAE,oBAAoB,EAAE;aAChC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAA;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CACjF,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACxB,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAkB,CAAA;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAA;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,2BAA2B,CAC/B,cAAkC,EAClC,WAAgC,EAChC,UAAsB,EACtB,OAAe,EACf,QAAsB;QAEtB,MAAM,OAAO,GAAmC;YAC9C,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,cAAc;YACxB,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;QAED,MAAM,qBAAqB,GACzB,IAAI,CAAC,uCAAuC,IAAI,IAAI,CAAC,qBAAqB,CAAA;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAA;QAEhE,MAAM,cAAc,GAAG,MAAM,0BAA0B,CACrD,oBAAoB,EAAE,EACtB,EAAE,UAAU,EAAE,GAAG,UAAU,UAAU,EAAE,GAAG,OAAO,EAAE,CACpD,CAAA;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CACzC,QAAQ,EACR,cAAc,CAAC,QAAQ,CACxB,CAAA;QAED,OAAO,qBAAqB,CAAC,MAAM,CAAC;YAClC,GAAG,cAAc;YACjB,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/lib/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAA;AAEzD,OAAO,EAEL,mBAAmB,EACpB,MAAM,+CAA+C,CAAA;AAEtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AAEpG,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAE7E,MAAM,OAAO,gBAAgB;IAOjB;IACA;IAPF,qBAAqB,CAAe,CAAC,iCAAiC;IAC9E,sGAAsG;IAC9F,uCAAuC,CAAsB,CAAC,iCAAiC;IACtF,OAAO,CAAS;IAEjC,YACU,OAAe,EACf,wBAAiC;QADjC,YAAO,GAAP,OAAO,CAAQ;QACf,6BAAwB,GAAxB,wBAAwB,CAAS;QAEzC,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;YAC/C,GAAG,EAAE,GAAG,OAAO,UAAU;YACzB,OAAO,EAAE,oBAAoB,EAAE;SAChC,CAAC,CAAA;QACF,IAAI,CAAC,uCAAuC,GAAG,wBAAwB;YACrE,CAAC,CAAC,mBAAmB,CAAC;gBAClB,GAAG,EAAE,GAAG,OAAO,UAAU;gBACzB,OAAO,EAAE,oBAAoB,EAAE;aAChC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAA;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CACjF,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACxB,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,CAAC,CAAkB,CAAA;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAA;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,2BAA2B,CAC/B,cAAkC,EAClC,WAAgC,EAChC,UAAsB,EACtB,OAAe,EACf,QAAsB;QAEtB,MAAM,OAAO,GAAmC;YAC9C,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,cAAc;YACxB,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;QAED,MAAM,qBAAqB,GACzB,IAAI,CAAC,uCAAuC,IAAI,IAAI,CAAC,qBAAqB,CAAA;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAA;QAChE,QAAQ,CAAA;QACR,MAAM,cAAc,GAAG,MAAM,0BAA0B,CACrD,oBAAoB,EAAE,EACtB,EAAE,UAAU,EAAE,GAAG,UAAU,UAAU,EAAE,GAAG,OAAO,EAAE,CACpD,CAAA;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CACzC,QAAQ,EACR,cAAc,CAAC,QAAQ,CACxB,CAAA;QAED,OAAO,qBAAqB,CAAC,MAAM,CAAC;YAClC,GAAG,cAAc;YACjB,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -4,7 +4,8 @@ import { ContentfulEntryWithoutLocales, Fields } from './ContentfulClient.types'
4
4
  export declare class ContentfulClient extends BaseClient {
5
5
  constructor();
6
6
  fetchEntry<T extends Fields>(space: string, environment: string, id: string, locale?: ContentfulLocale): Promise<ContentfulEntryWithoutLocales<T>>;
7
- fetchEntryAllLocales<T extends Record<string, LocalizedField<LocalizedFieldType>>>(space: string, environment: string, id: string): Promise<T>;
7
+ private mergeEntriesWithoutLocales;
8
+ fetchEntryAllLocales<T extends Record<string, LocalizedField<LocalizedFieldType>>>(space: string, environment: string, id: string): Promise<ContentfulEntry<T>>;
8
9
  isWebpSupported(): boolean;
9
10
  private optimize;
10
11
  fetchAsset(space: string, environment: string, id: string): Promise<ContentfulAsset>;
@@ -14,29 +14,48 @@ export class ContentfulClient extends BaseClient {
14
14
  }
15
15
  return response.json();
16
16
  }
17
+ mergeEntriesWithoutLocales(content) {
18
+ const combinedFields = {};
19
+ for (const { entry, locale } of content) {
20
+ Object.entries(entry.fields).forEach(([key, value]) => {
21
+ combinedFields[key] = {
22
+ ...combinedFields[key],
23
+ [locale]: value
24
+ };
25
+ });
26
+ }
27
+ return {
28
+ fields: combinedFields,
29
+ metadata: content[0].entry.metadata,
30
+ sys: content[0].entry.sys
31
+ };
32
+ }
17
33
  async fetchEntryAllLocales(space, environment, id) {
18
34
  try {
19
- const [responseEn, responseEs, responseZh] = await Promise.all([
20
- this.fetchEntry(space, environment, id, ContentfulLocale.enUS),
21
- this.fetchEntry(space, environment, id, ContentfulLocale.es),
22
- this.fetchEntry(space, environment, id, ContentfulLocale.zh)
23
- ]);
24
- const combinedFields = Object.entries(responseEn.fields).reduce((acc, [key, value]) => {
25
- const field = {
26
- [ContentfulLocale.enUS]: value[ContentfulLocale.enUS]
27
- };
28
- if (responseEs.fields[key]?.[ContentfulLocale.es]) {
29
- field[ContentfulLocale.es] =
30
- responseEs.fields[key][ContentfulLocale.es];
31
- }
32
- if (responseZh.fields[key]?.[ContentfulLocale.zh]) {
33
- field[ContentfulLocale.zh] =
34
- responseZh.fields[key][ContentfulLocale.zh];
35
- }
36
- acc[key] = field;
37
- return acc;
38
- }, {});
39
- return combinedFields;
35
+ try {
36
+ const [responseEn, responseEs, responseZh] = await Promise.all([
37
+ this.fetchEntry(space, environment, id, ContentfulLocale.enUS),
38
+ this.fetchEntry(space, environment, id, ContentfulLocale.es),
39
+ this.fetchEntry(space, environment, id, ContentfulLocale.zh)
40
+ ]);
41
+ return this.mergeEntriesWithoutLocales([
42
+ {
43
+ entry: responseEn,
44
+ locale: ContentfulLocale.enUS
45
+ },
46
+ {
47
+ entry: responseEs,
48
+ locale: ContentfulLocale.es
49
+ },
50
+ {
51
+ entry: responseZh,
52
+ locale: ContentfulLocale.zh
53
+ }
54
+ ]);
55
+ }
56
+ catch (error) {
57
+ throw new Error('Error fetching entry in all locales');
58
+ }
40
59
  }
41
60
  catch (error) {
42
61
  throw new Error('Error fetching entry in all locales');
@@ -165,10 +184,7 @@ export class ContentfulClient extends BaseClient {
165
184
  if (entryIds.size === 0) {
166
185
  return {};
167
186
  }
168
- const entries = await Promise.all(Array.from(entryIds).map(id => this.fetchEntryAllLocales(space, environment, id).then(fields => ({
169
- sys: { id },
170
- fields
171
- }))));
187
+ const entries = await Promise.all(Array.from(entryIds).map(id => this.fetchEntryAllLocales(space, environment, id)));
172
188
  return entries.reduce((acc, entry) => {
173
189
  acc[entry.sys.id] = entry;
174
190
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentfulClient.js","sourceRoot":"","sources":["../../../src/modules/campaign/ContentfulClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContentfulClient.js","sourceRoot":"","sources":["../../../src/modules/campaign/ContentfulClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { BaseClient, BaseClientConfig } from '../../lib';
2
+ import { CreditsResponse } from './types';
3
+ export declare class CreditsClient extends BaseClient {
4
+ constructor(url: string, config?: BaseClientConfig);
5
+ /**
6
+ * Fetches the credits for a user
7
+ * @param address - The user's address
8
+ * @returns The credits for the user
9
+ */
10
+ fetchCredits(address: string): Promise<CreditsResponse>;
11
+ }
@@ -0,0 +1,22 @@
1
+ import { BaseClient } from '../../lib';
2
+ export class CreditsClient extends BaseClient {
3
+ constructor(url, config) {
4
+ super(url, config);
5
+ }
6
+ /**
7
+ * Fetches the credits for a user
8
+ * @param address - The user's address
9
+ * @returns The credits for the user
10
+ */
11
+ async fetchCredits(address) {
12
+ try {
13
+ const response = await this.fetch(`/users/${address}/credits`);
14
+ return response;
15
+ }
16
+ catch (error) {
17
+ console.error('Error fetching credits', error);
18
+ return { credits: [], totalCredits: 0 };
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=CreditsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreditsClient.js","sourceRoot":"","sources":["../../../src/modules/credits/CreditsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAA;AAGxD,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,GAAW,EAAE,MAAyB;QAChD,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpB,CAAC;IACD;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B,UAAU,OAAO,UAAU,CAC5B,CAAA;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;YAC9C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;QACzC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import { CreditsResponse } from './types';
2
+ export declare const FETCH_CREDITS_REQUEST = "[Request] Fetch credits";
3
+ export declare const FETCH_CREDITS_SUCCESS = "[Success] Fetch credits";
4
+ export declare const FETCH_CREDITS_FAILURE = "[Failure] Fetch credits";
5
+ export declare const fetchCreditsRequest: (address: string) => import("typesafe-actions/dist/types").PayloadAction<"[Request] Fetch credits", {
6
+ address: string;
7
+ }>;
8
+ export declare const fetchCreditsSuccess: (address: string, credits: CreditsResponse) => import("typesafe-actions/dist/types").PayloadAction<"[Success] Fetch credits", {
9
+ address: string;
10
+ credits: CreditsResponse;
11
+ }>;
12
+ export declare const fetchCreditsFailure: (address: string, error: string) => import("typesafe-actions/dist/types").PayloadAction<"[Failure] Fetch credits", {
13
+ address: string;
14
+ error: string;
15
+ }>;
16
+ export type FetchCreditsRequestAction = ReturnType<typeof fetchCreditsRequest>;
17
+ export type FetchCreditsSuccessAction = ReturnType<typeof fetchCreditsSuccess>;
18
+ export type FetchCreditsFailureAction = ReturnType<typeof fetchCreditsFailure>;
19
+ export declare const POLL_CREDITS_BALANCE_REQUEST = "[Request] Poll credits balance";
20
+ export declare const pollCreditsBalanceRequest: (address: string, expectedBalance: bigint) => import("typesafe-actions/dist/types").PayloadAction<"[Request] Poll credits balance", {
21
+ address: string;
22
+ expectedBalance: bigint;
23
+ }>;
24
+ export type PollCreditsBalanceRequestAction = ReturnType<typeof pollCreditsBalanceRequest>;
@@ -0,0 +1,12 @@
1
+ import { action } from 'typesafe-actions';
2
+ // Fetch credits
3
+ export const FETCH_CREDITS_REQUEST = '[Request] Fetch credits';
4
+ export const FETCH_CREDITS_SUCCESS = '[Success] Fetch credits';
5
+ export const FETCH_CREDITS_FAILURE = '[Failure] Fetch credits';
6
+ export const fetchCreditsRequest = (address) => action(FETCH_CREDITS_REQUEST, { address });
7
+ export const fetchCreditsSuccess = (address, credits) => action(FETCH_CREDITS_SUCCESS, { address, credits });
8
+ export const fetchCreditsFailure = (address, error) => action(FETCH_CREDITS_FAILURE, { address, error });
9
+ // Poll Credits Balance
10
+ export const POLL_CREDITS_BALANCE_REQUEST = '[Request] Poll credits balance';
11
+ export const pollCreditsBalanceRequest = (address, expectedBalance) => action(POLL_CREDITS_BALANCE_REQUEST, { address, expectedBalance });
12
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/modules/credits/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGzC,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AAClG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,OAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AACrI,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAMxH,uBAAuB;AACvB,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAA;AAE5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAE,eAAuB,EAAE,EAAE,CACpF,MAAM,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { LoadingState } from '../loading/reducer';
2
+ import { FetchCreditsRequestAction, FetchCreditsSuccessAction, FetchCreditsFailureAction } from './actions';
3
+ import { CreditsResponse } from './types';
4
+ export type CreditsState = {
5
+ data: Record<string, CreditsResponse>;
6
+ loading: LoadingState;
7
+ error: string | null;
8
+ };
9
+ type CreditsReducerAction = FetchCreditsRequestAction | FetchCreditsSuccessAction | FetchCreditsFailureAction;
10
+ export declare function creditsReducer(state: CreditsState | undefined, action: CreditsReducerAction): CreditsState;
11
+ export {};
@@ -0,0 +1,40 @@
1
+ import { loadingReducer } from '../loading/reducer';
2
+ import { FETCH_CREDITS_REQUEST, FETCH_CREDITS_SUCCESS, FETCH_CREDITS_FAILURE } from './actions';
3
+ const INITIAL_STATE = {
4
+ data: {},
5
+ loading: [],
6
+ error: null
7
+ };
8
+ export function creditsReducer(state = INITIAL_STATE, action) {
9
+ switch (action.type) {
10
+ case FETCH_CREDITS_REQUEST: {
11
+ return {
12
+ ...state,
13
+ loading: loadingReducer(state.loading, action)
14
+ };
15
+ }
16
+ case FETCH_CREDITS_SUCCESS: {
17
+ const { address, credits } = action.payload;
18
+ return {
19
+ ...state,
20
+ loading: loadingReducer(state.loading, action),
21
+ data: {
22
+ ...state.data,
23
+ [address]: credits
24
+ },
25
+ error: null
26
+ };
27
+ }
28
+ case FETCH_CREDITS_FAILURE: {
29
+ const { error } = action.payload;
30
+ return {
31
+ ...state,
32
+ loading: loadingReducer(state.loading, action),
33
+ error
34
+ };
35
+ }
36
+ default:
37
+ return state;
38
+ }
39
+ }
40
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/modules/credits/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAIL,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,WAAW,CAAA;AASlB,MAAM,aAAa,GAAiB;IAClC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;CACZ,CAAA;AAOD,MAAM,UAAU,cAAc,CAC5B,KAAK,GAAG,aAAa,EACrB,MAA4B;IAE5B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;aAC/C,CAAA;QACH,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;YAC3C,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;gBAC9C,IAAI,EAAE;oBACJ,GAAG,KAAK,CAAC,IAAI;oBACb,CAAC,OAAO,CAAC,EAAE,OAAO;iBACnB;gBACD,KAAK,EAAE,IAAI;aACZ,CAAA;QACH,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;YAChC,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;gBAC9C,KAAK;aACN,CAAA;QACH,CAAC;QAED;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { CreditsClient } from './CreditsClient';
2
+ export declare function creditsSaga(options: {
3
+ creditsClient: CreditsClient;
4
+ }): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -0,0 +1,57 @@
1
+ import { takeEvery, put, call, delay, take, select, race } from 'redux-saga/effects';
2
+ import { isErrorWithMessage } from '../../lib/error';
3
+ import { CONNECT_WALLET_SUCCESS } from '../wallet';
4
+ import { fetchCreditsSuccess, fetchCreditsFailure, fetchCreditsRequest, POLL_CREDITS_BALANCE_REQUEST, FETCH_CREDITS_REQUEST, FETCH_CREDITS_SUCCESS, FETCH_CREDITS_FAILURE } from './actions';
5
+ import { getCredits } from './selectors';
6
+ import { getIsFeatureEnabled } from '../features/selectors';
7
+ import { ApplicationName } from '../features/types';
8
+ export function* creditsSaga(options) {
9
+ yield takeEvery(FETCH_CREDITS_REQUEST, handleFetchCreditsRequest);
10
+ yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess);
11
+ yield takeEvery(POLL_CREDITS_BALANCE_REQUEST, handlePollCreditsBalanceRequest);
12
+ function* handleFetchCreditsRequest(action) {
13
+ const { address } = action.payload;
14
+ const isCreditsEnabled = yield select(getIsFeatureEnabled, ApplicationName.MARKETPLACE, 'credits');
15
+ if (!isCreditsEnabled) {
16
+ return;
17
+ }
18
+ try {
19
+ const credits = yield call([options.creditsClient, 'fetchCredits'], address);
20
+ yield put(fetchCreditsSuccess(address, credits));
21
+ }
22
+ catch (error) {
23
+ yield put(fetchCreditsFailure(address, isErrorWithMessage(error) ? error.message : 'Unknown error'));
24
+ }
25
+ }
26
+ function* handleConnectWalletSuccess(action) {
27
+ const { address } = action.payload.wallet;
28
+ yield put(fetchCreditsRequest(address));
29
+ }
30
+ function* handlePollCreditsBalanceRequest(action) {
31
+ const { address, expectedBalance } = action.payload;
32
+ // max of 10 attempts
33
+ const maxAttempts = 10;
34
+ let attempts = 0;
35
+ while (attempts < maxAttempts) {
36
+ yield put(fetchCreditsRequest(address));
37
+ const { success, failure } = yield race({
38
+ success: take(FETCH_CREDITS_SUCCESS),
39
+ failure: take(FETCH_CREDITS_FAILURE)
40
+ });
41
+ if (success) {
42
+ const credits = yield select(getCredits, address);
43
+ if (BigInt(credits.totalCredits) === expectedBalance) {
44
+ yield put(fetchCreditsSuccess(address, credits));
45
+ break;
46
+ }
47
+ }
48
+ if (failure) {
49
+ yield put(fetchCreditsFailure(address, failure.payload.error));
50
+ break;
51
+ }
52
+ yield delay(2000);
53
+ attempts++;
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=sagas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sagas.js","sourceRoot":"","sources":["../../../src/modules/credits/sagas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const getState: (state: any) => any;
2
+ export declare const getData: (state: any) => any;
3
+ export declare const getLoading: (state: any) => any;
4
+ export declare const getError: (state: any) => any;
5
+ export declare const isFetchingCredits: (state: any) => boolean;
6
+ export declare const getCredits: (state: any, address: string) => any;
@@ -0,0 +1,9 @@
1
+ import { isLoadingType } from '../loading/selectors';
2
+ import { FETCH_CREDITS_REQUEST } from './actions';
3
+ export const getState = (state) => state.credits;
4
+ export const getData = (state) => getState(state).data;
5
+ export const getLoading = (state) => getState(state).loading;
6
+ export const getError = (state) => getState(state).error;
7
+ export const isFetchingCredits = (state) => isLoadingType(getLoading(state), FETCH_CREDITS_REQUEST);
8
+ export const getCredits = (state, address) => getData(state)[address];
9
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/modules/credits/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAA;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAA;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACjE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAW,EAAE,CACvD,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAA;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,OAAe,EAAE,EAAE,CACxD,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ export type Credit = {
2
+ amount: string;
3
+ availableAmount: string;
4
+ contract: string;
5
+ expiresAt: string;
6
+ id: string;
7
+ season: number;
8
+ signature: string;
9
+ timestamp: string;
10
+ userAddress: string;
11
+ };
12
+ export type CreditsResponse = {
13
+ credits: Credit[];
14
+ totalCredits: number;
15
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/credits/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decentraland-dapps",
3
- "version": "24.9.0",
3
+ "version": "24.10.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -23,9 +23,9 @@
23
23
  "dcl-catalyst-client": "^21.1.0",
24
24
  "decentraland-connect": "^9.1.0",
25
25
  "decentraland-crypto-fetch": "^2.0.1",
26
- "decentraland-transactions": "^2.18.3",
26
+ "decentraland-transactions": "^2.19.1",
27
27
  "decentraland-ui": "^6.13.0",
28
- "decentraland-ui2": "^0.12.0",
28
+ "decentraland-ui2": "^0.13.0",
29
29
  "ethers": "^5.7.2",
30
30
  "events": "^3.3.0",
31
31
  "flat": "^5.0.2",