diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 000000000..3f3b376d1 Binary files /dev/null and b/bun.lockb differ diff --git a/caminojs b/caminojs index ae1a21688..460f3a9f6 160000 --- a/caminojs +++ b/caminojs @@ -1 +1 @@ -Subproject commit ae1a21688c9ad213328197b3477c2b6f59983f58 +Subproject commit 460f3a9f6724903b682c51dfbc8577a79a12f875 diff --git a/package.json b/package.json index 0448b6281..5eb82a75d 100644 --- a/package.json +++ b/package.json @@ -174,7 +174,7 @@ "weekstart": "1.0.1" }, "dependencies": { - "@c4tplatform/signavaultjs": "^1.0.11", + "@c4tplatform/signavaultjs": "^1.1", "@cypress/xpath": "^2.0.3", "vue": "^2.6.11", "vue-cli-plugin-vuetify": "^2.0.3", diff --git a/src/components/Access/AccountsFound.vue b/src/components/Access/AccountsFound.vue index 095d0842d..b65ce85bf 100644 --- a/src/components/Access/AccountsFound.vue +++ b/src/components/Access/AccountsFound.vue @@ -71,10 +71,10 @@ export default class AccountsFound extends Vue { .savedAccounts { margin: 0; - font-family: ClashDisplay; + font-family: var(--primary-font); font-weight: 500; line-height: 1.5; - font-size: 1rem; + @include mixins.typography-body-2; margin-bottom: 0.5rem; } @@ -82,7 +82,7 @@ export default class AccountsFound extends Vue { color: var(--primary-color); width: 20px; height: 20px; - font-size: 22px; + @include mixins.typography-subtitle-1; } .goTo { diff --git a/src/components/CamBtn.vue b/src/components/CamBtn.vue index 0343bd951..eaac0814c 100644 --- a/src/components/CamBtn.vue +++ b/src/components/CamBtn.vue @@ -15,7 +15,11 @@ import Spinner from '@/components/misc/Spinner.vue' components: { Spinner }, }) export default class CamBtn extends Vue { - @Prop({ default: 'primary' }) readonly variant!: 'primary' | 'transparent' | 'negative' + @Prop({ default: 'primary' }) readonly variant!: + | 'primary' + | 'transparent' + | 'negative' + | 'accent' @Prop({ default: false }) readonly disabled!: boolean @Prop({ default: false }) readonly loading!: boolean @Prop({ default: () => {} }) readonly onClick!: Function diff --git a/src/components/CamInput.vue b/src/components/CamInput.vue index 87968caf2..7bb32ade6 100644 --- a/src/components/CamInput.vue +++ b/src/components/CamInput.vue @@ -29,7 +29,7 @@ - - diff --git a/src/components/NetworkSettings/EditPage.vue b/src/components/NetworkSettings/EditPage.vue index 33c878339..2781e3a64 100644 --- a/src/components/NetworkSettings/EditPage.vue +++ b/src/components/NetworkSettings/EditPage.vue @@ -169,6 +169,7 @@ export default class EditPage extends Vue { diff --git a/src/components/NetworkSettings/NetworkMenu.vue b/src/components/NetworkSettings/NetworkMenu.vue index d749adfb6..f1370563e 100644 --- a/src/components/NetworkSettings/NetworkMenu.vue +++ b/src/components/NetworkSettings/NetworkMenu.vue @@ -240,7 +240,7 @@ export default class NetworkMenu extends Vue { } button { - font-size: 12px; + @include mixins.typography-caption; padding: 3px 14px; border-radius: var(--border-radius-sm); } diff --git a/src/components/NetworkSettings/NetworkRow.vue b/src/components/NetworkSettings/NetworkRow.vue index 4363c636e..0688a022f 100644 --- a/src/components/NetworkSettings/NetworkRow.vue +++ b/src/components/NetworkSettings/NetworkRow.vue @@ -109,8 +109,9 @@ export default class NetworkRow extends Vue { diff --git a/src/components/SidePanels/History/ViewTypes/BaseTx.vue b/src/components/SidePanels/History/ViewTypes/BaseTx.vue index 947ee1e1a..456c6b533 100644 --- a/src/components/SidePanels/History/ViewTypes/BaseTx.vue +++ b/src/components/SidePanels/History/ViewTypes/BaseTx.vue @@ -361,8 +361,9 @@ export default class BaseTx extends Vue { } diff --git a/src/components/SidePanels/History/ViewTypes/ImportExport.vue b/src/components/SidePanels/History/ViewTypes/ImportExport.vue index 25c19a4c0..3fd06c3b1 100644 --- a/src/components/SidePanels/History/ViewTypes/ImportExport.vue +++ b/src/components/SidePanels/History/ViewTypes/ImportExport.vue @@ -11,13 +11,10 @@ diff --git a/src/components/SidePanels/History/ViewTypes/StakingTx.vue b/src/components/SidePanels/History/ViewTypes/StakingTx.vue index 33161f2ce..577297800 100644 --- a/src/components/SidePanels/History/ViewTypes/StakingTx.vue +++ b/src/components/SidePanels/History/ViewTypes/StakingTx.vue @@ -303,10 +303,11 @@ export default class StakingTx extends Vue { } diff --git a/src/components/TestNetBanner.vue b/src/components/TestNetBanner.vue index d82e4622a..1fceb8185 100644 --- a/src/components/TestNetBanner.vue +++ b/src/components/TestNetBanner.vue @@ -21,10 +21,11 @@ export default class TestNetBanner extends Vue { diff --git a/src/components/misc/AvaxInput.vue b/src/components/misc/AvaxInput.vue index 5acc9466f..f0d3535d5 100644 --- a/src/components/misc/AvaxInput.vue +++ b/src/components/misc/AvaxInput.vue @@ -1,38 +1,63 @@ diff --git a/src/components/misc/CurrencyInput.vue b/src/components/misc/CurrencyInput.vue index 63d3802cc..8764f688d 100644 --- a/src/components/misc/CurrencyInput.vue +++ b/src/components/misc/CurrencyInput.vue @@ -79,7 +79,8 @@ export default { }, } - diff --git a/src/components/misc/EVMInputDropdown/EVMAssetDropdown.vue b/src/components/misc/EVMInputDropdown/EVMAssetDropdown.vue index 707860721..24e056406 100644 --- a/src/components/misc/EVMInputDropdown/EVMAssetDropdown.vue +++ b/src/components/misc/EVMInputDropdown/EVMAssetDropdown.vue @@ -93,7 +93,7 @@ button { } .token_row { - font-size: 13px; + @include mixins.typography-caption; padding: 8px 18px; display: grid; grid-template-columns: max-content max-content 1fr; @@ -139,7 +139,7 @@ button { } .token_row { - font-size: 16px; + @include mixins.typography-body-2; border-bottom: 1px solid var(--bg-light); padding-top: 14px; padding-bottom: 14px; diff --git a/src/components/misc/EVMInputDropdown/EVMInputDropdown.vue b/src/components/misc/EVMInputDropdown/EVMInputDropdown.vue index f86a9ded5..2fee61d00 100644 --- a/src/components/misc/EVMInputDropdown/EVMInputDropdown.vue +++ b/src/components/misc/EVMInputDropdown/EVMInputDropdown.vue @@ -167,7 +167,9 @@ export default class EVMInputDropdown extends Vue { get balance(): Big { if (this.token === 'native') { - return this.avaxBalance + let limit = new BN(this.gasLimit) + let fee = limit.mul(this.gasPrice) + return this.avaxBalance.sub(bnToBig(fee, this.denomination)) } return this.token.balanceBig } @@ -213,11 +215,12 @@ export default class EVMInputDropdown extends Vue { } diff --git a/src/components/misc/NftPayloadView/NftPayloadAllow.vue b/src/components/misc/NftPayloadView/NftPayloadAllow.vue index 43241e522..da7118b1f 100644 --- a/src/components/misc/NftPayloadView/NftPayloadAllow.vue +++ b/src/components/misc/NftPayloadView/NftPayloadAllow.vue @@ -26,6 +26,7 @@ export default class NftPayloadAllow extends Vue { } diff --git a/src/components/misc/ValidatorList/ValidatorsList.vue b/src/components/misc/ValidatorList/ValidatorsList.vue index 0bfbea08a..d8c491c7a 100644 --- a/src/components/misc/ValidatorList/ValidatorsList.vue +++ b/src/components/misc/ValidatorList/ValidatorsList.vue @@ -144,7 +144,7 @@ th { position: sticky; top: 0; padding: 2px 14px; - font-size: 14px; + @include mixins.typography-caption; background-color: var(--bg-wallet-light); } diff --git a/src/components/modals/AddERC20TokenModal.vue b/src/components/modals/AddERC20TokenModal.vue index e78045798..fa35718b2 100644 --- a/src/components/modals/AddERC20TokenModal.vue +++ b/src/components/modals/AddERC20TokenModal.vue @@ -158,14 +158,14 @@ export default class AddERC20TokenModal extends Vue { } label { - font-size: 13px; + @include mixins.typography-caption; } input { width: 100%; background-color: var(--bg-light); padding: 14px 24px; border-radius: 3px; - font-size: 14px; + @include mixins.typography-caption; color: var(--primary-color); } } diff --git a/src/components/modals/AddERCNftTokenModal.vue b/src/components/modals/AddERCNftTokenModal.vue index 3f047fd7d..1de713a11 100644 --- a/src/components/modals/AddERCNftTokenModal.vue +++ b/src/components/modals/AddERCNftTokenModal.vue @@ -187,14 +187,14 @@ export default class AddERCNftTokenModal extends Vue { } label { - font-size: 13px; + @include mixins.typography-caption; } input { width: 100%; background-color: var(--bg-light); padding: 14px 24px; border-radius: 3px; - font-size: 14px; + @include mixins.typography-caption; color: var(--primary-color); } @@ -247,7 +247,7 @@ export default class AddERCNftTokenModal extends Vue { button { align-self: baseline; - font-size: 0.8em; + @include mixins.typography-caption; opacity: 0.5; &:hover { diff --git a/src/components/modals/AvmTokenSelect.vue b/src/components/modals/AvmTokenSelect.vue index 2e0b26cbd..3a4d6dab7 100644 --- a/src/components/modals/AvmTokenSelect.vue +++ b/src/components/modals/AvmTokenSelect.vue @@ -21,7 +21,7 @@

{{ asset.name }}

-

{{ asset | bal }}

+

{{ asset | bal(chainId) }}

@@ -35,19 +35,23 @@ import { Vue, Component, Prop } from 'vue-property-decorator' import Modal from '@/components/modals/Modal.vue' import AvaAsset from '@/js/AvaAsset' import { bnToBig } from '@/helpers/helper' +import { ChainIdType } from '@/constants' @Component({ components: { Modal, }, filters: { - bal(asset: AvaAsset) { + bal(asset: AvaAsset, chainId: string) { + if (chainId === 'P') + return bnToBig(asset.amountExtra, asset.denomination).toLocaleString() return bnToBig(asset.amount, asset.denomination).toLocaleString() }, }, }) export default class PrivateKey extends Vue { @Prop() assets!: AvaAsset[] + @Prop() chainId!: ChainIdType @Prop({ default: () => [] }) disabledIds!: string[] // asset id | if nft the utxo id open(): void { @@ -95,7 +99,7 @@ $logo_w: 38px; } .token_row { - font-size: 15px; + @include mixins.typography-body-2; display: grid; grid-template-columns: max-content max-content 1fr; column-gap: 12px; @@ -134,7 +138,7 @@ $logo_w: 38px; p:last-of-type { color: var(--primary-color-light); - font-size: 13px; + @include mixins.typography-caption; } } diff --git a/src/components/modals/ClaimRewardModal.vue b/src/components/modals/ClaimRewardModal.vue new file mode 100644 index 000000000..532d021b1 --- /dev/null +++ b/src/components/modals/ClaimRewardModal.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/components/modals/EvmTokenSelect/ERCNftRow.vue b/src/components/modals/EvmTokenSelect/ERCNftRow.vue index bda24815a..0a0029787 100644 --- a/src/components/modals/EvmTokenSelect/ERCNftRow.vue +++ b/src/components/modals/EvmTokenSelect/ERCNftRow.vue @@ -52,6 +52,7 @@ export default class ERCNftRow extends Vue { } diff --git a/src/components/modals/PrivateKey.vue b/src/components/modals/PrivateKey.vue index 892d71ed2..50e77c24f 100644 --- a/src/components/modals/PrivateKey.vue +++ b/src/components/modals/PrivateKey.vue @@ -55,7 +55,7 @@ export default class PrivateKey extends Vue { diff --git a/src/components/modals/UtxoSelect/UtxoSelect.vue b/src/components/modals/UtxoSelect/UtxoSelect.vue index 067c901f4..fa45cce60 100644 --- a/src/components/modals/UtxoSelect/UtxoSelect.vue +++ b/src/components/modals/UtxoSelect/UtxoSelect.vue @@ -151,6 +151,7 @@ export default class UtxoSelect extends Vue { } diff --git a/src/components/wallet/advanced/SignMessage/SearchAddress.vue b/src/components/wallet/advanced/SignMessage/SearchAddress.vue index a88e98460..2933549c0 100644 --- a/src/components/wallet/advanced/SignMessage/SearchAddress.vue +++ b/src/components/wallet/advanced/SignMessage/SearchAddress.vue @@ -93,7 +93,7 @@ $addrSize: 14px; padding: 2px 6px; cursor: pointer; font-size: $addrSize; - font-family: 'Inter'; + font-family: var(--primary-font); } input { diff --git a/src/components/wallet/advanced/SignMessage/SignMessage.vue b/src/components/wallet/advanced/SignMessage/SignMessage.vue index 7165440bb..315ed0213 100644 --- a/src/components/wallet/advanced/SignMessage/SignMessage.vue +++ b/src/components/wallet/advanced/SignMessage/SignMessage.vue @@ -80,6 +80,7 @@ export default class SignMessage extends Vue { } diff --git a/src/components/wallet/earn/ChainTransfer/TxState.vue b/src/components/wallet/earn/ChainTransfer/TxState.vue index def05bf20..826c0fb47 100644 --- a/src/components/wallet/earn/ChainTransfer/TxState.vue +++ b/src/components/wallet/earn/ChainTransfer/TxState.vue @@ -49,6 +49,7 @@ export default class TxStateCard extends Vue { } diff --git a/src/components/wallet/earn/CreateOfferForm.vue b/src/components/wallet/earn/CreateOfferForm.vue new file mode 100644 index 000000000..23cc2cf11 --- /dev/null +++ b/src/components/wallet/earn/CreateOfferForm.vue @@ -0,0 +1,1245 @@ + + + + diff --git a/src/components/wallet/earn/DateForm.vue b/src/components/wallet/earn/DateForm.vue index 82f522731..26bbf2a42 100644 --- a/src/components/wallet/earn/DateForm.vue +++ b/src/components/wallet/earn/DateForm.vue @@ -8,14 +8,14 @@ class="date" :min-datetime="endDateMin" :max-datetime="endDateMax" + :disabled="pendingTxDate" > @@ -162,12 +116,12 @@ export default class DateForm extends Vue { overflow: hidden; background-color: var(--bg-light); color: var(--text-color); - font-family: 'Inter', sans-serif; + font-family: var(--primary-font); .vdatetime-popup__header { background-color: #0085ff; } .vdatetime-popup__header div { - font-family: 'ClashDisplay', sans-serif; + font-family: var(--primary-font); } .vdatetime-calendar__navigation--next svg path, .vdatetime-calendar__navigation--previous svg path { @@ -198,12 +152,16 @@ export default class DateForm extends Vue { grid-template-columns: 1fr; grid-gap: 15px; width: 100%; - + border: 1px solid var(--camino-slate-slate-600); + border-radius: 8px; > div { width: 100%; display: grid; grid-template-columns: max-content 1fr; - background-color: var(--bg-light); + background-color: transparent !important; + } + .vdatetime { + background-color: transparent !important; } label > span { diff --git a/src/components/wallet/earn/Delegate/AddDelegator.vue b/src/components/wallet/earn/Delegate/AddDelegator.vue index 55cf4d284..c190884c6 100644 --- a/src/components/wallet/earn/Delegate/AddDelegator.vue +++ b/src/components/wallet/earn/Delegate/AddDelegator.vue @@ -659,13 +659,13 @@ h4 { label { margin-top: 6px; color: var(--primary-color-light); - font-size: 14px; + @include mixins.typography-caption; margin-bottom: 3px; } .close_but { padding: 2px 14px; - font-size: 13px; + @include mixins.typography-caption; border-radius: 6px; margin-bottom: 14px; } @@ -748,7 +748,7 @@ label { .reward_tabs { margin-bottom: 8px; - font-size: 13px; + @include mixins.typography-caption; button { color: var(--primary-color-light); @@ -767,7 +767,7 @@ label { } .desc { - font-size: 13px; + @include mixins.typography-caption; margin-bottom: 8px !important; color: var(--primary-color-light); } @@ -778,13 +778,13 @@ label { > div { margin-bottom: 14px; p { - font-size: 24px; + @include mixins.typography-subtitle-1; } } .err { margin: 14px 0 !important; - font-size: 14px; + @include mixins.typography-caption; } .v-btn { @@ -803,7 +803,7 @@ label { .status_icon { align-items: center; display: flex; - font-size: 24px; + @include mixins.typography-subtitle-1; } } @@ -821,7 +821,7 @@ label { } .tx_id { - font-size: 13px; + @include mixins.typography-caption; color: var(--primary-color-light); word-break: break-all; margin: 14px 0 !important; @@ -834,7 +834,7 @@ label { > div { margin-bottom: 10px; p { - font-size: 18px; + @include mixins.typography-body-1; } } } diff --git a/src/components/wallet/earn/Delegate/ConfirmPage.vue b/src/components/wallet/earn/Delegate/ConfirmPage.vue index ef382855c..13e30e540 100644 --- a/src/components/wallet/earn/Delegate/ConfirmPage.vue +++ b/src/components/wallet/earn/Delegate/ConfirmPage.vue @@ -68,6 +68,7 @@ export default class ConfirmPage extends Vue { } diff --git a/src/components/wallet/earn/Delegate/NodeCard.vue b/src/components/wallet/earn/Delegate/NodeCard.vue index cb9119d7e..ad2237dfc 100644 --- a/src/components/wallet/earn/Delegate/NodeCard.vue +++ b/src/components/wallet/earn/Delegate/NodeCard.vue @@ -140,7 +140,7 @@ export default class NodeCard extends Vue { .node_id { word-break: break-all; //width: max-content; - font-size: 13px; + @include mixins.typography-caption; padding: 6px 14px; background-color: var(--bg-light); border-bottom: 2px solid var(--bg); @@ -152,10 +152,10 @@ export default class NodeCard extends Vue { column-gap: 14px; } label { - font-size: 13px; + @include mixins.typography-caption; } p { - font-size: 15px; + @include mixins.typography-body-2; color: var(--primary-color-light); } @@ -163,7 +163,7 @@ p { display: grid; grid-template-columns: 1fr 1fr; p { - font-size: 13px; + @include mixins.typography-caption; } } diff --git a/src/components/wallet/earn/DepositOfferCard.vue b/src/components/wallet/earn/DepositOfferCard.vue index 562bd819b..9b0f9ffab 100644 --- a/src/components/wallet/earn/DepositOfferCard.vue +++ b/src/components/wallet/earn/DepositOfferCard.vue @@ -1,9 +1,9 @@ diff --git a/src/components/wallet/earn/ModalAbortSigning.vue b/src/components/wallet/earn/ModalAbortSigning.vue index f90693544..31da33611 100644 --- a/src/components/wallet/earn/ModalAbortSigning.vue +++ b/src/components/wallet/earn/ModalAbortSigning.vue @@ -9,12 +9,12 @@

{{ modalText }}

@@ -24,10 +24,12 @@ import 'reflect-metadata' import { Vue, Component, Prop } from 'vue-property-decorator' import Modal from '../../modals/Modal.vue' import { MultisigWallet } from '@/js/wallets/MultisigWallet' +import CamBtn from '@/components/CamBtn.vue' @Component({ components: { Modal, + CamBtn, }, }) export default class ModalAbortSigning extends Vue { diff --git a/src/components/wallet/earn/ModalClaimDepositReward.vue b/src/components/wallet/earn/ModalClaimDepositReward.vue index 4fa98e7b8..b2893186f 100644 --- a/src/components/wallet/earn/ModalClaimDepositReward.vue +++ b/src/components/wallet/earn/ModalClaimDepositReward.vue @@ -54,23 +54,23 @@ diff --git a/src/components/wallet/earn/ModalDepositFunds.vue b/src/components/wallet/earn/ModalDepositFunds.vue new file mode 100644 index 000000000..f3766b89d --- /dev/null +++ b/src/components/wallet/earn/ModalDepositFunds.vue @@ -0,0 +1,725 @@ + + + diff --git a/src/components/wallet/earn/UserRewardRow.vue b/src/components/wallet/earn/UserRewardRow.vue index e5791cea7..fb6fb1347 100644 --- a/src/components/wallet/earn/UserRewardRow.vue +++ b/src/components/wallet/earn/UserRewardRow.vue @@ -113,7 +113,7 @@ export default class UserRewardRow extends Vue { .reward_row { border-radius: var(--border-radius-sm); overflow: hidden; - font-size: 14px; + @include mixins.typography-caption; //border: 2px solid var(--bg-light); background-color: var(--bg-light); } diff --git a/src/components/wallet/earn/UserRewards.vue b/src/components/wallet/earn/UserRewards.vue index 89c23afc1..3454fe3af 100644 --- a/src/components/wallet/earn/UserRewards.vue +++ b/src/components/wallet/earn/UserRewards.vue @@ -1,226 +1,83 @@ diff --git a/src/components/wallet/earn/Validate/PendingMultisig.vue b/src/components/wallet/earn/Validate/PendingMultisig.vue index 25259c1ba..ca08a01f1 100644 --- a/src/components/wallet/earn/Validate/PendingMultisig.vue +++ b/src/components/wallet/earn/Validate/PendingMultisig.vue @@ -1,14 +1,6 @@ diff --git a/src/components/wallet/earn/Validate/ValidatorPending.vue b/src/components/wallet/earn/Validate/ValidatorPending.vue index ab962a2a4..bef54a5fd 100644 --- a/src/components/wallet/earn/Validate/ValidatorPending.vue +++ b/src/components/wallet/earn/Validate/ValidatorPending.vue @@ -1,12 +1,5 @@