on master help sign in
roller: add getPoints
commit80b4554fa2f6a712dfc1cc7425fb74e012e95c51 authoryosoyubik <yosoyubik@gmail.com> dateFri 27 Aug 2021, 15:52 (5 years ago) parent0bb8c69
5 files changed+46−14
package-lock.json+3−3 package.json+2−2 src/azimuth-js.d.ts+2 src/lib/useRoller.ts+30−2 src/store/lib/useControlledPointsStore.js+9−7
package-lock.json+3−3
@@ -8932,9 +8932,9 @@
89328932 }
89338933 },
89348934 "@urbit/roller-api": {
8935− "version": "0.1.3",
8936− "resolved": "https://registry.npmjs.org/@urbit/roller-api/-/roller-api-0.1.3.tgz",
8937− "integrity": "sha512-3h+xeQWvLB2zIIBIZtdbNQkDGwy0bBuSMur5kpxXp3u/o8yH92VlC0+Xb9njW3vCS9AEToLsQwtTfs66+yaGYg==",
8935+ "version": "0.1.4",
8936+ "resolved": "https://registry.npmjs.org/@urbit/roller-api/-/roller-api-0.1.4.tgz",
8937+ "integrity": "sha512-WROGstKI0o5A/9qtegCuWG1WfOBu6HSZpmwFcJXOQBLQ8djcjULhk1gN3eeC2U9UVdd0euGx7nXCZ9NUMXUtxw==",
89388938 "requires": {
89398939 "@open-rpc/client-js": "1.7.0",
89408940 "@open-rpc/meta-schema": "1.14.2",
package.json+2−2
@@ -32,7 +32,7 @@
3232 "@types/styled-components": "^5.1.10",
3333 "@types/styled-system": "^5.1.11",
3434 "@types/styled-system__css": "^5.0.15",
35− "@urbit/roller-api": "^0.1.3",
35+ "@urbit/roller-api": "^0.1.4",
3636 "@walletconnect/client": "^1.6.2",
3737 "@walletconnect/qrcode-modal": "^1.6.2",
3838 "@welldone-software/why-did-you-render": "^3.2.3",
@@ -115,7 +115,7 @@
115115 "pilot-mainnet": "REACT_APP_MAINNET=true HTTPS=true npm-run-all start --continue-on-error",
116116 "pilot-release": "WITH_TEST_STATE=STAR_RELEASE npm run pilot",
117117 "pilot-residents": "WITH_TEST_STATE=RESIDENTS npm run pilot",
118− "pilot-l2": "WITH_TEST_STATE=L2 HTTPS=false NODE_ENV=development npm run pilot",
118+ "pilot-l2": "BROWSER=NONE WITH_TEST_STATE=L2 HTTPS=false NODE_ENV=development npm-run-all pilot:setup start pilot:cleanup --continue-on-error",
119119 "pilot-ropsten": "REACT_APP_ROPSTEN=true HTTPS=true npm-run-all start --continue-on-error",
120120 "pilot:cleanup": "pkill -f ganache-cli",
121121 "lint:check": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
src/azimuth-js.d.tsnew file+2
@@ -0,0 +1,2 @@
1+// azimuth-js.d.ts
2+declare module 'azimuth-js';
src/lib/useRoller.ts+30−2
@@ -1,5 +1,12 @@
11import { useCallback, useEffect, useMemo, useState } from 'react';
2−import { Config, RollerRPCAPI, Options } from '@urbit/roller-api';
2+import {
3+ Config,
4+ Ship,
5+ Proxy,
6+ RollerRPCAPI,
7+ Options,
8+ EthAddress,
9+} from '@urbit/roller-api';
310import { isDevelopment, isRopsten } from './flags';
411import { ROLLER_HOSTS } from './constants';
512
@@ -13,7 +20,7 @@ export default function useRoller() {
1320 : isDevelopment
1421 ? ROLLER_HOSTS.LOCAL
1522 : ROLLER_HOSTS.MAINNET;
16− const port = 80;
23+ const port = isDevelopment ? 8080 : 80;
1724 const path = '/v1/roller';
1825
1926 return {
@@ -45,6 +52,26 @@ export default function useRoller() {
4552 });
4653 }, [api]);
4754
55+ const getPoints = useCallback(
56+ async (proxy: Proxy, address: EthAddress) => {
57+ const points: Ship[] =
58+ proxy === 'own'
59+ ? await api.getOwnedPoints(address)
60+ : proxy === 'mange'
61+ ? await api.getManagerFor(address)
62+ : proxy === 'vote'
63+ ? await api.getVotingFor(address)
64+ : proxy === 'transfer'
65+ ? await api.getTransferringFor(address)
66+ : proxy === 'spawn'
67+ ? await api.getSpawningFor(address)
68+ : [];
69+
70+ return points;
71+ },
72+ [api]
73+ );
74+
4875 // On load, get initial config
4976 useEffect(() => {
5077 if (config) {
@@ -56,5 +83,6 @@ export default function useRoller() {
5683
5784 return {
5885 config,
86+ getPoints,
5987 };
6088}
src/store/lib/useControlledPointsStore.js+9−7
@@ -1,14 +1,16 @@
11import { useState, useEffect, useCallback } from 'react';
22import { Just, Nothing } from 'folktale/maybe';
33import Result from 'folktale/result';
4−import * as azimuth from 'azimuth-js';
54
65import { useNetwork } from '../network';
76import { useWallet } from 'store/wallet';
7+import useRoller from 'lib/useRoller';
88
99export default function useControlledPointsStore() {
1010 const { contracts } = useNetwork();
1111 const { wallet } = useWallet();
12+ const { getPoints } = useRoller();
13+
1214 const [controlledPoints, _setControlledPoints] = useState(Nothing());
1315
1416 const syncControlledPoints = useCallback(async () => {
@@ -30,11 +32,11 @@ export default function useControlledPointsStore() {
3032 votingPoints,
3133 spawningPoints,
3234 ] = await Promise.all([
33− azimuth.azimuth.getOwnedPoints(_contracts, address),
34− azimuth.azimuth.getTransferringFor(_contracts, address),
35− azimuth.azimuth.getManagerFor(_contracts, address),
36− azimuth.azimuth.getVotingFor(_contracts, address),
37− azimuth.azimuth.getSpawningFor(_contracts, address),
35+ getPoints('own', address),
36+ getPoints('transfer', address),
37+ getPoints('manage', address),
38+ getPoints('vote', address),
39+ getPoints('spawn', address),
3840 ]);
3941
4042 if (
@@ -64,7 +66,7 @@ export default function useControlledPointsStore() {
6466 console.error('failed to fetch controlled points', error);
6567 _setControlledPoints(Just(Result.Error(error)));
6668 }
67− }, [contracts, wallet]);
69+ }, [contracts, wallet, getPoints]);
6870
6971 // sync controlled points whenever wallet or contracts changes
7072 useEffect(() => {