@ethereansos/interfaces-core 0.4.118 → 0.4.121

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.cjs.js CHANGED
@@ -23758,46 +23758,107 @@ var URL_REGEXP = new RegExp('(http://www.|https://www.|http://|https://)?[a-z0-9
23758
23758
  var solidityImportRule = new RegExp('import( )+"(\\d+)"( )*;', 'gs');
23759
23759
  var pragmaSolidityRule = new RegExp('pragma( )+solidity( )*(\\^|>)\\d+.\\d+.\\d+;', 'gs');
23760
23760
 
23761
- function sendAsync(provider, method) {
23762
- var params = Array.prototype.slice.call(arguments).slice(2) || [];
23763
- return new Promise( /*#__PURE__*/function () {
23764
- var _ref = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee(ok, ko) {
23765
- return regeneratorRuntime.wrap(function _callee$(_context) {
23766
- while (1) {
23767
- switch (_context.prev = _context.next) {
23768
- case 0:
23769
- _context.prev = 0;
23770
- _context.next = 3;
23771
- return (provider.sendAsync || provider.send).call(provider, {
23772
- jsonrpc: '2.0',
23773
- method: method,
23774
- params: params,
23775
- id: new Date().getTime()
23776
- }, function (error, response) {
23777
- return error || response && response.error ? ko(error || response && response.error) : ok(response && response.result);
23778
- });
23761
+ var instrumentedProviders = {};
23779
23762
 
23780
- case 3:
23781
- _context.next = 8;
23763
+ function sendAsync(_x, _x2) {
23764
+ return _sendAsync.apply(this, arguments);
23765
+ }
23766
+
23767
+ function _sendAsync() {
23768
+ _sendAsync = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(inputProvider, method) {
23769
+ var provider,
23770
+ chainId,
23771
+ _ref,
23772
+ chainProvider,
23773
+ params,
23774
+ _args2 = arguments;
23775
+
23776
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
23777
+ while (1) {
23778
+ switch (_context2.prev = _context2.next) {
23779
+ case 0:
23780
+ provider = inputProvider;
23781
+
23782
+ if (!(method !== 'eth_chainId')) {
23783
+ _context2.next = 12;
23782
23784
  break;
23785
+ }
23783
23786
 
23784
- case 5:
23785
- _context.prev = 5;
23786
- _context.t0 = _context["catch"](0);
23787
- return _context.abrupt("return", ko(_context.t0));
23787
+ _context2.t0 = provider.chainId;
23788
23788
 
23789
- case 8:
23790
- case "end":
23791
- return _context.stop();
23792
- }
23793
- }
23794
- }, _callee, null, [[0, 5]]);
23795
- }));
23789
+ if (_context2.t0) {
23790
+ _context2.next = 9;
23791
+ break;
23792
+ }
23796
23793
 
23797
- return function (_x, _x2) {
23798
- return _ref.apply(this, arguments);
23799
- };
23800
- }());
23794
+ _context2.t1 = parseInt;
23795
+ _context2.next = 7;
23796
+ return sendAsync(provider, 'eth_chainId');
23797
+
23798
+ case 7:
23799
+ _context2.t2 = _context2.sent;
23800
+ _context2.t0 = (0, _context2.t1)(_context2.t2);
23801
+
23802
+ case 9:
23803
+ chainId = provider.chainId = _context2.t0;
23804
+ _ref = sendAsync.context || {
23805
+ chainProvider: {}
23806
+ }, chainProvider = _ref.chainProvider;
23807
+ provider = chainProvider[chainId] ? instrumentedProviders[chainId] = instrumentedProviders[chainId] || new Web3__default["default"].providers.HttpProvider(chainProvider[chainId]) : provider;
23808
+
23809
+ case 12:
23810
+ params = Array.prototype.slice.call(_args2).slice(2) || [];
23811
+ _context2.next = 15;
23812
+ return new Promise( /*#__PURE__*/function () {
23813
+ var _ref2 = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee(ok, ko) {
23814
+ return regeneratorRuntime.wrap(function _callee$(_context) {
23815
+ while (1) {
23816
+ switch (_context.prev = _context.next) {
23817
+ case 0:
23818
+ _context.prev = 0;
23819
+ _context.next = 3;
23820
+ return (provider.request || provider.sendAsync || provider.send).call(provider, {
23821
+ jsonrpc: '2.0',
23822
+ method: method,
23823
+ params: params,
23824
+ id: new Date().getTime()
23825
+ }, function (error, response) {
23826
+ return error || response && response.error ? ko(error || response && response.error) : ok(response && response.result);
23827
+ });
23828
+
23829
+ case 3:
23830
+ _context.next = 8;
23831
+ break;
23832
+
23833
+ case 5:
23834
+ _context.prev = 5;
23835
+ _context.t0 = _context["catch"](0);
23836
+ return _context.abrupt("return", ko(_context.t0));
23837
+
23838
+ case 8:
23839
+ case "end":
23840
+ return _context.stop();
23841
+ }
23842
+ }
23843
+ }, _callee, null, [[0, 5]]);
23844
+ }));
23845
+
23846
+ return function (_x3, _x4) {
23847
+ return _ref2.apply(this, arguments);
23848
+ };
23849
+ }());
23850
+
23851
+ case 15:
23852
+ return _context2.abrupt("return", _context2.sent);
23853
+
23854
+ case 16:
23855
+ case "end":
23856
+ return _context2.stop();
23857
+ }
23858
+ }
23859
+ }, _callee2);
23860
+ }));
23861
+ return _sendAsync.apply(this, arguments);
23801
23862
  }
23802
23863
 
23803
23864
  /**
@@ -48776,6 +48837,7 @@ var useEthosContext = function useEthosContext() {
48776
48837
  return context;
48777
48838
  };
48778
48839
 
48840
+ var abi$8 = new AbiCoder();
48779
48841
  var Web3Context = /*#__PURE__*/React__default["default"].createContext('web3');
48780
48842
  var DEFAULT_BLOCK_INTERVAL = 15;
48781
48843
  var DEFAULT_BLOCK_INTERVAL_TIMEOUT = 40000;
@@ -48789,6 +48851,7 @@ var useWeb3 = function useWeb3() {
48789
48851
  };
48790
48852
  var Web3ContextProvider = function Web3ContextProvider(props) {
48791
48853
  var context = useEthosContext();
48854
+ sendAsync.context = sendAsync.context || context;
48792
48855
  var connectors = context.useWalletSettings.reduce(function (acc, connector) {
48793
48856
  return _objectSpread2(_objectSpread2({}, acc), _defineProperty({}, connector.id, _objectSpread2(_objectSpread2({}, connector.settings), {}, {
48794
48857
  buttonText: connector.buttonText
@@ -48866,8 +48929,8 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
48866
48929
 
48867
48930
  var _useState23 = React.useState(null),
48868
48931
  _useState24 = _slicedToArray(_useState23, 2),
48869
- dualProvider = _useState24[0],
48870
- setDualProvider = _useState24[1];
48932
+ dualChainWeb3 = _useState24[0],
48933
+ setDualChainWeb3 = _useState24[1];
48871
48934
 
48872
48935
  React.useEffect(function () {
48873
48936
  setIpfsHttpClient(ipfsHttpClient.create(context.ipfsHost));
@@ -48919,19 +48982,69 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
48919
48982
  return _ref2.apply(this, arguments);
48920
48983
  };
48921
48984
  }(), [realBlockInterval]);
48985
+ var tryUpdateDualChainBlock = React.useCallback( /*#__PURE__*/function () {
48986
+ var _ref3 = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(web3, oldValue, setter, force) {
48987
+ var currentBlockNumber;
48988
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
48989
+ while (1) {
48990
+ switch (_context2.prev = _context2.next) {
48991
+ case 0:
48992
+ if (web3 !== null && web3 !== void 0 && web3.currentProvider) {
48993
+ _context2.next = 2;
48994
+ break;
48995
+ }
48996
+
48997
+ return _context2.abrupt("return", setter(0));
48998
+
48999
+ case 2:
49000
+ _context2.prev = 2;
49001
+ _context2.next = 5;
49002
+ return sendAsync(web3.currentProvider, 'eth_call', {
49003
+ to: '0x4200000000000000000000000000000000000013',
49004
+ data: web3Utils__default["default"].sha3('getL1BlockNumber()').substring(0, 10)
49005
+ });
49006
+
49007
+ case 5:
49008
+ currentBlockNumber = _context2.sent;
49009
+ currentBlockNumber = abi$8.decode(['uint256'], currentBlockNumber)[0].toString();
49010
+ currentBlockNumber = parseInt(currentBlockNumber);
49011
+
49012
+ if (force === true || currentBlockNumber - oldValue >= realBlockInterval) {
49013
+ setter(currentBlockNumber);
49014
+ }
49015
+
49016
+ _context2.next = 13;
49017
+ break;
49018
+
49019
+ case 11:
49020
+ _context2.prev = 11;
49021
+ _context2.t0 = _context2["catch"](2);
49022
+
49023
+ case 13:
49024
+ case "end":
49025
+ return _context2.stop();
49026
+ }
49027
+ }
49028
+ }, _callee2, null, [[2, 11]]);
49029
+ }));
49030
+
49031
+ return function (_x5, _x6, _x7, _x8) {
49032
+ return _ref3.apply(this, arguments);
49033
+ };
49034
+ }(), [realBlockInterval]);
48922
49035
  var resetBlockInterval = React.useCallback(function () {
48923
49036
  intervalId && clearInterval(intervalId);
48924
49037
  tryUpdateBlock(wallet === null || wallet === void 0 ? void 0 : wallet.ethereum, block, setBlock, true);
48925
- tryUpdateBlock(dualProvider, dualBlock, setDualBlock, true);
49038
+ tryUpdateDualChainBlock(dualChainWeb3 && (wallet === null || wallet === void 0 ? void 0 : wallet.ethereum), dualBlock, setDualBlock, true);
48926
49039
 
48927
- if (wallet && wallet.ethereum || dualProvider) {
49040
+ if (wallet && wallet.ethereum || dualChainWeb3) {
48928
49041
  setIntervalId(setInterval(function () {
48929
49042
  wallet && wallet.ethereum && tryUpdateBlock(wallet.ethereum, block, setBlock);
48930
- dualProvider && tryUpdateBlock(dualProvider, dualBlock, setDualBlock);
49043
+ dualChainWeb3 && wallet && wallet.ethereum && tryUpdateDualChainBlock(wallet.ethereum, dualBlock, setDualBlock);
48931
49044
  }, realBlockIntervalTimeout));
48932
49045
  }
48933
- }, [wallet, dualProvider, realBlockIntervalTimeout, intervalId]);
48934
- React.useEffect(resetBlockInterval, [realBlockInterval, realBlockIntervalTimeout, wallet && wallet.ethereum, dualProvider]);
49046
+ }, [wallet, dualChainWeb3, realBlockIntervalTimeout, intervalId]);
49047
+ React.useEffect(resetBlockInterval, [realBlockInterval, realBlockIntervalTimeout, wallet && wallet.ethereum, dualChainWeb3]);
48935
49048
  React.useEffect(function () {
48936
49049
  setConnectionStatus(wallet && wallet.ethereum ? CONNECTED : connectionStatus === CONNECTING ? CONNECTING : NOT_CONNECTED);
48937
49050
  setWeb3Instance(wallet && wallet.ethereum && (web3Instance || new Web3__default["default"](wallet.ethereum)) || null);
@@ -48943,7 +49056,7 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
48943
49056
  setChainId(actualChainId);
48944
49057
  var actualDualChainId = actualChainId && context.dualChainId[actualChainId] || null;
48945
49058
  setDualChainId(actualDualChainId);
48946
- setDualProvider(actualDualChainId && new Web3__default["default"].providers.HttpProvider(context.chainProvider[actualDualChainId]) || null);
49059
+ setDualChainWeb3(actualDualChainId && new Web3__default["default"](context.chainProvider[actualDualChainId]) || null);
48947
49060
  resetBlockInterval();
48948
49061
  }, [wallet && wallet.chainId]);
48949
49062
 
@@ -48999,32 +49112,37 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
48999
49112
  return globalContracts[index];
49000
49113
  };
49001
49114
 
49115
+ React.useEffect(function () {
49116
+ chainId && web3Instance && web3Instance.currentProvider && !web3Instance.currentProvider.chainId && (web3Instance.currentProvider.chainId = chainId);
49117
+ dualChainId && dualChainWeb3 && dualChainWeb3.currentProvider && !dualChainWeb3.currentProvider.chainId && (dualChainWeb3.currentProvider.chainId = dualChainId);
49118
+ }, [chainId, web3Instance, dualChainId, dualChainWeb3]);
49119
+
49002
49120
  window.setAccount = /*#__PURE__*/function () {
49003
- var _setAccount = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(acc) {
49004
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
49121
+ var _setAccount = _asyncToGenerator$1( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(acc) {
49122
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
49005
49123
  while (1) {
49006
- switch (_context2.prev = _context2.next) {
49124
+ switch (_context3.prev = _context3.next) {
49007
49125
  case 0:
49008
49126
  delete window.account;
49009
49127
  acc && (window.account = acc);
49010
- _context2.prev = 2;
49011
- _context2.t0 = acc && window.ganache;
49128
+ _context3.prev = 2;
49129
+ _context3.t0 = acc && window.ganache;
49012
49130
 
49013
- if (!_context2.t0) {
49014
- _context2.next = 7;
49131
+ if (!_context3.t0) {
49132
+ _context3.next = 7;
49015
49133
  break;
49016
49134
  }
49017
49135
 
49018
- _context2.next = 7;
49136
+ _context3.next = 7;
49019
49137
  return sendAsync(window.ganache, 'evm_addAccount', acc, 0);
49020
49138
 
49021
49139
  case 7:
49022
- _context2.next = 11;
49140
+ _context3.next = 11;
49023
49141
  break;
49024
49142
 
49025
49143
  case 9:
49026
- _context2.prev = 9;
49027
- _context2.t1 = _context2["catch"](2);
49144
+ _context3.prev = 9;
49145
+ _context3.t1 = _context3["catch"](2);
49028
49146
 
49029
49147
  case 11:
49030
49148
  setBlock(new Date().getTime());
@@ -49033,13 +49151,13 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
49033
49151
 
49034
49152
  case 14:
49035
49153
  case "end":
49036
- return _context2.stop();
49154
+ return _context3.stop();
49037
49155
  }
49038
49156
  }
49039
- }, _callee2, null, [[2, 9]]);
49157
+ }, _callee3, null, [[2, 9]]);
49040
49158
  }));
49041
49159
 
49042
- function setAccount(_x5) {
49160
+ function setAccount(_x9) {
49043
49161
  return _setAccount.apply(this, arguments);
49044
49162
  }
49045
49163
 
@@ -49067,7 +49185,7 @@ var Web3ContextInitializer = function Web3ContextInitializer(_ref) {
49067
49185
  newContract: newContract,
49068
49186
  dualChainId: dualChainId,
49069
49187
  dualBlock: dualBlock,
49070
- dualProvider: dualProvider
49188
+ dualChainWeb3: dualChainWeb3
49071
49189
  }), wallet && wallet.error && {
49072
49190
  errorMessage: wallet.error.message
49073
49191
  });