|
94 | 94 |
|
95 | 95 | <!-- ERC-20: -->
|
96 | 96 | <b-card v-if="settings.tabIndex == 0" header="ERC-20" class="m-0 p-0">
|
97 |
| - <b-form-group label="contract:" label-for="erc20-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" description="e.g., '0xc21d97673B9E0B3AA53a06439F71fDc1facE393B' for XEENUS and '0x1e5df6db242d07cc40a37b634022c02f73a74d59' for MYERC20TOKEN on Sepolia" :state="!settings.erc20.contract || validAddress(settings.erc20.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
| 97 | + <b-form-group label="contract:" label-for="erc20-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" :state="!settings.erc20.contract || validAddress(settings.erc20.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
98 | 98 | <b-input-group size="sm" class="w-50">
|
99 |
| - <b-form-input type="text" size="sm" id="erc20-contract" v-model="settings.erc20.contract" @change="saveSettings" placeholder="ERC-20 token contract address"></b-form-input> |
| 99 | + <b-form-input type="text" size="sm" id="erc20-contract" v-model="settings.erc20.contract" @change="saveSettings" placeholder="Enter ERC-20 token contract address, or select from dropdown"></b-form-input> |
100 | 100 | <b-input-group-append>
|
| 101 | + <b-dropdown size="sm" id="dropdown-left" text="" variant="link" class="m-0 ml-1 p-0"> |
| 102 | + <div v-for="(item, index) of sampleContracts('erc20')" v-bind:key="index"> |
| 103 | + <b-dropdown-item @click="settings.erc20.contract = item.contract; saveSettings();">{{ index }}. {{ item.contract.substring(0, 8) + '...' + item.contract.slice(-6) + ' ' + item.name }}</b-dropdown-item> |
| 104 | + </div> |
| 105 | + </b-dropdown> |
101 | 106 | <b-button @click="copyToClipboard(settings.erc20.contract);" variant="link" v-b-popover.hover.ds500="'Copy ERC-20 contract address to clipboard'" class="m-0 ml-3 p-0"><b-icon-clipboard shift-v="+1" font-scale="1.1"></b-icon-clipboard></b-button>
|
102 | 107 | <b-button size="sm" :disabled="!validAddress(settings.erc20.contract)" :href="explorer + 'token/' + settings.erc20.contract + '#code'" variant="link" v-b-popover.hover.ds500="'View in explorer'" target="_blank" class="m-0 ml-2 p-0"><b-icon-link45deg shift-v="-4" font-scale="1.1"></b-icon-link45deg></b-button>
|
103 | 108 | </b-input-group-append>
|
|
498 | 503 |
|
499 | 504 | <!-- ERC-721: -->
|
500 | 505 | <b-card v-if="settings.tabIndex == 1" header="ERC-721" class="m-0 p-0">
|
501 |
| - <b-form-group label="contract:" label-for="erc721-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" description="e.g., '0x8b73448426797099b6b9a96c4343f528bbAfc55e' for TESTTOADZ on Sepolia, or '0x8fa600364b93c53e0c71c7a33d2ade21f4351da3' for Larva Chads on Ethereum Mainnet" :state="!settings.erc721.contract || validAddress(settings.erc721.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
| 506 | + <b-form-group label="contract:" label-for="erc721-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" :state="!settings.erc721.contract || validAddress(settings.erc721.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
502 | 507 | <b-input-group size="sm" class="w-50">
|
503 |
| - <b-form-input type="text" size="sm" id="erc721-contract" v-model="settings.erc721.contract" @change="saveSettings" placeholder="ERC-721 token contract address"></b-form-input> |
| 508 | + <b-form-input type="text" size="sm" id="erc721-contract" v-model="settings.erc721.contract" @change="saveSettings" placeholder="Enter ERC-721 token contract address, or select from dropdown"></b-form-input> |
504 | 509 | <b-input-group-append>
|
| 510 | + <b-dropdown size="sm" id="dropdown-left" text="" variant="link" class="m-0 ml-1 p-0"> |
| 511 | + <div v-for="(item, index) of sampleContracts('erc721')" v-bind:key="index"> |
| 512 | + <b-dropdown-item @click="settings.erc721.contract = item.contract; saveSettings();">{{ index }}. {{ item.contract.substring(0, 8) + '...' + item.contract.slice(-6) + ' ' + item.name }}</b-dropdown-item> |
| 513 | + </div> |
| 514 | + </b-dropdown> |
505 | 515 | <b-button @click="copyToClipboard(settings.erc721.contract);" variant="link" v-b-popover.hover.ds500="'Copy ERC-721 contract address to clipboard'" class="m-0 ml-3 p-0"><b-icon-clipboard shift-v="+1" font-scale="1.1"></b-icon-clipboard></b-button>
|
506 | 516 | <b-button size="sm" :disabled="!validAddress(settings.erc721.contract)" :href="explorer + 'token/' + settings.erc721.contract + '#code'" variant="link" v-b-popover.hover.ds500="'View in explorer'" target="_blank" class="m-0 ml-2 p-0"><b-icon-link45deg shift-v="-4" font-scale="1.1"></b-icon-link45deg></b-button>
|
507 | 517 | </b-input-group-append>
|
|
780 | 790 |
|
781 | 791 | <!-- ERC-1155: -->
|
782 | 792 | <b-card v-if="settings.tabIndex == 2" header="ERC-1155" class="m-0 p-0">
|
783 |
| - <b-form-group label="contract:" label-for="erc1155-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" description="e.g., '0xFe9231f0e6753a8412a00eC1f0028A24d5220Ba9' for Zombie Babies on Ethereum Mainnet, or '0x3F15A716888EFb6871872fC4358F638DEE495f3b' Random collection on Sepolia" :state="!settings.erc1155.contract || validAddress(settings.erc1155.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
| 793 | + <b-form-group label="contract:" label-for="erc1155-contract" label-size="lg" label-class="font-weight-bold pt-0" label-cols-sm="2" label-align-sm="right" :state="!settings.erc1155.contract || validAddress(settings.erc1155.contract)" :invalid-feedback="'Invalid address'" class="mx-0 my-1 p-0"> |
784 | 794 | <b-input-group size="sm" class="w-50">
|
785 |
| - <b-form-input type="text" size="sm" id="erc1155-contract" v-model="settings.erc1155.contract" @change="saveSettings" placeholder="ERC-1155 token contract address"></b-form-input> |
| 795 | + <b-form-input type="text" size="sm" id="erc1155-contract" v-model="settings.erc1155.contract" @change="saveSettings" placeholder="Enter ERC-1155 token contract address, or select from dropdown"></b-form-input> |
786 | 796 | <b-input-group-append>
|
| 797 | + <b-dropdown size="sm" id="dropdown-left" text="" variant="link" class="m-0 ml-1 p-0"> |
| 798 | + <div v-for="(item, index) of sampleContracts('erc1155')" v-bind:key="index"> |
| 799 | + <b-dropdown-item @click="settings.erc1155.contract = item.contract; saveSettings();">{{ index }}. {{ item.contract.substring(0, 8) + '...' + item.contract.slice(-6) + ' ' + item.name }}</b-dropdown-item> |
| 800 | + </div> |
| 801 | + </b-dropdown> |
787 | 802 | <b-button @click="copyToClipboard(settings.erc1155.contract);" variant="link" v-b-popover.hover.ds500="'Copy ERC-1155 contract address to clipboard'" class="m-0 ml-3 p-0"><b-icon-clipboard shift-v="+1" font-scale="1.1"></b-icon-clipboard></b-button>
|
788 | 803 | <b-button size="sm" :disabled="!validAddress(settings.erc1155.contract)" :href="explorer + 'token/' + settings.erc1155.contract + '#code'" variant="link" v-b-popover.hover.ds500="'View in explorer'" target="_blank" class="m-0 ml-2 p-0"><b-icon-link45deg shift-v="-4" font-scale="1.1"></b-icon-link45deg></b-button>
|
789 | 804 | </b-input-group-append>
|
@@ -2166,6 +2181,15 @@ <h5 class="mt-3">Troubleshooting</h5>
|
2166 | 2181 |
|
2167 | 2182 | // --- METHODS ---
|
2168 | 2183 | methods: {
|
| 2184 | + sampleContracts(type) { |
| 2185 | + const results = []; |
| 2186 | + for (const [ contract, contractData ] of Object.entries(this.network && this.network.contracts || {})) { |
| 2187 | + if (contractData.type == type) { |
| 2188 | + results.push({ contract, name: contractData.name }); |
| 2189 | + } |
| 2190 | + } |
| 2191 | + return results; |
| 2192 | + }, |
2169 | 2193 | nonFungibleViewerURL(contract, tokenId) {
|
2170 | 2194 | return this.nonFungibleViewer.replace(/\${contract}/, contract).replace(/\${tokenId}/, tokenId);
|
2171 | 2195 | },
|
|
0 commit comments