Compare commits
No commits in common. "master" and "proposal-27" have entirely different histories.
master
...
proposal-2
5
.gitignore
vendored
5
.gitignore
vendored
@ -88,8 +88,5 @@ sw.*
|
|||||||
# Mac OSX
|
# Mac OSX
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
# Events unarchived files
|
|
||||||
static/*/*.json
|
|
||||||
|
|
||||||
# UI build archive
|
static/*/*.json
|
||||||
dist.zip
|
|
2
.nvmrc
2
.nvmrc
@ -1 +1 @@
|
|||||||
v14.21.3
|
14
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
## Building locally
|
## Building locally
|
||||||
|
|
||||||
- Install [Node.js](https://nodejs.org) version 16
|
- Install [Node.js](https://nodejs.org) version 14
|
||||||
- If you are using [nvm](https://github.com/creationix/nvm#installation) (recommended) running `nvm use` will automatically choose the right node version for you.
|
- If you are using [nvm](https://github.com/creationix/nvm#installation) (recommended) running `nvm use` will automatically choose the right node version for you.
|
||||||
- Install [Yarn](https://yarnpkg.com/en/docs/install)
|
- Install [Yarn](https://yarnpkg.com/en/docs/install)
|
||||||
- Install dependencies: `yarn`
|
- Install dependencies: `yarn`
|
||||||
|
181
abis/OffchainOracle.abi.json
Normal file
181
abis/OffchainOracle.abi.json
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract MultiWrapper", "name": "_multiWrapper", "type": "address" },
|
||||||
|
{ "internalType": "contract IOracle[]", "name": "existingOracles", "type": "address[]" },
|
||||||
|
{ "internalType": "enum OffchainOracle.OracleType[]", "name": "oracleTypes", "type": "uint8[]" },
|
||||||
|
{ "internalType": "contract IERC20[]", "name": "existingConnectors", "type": "address[]" },
|
||||||
|
{ "internalType": "contract IERC20", "name": "wBase", "type": "address" }
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": false, "internalType": "contract IERC20", "name": "connector", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "ConnectorAdded",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": false, "internalType": "contract IERC20", "name": "connector", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "ConnectorRemoved",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": false, "internalType": "contract MultiWrapper", "name": "multiWrapper", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "MultiWrapperUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": false, "internalType": "contract IOracle", "name": "oracle", "type": "address" },
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "enum OffchainOracle.OracleType",
|
||||||
|
"name": "oracleType",
|
||||||
|
"type": "uint8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "OracleAdded",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": false, "internalType": "contract IOracle", "name": "oracle", "type": "address" },
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "enum OffchainOracle.OracleType",
|
||||||
|
"name": "oracleType",
|
||||||
|
"type": "uint8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "OracleRemoved",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "OwnershipTransferred",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "contract IERC20", "name": "connector", "type": "address" }],
|
||||||
|
"name": "addConnector",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract IOracle", "name": "oracle", "type": "address" },
|
||||||
|
{ "internalType": "enum OffchainOracle.OracleType", "name": "oracleKind", "type": "uint8" }
|
||||||
|
],
|
||||||
|
"name": "addOracle",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "connectors",
|
||||||
|
"outputs": [{ "internalType": "contract IERC20[]", "name": "allConnectors", "type": "address[]" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract IERC20", "name": "srcToken", "type": "address" },
|
||||||
|
{ "internalType": "contract IERC20", "name": "dstToken", "type": "address" },
|
||||||
|
{ "internalType": "bool", "name": "useWrappers", "type": "bool" }
|
||||||
|
],
|
||||||
|
"name": "getRate",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "weightedRate", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract IERC20", "name": "srcToken", "type": "address" },
|
||||||
|
{ "internalType": "bool", "name": "useSrcWrappers", "type": "bool" }
|
||||||
|
],
|
||||||
|
"name": "getRateToEth",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "weightedRate", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "multiWrapper",
|
||||||
|
"outputs": [{ "internalType": "contract MultiWrapper", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "oracles",
|
||||||
|
"outputs": [
|
||||||
|
{ "internalType": "contract IOracle[]", "name": "allOracles", "type": "address[]" },
|
||||||
|
{ "internalType": "enum OffchainOracle.OracleType[]", "name": "oracleTypes", "type": "uint8[]" }
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "owner",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "contract IERC20", "name": "connector", "type": "address" }],
|
||||||
|
"name": "removeConnector",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract IOracle", "name": "oracle", "type": "address" },
|
||||||
|
{ "internalType": "enum OffchainOracle.OracleType", "name": "oracleKind", "type": "uint8" }
|
||||||
|
],
|
||||||
|
"name": "removeOracle",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "renounceOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "contract MultiWrapper", "name": "_multiWrapper", "type": "address" }],
|
||||||
|
"name": "setMultiWrapper",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
|
||||||
|
"name": "transferOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
151
abis/OvmGasPriceOracle.abi.json
Normal file
151
abis/OvmGasPriceOracle.abi.json
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "_owner", "type": "address" }],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"name": "DecimalsUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"name": "GasPriceUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"name": "L1BaseFeeUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"name": "OverheadUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "OwnershipTransferred",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"name": "ScalarUpdated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "decimals",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "gasPrice",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }],
|
||||||
|
"name": "getL1Fee",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }],
|
||||||
|
"name": "getL1GasUsed",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "l1BaseFee",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "overhead",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "owner",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "renounceOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "scalar",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "_decimals", "type": "uint256" }],
|
||||||
|
"name": "setDecimals",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "_gasPrice", "type": "uint256" }],
|
||||||
|
"name": "setGasPrice",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "_baseFee", "type": "uint256" }],
|
||||||
|
"name": "setL1BaseFee",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "_overhead", "type": "uint256" }],
|
||||||
|
"name": "setOverhead",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "_scalar", "type": "uint256" }],
|
||||||
|
"name": "setScalar",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
|
||||||
|
"name": "transferOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
@ -4,10 +4,7 @@
|
|||||||
<div class="box-modal-title">{{ $t('withdrawalSettings') }}</div>
|
<div class="box-modal-title">{{ $t('withdrawalSettings') }}</div>
|
||||||
<button type="button" class="delete" @click="$parent.cancel('escape')" />
|
<button type="button" class="delete" @click="$parent.cancel('escape')" />
|
||||||
</header>
|
</header>
|
||||||
<b-tabs v-if="isRelayersAvailable" v-model="withdrawType" :animated="false" class="is-modal">
|
<b-tabs v-model="withdrawType" :animated="false" class="is-modal">
|
||||||
<RelayerTab />
|
|
||||||
</b-tabs>
|
|
||||||
<b-tabs v-else v-model="withdrawType" :animated="false" class="is-modal">
|
|
||||||
<RelayerTab />
|
<RelayerTab />
|
||||||
<WalletTab />
|
<WalletTab />
|
||||||
</b-tabs>
|
</b-tabs>
|
||||||
@ -49,11 +46,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapState('application', {
|
...mapState('application', {
|
||||||
defaultWithdrawType: 'withdrawType'
|
defaultWithdrawType: 'withdrawType'
|
||||||
}),
|
})
|
||||||
...mapState('relayer', ['isLoadingRelayers', 'validRelayers']),
|
|
||||||
isRelayersAvailable() {
|
|
||||||
return !this.isLoadingRelayers && this.validRelayers.length > 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.withdrawType = this.defaultWithdrawType
|
this.withdrawType = this.defaultWithdrawType
|
||||||
|
@ -192,7 +192,7 @@ export default {
|
|||||||
...mapState('relayer', ['isLoadingRelayers']),
|
...mapState('relayer', ['isLoadingRelayers']),
|
||||||
...mapGetters('txHashKeeper', ['txExplorerUrl']),
|
...mapGetters('txHashKeeper', ['txExplorerUrl']),
|
||||||
...mapGetters('application', ['isNotEnoughTokens', 'selectedStatisticCurrency']),
|
...mapGetters('application', ['isNotEnoughTokens', 'selectedStatisticCurrency']),
|
||||||
...mapGetters('metamask', ['networkConfig', 'netId', 'isLoggedIn']),
|
...mapGetters('metamask', ['networkConfig', 'netId', 'isLoggedIn', 'nativeCurrency']),
|
||||||
notEnoughDeposits() {
|
notEnoughDeposits() {
|
||||||
if (this.depositsPast < 5) {
|
if (this.depositsPast < 5) {
|
||||||
return true
|
return true
|
||||||
@ -200,7 +200,7 @@ export default {
|
|||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
shouldSettingsShow() {
|
shouldSettingsShow() {
|
||||||
return !this.isLoading && !this.error.type && !this.hasErrorNote
|
return !this.hasErrorNote && !this.error.message
|
||||||
},
|
},
|
||||||
hasErrorNote() {
|
hasErrorNote() {
|
||||||
const note = this.withdrawNote.split('-')[4]
|
const note = this.withdrawNote.split('-')[4]
|
||||||
@ -337,7 +337,9 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.$store.dispatch('application/setAndUpdateStatistic', { currency, amount: Number(amount) })
|
this.$store.dispatch('application/setAndUpdateStatistic', { currency, amount: Number(amount) })
|
||||||
this.$store.dispatch('fees/calculateWithdrawalFeeViaRelayer', {})
|
if (currency !== this.nativeCurrency) {
|
||||||
|
this.$store.dispatch('application/setDefaultEthToReceive', { currency })
|
||||||
|
}
|
||||||
this.$store.dispatch('loading/updateProgress', { progress: -1 })
|
this.$store.dispatch('loading/updateProgress', { progress: -1 })
|
||||||
this.depositsPast = Number(depositsPast) <= 0 ? 0 : depositsPast
|
this.depositsPast = Number(depositsPast) <= 0 ? 0 : depositsPast
|
||||||
this.depositTxHash = txHash
|
this.depositTxHash = txHash
|
||||||
|
@ -18,9 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
|
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
|
||||||
{{ $t('networkFee') }}
|
{{ $t('networkFee') }}
|
||||||
<span data-test="label_network_fee"
|
<span data-test="label_network_fee">{{ toDecimals(networkFee, 18, 6) }} {{ networkCurrency }}</span>
|
||||||
>{{ toDecimals(withdrawalNetworkFee, 18, 6) }} {{ networkCurrency }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
|
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
|
||||||
{{ $t('relayerFee') }}
|
{{ $t('relayerFee') }}
|
||||||
@ -71,13 +69,13 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState('application', ['selectedStatistic']),
|
...mapState('application', ['selectedStatistic']),
|
||||||
...mapState('fees', ['withdrawalNetworkFee', 'withdrawalFeeViaRelayer']),
|
|
||||||
...mapGetters('metamask', ['networkConfig', 'nativeCurrency']),
|
...mapGetters('metamask', ['networkConfig', 'nativeCurrency']),
|
||||||
...mapGetters('metamask', {
|
...mapGetters('metamask', {
|
||||||
networkCurrency: 'currency'
|
networkCurrency: 'currency'
|
||||||
}),
|
}),
|
||||||
...mapGetters('fees', ['gasPriceInGwei']),
|
...mapGetters('gasPrices', ['gasPriceInGwei']),
|
||||||
...mapGetters('token', ['toDecimals', 'fromDecimals']),
|
...mapGetters('token', ['toDecimals', 'fromDecimals']),
|
||||||
|
...mapGetters('application', ['networkFee']),
|
||||||
...mapGetters('price', ['tokenRate']),
|
...mapGetters('price', ['tokenRate']),
|
||||||
relayerFee() {
|
relayerFee() {
|
||||||
const { amount } = this.selectedStatistic
|
const { amount } = this.selectedStatistic
|
||||||
@ -93,7 +91,7 @@ export default {
|
|||||||
const tornadoServiceFee = this.relayerFee
|
const tornadoServiceFee = this.relayerFee
|
||||||
const { currency } = this.selectedStatistic
|
const { currency } = this.selectedStatistic
|
||||||
const { decimals } = this.networkConfig.tokens[currency]
|
const { decimals } = this.networkConfig.tokens[currency]
|
||||||
const ethFee = this.withdrawalNetworkFee
|
const ethFee = this.networkFee
|
||||||
if (currency === this.nativeCurrency) {
|
if (currency === this.nativeCurrency) {
|
||||||
return ethFee.add(tornadoServiceFee)
|
return ethFee.add(tornadoServiceFee)
|
||||||
}
|
}
|
||||||
@ -119,12 +117,17 @@ export default {
|
|||||||
return fromWei(this.ethToReceive)
|
return fromWei(this.ethToReceive)
|
||||||
},
|
},
|
||||||
total() {
|
total() {
|
||||||
const { amount } = this.selectedStatistic
|
const { amount, currency } = this.selectedStatistic
|
||||||
let total = toBN(this.fromDecimals(amount.toString()))
|
let total = toBN(this.fromDecimals(amount.toString()))
|
||||||
|
|
||||||
if (this.withdrawType === 'relayer') {
|
if (this.withdrawType === 'relayer') {
|
||||||
const relayerFee = this.withdrawalFeeViaRelayer
|
const relayerFee = this.totalRelayerFee
|
||||||
|
|
||||||
|
if (currency === this.nativeCurrency) {
|
||||||
total = total.sub(relayerFee)
|
total = total.sub(relayerFee)
|
||||||
|
} else {
|
||||||
|
total = total.sub(relayerFee).sub(this.ethToReceiveInToken)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.toDecimals(total, null, 6)
|
return this.toDecimals(total, null, 6)
|
||||||
|
@ -65,7 +65,7 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
this.checkRecoveryKey()
|
this.checkRecoveryKey()
|
||||||
this.newNotify()
|
this.newNotify()
|
||||||
this.$store.dispatch('fees/setDefaultGasPrice')
|
this.$store.dispatch('gasPrices/setDefault')
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$preventMultitabs()
|
this.$preventMultitabs()
|
||||||
@ -80,7 +80,7 @@ export default {
|
|||||||
await this.selectRpc({ netId: 1, action: this.preselectRpc })
|
await this.selectRpc({ netId: 1, action: this.preselectRpc })
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$store.dispatch('fees/fetchGasPrice')
|
this.$store.dispatch('gasPrices/fetchGasPrice')
|
||||||
this.$store.dispatch('price/fetchTokenPrice', {}, { root: true })
|
this.$store.dispatch('price/fetchTokenPrice', {}, { root: true })
|
||||||
try {
|
try {
|
||||||
this.$store.dispatch('application/loadAllNotesData')
|
this.$store.dispatch('application/loadAllNotesData')
|
||||||
|
@ -21,7 +21,7 @@ export async function checkExistAccount({ getters, dispatch, rootState, rootGett
|
|||||||
|
|
||||||
const isExist = Boolean(Array.isArray(events) && Boolean(events.length))
|
const isExist = Boolean(Array.isArray(events) && Boolean(events.length))
|
||||||
|
|
||||||
console.log('Is encrypted note events exist: ', isExist)
|
console.log('isExist', isExist)
|
||||||
|
|
||||||
dispatch('createMutation', {
|
dispatch('createMutation', {
|
||||||
type: 'CHECK_ACCOUNT',
|
type: 'CHECK_ACCOUNT',
|
||||||
|
@ -29,9 +29,9 @@ export default {
|
|||||||
name: 'MevblockerRPC',
|
name: 'MevblockerRPC',
|
||||||
url: 'https://rpc.mevblocker.io'
|
url: 'https://rpc.mevblocker.io'
|
||||||
},
|
},
|
||||||
oneRPC: {
|
llamaRPC: {
|
||||||
name: '1RPC',
|
name: 'llamarpc',
|
||||||
url: 'https://1rpc.io/eth'
|
url: 'https://eth.llamarpc.com'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
multicall: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
|
multicall: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
|
||||||
@ -401,17 +401,17 @@ export default {
|
|||||||
multicall: '0xe86e3989c74293Acc962156cd3F525c07b6a1B6e',
|
multicall: '0xe86e3989c74293Acc962156cd3F525c07b6a1B6e',
|
||||||
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
|
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
|
||||||
rpcUrls: {
|
rpcUrls: {
|
||||||
publicRpc: {
|
publicRpc1: {
|
||||||
name: 'Avalanche RPC',
|
name: 'Avalanche RPC',
|
||||||
url: 'https://api.avax.network/ext/bc/C/rpc'
|
url: 'https://endpoints.omniatech.io/v1/avax/mainnet/public'
|
||||||
},
|
},
|
||||||
meowRPC: {
|
meowRPC: {
|
||||||
name: 'Meow RPC',
|
name: 'Meow RPC',
|
||||||
url: 'https://avax.meowrpc.com'
|
url: 'https://avax.meowrpc.com'
|
||||||
},
|
},
|
||||||
oneRPC: {
|
communityRPC: {
|
||||||
name: 'OneRPC',
|
name: 'Tornado RPC',
|
||||||
url: 'https://1rpc.io/avax/c'
|
url: 'https://avalanche-rpc.tornado.ws/ext/bc/C/rpc'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tokens: {
|
tokens: {
|
||||||
@ -459,10 +459,6 @@ export default {
|
|||||||
chainnodes: {
|
chainnodes: {
|
||||||
name: 'Tornado RPC',
|
name: 'Tornado RPC',
|
||||||
url: 'https://goerli.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
|
url: 'https://goerli.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
|
||||||
},
|
|
||||||
gatewayRPC: {
|
|
||||||
name: 'Gateway RPC',
|
|
||||||
url: 'https://rpc.goerli.eth.gateway.fm'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tokens: {
|
tokens: {
|
||||||
|
10
package.json
10
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tornadocash-classic-ui",
|
"name": "tornadocash-classic-ui",
|
||||||
"version": "1.2.0",
|
"version": "1.1.0",
|
||||||
"description": "Private ethereum transactions",
|
"description": "Private ethereum transactions",
|
||||||
"author": "Tornado Cash Team",
|
"author": "Tornado Cash Team",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -23,10 +23,9 @@
|
|||||||
"@apollo/client": "^3.3.20",
|
"@apollo/client": "^3.3.20",
|
||||||
"@metamask/onboarding": "^1.0.0",
|
"@metamask/onboarding": "^1.0.0",
|
||||||
"@nuxtjs/moment": "^1.6.0",
|
"@nuxtjs/moment": "^1.6.0",
|
||||||
"@tornado/fixed-merkle-tree": "0.7",
|
"@tornado/gas-price-oracle": "^0.5.3",
|
||||||
"@tornado/snarkjs": "0.1.20",
|
"@tornado/snarkjs": "0.1.20-p2",
|
||||||
"@tornado/tornado-oracles": "^2.1.0",
|
"@tornado/websnark": "0.0.4-p1",
|
||||||
"@tornado/websnark": "0.0.4",
|
|
||||||
"@walletconnect/web3-provider": "1.7.8",
|
"@walletconnect/web3-provider": "1.7.8",
|
||||||
"ajv": "^6.10.2",
|
"ajv": "^6.10.2",
|
||||||
"arraybuffer-loader": "^1.0.8",
|
"arraybuffer-loader": "^1.0.8",
|
||||||
@ -40,6 +39,7 @@
|
|||||||
"eth-ens-namehash": "^2.0.8",
|
"eth-ens-namehash": "^2.0.8",
|
||||||
"eth-sig-util": "^2.5.3",
|
"eth-sig-util": "^2.5.3",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
|
"fixed-merkle-tree": "^0.7.3",
|
||||||
"form-data": "^3.0.0",
|
"form-data": "^3.0.0",
|
||||||
"graphql": "^15.5.1",
|
"graphql": "^15.5.1",
|
||||||
"idb": "^6.0.0",
|
"idb": "^6.0.0",
|
||||||
|
@ -262,7 +262,7 @@ export default async (ctx, inject) => {
|
|||||||
|
|
||||||
Object.keys(tokens).forEach((token) => {
|
Object.keys(tokens).forEach((token) => {
|
||||||
Object.keys(tokens[token].instanceAddress).forEach((amount) => {
|
Object.keys(tokens[token].instanceAddress).forEach((amount) => {
|
||||||
if (nativeCurrency === token) {
|
if (nativeCurrency === token && netId === 1) {
|
||||||
stores.push({
|
stores.push({
|
||||||
name: `stringify_bloom_${netId}_${token}_${amount}`,
|
name: `stringify_bloom_${netId}_${token}_${amount}`,
|
||||||
keyPath: 'hashBloom'
|
keyPath: 'hashBloom'
|
||||||
|
@ -3,7 +3,7 @@ import 'dotenv/config'
|
|||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
|
||||||
import BloomFilter from 'bloomfilter.js'
|
import BloomFilter from 'bloomfilter.js'
|
||||||
import { MerkleTree } from '@tornado/fixed-merkle-tree'
|
import { MerkleTree } from 'fixed-merkle-tree'
|
||||||
import { buildMimcSponge } from 'circomlibjs'
|
import { buildMimcSponge } from 'circomlibjs'
|
||||||
|
|
||||||
import networkConfig, { enabledChains } from '../networkConfig'
|
import networkConfig, { enabledChains } from '../networkConfig'
|
||||||
|
@ -17,13 +17,13 @@ function updateEncrypted(netId) {
|
|||||||
async function updateCommon(netId) {
|
async function updateCommon(netId) {
|
||||||
const { nativeCurrency, tokens } = networkConfig[`netId${netId}`]
|
const { nativeCurrency, tokens } = networkConfig[`netId${netId}`]
|
||||||
|
|
||||||
for (const type of EVENTS) {
|
console.log(Object.keys(tokens[nativeCurrency].instanceAddress))
|
||||||
for (const [tokenName, tokenInfo] of Object.entries(tokens)) {
|
|
||||||
console.log(`${tokenInfo.symbol}: ${Object.keys(tokenInfo.instanceAddress)}`)
|
for await (const type of EVENTS) {
|
||||||
for (const instance of Object.keys(tokenInfo.instanceAddress)) {
|
for await (const instance of Object.keys(tokens[nativeCurrency].instanceAddress)) {
|
||||||
console.warn('instance', instance)
|
console.warn('instance', instance)
|
||||||
|
|
||||||
const filename = `${type.toLowerCase()}s_${netId}_${tokenName}_${instance}.json`
|
const filename = `${type.toLowerCase()}s_${netId}_${nativeCurrency}_${instance}.json`
|
||||||
|
|
||||||
const isSaved = save(`${EVENTS_PATH}${filename}`)
|
const isSaved = save(`${EVENTS_PATH}${filename}`)
|
||||||
|
|
||||||
@ -36,7 +36,6 @@ async function updateCommon(netId) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function testCommon(netId, type, filename) {
|
function testCommon(netId, type, filename) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { MerkleTree, PartialMerkleTree } from '@tornado/fixed-merkle-tree'
|
import { MerkleTree, PartialMerkleTree } from 'fixed-merkle-tree'
|
||||||
|
|
||||||
import { trees } from '@/constants'
|
import { trees } from '@/constants'
|
||||||
import { download } from '@/store/snark'
|
import { download } from '@/store/snark'
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user