on master help sign in
Merge pull request #138 from urbit/keyfile-fix

Ensure we generate the keyfile for latest-set keys

commit883c00b98c1841752b1e0ff2bd62744f0da0ab0a authorFang <Fang-@users.noreply.github.com> dateFri 17 May 2019, 10:30 (7 years ago) parent9128082bacec7e
6 files changed+31−42
package-lock.json+17−36 package.json+1−1 src/bridge/Bridge.js+5−2 src/bridge/components/StatelessTransaction.js+3−2 src/bridge/views/GenKeyfile.js+4−1 src/bridge/views/SetKeys.js+1
package-lock.json+17−36
@@ -1994,47 +1994,28 @@
19941994 }
19951995 },
19961996 "azimuth-js": {
1997− "version": "0.10.0",
1998− "resolved": "https://registry.npmjs.org/azimuth-js/-/azimuth-js-0.10.0.tgz",
1999− "integrity": "sha512-VDg60BYSpTjsv1K/DX7VY5F0HbxHV0X1cSoG3c1iZYH5Lxy8TErYq4CJ+D6er0xtI7JI3hmKOZS+p+ru42sT3A==",
1997+ "version": "0.13.2",
1998+ "resolved": "https://registry.npmjs.org/azimuth-js/-/azimuth-js-0.13.2.tgz",
1999+ "integrity": "sha512-DiteSHZTqst5Ikf5yoOetnU7MIE/El5JIuO9FjyaQHWPYA8ECB4XUaZJCl4VfScnAzzP1YCnORXz/mtVn2D9ng==",
20002000 "requires": {
2001− "azimuth-solidity": "1.0.2",
2002− "ethereumjs-util": "^5.2.0",
2003− "web3": "1.0.0-beta.33"
2001+ "azimuth-solidity": "1.1.0",
2002+ "ethereumjs-util": "^5.2.0"
20042003 },
20052004 "dependencies": {
2006− "bn.js": {
2007− "version": "4.11.6",
2008− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
2009− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
2010− },
2011− "web3": {
2012− "version": "1.0.0-beta.33",
2013− "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.33.tgz",
2014− "integrity": "sha1-xgIbV2mSdyY3HBhLhoRFMRsTkpU=",
2015− "requires": {
2016− "web3-bzz": "1.0.0-beta.33",
2017− "web3-core": "1.0.0-beta.33",
2018− "web3-eth": "1.0.0-beta.33",
2019− "web3-eth-personal": "1.0.0-beta.33",
2020− "web3-net": "1.0.0-beta.33",
2021− "web3-shh": "1.0.0-beta.33",
2022− "web3-utils": "1.0.0-beta.33"
2005+ "azimuth-solidity": {
2006+ "version": "1.1.0",
2007+ "resolved": "https://registry.npmjs.org/azimuth-solidity/-/azimuth-solidity-1.1.0.tgz",
2008+ "integrity": "sha512-YhVWKql1ZZ9Zae96nYA7QLwQlTzGspkNOErq170sl/UJwncQbvAyibSv+heMaS18n4soPDiRSpa1vHFoGoIX1A==",
2009+ "requires": {
2010+ "babel-polyfill": "^6.26.0",
2011+ "babel-register": "^6.26.0",
2012+ "openzeppelin-solidity": "1.12.0",
2013+ "truffle": "4.1.11"
20232014 },
20242015 "dependencies": {
2025− "web3-utils": {
2026− "version": "1.0.0-beta.33",
2027− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
2028− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
2029− "requires": {
2030− "bn.js": "4.11.6",
2031− "eth-lib": "0.1.27",
2032− "ethjs-unit": "0.1.6",
2033− "number-to-bn": "1.7.0",
2034− "randomhex": "0.1.5",
2035− "underscore": "1.8.3",
2036− "utf8": "2.1.1"
2037− }
2016+ "openzeppelin-solidity": {
2017+ "version": "1.12.0",
2018+ "bundled": true
20382019 }
20392020 }
20402021 }
package.json+1−1
@@ -17,7 +17,7 @@
1717 "@ledgerhq/hw-app-eth": "^4.35.0",
1818 "@ledgerhq/hw-transport-u2f": "^4.35.0",
1919 "PaperCollateralRenderer": "github:urbit/PaperCollateralRenderer",
20− "azimuth-js": "^0.10.0",
20+ "azimuth-js": "^0.13.2",
2121 "azimuth-solidity": "1.0.2",
2222 "babel-polyfill": "^6.26.0",
2323 "bip32": "^1.0.2",
src/bridge/Bridge.js+5−2
@@ -190,9 +190,10 @@ class Bridge extends React.Component {
190190 }
191191 }
192192
193− setNetworkSeedCache(networkSeed) {
193+ setNetworkSeedCache(networkSeed, revision) {
194194 this.setState({
195− networkSeedCache: networkSeed
195+ networkSeedCache: networkSeed,
196+ networkRevisionCache: revision
196197 })
197198 }
198199
@@ -263,6 +264,7 @@ class Bridge extends React.Component {
263264 urbitWallet,
264265 authMnemonic,
265266 networkSeedCache,
267+ networkRevisionCache,
266268 pointCursor,
267269 pointCache,
268270 txnHashCursor,
@@ -316,6 +318,7 @@ class Bridge extends React.Component {
316318 pointCursor={ pointCursor }
317319 pointCache={ pointCache }
318320 networkSeedCache= { networkSeedCache }
321+ networkRevisionCache={ networkRevisionCache }
319322 setNetworkSeedCache= { this.setNetworkSeedCache }
320323 // txn
321324 setTxnHashCursor={ this.setTxnHashCursor }
src/bridge/components/StatelessTransaction.js+3−2
@@ -93,8 +93,9 @@ class StatelessTransaction extends React.Component {
9393 props.setTxnHashCursor(sent)
9494 props.popRoute()
9595
96− if (props.networkSeed) {
97− props.setNetworkSeedCache(props.networkSeed)
96+ //TODO this special logic should live in a handler in SetKeys.
97+ if (props.networkSeed && props.newRevision) {
98+ props.setNetworkSeedCache(props.networkSeed, props.newRevision)
9899 props.pushRoute(ROUTE_NAMES.SENT_TRANSACTION, {promptKeyfile: true})
99100 } else {
100101 props.pushRoute(ROUTE_NAMES.SENT_TRANSACTION)
src/bridge/views/GenKeyfile.js+4−1
@@ -40,7 +40,10 @@ class GenKeyfile extends React.Component {
4040 ? pointCache[point]
4141 : (() => { throw BRIDGE_ERROR.MISSING_POINT })()
4242
43− const revision = parseInt(pointDetails.keyRevisionNumber)
43+ // in case we did SetKeys earlier this session, make sure to generate the
44+ // newer keyfile, rather than the one that will expire soon
45+ const revision = (this.props.networkRevisionCache ||
46+ parseInt(pointDetails.keyRevisionNumber));
4447
4548 return {
4649 point,
src/bridge/views/SetKeys.js+1
@@ -210,6 +210,7 @@ class SetKeys extends React.Component {
210210 canGenerate={ canGenerate }
211211 createUnsignedTxn={this.createUnsignedTxn}
212212 networkSeed={ state.networkSeed }
213+ newRevision={ (parseInt(pointDetails.keyRevisionNumber) + 1) }
213214 setNetworkSeedCache={ props.setNetworkSeedCache } />
214215
215216 </Col>