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.
- package/dist/containers/Navbar/Navbar.types.d.ts +3 -1
- package/dist/containers/Navbar/Navbar2.container.js +2 -0
- package/dist/containers/Navbar/Navbar2.container.js.map +1 -1
- package/dist/containers/Navbar/Navbar2.js +6 -1
- package/dist/containers/Navbar/Navbar2.js.map +1 -1
- package/dist/lib/credits.d.ts +110 -0
- package/dist/lib/credits.js +242 -0
- package/dist/lib/credits.js.map +1 -0
- package/dist/lib/entities.js +1 -0
- package/dist/lib/entities.js.map +1 -1
- package/dist/modules/campaign/ContentfulClient.d.ts +2 -1
- package/dist/modules/campaign/ContentfulClient.js +41 -25
- package/dist/modules/campaign/ContentfulClient.js.map +1 -1
- package/dist/modules/credits/CreditsClient.d.ts +11 -0
- package/dist/modules/credits/CreditsClient.js +22 -0
- package/dist/modules/credits/CreditsClient.js.map +1 -0
- package/dist/modules/credits/actions.d.ts +24 -0
- package/dist/modules/credits/actions.js +12 -0
- package/dist/modules/credits/actions.js.map +1 -0
- package/dist/modules/credits/reducer.d.ts +11 -0
- package/dist/modules/credits/reducer.js +40 -0
- package/dist/modules/credits/reducer.js.map +1 -0
- package/dist/modules/credits/sagas.d.ts +4 -0
- package/dist/modules/credits/sagas.js +57 -0
- package/dist/modules/credits/sagas.js.map +1 -0
- package/dist/modules/credits/selectors.d.ts +6 -0
- package/dist/modules/credits/selectors.js +9 -0
- package/dist/modules/credits/selectors.js.map +1 -0
- package/dist/modules/credits/types.d.ts +15 -0
- package/dist/modules/credits/types.js +2 -0
- package/dist/modules/credits/types.js.map +1 -0
- 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;
|
|
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":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC/D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EAAW,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,2BAA2B,CAAA;AAC7C,OAAO,uBAAuB,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,aAAa,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,iCAAiC,EACjC,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,gBAAgB,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;
|
|
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAGL,OAAO,EAIP,cAAc,EACf,MAAM,cAAc,CAAA;AACrB,OAAO,EAEL,YAAY,EACZ,WAAW,EACZ,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAiC1C,MAAM,OAAO,cAAc;IACzB;;;;;OAKG;IACK,kBAAkB,CACxB,OAAiB,EACjB,OAAkC;QAMlC,kCAAkC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAC1B,YAAY,CAAC,cAAc,EAC3B,OAAkB,CACnB,CAAA;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACvC,8CAA8C;YAC9C,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,8CAA8C;oBAC9C,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7C,EAAE,CACH,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,qDAAqD;oBACrD,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrC,IAAI;aACL,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;IACrD,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAsB;QACxE,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,oBAAoB;QAEhF,oCAAoC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAE/D,4BAA4B;QAC5B,OAAO;YACL,MAAM;YACN,QAAQ;YACR,IAAI;YACJ,SAAS;YACT,IAAI;SACL,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,iBAAiB,CAC7B,QAAsB,EACtB,WAA0B,EAC1B,iBAA2B,EAC3B,YAAgC,EAChC,gBAAiC,EACjC,kBAAmC;QAEnC,6BAA6B;QAC7B,MAAM,cAAc,GAAG;YACrB,OAAO,EAAE,WAAW;YACpB,iBAAiB;YACjB,YAAY;YACZ,2BAA2B,EAAE,IAAI,EAAE,qDAAqD;YACxF,kBAAkB;YAClB,gBAAgB;SACjB,CAAA;QACD,uBAAuB;QACvB,OAAO,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;IAChE,CAAC;IAED,6BAA6B,CAC3B,IAAU,EACV,aAAqB,EACrB,OAAiB;QASjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EAClB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAElD,2CAA2C;QAC3C,MAAM,uBAAuB,GAAG,WAAW,CACzC,YAAY,CAAC,eAAe,EAC5B,IAAI,CAAC,OAAO,CACb,CAAA;QACD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,OAAO,CAAA;QAE9D,mFAAmF;QACnF,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CACzD,uBAAuB,CAAC,GAAG,CAC5B,CAAA;QAED,oEAAoE;QACpE,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAE9D,uDAAuD;QACvD,MAAM,UAAU,GAAG;YACjB;gBACE,UAAU,EAAE,IAAI,CAAC,eAAe;gBAChC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACpB,aAAa,EAAE,CAAC,aAAa,CAAC;aAC/B;SACF,CAAA;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjD;YACE,uFAAuF;SACxF,EACD,CAAC,UAAU,CAAC,CACb,CAAA;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC5C,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAC9C,CAAC,CACF,CAAA;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QAClE,MAAM,kBAAkB,GACtB,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAA;QAElE,OAAO;YACL,QAAQ;YACR,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB,EAAE,IAAI,CAAC,KAAK;SAC7B,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAC7B,IAAU,EACV,aAAqB,EACrB,OAAiB;QAEjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QAEpE,0BAA0B;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAC3B,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,yBAAyB,CACvB,KAAY,EACZ,aAAqB,EACrB,OAAiB;QASjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EAClB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAEnD,+CAA+C;QAC/C,MAAM,mBAAmB,GAAG,WAAW,CACrC,YAAY,CAAC,mBAAmB,EAChC,KAAK,CAAC,OAAO,CACd,CAAA;QACD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,OAAO,CAAA;QAEtD,uFAAuF;QACvF,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CACrD,mBAAmB,CAAC,GAAG,CACxB,CAAA;QAED,2EAA2E;QAC3E,MAAM,cAAc,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAChE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QAE1D,iEAAiE;QACjE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACpD;YACE,8hBAA8hB;SAC/hB,EACD,CAAC,CAAC,YAAY,CAAC,CAAC,CACjB,CAAA;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC5C,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAA;QAEF,sBAAsB;QACtB,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAC9C,CAAC,CACF,CAAA;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QAClE,MAAM,kBAAkB,GACtB,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAA;QAElE,OAAO;YACL,QAAQ;YACR,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB,EAAE,UAAU;SAC7B,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,KAAY,EACZ,aAAqB,EACrB,OAAiB;QAEjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QAEjE,OAAO,IAAI,CAAC,iBAAiB,CAC3B,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,+BAA+B,CAC7B,GAAQ,EACR,KAAY,EACZ,OAAiB;QASjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EAClB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjD,uCAAuC;QACvC,MAAM,mBAAmB,GAAG,WAAW,CACrC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ;YAC9B,CAAC,CAAC,YAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,YAAY,CAAC,aAAa,EAC9B,GAAG,CAAC,OAAO,CACZ,CAAA;QACD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,OAAO,CAAA;QAEtD,+EAA+E;QAC/E,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CACrD,mBAAmB,CAAC,GAAG,CACxB,CAAA;QAED,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;QAE5E,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAC1D,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAChD,CAAA;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC5C,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,oBAAoB;YAC9B,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAC9C,CAAC,CACF,CAAA;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QACnE,MAAM,kBAAkB,GACtB,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAA;QAElE,OAAO;YACL,QAAQ;YACR,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB,EAAE,KAAK,CAAC,KAAK;SAC9B,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,2BAA2B,CAC/B,GAAQ,EACR,KAAY,EACZ,OAAiB;QAEjB,8BAA8B;QAC9B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EACjB,GAAG,IAAI,CAAC,+BAA+B,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAE7D,0BAA0B;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAC3B,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAY;QAChC,mEAAmE;QACnE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CACtC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,KAAK,CAClD,CAAA;QACD,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;YAC7C,OAAO,YAAY,CAAC,MAAM,CAAA;QAC5B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
|
package/dist/lib/entities.js
CHANGED
|
@@ -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({
|
package/dist/lib/entities.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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)
|
|
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":"AAAA,OAAO,EAKL,gBAAgB,EACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAiBtC,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAAa,EACb,WAAmB,EACnB,EAAU,EACV,SAA2B,gBAAgB,CAAC,IAAI;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,WAAW,KAAK,iBAAiB,WAAW,YAAY,EAAE,IAAI;YAC5D,IAAI,eAAe,CAAC;gBAClB,MAAM,EAAE,MAAM;aACf,CAAC,CACL,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;
|
|
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,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 @@
|
|
|
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.
|
|
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.
|
|
26
|
+
"decentraland-transactions": "^2.19.1",
|
|
27
27
|
"decentraland-ui": "^6.13.0",
|
|
28
|
-
"decentraland-ui2": "^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",
|