diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 236952f61a..26b2cd3528 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -17,15 +17,15 @@ const inpageContent = fs.readFileSync( const inpageSuffix = `//# sourceURL=${extension.runtime.getURL('inpage.js')}\n`; const inpageBundle = inpageContent + inpageSuffix; -const CONTENT_SCRIPT = 'metamask-contentscript'; -const INPAGE = 'metamask-inpage'; -const PROVIDER = 'metamask-provider'; +const CONTENT_SCRIPT = 'aptosmask-contentscript'; +const INPAGE = 'aptosmask-inpage'; +const PROVIDER = 'aptosmask-provider'; // TODO:LegacyProvider: Delete -const LEGACY_CONTENT_SCRIPT = 'contentscript'; -const LEGACY_INPAGE = 'inpage'; -const LEGACY_PROVIDER = 'provider'; -const LEGACY_PUBLIC_CONFIG = 'publicConfig'; +const LEGACY_CONTENT_SCRIPT = 'legacy-contentscript'; +const LEGACY_INPAGE = 'legacy-inpage'; +const LEGACY_PROVIDER = 'legacy-provider'; +const LEGACY_PUBLIC_CONFIG = 'legacy-publicConfig'; if (shouldInjectProvider()) { injectScript(inpageBundle); diff --git a/app/scripts/controllers/network/createAptosRestClient.js b/app/scripts/controllers/network/createAptosRestClient.js index 55863b2e08..771a47e3f2 100644 --- a/app/scripts/controllers/network/createAptosRestClient.js +++ b/app/scripts/controllers/network/createAptosRestClient.js @@ -6,7 +6,7 @@ import { createInflightCacheMiddleware, createBlockTrackerInspectorMiddleware, providerFromMiddleware, -} from 'eth-json-rpc-middleware'; +} from '@pontem/pontem-json-rpc-middleware'; import { createFetchMiddleware } from '@pontem/pontem-aptos-middleware'; import { PollingBlockTracker } from '@pontem/pontem-block-tracker'; diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js index cee6b9b95e..030549f17f 100644 --- a/app/scripts/controllers/network/createMetamaskMiddleware.js +++ b/app/scripts/controllers/network/createMetamaskMiddleware.js @@ -1,5 +1,5 @@ import { createScaffoldMiddleware, mergeMiddleware } from 'json-rpc-engine'; -import { createWalletMiddleware } from 'eth-json-rpc-middleware'; +import { createWalletMiddleware } from '@pontem/pontem-json-rpc-middleware'; import { createPendingNonceMiddleware, createPendingTxMiddleware, diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js index f66f550378..c875e22e27 100644 --- a/app/scripts/controllers/transactions/index.js +++ b/app/scripts/controllers/transactions/index.js @@ -1067,6 +1067,10 @@ export default class TransactionController extends EventEmitter { chainId, gasLimit: txMeta.txParams.gas, }; + + function fromHexToNumber(hex) { + return new BigNumber(hex, 16).toString(10) + } // sign tx const fromAddress = txParams.from; console.log('[Pontem][TransactionController] txParams', { txParams, amount: new BigNumber(txParams.value, 16).toString(10) }); @@ -1074,22 +1078,24 @@ export default class TransactionController extends EventEmitter { // TODO move into create tx step const payload = { sender: fromAddress, - sequence_number: parseInt(txParams.nonce, 16).toString(), - max_gas_amount: "1000", - gas_unit_price: "1", + sequence_number: fromHexToNumber(txParams.nonce), + max_gas_amount: fromHexToNumber(txMeta.txParams.gas), + gas_unit_price: fromHexToNumber(txMeta.txParams.gasPrice), gas_currency_code: "XUS", expiration_timestamp_secs: (Math.floor(Date.now() / 1000) + 600).toString(), - payload: { - type: "script_function_payload", - function: "0x1::TestCoin::transfer", - type_arguments: [], - arguments: [ - txParams.to, - new BigNumber(txParams.value, 16).div(new BigNumber(10, 10).pow(18)).toString(10) - ] - }, + payload: txParams.payload, } + // { + // type: "script_function_payload", + // function: "0x1::Coin::transfer", + // type_arguments: ['0x1::TestCoin::TestCoin'], + // arguments: [ + // txParams.to, + // new BigNumber(txParams.value, 16).div(new BigNumber(10, 10).pow(18)).toString(10) + // ] + // } + const msgForSign = await (new Promise((resolve, reject) => { this.pontemQuery.createSignMessage(payload, (err, response) => { if(err) { diff --git a/app/scripts/controllers/transactions/lib/util.js b/app/scripts/controllers/transactions/lib/util.js index 8bee478f22..4c24d93a86 100644 --- a/app/scripts/controllers/transactions/lib/util.js +++ b/app/scripts/controllers/transactions/lib/util.js @@ -14,6 +14,12 @@ const normalizers = { nonce: addHexPrefix, value: addHexPrefix, data: addHexPrefix, + payload: (payload) => ({ + arguments: payload.arguments, + function: payload.function, + type: payload.type, + type_arguments: payload.type_arguments || payload.typeArguments + }), gas: addHexPrefix, gasPrice: addHexPrefix, maxFeePerGas: addHexPrefix, @@ -137,7 +143,7 @@ export function validateTxParams(txParams, eip1559Compatibility = true) { 'Invalid transaction params: must be an object.', ); } - if (!txParams.to && !txParams.data) { + if (!txParams.to && !txParams.data && !txParams.payload) { throw ethErrors.rpc.invalidParams( 'Invalid transaction params: must specify "data" for contract deployments, or "to" (and optionally "data") for all other types of transactions.', ); @@ -220,6 +226,8 @@ export function validateTxParams(txParams, eip1559Compatibility = true) { ); } break; + case 'payload': + break; default: ensureFieldIsString(txParams, key); } diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index 9b4952a5ec..361e861a67 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -33,7 +33,7 @@ cleanContextForImports(); /* eslint-disable import/first */ import log from 'loglevel'; import { WindowPostMessageStream } from '@metamask/post-message-stream'; -import { initializeProvider } from '@metamask/providers/dist/initializeInpageProvider'; +import { initializeProvider } from '@pontem/pontem-providers/dist/initializeInpageProvider'; restoreContextAfterImports(); @@ -45,12 +45,13 @@ log.setDefaultLevel(process.env.METAMASK_DEBUG ? 'debug' : 'warn'); // setup background connection const metamaskStream = new WindowPostMessageStream({ - name: 'metamask-inpage', - target: 'metamask-contentscript', + name: 'aptosmask-inpage', + target: 'aptosmask-contentscript', }); initializeProvider({ connectionStream: metamaskStream, logger: log, + jsonRpcStreamName: 'aptosmask-provider', shouldShimWeb3: true, }); diff --git a/app/scripts/lib/account-tracker.js b/app/scripts/lib/account-tracker.js index 61942daec9..97e655d15b 100644 --- a/app/scripts/lib/account-tracker.js +++ b/app/scripts/lib/account-tracker.js @@ -250,7 +250,7 @@ export default class AccountTracker { let balance = '0x0'; (resources || []).forEach(resource => { - if(resource.type === '0x1::TestCoin::Balance') { + if(resource.type === '0x1::Coin::CoinStore<0x1::TestCoin::TestCoin>') { balance = bnToHex(new BigNumber(resource.data.coin.value, 10).times(new BigNumber(10, 10).pow(18))) } }) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 9e11263168..0d284bbfcf 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -13,6 +13,7 @@ import { errorCodes as rpcErrorCodes, ethErrors } from 'eth-rpc-errors'; import { Mutex } from 'await-semaphore'; import { stripHexPrefix } from 'ethereumjs-util'; import log from 'loglevel'; + import TrezorKeyring from 'eth-trezor-keyring'; import LedgerBridgeKeyring from '@metamask/eth-ledger-bridge-keyring'; import LatticeKeyring from 'eth-lattice-keyring'; @@ -3026,7 +3027,7 @@ export default class MetamaskController extends EventEmitter { // messages between inpage and background this.setupProviderConnection( - mux.createStream('metamask-provider'), + mux.createStream('aptosmask-provider'), sender, _subjectType, ); @@ -3034,7 +3035,7 @@ export default class MetamaskController extends EventEmitter { // TODO:LegacyProvider: Delete if (sender.url) { // legacy streams - this.setupPublicConfig(mux.createStream('publicConfig')); + this.setupPublicConfig(mux.createStream('legacy-publicConfig')); } } diff --git a/development/packages-link.sh b/development/packages-link.sh index 2a618a658f..0ce296aed9 100755 --- a/development/packages-link.sh +++ b/development/packages-link.sh @@ -13,6 +13,9 @@ cd $PACKAGES_DIR/pontem-util && bash ./link.sh cd $PACKAGES_DIR/pontem-wallet && bash ./link.sh cd $PACKAGES_DIR/pontem-hd-keyring && bash ./link.sh cd $PACKAGES_DIR/pontem-keyring-controller && bash ./link.sh +cd $PACKAGES_DIR/pontem-json-rpc-middleware && bash ./link.sh +cd $PACKAGES_DIR/pontem-json-rpc-filters && bash ./link.sh +cd $PACKAGES_DIR/pontem-providers && bash ./link.sh cd $SRC_DIR/.. @@ -26,3 +29,9 @@ yarn link @pontem/pontem-util yarn link @pontem/pontem-wallet yarn link @pontem/pontem-hd-keyring yarn link @pontem/pontem-keyring-controller +yarn link @pontem/pontem-json-rpc-middleware +yarn link @pontem/pontem-providers +#yarn link @pontem/pontem-json-rpc-filters +yarn link @pontem/pontem-json-rpc-middleware +yarn link @pontem/pontem-providers +yarn link @pontem/pontem-json-rpc-filters diff --git a/lavamoat/browserify/beta/policy.json b/lavamoat/browserify/beta/policy.json index bbd4410842..3274a5ebd7 100644 --- a/lavamoat/browserify/beta/policy.json +++ b/lavamoat/browserify/beta/policy.json @@ -978,9 +978,6 @@ } }, "@starcoin/stc-wallet": { - "globals": { - "console.log": true - }, "packages": { "@starcoin/starcoin": true, "@starcoin/stc-util": true @@ -2008,8 +2005,6 @@ "results": "write" }, "packages": { - "@metamask/safe-event-emitter": true, - "async-mutex": true, "await-semaphore": true, "eth-json-rpc-middleware": true, "eth-query": true, @@ -3701,6 +3696,7 @@ }, "md5.js": { "packages": { + "buffer": true, "hash-base": true, "inherits": true, "safe-buffer": true @@ -5384,4 +5380,4 @@ } } } -} \ No newline at end of file +} diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 446584c421..c5201b2b78 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -997,9 +997,6 @@ } }, "@starcoin/stc-wallet": { - "globals": { - "console.log": true - }, "packages": { "@starcoin/starcoin": true, "@starcoin/stc-util": true @@ -2027,8 +2024,6 @@ "results": "write" }, "packages": { - "@metamask/safe-event-emitter": true, - "async-mutex": true, "await-semaphore": true, "eth-json-rpc-middleware": true, "eth-query": true, @@ -3720,6 +3715,7 @@ }, "md5.js": { "packages": { + "buffer": true, "hash-base": true, "inherits": true, "safe-buffer": true @@ -5403,4 +5399,4 @@ } } } -} \ No newline at end of file +} diff --git a/lavamoat/browserify/main/policy.json b/lavamoat/browserify/main/policy.json index bbd4410842..3274a5ebd7 100644 --- a/lavamoat/browserify/main/policy.json +++ b/lavamoat/browserify/main/policy.json @@ -978,9 +978,6 @@ } }, "@starcoin/stc-wallet": { - "globals": { - "console.log": true - }, "packages": { "@starcoin/starcoin": true, "@starcoin/stc-util": true @@ -2008,8 +2005,6 @@ "results": "write" }, "packages": { - "@metamask/safe-event-emitter": true, - "async-mutex": true, "await-semaphore": true, "eth-json-rpc-middleware": true, "eth-query": true, @@ -3701,6 +3696,7 @@ }, "md5.js": { "packages": { + "buffer": true, "hash-base": true, "inherits": true, "safe-buffer": true @@ -5384,4 +5380,4 @@ } } } -} \ No newline at end of file +}