on master help sign in
roller-api: L1 spawn force sets spawn proxy
3b36a53tomholford
package-lock.json+3−3
@@ -7775,9 +7775,9 @@
7775 }
7775 }
7776 },
7776 },
7777 "@urbit/roller-api": {
7777 "@urbit/roller-api": {
7778− "version": "0.1.14",
7778+ "version": "0.1.15",
7779− "resolved": "https://registry.npmjs.org/@urbit/roller-api/-/roller-api-0.1.14.tgz",
7779+ "resolved": "https://registry.npmjs.org/@urbit/roller-api/-/roller-api-0.1.15.tgz",
7780− "integrity": "sha512-8I26tia2n6+7IbSl7pVhW7PSaDVFH+QA4Y4RJvgnYpdQDTpry4cXFynvsiTtlU5p97csBd+hXdNub7JDon4LKg==",
7780+ "integrity": "sha512-pP+XtpKOlSdx25+/lHPRtCihLSlVnOXLUk6igA2tCFMdo0cgrH1fCREoT3GlqkwhJQBq+VY08gnyD7Kn58i/Ug==",
7781 "requires": {
7781 "requires": {
7782 "@open-rpc/client-js": "1.7.1",
7782 "@open-rpc/client-js": "1.7.1",
7783 "@open-rpc/meta-schema": "1.14.2",
7783 "@open-rpc/meta-schema": "1.14.2",
package.json+1−1
@@ -32,7 +32,7 @@
32 "@types/styled-components": "^5.1.10",
32 "@types/styled-components": "^5.1.10",
33 "@types/styled-system": "^5.1.11",
33 "@types/styled-system": "^5.1.11",
34 "@types/styled-system__css": "^5.0.15",
34 "@types/styled-system__css": "^5.0.15",
35− "@urbit/roller-api": "^0.1.14",
35+ "@urbit/roller-api": "^0.1.15",
36 "@walletconnect/client": "^1.7.1",
36 "@walletconnect/client": "^1.7.1",
37 "@walletconnect/qrcode-modal": "^1.7.1",
37 "@walletconnect/qrcode-modal": "^1.7.1",
38 "@welldone-software/why-did-you-render": "^3.2.3",
38 "@welldone-software/why-did-you-render": "^3.2.3",
src/lib/useReticketL2Spawn.ts+2−1
@@ -110,7 +110,8 @@ export const useReticketL2Spawn = () => {
110 toWallet?.spawn?.keys?.address || to,
110 toWallet?.spawn?.keys?.address || to,
111 walletType,
111 walletType,
112 web3,
112 web3,
113− connector
113+ connector,
114+ true
114 );
115 );
115 },
116 },
116 [api, connector, walletType]
117 [api, connector, walletType]
src/lib/utils/debug.tsdeleted−7
@@ -1,7 +0,0 @@
1−import { isDevelopment } from 'lib/flags';
2−
3−export const debugLog = (msg: string) => {
4− if (isDevelopment) {
5− console.log(msg);
6− }
7−};
src/lib/utils/roller.ts+22−10
@@ -93,7 +93,8 @@ export const configureKeys = async (
93 walletType: symbol,
93 walletType: symbol,
94 web3: any,
94 web3: any,
95 connector: WalletConnect | null,
95 connector: WalletConnect | null,
96− breach?: boolean
96+ breach?: boolean,
97+ force: boolean = false
97) => {
98) => {
98 const from = {
99 const from = {
99 ship: point, //ship to configure keys
100 ship: point, //ship to configure keys
@@ -130,7 +131,7 @@ export const configureKeys = async (
130 web3,
131 web3,
131 connector
132 connector
132 );
133 );
133− return api.configureKeys(sig, from, wallet.address, data);
134+ return api.configureKeys(sig, force, from, wallet.address, data);
134};
135};
135
136
136export const transferPointRequest = async (
137export const transferPointRequest = async (
@@ -143,7 +144,8 @@ export const transferPointRequest = async (
143 walletType: symbol,
144 walletType: symbol,
144 web3: any,
145 web3: any,
145 connector: WalletConnect | null,
146 connector: WalletConnect | null,
146− reset?: boolean
147+ reset?: boolean,
148+ force: boolean = false
147) => {
149) => {
148 const from = {
150 const from = {
149 ship: pointToTransfer,
151 ship: pointToTransfer,
@@ -167,7 +169,7 @@ export const transferPointRequest = async (
167 connector
169 connector
168 );
170 );
169
171
170− return api.transferPoint(sig, from, wallet.address, data);
172+ return api.transferPoint(sig, force, from, wallet.address, data);
171};
173};
172
174
173const proxyType = (proxy: Proxy) => {
175const proxyType = (proxy: Proxy) => {
@@ -189,15 +191,16 @@ const setProxy = async (
189 sig: Signature,
191 sig: Signature,
190 from: From,
192 from: From,
191 address: EthAddress,
193 address: EthAddress,
192− data: AddressParams
194+ data: AddressParams,
195+ force: boolean = false
193) => {
196) => {
194 switch (proxyAddressType) {
197 switch (proxyAddressType) {
195 case 'manage':
198 case 'manage':
196− return await api.setManagementProxy(sig, from, address, data);
199+ return await api.setManagementProxy(sig, force, from, address, data);
197 case 'spawn':
200 case 'spawn':
198− return await api.setSpawnProxy(sig, from, address, data);
201+ return await api.setSpawnProxy(sig, force, from, address, data);
199 case 'transfer':
202 case 'transfer':
200− return await api.setTransferProxy(sig, from, address, data);
203+ return await api.setTransferProxy(sig, force, from, address, data);
201 default:
204 default:
202 throw new Error(`Unknown proxyType ${proxyAddressType}`);
205 throw new Error(`Unknown proxyType ${proxyAddressType}`);
203 }
206 }
@@ -213,7 +216,8 @@ export const registerProxyAddress = async (
213 address: string,
216 address: string,
214 walletType: symbol,
217 walletType: symbol,
215 web3: any,
218 web3: any,
216− connector: WalletConnect | null
219+ connector: WalletConnect | null,
220+ force?: boolean
217) => {
221) => {
218 const from = {
222 const from = {
219 ship: _point,
223 ship: _point,
@@ -233,7 +237,15 @@ export const registerProxyAddress = async (
233 connector
237 connector
234 );
238 );
235
239
240+ return setProxy(
241+ api,
236− return setProxy(api, proxyAddressType, sig, from, wallet.address, data);
242+ proxyAddressType,
243+ sig,
244+ from,
245+ wallet.address,
246+ data,
247+ force
248+ );
237};
249};
238
250
239const getDataAndMethod = (args: L2TransactionArgs) => {
251const getDataAndMethod = (args: L2TransactionArgs) => {
src/views/UrbitID/ResetKeys/ResetExecute.tsx+16−23
@@ -26,7 +26,6 @@ import { RestartButton, ForwardButton } from 'components/Buttons';
26import WarningBox from 'components/WarningBox';
26import WarningBox from 'components/WarningBox';
27import LoadingBar from 'components/LoadingBar';
27import LoadingBar from 'components/LoadingBar';
28import NeedFundsNotice from 'components/NeedFundsNotice';
28import NeedFundsNotice from 'components/NeedFundsNotice';
29−import { debugLog } from 'lib/utils/debug';
30import { ReticketProgressCallback } from 'lib/types/L2Transaction';
29import { ReticketProgressCallback } from 'lib/types/L2Transaction';
31
30
32const labelForProgress = (progress: number) => {
31const labelForProgress = (progress: number) => {
@@ -100,8 +99,6 @@ export default function ResetExecute({
100 setWalletType(WALLET_TYPES.TICKET);
99 setWalletType(WALLET_TYPES.TICKET);
101 setUrbitWallet(Just(newWallet.value.wallet));
100 setUrbitWallet(Just(newWallet.value.wallet));
102 // (implicit) pointCursor stays the same
101 // (implicit) pointCursor stays the same
103− // TODO: do we need to update the point?
104− // await getAndUpdatePoint(point);
105 // redirect to point
102 // redirect to point
106 popTo(names.POINT);
103 popTo(names.POINT);
107 }, [
104 }, [
@@ -154,7 +151,6 @@ export default function ResetExecute({
154 try {
151 try {
155 // if L1 point with migrated spawn proxy (dominion = 'spawn')
152 // if L1 point with migrated spawn proxy (dominion = 'spawn')
156 if (l2point.dominion === POINT_DOMINIONS.SPAWN) {
153 if (l2point.dominion === POINT_DOMINIONS.SPAWN) {
157− debugLog('reticketing L1 point with dominion spawn...');
158 await performL2SpawnReticket({
154 await performL2SpawnReticket({
159 fromWallet: need.wallet(wallet),
155 fromWallet: need.wallet(wallet),
160 fromWalletType: walletType,
156 fromWalletType: walletType,
@@ -170,10 +166,8 @@ export default function ResetExecute({
170 txnSigner,
166 txnSigner,
171 txnSender,
167 txnSender,
172 });
168 });
173− debugLog('done');
174 // If L2 point
169 // If L2 point
175 } else if (isL2) {
170 } else if (isL2) {
176− debugLog('reticketing L2 point ...');
177 await performL2Reticket({
171 await performL2Reticket({
178 point,
172 point,
179 to: newWallet.value.wallet.ownership.keys.address,
173 to: newWallet.value.wallet.ownership.keys.address,
@@ -182,24 +176,23 @@ export default function ResetExecute({
182 fromWallet: need.wallet(wallet),
176 fromWallet: need.wallet(wallet),
183 onUpdate: handleUpdate,
177 onUpdate: handleUpdate,
184 });
178 });
185− debugLog('done');
186 // Fallback to L1 point flow
179 // Fallback to L1 point flow
187− } else debugLog('reticketing L1 point ...');
180+ } else {
188− await reticketPointBetweenWallets({
181+ await reticketPointBetweenWallets({
189− fromWallet: need.wallet(wallet),
182+ fromWallet: need.wallet(wallet),
190− fromWalletType: walletType,
183+ fromWalletType: walletType,
191− fromWalletHdPath: walletHdPath,
184+ fromWalletHdPath: walletHdPath,
192− toWallet: newWallet.value.wallet,
185+ toWallet: newWallet.value.wallet,
193− point: point,
186+ point: point,
194− web3: need.web3(web3),
187+ web3: need.web3(web3),
195− contracts: need.contracts(contracts),
188+ contracts: need.contracts(contracts),
196− networkType,
189+ networkType,
197− onUpdate: handleUpdate,
190+ onUpdate: handleUpdate,
198− nextRevision: networkRevision + 1,
191+ nextRevision: networkRevision + 1,
199− txnSigner,
192+ txnSigner,
200− txnSender,
193+ txnSender,
201− });
194+ });
202− debugLog('done');
195+ }
203 } catch (err) {
196 } catch (err) {
204 console.error(err);
197 console.error(err);
205 setGeneralError(err);
198 setGeneralError(err);