Skip to content

Commit

Permalink
feat: feesReceiver and partners from server/contract
Browse files Browse the repository at this point in the history
  • Loading branch information
franciscotobar committed Nov 14, 2022
1 parent d30294a commit 61d40f2
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 59 deletions.
3 changes: 0 additions & 3 deletions .env.qa
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ REACT_APP_CONTRACTS_DEPLOY_VERIFIER=0x1A92e1061791658dA9dCF94749de317B86F341A4
REACT_APP_CONTRACTS_RELAY_VERIFIER=0x36cEd034CaEc41cD4f19949B5BbeB52f091bbC77
REACT_APP_CONTRACTS_SMART_WALLET_FACTORY=0x79C7701aEb19c0D33CAC9d8b528a76162D2Ea276
REACT_APP_CONTRACTS_SMART_WALLET=0x8aA7fC30C712aD550Fea30F75834E948615A82Ee
REACT_APP_CONTRACTS_RELAY_WORKER=0x50f072699dcdf567e60c053cc48fa5a4f3cb9236
REACT_APP_CONTRACTS_COLLECTOR=0xcf243FB47B0DCDB66680a7307006d9f94A65f82C
REACT_APP_CONTRACTS_PARTNERS="0xD27eE084157342438D3e3709784fAc92cC984931,0x1b5449Ca10E7a23BD2EfbE6cc8E807C87D022250,0xDe199c66f49B34EF09655Af839A0BfD7775D50cd,0xD69C69F0cdc6c83E43C08F9Fa5784000c2f939F1"

REACT_APP_RIF_RELAY_CHAIN_ID=31
REACT_APP_RIF_RELAY_GAS_PRICE_FACTOR_PERCENT=0
Expand Down
3 changes: 0 additions & 3 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ REACT_APP_CONTRACTS_DEPLOY_VERIFIER=0x8921BF2f074b5470c02Cc7473F17282576111591
REACT_APP_CONTRACTS_RELAY_VERIFIER=0xC9dB73F54D43479b1a67DB2284bCFed17b0A13c2
REACT_APP_CONTRACTS_SMART_WALLET_FACTORY=0xb824784A5bF2Bc7139d1786639444e4Da259934B
REACT_APP_CONTRACTS_SMART_WALLET=0x20804b7317D2F4d0d2123f30c2D3A6B0E33DfB37
REACT_APP_CONTRACTS_RELAY_WORKER=0x60c79373d8e46e97da9d3a73047bdf479125466c
REACT_APP_CONTRACTS_COLLECTOR=0x9957A338858bc941dA9D0ED2ACBCa4F16116B836
REACT_APP_CONTRACTS_PARTNERS="0x7986b3DF570230288501EEa3D890bd66948C9B79,0x0a3aA774752ec2042c46548456c094A76C7F3a79,0xCF7CDBbB5F7BA79d3ffe74A0bBA13FC0295F6036,0x39B12C05E8503356E3a7DF0B7B33efA4c054C409"

REACT_APP_RIF_RELAY_CHAIN_ID=33
REACT_APP_RIF_RELAY_GAS_PRICE_FACTOR_PERCENT=0
Expand Down
35 changes: 13 additions & 22 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import PartnerBalances from './components/PartnerBalances';
import { useStore } from './context/context';
import TransactionHistory from './modals/TransactionHistory';
import Validate from './modals/Validate';
import { Partner, SmartWalletWithBalance } from './types';
import { Partner, SmartWalletWithBalance } from './types';

if (window.ethereum) {
window.web3 = new Web3(window.ethereum);
Expand All @@ -39,27 +39,6 @@ function App() {
const { state, dispatch } = useStore();
const { chainId, account, loader, connected, provider, token } = state;

useEffect(() => {
const workerAddr = process.env.REACT_APP_CONTRACTS_RELAY_WORKER!;
const collectorAddr = process.env.REACT_APP_CONTRACTS_COLLECTOR;
const partnerAddresses = Utils.getPartners();
const partners = partnerAddresses
? partnerAddresses.map<Partner>((address) => ({
address,
balance: '0'
}))
: [];

dispatch({
type: 'set_partners',
worker: { address: workerAddr, balance: '0' },
collector: collectorAddr
? { address: collectorAddr, balance: '0' }
: undefined,
partners
});
}, []);

const initProvider = async () => {
try {
const config: Partial<EnvelopingConfig> = {
Expand Down Expand Up @@ -110,6 +89,18 @@ function App() {
loglevel: 1
});
dispatch({ type: 'set_provider', provider: relayingServices });
const [feesReceiverAddress, ...partnerAddresses] = await relayingServices.getPartners();
const partners = partnerAddresses
? partnerAddresses.map<Partner>((address) => ({
address,
balance: '0'
}))
: [];
dispatch({
type: 'set_partners',
feesReceiver: { address: feesReceiverAddress, balance: '0' },
partners
});
} catch (error) {
console.error(error);
}
Expand Down
5 changes: 0 additions & 5 deletions src/Utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,11 +167,6 @@ class Utils {
static getTransactionKey(chainId: number, address: string): string {
return `${chainId}.${address}`;
}

static getPartners(): Array<string> | undefined {
const partnerEnvVar = process.env.REACT_APP_CONTRACTS_PARTNERS;
return partnerEnvVar ? partnerEnvVar.split(',') : undefined;
}
}

export default Utils;
13 changes: 3 additions & 10 deletions src/components/PartnerBalances.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,18 @@ function PartnerBalance({ label, balance, symbol }: PartnerBalanceProp) {
function PartnerBalances() {
const { state } = useStore();

const { worker, collector, partners, token } = state;
const { feesReceiver, partners, token } = state;

return (
<ul className='collection with-header' style={{ textAlign: 'left' }}>
<li className='collection-header'>
<h4>Balances</h4>
</li>
<PartnerBalance
label='Worker'
balance={worker!.balance}
label='Fees Receiver'
balance={feesReceiver!.balance}
symbol={token!.symbol!}
/>
{collector && (
<PartnerBalance
label='Collector'
balance={collector.balance}
symbol={token!.symbol!}
/>
)}
{partners &&
partners.map((partner, index) => (
<PartnerBalance
Expand Down
18 changes: 8 additions & 10 deletions src/context/context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ const initialState: State = {
validate: false
},
smartWallets: [],
worker: undefined,
collector: undefined,
feesReceiver: undefined,
partners: []
};

Expand All @@ -42,7 +41,7 @@ const Context = createContext<{ state: State; dispatch: Dispatch } | undefined>(
function StoreProvider({ children }: ProviderProps) {
const [state, dispatch] = useReducer(StoreReducer, initialState);

const { smartWallets, token, reload, worker, collector, partners } = state;
const { smartWallets, token, reload, feesReceiver, partners } = state;

const getSmartWalletBalance = async (
smartWallet: SmartWalletWithBalance
Expand Down Expand Up @@ -92,23 +91,22 @@ function StoreProvider({ children }: ProviderProps) {
};

const refreshPartnersBalances = useCallback(async () => {
if (worker && token) {
if (feesReceiver && token) {
let localPartners: Partner[];
if (collector) {
localPartners = [worker, collector, ...partners];
if (feesReceiver) {
localPartners = [feesReceiver, ...partners];
} else {
localPartners = [worker];
localPartners = [feesReceiver];
}
const updatedBalances = await Promise.all(
localPartners.map((partner) =>
getPartnerBalance(partner.address)
)
);
const [newWorker, newCollector, ...newPartners] = updatedBalances;
const [newFeesReceiver, ...newPartners] = updatedBalances;
dispatch({
type: 'set_partners',
worker: newWorker,
collector: newCollector,
feesReceiver: newFeesReceiver,
partners: newPartners
});
}
Expand Down
3 changes: 1 addition & 2 deletions src/context/reducer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ const StoreReducer = (state: State, action: Action) => {
case SET_PARTNERS_ACTION:
return {
...state,
worker: action.worker,
collector: action.collector,
feesReceiver: action.feesReceiver,
partners: action.partners
};
default:
Expand Down
6 changes: 2 additions & 4 deletions src/context/types.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ export type Action =
}
| {
type: typeof SET_PARTNERS_ACTION;
worker: Partner;
collector: Partner | undefined;
feesReceiver: Partner;
partners: Partner[];
};

Expand All @@ -69,7 +68,6 @@ export type State = {
reloadToken: boolean;
modals: Modals;
smartWallets: SmartWalletWithBalance[];
worker: Partner | undefined;
collector: Partner | undefined;
feesReceiver: Partner | undefined;
partners: Partner[];
};

0 comments on commit 61d40f2

Please sign in to comment.