mirror of
https://github.com/luxfi/bridge.git
synced 2026-09-24 00:26:46 +00:00
added: zoo network
This commit is contained in:
@@ -675,7 +675,7 @@ export const networks: Network[] = [
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lux.svg',
|
||||
contract_address: '0x0000000000000000000000000000000000000000',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -692,7 +692,7 @@ export const networks: Network[] = [
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lbtc.svg',
|
||||
contract_address: '0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -737,6 +737,23 @@ export const networks: Network[] = [
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Lux ZOO',
|
||||
asset: 'LZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lzoo.png',
|
||||
contract_address: '0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Lux BNB',
|
||||
asset: 'LBNB',
|
||||
@@ -826,9 +843,9 @@ export const networks: Network[] = [
|
||||
name: 'Lux SOL',
|
||||
asset: 'LSOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lsol.svg',
|
||||
contract_address: '0x1AF00A2590a834d14F4A8a26D1b03EBbA8cf7961',
|
||||
contract_address: '0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -843,9 +860,231 @@ export const networks: Network[] = [
|
||||
name: 'Lux TON',
|
||||
asset: 'LTON',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lton.svg',
|
||||
contract_address: '0xF5a313885832D4Fc71d1Ef80115197c4479B58C8',
|
||||
contract_address: '0x3141b94b89691009b950c96e97Bff48e0C543E3C',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
display_name: 'Zoo',
|
||||
internal_name: 'ZOO_MAINNET',
|
||||
native_currency: 'ZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/networks/zoo_mainnet.png',
|
||||
is_testnet: false,
|
||||
is_featured: true,
|
||||
average_completion_time: '00:00:07.7777777',
|
||||
chain_id: 200200,
|
||||
status: 'active',
|
||||
type: 'evm',
|
||||
refuel_amount_in_usd: 1,
|
||||
transaction_explorer_template: 'https://explore.zoo.network/tx/{0}',
|
||||
account_explorer_template: 'https://explore.zoo.network/address/{0}',
|
||||
node: 'https://api.zoo.network',
|
||||
currencies: [
|
||||
{
|
||||
name: 'ZOO',
|
||||
asset: 'ZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo.png',
|
||||
contract_address: '0x0000000000000000000000000000000000000000',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: true,
|
||||
},
|
||||
{
|
||||
name: 'Zoo BTC',
|
||||
asset: 'ZBTC',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zbtc.svg',
|
||||
contract_address: '0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo ETH',
|
||||
asset: 'ZETH',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zeth.svg',
|
||||
contract_address: '0x60E0a8167FC13dE89348978860466C9ceC24B9ba',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo Dollar',
|
||||
asset: 'ZUSD',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zusd.svg',
|
||||
contract_address: '0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo LUX',
|
||||
asset: 'ZLUX',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zlux.png',
|
||||
contract_address: '0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo BNB',
|
||||
asset: 'ZBNB',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zbnb.svg',
|
||||
contract_address: '0x6EdcF3645DeF09DB45050638c41157D8B9FEa1cf',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo POL',
|
||||
asset: 'ZPOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zpol.svg',
|
||||
contract_address: '0x28BfC5DD4B7E15659e41190983e5fE3df1132bB9',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo CELO',
|
||||
asset: 'ZCELO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zcelo.svg',
|
||||
contract_address: '0x3078847F879A33994cDa2Ec1540ca52b5E0eE2e5',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo FTM',
|
||||
asset: 'ZFTM',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zftm.svg',
|
||||
contract_address: '0x8B982132d639527E8a0eAAD385f97719af8f5e04',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo xDAI',
|
||||
asset: 'ZXDAI',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zdai.svg',
|
||||
contract_address: '0x7dfb3cBf7CF9c96fd56e3601FBA50AF45C731211',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo SOL',
|
||||
asset: 'ZSOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zsol.svg',
|
||||
contract_address: '0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo TON',
|
||||
asset: 'ZTON',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zton.svg',
|
||||
contract_address: '0x3141b94b89691009b950c96e97Bff48e0C543E3C',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
|
||||
@@ -384,7 +384,7 @@ export const networks: Network[] = [
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lux.svg',
|
||||
contract_address: '0x0000000000000000000000000000000000000000',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -401,7 +401,7 @@ export const networks: Network[] = [
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lbtc.svg',
|
||||
contract_address: '0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -446,6 +446,23 @@ export const networks: Network[] = [
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Lux ZOO',
|
||||
asset: 'LZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lzoo.png',
|
||||
contract_address: '0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Lux BNB',
|
||||
asset: 'LBNB',
|
||||
@@ -535,9 +552,9 @@ export const networks: Network[] = [
|
||||
name: 'Lux SOL',
|
||||
asset: 'LSOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lsol.svg',
|
||||
contract_address: '0x1AF00A2590a834d14F4A8a26D1b03EBbA8cf7961',
|
||||
contract_address: '0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -552,9 +569,9 @@ export const networks: Network[] = [
|
||||
name: 'Lux TON',
|
||||
asset: 'LTON',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/lux/lton.svg',
|
||||
contract_address: '0xF5a313885832D4Fc71d1Ef80115197c4479B58C8',
|
||||
contract_address: '0x3141b94b89691009b950c96e97Bff48e0C543E3C',
|
||||
decimals: 18,
|
||||
status: 'inactive',
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
@@ -567,4 +584,226 @@ export const networks: Network[] = [
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
display_name: 'Zoo Testnet',
|
||||
internal_name: 'ZOO_TESTNET',
|
||||
native_currency: 'ZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/networks/zoo_testnet.png',
|
||||
is_testnet: true,
|
||||
is_featured: true,
|
||||
average_completion_time: '00:00:07.7777777',
|
||||
chain_id: 200201,
|
||||
status: 'active',
|
||||
type: 'evm',
|
||||
refuel_amount_in_usd: 1,
|
||||
transaction_explorer_template: 'https://explore.zoo-test.network/tx/{0}',
|
||||
account_explorer_template: 'https://explore.zoo-test.network/address/{0}',
|
||||
node: 'https://api.zoo-test.network',
|
||||
currencies: [
|
||||
{
|
||||
name: 'ZOO',
|
||||
asset: 'ZOO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo.png',
|
||||
contract_address: '0x0000000000000000000000000000000000000000',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: true,
|
||||
},
|
||||
{
|
||||
name: 'Zoo BTC',
|
||||
asset: 'ZBTC',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zbtc.svg',
|
||||
contract_address: '0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo ETH',
|
||||
asset: 'ZETH',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zeth.svg',
|
||||
contract_address: '0x60E0a8167FC13dE89348978860466C9ceC24B9ba',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo Dollar',
|
||||
asset: 'ZUSD',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zusd.svg',
|
||||
contract_address: '0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo LUX',
|
||||
asset: 'ZLUX',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zlux.png',
|
||||
contract_address: '0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo BNB',
|
||||
asset: 'ZBNB',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zbnb.svg',
|
||||
contract_address: '0x6EdcF3645DeF09DB45050638c41157D8B9FEa1cf',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo POL',
|
||||
asset: 'ZPOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zpol.svg',
|
||||
contract_address: '0x28BfC5DD4B7E15659e41190983e5fE3df1132bB9',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo CELO',
|
||||
asset: 'ZCELO',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zcelo.svg',
|
||||
contract_address: '0x3078847F879A33994cDa2Ec1540ca52b5E0eE2e5',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo FTM',
|
||||
asset: 'ZFTM',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zftm.svg',
|
||||
contract_address: '0x8B982132d639527E8a0eAAD385f97719af8f5e04',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo xDAI',
|
||||
asset: 'ZXDAI',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zdai.svg',
|
||||
contract_address: '0x7dfb3cBf7CF9c96fd56e3601FBA50AF45C731211',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo SOL',
|
||||
asset: 'ZSOL',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zsol.svg',
|
||||
contract_address: '0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
},
|
||||
{
|
||||
name: 'Zoo TON',
|
||||
asset: 'ZTON',
|
||||
logo: 'https://cdn.lux.network/bridge/currencies/zoo/zton.svg',
|
||||
contract_address: '0x3141b94b89691009b950c96e97Bff48e0C543E3C',
|
||||
decimals: 18,
|
||||
status: 'active',
|
||||
is_deposit_enabled: true,
|
||||
is_withdrawal_enabled: true,
|
||||
is_refuel_enabled: false,
|
||||
max_withdrawal_amount: 1,
|
||||
deposit_fee: 0.1,
|
||||
withdrawal_fee: 0.1,
|
||||
source_base_fee: 0.1,
|
||||
destination_base_fee: 0.1,
|
||||
is_native: false,
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
@@ -123,21 +123,41 @@ export const CONTRACTS = {
|
||||
}
|
||||
|
||||
export const SWAP_PAIRS: Record<string, string[]> = {
|
||||
LETH: ['ETH'],
|
||||
LBNB: ['BNB'],
|
||||
LFTM: ['FTM'],
|
||||
LPOL: ['POL', 'MATIC'],
|
||||
LUSD: ['USDT', 'USDC', 'DAI'],
|
||||
LCELO: ['CELO'],
|
||||
LXDAI: ['XDAI'],
|
||||
|
||||
ETH: ['LETH'],
|
||||
POL: ['LPOL'],
|
||||
BNB: ['LBNB'],
|
||||
FTM: ['LFTM'],
|
||||
DAI: ['LUSD'],
|
||||
USDT: ['LUSD'],
|
||||
USDC: ['LUSD'],
|
||||
CELO: ['LCELO'],
|
||||
XDAI: ['LXDAI'],
|
||||
// Lux tokens
|
||||
LUX: ['ZLUX'],
|
||||
LBTC: ['ZBTC'],
|
||||
LETH: ['ETH', 'ZETH'],
|
||||
LUSD: ['USDT', 'USDC', 'DAI', 'ZUSD'],
|
||||
LZOO: ['ZOO'],
|
||||
LBNB: ['BNB', 'ZBNB'],
|
||||
LPOL: ['POL', 'ZPOL'],
|
||||
LCELO: ['CELO', 'ZCELO'],
|
||||
LFTM: ['FTM', 'ZFTM'],
|
||||
LXDAI: ['XDAI', 'ZXDAI'],
|
||||
LSOL: ['ZSOL'],
|
||||
LTON: ['ZTON'],
|
||||
// Zoo tokens
|
||||
ZOO: ['LZOO'],
|
||||
ZBTC: ['LBTC'],
|
||||
ZETH: ['ETH', 'LETH'],
|
||||
ZUSD: ['USDT', 'USDC', 'DAI', 'LUSD'],
|
||||
ZLUX: ['LUX'],
|
||||
ZBNB: ['BNB', 'LBNB'],
|
||||
ZPOL: ['POL', 'LPOL'],
|
||||
ZCELO: ['CELO', 'LCELO'],
|
||||
ZFTM: ['FTM', 'LFTM'],
|
||||
ZXDAI: ['XDAI', 'LXDAI'],
|
||||
ZSOL: ['LSOL'],
|
||||
ZTON: ['LTON'],
|
||||
// Evm tokens
|
||||
ETH: ['LETH', 'ZETH'],
|
||||
WETH: ['LETH', 'ZETH'],
|
||||
POL: ['LPOL', 'ZPOL'],
|
||||
BNB: ['LBNB', 'ZBNB'],
|
||||
FTM: ['LFTM', 'ZFTM'],
|
||||
DAI: ['LUSD', 'ZUSD'],
|
||||
USDT: ['LUSD', 'ZUSD'],
|
||||
USDC: ['LUSD', 'ZUSD'],
|
||||
CELO: ['LCELO', 'ZCELO'],
|
||||
XDAI: ['LXDAI', 'ZXDAI'],
|
||||
}
|
||||
|
||||
@@ -97,29 +97,28 @@ const Swap: FC = () => {
|
||||
}, [sourceNetwork])
|
||||
|
||||
React.useEffect(() => {
|
||||
if (sourceAsset) {
|
||||
const _networks = networks
|
||||
.filter(
|
||||
(n: Network) =>
|
||||
n.currencies.some((c: Token) =>
|
||||
SWAP_PAIRS[sourceAsset.asset]
|
||||
? SWAP_PAIRS[sourceAsset.asset].includes(c.asset)
|
||||
: false
|
||||
) && n.is_testnet === sourceNetwork?.is_testnet
|
||||
)
|
||||
.map((n: Network) => ({
|
||||
...n,
|
||||
currencies: n.currencies.map((c: Token) => ({
|
||||
...c,
|
||||
status: SWAP_PAIRS?.[sourceAsset.asset].includes(c.asset)
|
||||
? c.status
|
||||
: 'inactive',
|
||||
})),
|
||||
}))
|
||||
if (!sourceAsset) return
|
||||
const _networks = networks
|
||||
.filter(
|
||||
(n: Network) =>
|
||||
n.currencies.some((c: Token) =>
|
||||
SWAP_PAIRS[sourceAsset.asset]
|
||||
? SWAP_PAIRS[sourceAsset.asset].includes(c.asset)
|
||||
: false
|
||||
) && n.is_testnet === sourceNetwork?.is_testnet
|
||||
)
|
||||
.map((n: Network) => ({
|
||||
...n,
|
||||
currencies: n.currencies.map((c: Token) => ({
|
||||
...c,
|
||||
status: SWAP_PAIRS?.[sourceAsset.asset].includes(c.asset)
|
||||
? c.status
|
||||
: 'inactive',
|
||||
})),
|
||||
}))
|
||||
|
||||
setDestinationNetworks(_networks)
|
||||
setDestinationNetwork(_networks.find((n) => n.status === 'active'))
|
||||
}
|
||||
setDestinationNetworks(_networks)
|
||||
setDestinationNetwork(_networks.find((n) => n.status === 'active'))
|
||||
}, [sourceAsset, sourceNetwork])
|
||||
|
||||
React.useEffect(() => {
|
||||
|
||||
@@ -68,10 +68,14 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
const { switchChain } = useSwitchChain()
|
||||
const { connectWallet } = useWallet()
|
||||
|
||||
const isWithdrawal = React.useMemo(
|
||||
() => (sourceAsset?.name?.startsWith('Lux') ? true : false),
|
||||
const toBurn = React.useMemo(
|
||||
() => ((sourceAsset.name.startsWith('Lux ') || sourceAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[sourceAsset]
|
||||
)
|
||||
const toMint = React.useMemo(
|
||||
() => ((destinationAsset.name.startsWith('Lux ') || destinationAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[destinationAsset]
|
||||
)
|
||||
|
||||
React.useEffect(() => {
|
||||
if (isConnecting) return;
|
||||
@@ -80,19 +84,19 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
notify('Please connect wallet first.', 'info')
|
||||
// connectWallet('evm')
|
||||
} else {
|
||||
if (isWithdrawal) {
|
||||
if (toMint) {
|
||||
mintDestinationToken()
|
||||
} else {
|
||||
if (Number(chainId) === Number(destinationNetwork?.chain_id)) {
|
||||
withdrawDestinationToken()
|
||||
} else {
|
||||
destinationNetwork.chain_id && switchChain && switchChain({ chainId: destinationNetwork.chain_id })
|
||||
}
|
||||
} else {
|
||||
payoutDestinationToken()
|
||||
}
|
||||
}
|
||||
}, [signer])
|
||||
|
||||
const payoutDestinationToken = async () => {
|
||||
const mintDestinationToken = async () => {
|
||||
const mintData = {
|
||||
hashedTxId_: Web3.utils.keccak256(userTransferTransaction),
|
||||
toTokenAddress_: destinationAsset?.contract_address,
|
||||
@@ -322,7 +326,9 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
)
|
||||
// connectWallet('evm')
|
||||
} else {
|
||||
if (isWithdrawal) {
|
||||
if (toMint) {
|
||||
mintDestinationToken()
|
||||
} else {
|
||||
if (Number(chainId) === Number(destinationNetwork.chain_id)) {
|
||||
withdrawDestinationToken()
|
||||
} else {
|
||||
@@ -330,8 +336,6 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
switchChain &&
|
||||
switchChain({ chainId: destinationNetwork.chain_id })
|
||||
}
|
||||
} else {
|
||||
payoutDestinationToken()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -356,7 +360,7 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
<Gauge value={60} size="medium" />
|
||||
</span>
|
||||
<div className="mt-2">
|
||||
{isWithdrawal ? 'Withdraw' : 'Get'} Your{' '}
|
||||
{toMint ? 'Mint' : 'Withdraw'} Your{' '}
|
||||
{destinationAsset.asset}
|
||||
</div>
|
||||
</div>
|
||||
@@ -367,7 +371,7 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
</span>
|
||||
<div className="flex flex-col items-start text-sm">
|
||||
<span>
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${isWithdrawal ? 'burnt' : 'transferred'}`}
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${toBurn ? 'burnt' : 'transferred'}`}
|
||||
</span>
|
||||
<div className="underline flex gap-2 items-center">
|
||||
{shortenAddress(userTransferTransaction)}
|
||||
@@ -426,7 +430,7 @@ const PayoutProcessor: React.FC<IProps> = ({
|
||||
<ArrowRight />
|
||||
)}
|
||||
<span className="grow">
|
||||
{isWithdrawal ? `Withdraw Your ${destinationAsset?.asset}` : `Get Your ${destinationAsset?.asset}`}
|
||||
{toMint ? `Mint Your ${destinationAsset?.asset}` : `Withdraw Your ${destinationAsset?.asset}`}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -52,6 +52,11 @@ const SwapItems: React.FC<IProps> = ({
|
||||
const chainId = useChainId()
|
||||
const signer = useEthersSigner()
|
||||
|
||||
const toMint = React.useMemo(
|
||||
() => ((destinationAsset.name.startsWith('Lux ') || destinationAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[destinationAsset]
|
||||
)
|
||||
|
||||
const _network = networks.find((n) => n.chain_id === chainId)
|
||||
|
||||
const _renderWallet = () => {
|
||||
@@ -137,11 +142,6 @@ const SwapItems: React.FC<IProps> = ({
|
||||
}
|
||||
}, [signer, chainId])
|
||||
|
||||
const isWithdrawal = React.useMemo(
|
||||
() => (sourceAsset?.name?.startsWith("Lux") ? true : false),
|
||||
[sourceAsset]
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-4">
|
||||
{_renderWallet()}
|
||||
@@ -175,9 +175,7 @@ const SwapItems: React.FC<IProps> = ({
|
||||
|
||||
<div className="flex items-end gap-1 justify-end text-xs">
|
||||
{isFetching || !signer ? (
|
||||
<span className="px-2">
|
||||
<MoveIcon />
|
||||
</span>
|
||||
<span className="ml-1 h-3 w-16 rounded-sm bg-level-3 animate-pulse" />
|
||||
) : (
|
||||
<>
|
||||
<WalletIcon height={20} width={20} />
|
||||
@@ -210,19 +208,17 @@ const SwapItems: React.FC<IProps> = ({
|
||||
</div>
|
||||
<div className="flex flex-col text-[#85c285]">
|
||||
<p className=" text-sm">
|
||||
{isWithdrawal ? truncateDecimals(Number(sourceAmount) * 0.99, 6) : truncateDecimals(Number(sourceAmount), 6)}{' '}
|
||||
{toMint ? truncateDecimals(Number(sourceAmount), 6) : truncateDecimals(Number(sourceAmount) * 0.99, 6)}{' '}
|
||||
{destinationAsset.asset}
|
||||
</p>
|
||||
<p className=" text-sm flex justify-end">
|
||||
${isWithdrawal ? truncateDecimals(Number(sourceAmount) * 0.99 * tokenPrice, 6) : truncateDecimals(Number(sourceAmount) * tokenPrice, 6)}
|
||||
${toMint ? truncateDecimals(Number(sourceAmount) * tokenPrice, 6) : truncateDecimals(Number(sourceAmount) * 0.99 * tokenPrice, 6)}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-end gap-1 justify-end text-xs">
|
||||
{isFetching || !signer ? (
|
||||
<span className="px-2">
|
||||
<MoveIcon />
|
||||
</span>
|
||||
<span className="ml-1 h-3 w-16 rounded-sm bg-level-3 animate-pulse" />
|
||||
) : (
|
||||
<>
|
||||
<WalletIcon height={20} width={20} />
|
||||
|
||||
@@ -35,11 +35,16 @@ const SwapSuccess: React.FC<{
|
||||
)
|
||||
const [userTransferTransaction] = useAtom(userTransferTransactionAtom)
|
||||
|
||||
const isWithdrawal = React.useMemo(
|
||||
() => (sourceAsset.name.startsWith('Lux') ? true : false),
|
||||
const toBurn = React.useMemo(
|
||||
() => ((sourceAsset.name.startsWith('Lux ') || sourceAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[sourceAsset]
|
||||
)
|
||||
|
||||
const toMint = React.useMemo(
|
||||
() => ((destinationAsset.name.startsWith('Lux ') || destinationAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[destinationAsset]
|
||||
)
|
||||
|
||||
return (
|
||||
<div className={`w-full flex flex-col ${className}`}>
|
||||
<div className="space-y-5">
|
||||
@@ -72,7 +77,7 @@ const SwapSuccess: React.FC<{
|
||||
</span>
|
||||
<div className="flex flex-col items-start text-sm">
|
||||
<span>
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${isWithdrawal ? 'burnt' : 'transferred'}`}
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${toBurn ? 'burnt' : 'transferred'}`}
|
||||
</span>
|
||||
<div className="underline flex gap-2 items-center">
|
||||
{shortenAddress(userTransferTransaction)}
|
||||
@@ -127,7 +132,7 @@ const SwapSuccess: React.FC<{
|
||||
<Gauge value={100} size="verySmall" showCheckmark={true} />
|
||||
</span>
|
||||
<div className="flex flex-col text-sm">
|
||||
<span>{isWithdrawal ? String(truncateDecimals(Number(sourceAmount) * 0.99, 6)) : String(truncateDecimals(Number(sourceAmount), 6))} {destinationAsset?.asset} has been arrived</span>
|
||||
<span>{toMint ? String(truncateDecimals(Number(sourceAmount), 6)) : String(truncateDecimals(Number(sourceAmount) * 0.99, 6))} {destinationAsset?.asset} has been arrived</span>
|
||||
<div className="underline flex gap-2 items-center">
|
||||
{shortenAddress(bridgeMintTransactionHash)}
|
||||
<Tooltip>
|
||||
|
||||
@@ -59,10 +59,14 @@ const TeleportProcessor: React.FC<IProps> = ({
|
||||
|
||||
const { notify } = useNotify();
|
||||
|
||||
const isWithdrawal = React.useMemo(
|
||||
() => (sourceAsset.name.startsWith('Lux') ? true : false),
|
||||
const toBurn = React.useMemo(
|
||||
() => ((sourceAsset.name.startsWith('Lux ') || sourceAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[sourceAsset]
|
||||
)
|
||||
const toMint = React.useMemo(
|
||||
() => ((destinationAsset.name.startsWith('Lux ') || destinationAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[destinationAsset]
|
||||
)
|
||||
|
||||
React.useEffect(() => {
|
||||
if (isConnecting) return;
|
||||
@@ -183,7 +187,7 @@ const TeleportProcessor: React.FC<IProps> = ({
|
||||
</span>
|
||||
<div className="flex flex-col items-start text-sm">
|
||||
<span>
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${isWithdrawal ? 'burnt' : 'transferred'}`}
|
||||
{`${truncateDecimals(Number(sourceAmount), 6)} ${sourceAsset?.asset} ${toBurn ? 'burnt' : 'transferred'}`}
|
||||
</span>
|
||||
<div className="underline flex gap-2 items-center">
|
||||
{shortenAddress(userTransferTransaction)}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React from 'react'
|
||||
import { swapStatusAtom, userTransferTransactionAtom } from '@/store/teleport'
|
||||
import { ArrowRight, Router } from 'lucide-react'
|
||||
import { ArrowRight, Router, Wallet2Icon } from 'lucide-react'
|
||||
import { Contract } from 'ethers'
|
||||
import { CONTRACTS } from '@/components/lux/teleport/constants/settings'
|
||||
|
||||
@@ -43,8 +43,7 @@ const UserTokenDepositor: React.FC<IProps> = ({
|
||||
}) => {
|
||||
const { notify } = useNotify()
|
||||
//state
|
||||
const [isTokenTransferring, setIsTokenTransferring] =
|
||||
React.useState<boolean>(false)
|
||||
const [isTokenTransferring, setIsTokenTransferring] = React.useState<boolean>(false)
|
||||
const [userDepositNotice, setUserDepositNotice] = React.useState<string>('')
|
||||
//atoms
|
||||
const [, setSwapStatus] = useAtom(swapStatusAtom)
|
||||
@@ -54,8 +53,8 @@ const UserTokenDepositor: React.FC<IProps> = ({
|
||||
const { switchChain } = useSwitchChain()
|
||||
const { connectWallet } = useWallet()
|
||||
|
||||
const isWithdrawal = React.useMemo(
|
||||
() => (sourceAsset.name.startsWith('Lux') ? true : false),
|
||||
const toBurn = React.useMemo(
|
||||
() => ((sourceAsset.name.startsWith('Lux ') || sourceAsset.name.startsWith('Zoo ')) ? true : false),
|
||||
[sourceAsset]
|
||||
)
|
||||
|
||||
@@ -66,7 +65,7 @@ const UserTokenDepositor: React.FC<IProps> = ({
|
||||
notify('Please connect wallet first.', 'info')
|
||||
} else {
|
||||
if (Number(chainId) === Number(sourceNetwork?.chain_id)) {
|
||||
isWithdrawal ? burnToken() : transferToken()
|
||||
toBurn ? burnToken() : transferToken()
|
||||
} else {
|
||||
sourceNetwork.chain_id && switchChain && switchChain({ chainId: sourceNetwork.chain_id })
|
||||
}
|
||||
@@ -253,8 +252,7 @@ const UserTokenDepositor: React.FC<IProps> = ({
|
||||
} else if (Number(chainId) !== Number(sourceNetwork.chain_id)) {
|
||||
sourceNetwork.chain_id && switchChain && switchChain({ chainId: sourceNetwork.chain_id })
|
||||
} else {
|
||||
console.log("transfer")
|
||||
isWithdrawal ? burnToken() : transferToken()
|
||||
toBurn ? burnToken() : transferToken()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,24 +269,35 @@ const UserTokenDepositor: React.FC<IProps> = ({
|
||||
sourceAmount={sourceAmount}
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
disabled={isTokenTransferring}
|
||||
onClick={handleTokenTransfer}
|
||||
className="border border-muted-3 disabled:border-[#404040] items-center space-x-1 disabled:opacity-80 disabled:cursor-not-allowed relative w-full flex justify-center font-semibold rounded-md transform transition duration-200 ease-in-out hover:bg-primary-hover bg-primary-lux text-primary-fg disabled:hover:bg-primary-lux py-3 px-2 md:px-3 plausible-event-name=Swap+initiated"
|
||||
>
|
||||
{isTokenTransferring ? (
|
||||
<SpinIcon className="animate-spin h-5 w-5" />
|
||||
) : (
|
||||
<ArrowRight />
|
||||
)}
|
||||
{isTokenTransferring ? (
|
||||
<span className="grow">{userDepositNotice}</span>
|
||||
) : (
|
||||
<span className="grow">
|
||||
{isWithdrawal ? 'Burn' : 'Transfer'} {sourceAsset.asset}
|
||||
</span>
|
||||
)}
|
||||
</button>
|
||||
{
|
||||
!signer ?
|
||||
<button
|
||||
onClick={() => connectWallet('evm')}
|
||||
className="border border-muted-3 disabled:border-[#404040] items-center space-x-1 disabled:opacity-80 disabled:cursor-not-allowed relative w-full flex justify-center font-semibold rounded-md transform transition duration-200 ease-in-out hover:bg-primary-hover bg-primary-lux text-primary-fg disabled:hover:bg-primary-lux py-3 px-2 md:px-3 plausible-event-name=Swap+initiated"
|
||||
>
|
||||
<Wallet2Icon className="h-5 w-5" />
|
||||
<span className="grow">Connect Wallet</span>
|
||||
</button> :
|
||||
<button
|
||||
disabled={isTokenTransferring}
|
||||
onClick={handleTokenTransfer}
|
||||
className="border border-muted-3 disabled:border-[#404040] items-center space-x-1 disabled:opacity-80 disabled:cursor-not-allowed relative w-full flex justify-center font-semibold rounded-md transform transition duration-200 ease-in-out hover:bg-primary-hover bg-primary-lux text-primary-fg disabled:hover:bg-primary-lux py-3 px-2 md:px-3 plausible-event-name=Swap+initiated"
|
||||
>
|
||||
{isTokenTransferring ? (
|
||||
<SpinIcon className="animate-spin h-5 w-5" />
|
||||
) : (
|
||||
<ArrowRight />
|
||||
)}
|
||||
{isTokenTransferring ? (
|
||||
<span className="grow">{userDepositNotice}</span>
|
||||
) : (
|
||||
<span className="grow">
|
||||
{toBurn ? 'Burn' : 'Transfer'} {sourceAsset.asset}
|
||||
</span>
|
||||
)}
|
||||
</button>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -34,7 +34,7 @@ const TokenSelect: React.FC<{
|
||||
height="40"
|
||||
width="40"
|
||||
loading="eager"
|
||||
className="rounded-md object-contain"
|
||||
className="rounded-full object-contain"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -290,6 +290,22 @@
|
||||
"destination_base_fee": 1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "LZOO",
|
||||
"asset": "LZOO",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.2,
|
||||
"withdrawal_fee": 0.2,
|
||||
"source_base_fee": 1,
|
||||
"destination_base_fee": 1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "LFTM",
|
||||
"asset": "LFTM",
|
||||
@@ -380,6 +396,286 @@
|
||||
],
|
||||
"created_date": "2024-01-01T00:00:00.000000+00:00"
|
||||
},
|
||||
{
|
||||
"display_name": "Zoo Mainnet",
|
||||
"internal_name": "ZOO_MAINNET",
|
||||
"native_currency": "ZOO",
|
||||
"is_testnet": false,
|
||||
"is_featured": true,
|
||||
"average_completion_time": "00:00:07.7777777",
|
||||
"chain_id": "200200",
|
||||
"status": "active",
|
||||
"type": "evm",
|
||||
"refuel_amount_in_usd": 1,
|
||||
"transaction_explorer_template": "https://explore.zoo.network/tx/{0}",
|
||||
"account_explorer_template": "https://explore.zoo.network/address/{0}",
|
||||
"currencies": [
|
||||
{
|
||||
"name": "ZOO",
|
||||
"asset": "ZOO",
|
||||
"contract_address": null,
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": true,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.000108,
|
||||
"withdrawal_fee": 0.000108,
|
||||
"source_base_fee": 0.000545,
|
||||
"destination_base_fee": 0.000545,
|
||||
"is_native": true
|
||||
},
|
||||
{
|
||||
"name": "WETH",
|
||||
"asset": "WETH",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": true,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "USDT",
|
||||
"asset": "USDT",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 6,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "USDC",
|
||||
"asset": "USDC",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 6,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "DAI",
|
||||
"asset": "DAI",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZETH",
|
||||
"asset": "ZETH",
|
||||
"contract_address": "0x999Ab39dF1Ae0F0069303B430A52f16FFdaAC69C",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZBTC",
|
||||
"asset": "ZBTC",
|
||||
"contract_address": "0xd7bE6F0E47acb95944fcc357a4392cAa5670B9e4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZUSD",
|
||||
"asset": "ZUSD",
|
||||
"contract_address": "0xA7EF94FfacA04aA51aCB66Ad93691a10Ce6eAcf4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZLUX",
|
||||
"asset": "ZLUX",
|
||||
"contract_address": "0xA7EF94FfacA04aA51aCB66Ad93691a10Ce6eAcf4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZFTM",
|
||||
"asset": "ZFTM",
|
||||
"contract_address": "0xE1276a2F675A1D7F69FC2C78Ca6a39d1D951fD35",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZTON",
|
||||
"asset": "ZTON",
|
||||
"contract_address": "0xf41380968E9D408a143ddC63322565793d0750f8",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZSOL",
|
||||
"asset": "ZSOL",
|
||||
"contract_address": "",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZCELO",
|
||||
"asset": "ZCELO",
|
||||
"contract_address": "0xe0feC703840364714b97272973B8945FD5eB5600",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZXDAI",
|
||||
"asset": "ZXDAI",
|
||||
"contract_address": "0x426123c16f821A1C945F57d8730210185DA16724",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZPOL",
|
||||
"asset": "ZPOL",
|
||||
"contract_address": "0x305B062C74F92d05de7Cbccd1923f19c7B27eAB1",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZBNB",
|
||||
"asset": "ZBNB",
|
||||
"contract_address": "0x2c04439Dc52080E56882f61B2C4fb059A412fD5b",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
}
|
||||
],
|
||||
"metadata": null,
|
||||
"managed_accounts": [],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "https://api.zoo.network"
|
||||
}
|
||||
],
|
||||
"created_date": "2024-01-01T00:00:00.000000+00:00"
|
||||
},
|
||||
{
|
||||
"display_name": "Polygon",
|
||||
"internal_name": "POLYGON_MAINNET",
|
||||
|
||||
@@ -453,6 +453,22 @@
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "LZOO",
|
||||
"asset": "LZOO",
|
||||
"contract_address": "0xA7EF94FfacA04aA51aCB66Ad93691a10Ce6eAcf4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "LFTM",
|
||||
"asset": "LFTM",
|
||||
@@ -575,6 +591,286 @@
|
||||
],
|
||||
"created_date": "2024-01-01T00:00:00.000000+00:00"
|
||||
},
|
||||
{
|
||||
"display_name": "Zoo Testnet",
|
||||
"internal_name": "ZOO_TESTNET",
|
||||
"native_currency": "ZOO",
|
||||
"is_testnet": true,
|
||||
"is_featured": true,
|
||||
"average_completion_time": "00:00:07.7777777",
|
||||
"chain_id": "200201",
|
||||
"status": "active",
|
||||
"type": "evm",
|
||||
"refuel_amount_in_usd": 1,
|
||||
"transaction_explorer_template": "https://explore.zoo-test.network/tx/{0}",
|
||||
"account_explorer_template": "https://explore.zoo-test.network/address/{0}",
|
||||
"currencies": [
|
||||
{
|
||||
"name": "ZOO",
|
||||
"asset": "ZOO",
|
||||
"contract_address": null,
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": true,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.000108,
|
||||
"withdrawal_fee": 0.000108,
|
||||
"source_base_fee": 0.000545,
|
||||
"destination_base_fee": 0.000545,
|
||||
"is_native": true
|
||||
},
|
||||
{
|
||||
"name": "WETH",
|
||||
"asset": "WETH",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": true,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "USDT",
|
||||
"asset": "USDT",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 6,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "USDC",
|
||||
"asset": "USDC",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 6,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "DAI",
|
||||
"asset": "DAI",
|
||||
"contract_address": "0x0000000000000000000000000000000000000000",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZETH",
|
||||
"asset": "ZETH",
|
||||
"contract_address": "0x999Ab39dF1Ae0F0069303B430A52f16FFdaAC69C",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZBTC",
|
||||
"asset": "ZBTC",
|
||||
"contract_address": "0xd7bE6F0E47acb95944fcc357a4392cAa5670B9e4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZUSD",
|
||||
"asset": "ZUSD",
|
||||
"contract_address": "0xA7EF94FfacA04aA51aCB66Ad93691a10Ce6eAcf4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZLUX",
|
||||
"asset": "ZLUX",
|
||||
"contract_address": "0xA7EF94FfacA04aA51aCB66Ad93691a10Ce6eAcf4",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZFTM",
|
||||
"asset": "ZFTM",
|
||||
"contract_address": "0xE1276a2F675A1D7F69FC2C78Ca6a39d1D951fD35",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZTON",
|
||||
"asset": "ZTON",
|
||||
"contract_address": "0xf41380968E9D408a143ddC63322565793d0750f8",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZSOL",
|
||||
"asset": "ZSOL",
|
||||
"contract_address": "",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZCELO",
|
||||
"asset": "ZCELO",
|
||||
"contract_address": "0xe0feC703840364714b97272973B8945FD5eB5600",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZXDAI",
|
||||
"asset": "ZXDAI",
|
||||
"contract_address": "0x426123c16f821A1C945F57d8730210185DA16724",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZPOL",
|
||||
"asset": "ZPOL",
|
||||
"contract_address": "0x305B062C74F92d05de7Cbccd1923f19c7B27eAB1",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
},
|
||||
{
|
||||
"name": "ZBNB",
|
||||
"asset": "ZBNB",
|
||||
"contract_address": "0x2c04439Dc52080E56882f61B2C4fb059A412fD5b",
|
||||
"decimals": 18,
|
||||
"status": "active",
|
||||
"is_deposit_enabled": false,
|
||||
"is_withdrawal_enabled": false,
|
||||
"is_refuel_enabled": false,
|
||||
"max_withdrawal_amount": 0,
|
||||
"deposit_fee": 0.1,
|
||||
"withdrawal_fee": 0.1,
|
||||
"source_base_fee": 0.1,
|
||||
"destination_base_fee": 0.1,
|
||||
"is_native": false
|
||||
}
|
||||
],
|
||||
"metadata": null,
|
||||
"managed_accounts": [],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "https://api.zoo-test.network"
|
||||
}
|
||||
],
|
||||
"created_date": "2024-01-01T00:00:00.000000+00:00"
|
||||
},
|
||||
{
|
||||
"display_name": "BSC Testnet",
|
||||
"internal_name": "BSC_TESTNET",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# for local dev
|
||||
POSTGRESQL_URL='file:./dev.sqlite'
|
||||
POSTGRES_URL='file:./dev.sqlite'
|
||||
PORT=8080
|
||||
GH_USER=
|
||||
GH_TOKEN=
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"devDependencies": {
|
||||
"@types/cors": "^2.8.17",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/jsonwebtoken": "^9.0.7",
|
||||
"@types/multicoin-address-validator": "^0.5.3",
|
||||
"@types/node": "^20.11.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.2.0",
|
||||
@@ -56,6 +57,7 @@
|
||||
"ethers": "^6.13.4",
|
||||
"express": "^4.19.2",
|
||||
"express-validator": "^7.2.0",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"module-alias": "^2.2.3",
|
||||
"multicoin-address-validator": "^0.5.22"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
//import { handlerGetExplorer, handlerGetHasBySwaps } from "@/helpers/swapHelper"
|
||||
import { Router, Request, Response } from "express"
|
||||
import jwt from 'jsonwebtoken';
|
||||
|
||||
import { mainnetSettings, testnetSettings } from "@/settings"
|
||||
|
||||
const router: Router = Router()
|
||||
|
||||
function generateToken() {
|
||||
const options = <jwt.SignOptions>{
|
||||
subject: process.env.SERVICE_ACCOUNT_EMAIL,
|
||||
audience: "https://api.utila.io/",
|
||||
expiresIn: "1h",
|
||||
algorithm: <jwt.Algorithm>"RS256",
|
||||
};
|
||||
return jwt.sign({}, process.env.SERVICE_ACCOUNT_PRIVATE_KEY as string, options);
|
||||
}
|
||||
|
||||
// route: /api/utila/
|
||||
// description:
|
||||
// method: GET and it's public
|
||||
router.get("/", async (req: Request, res: Response) => {
|
||||
try {
|
||||
|
||||
const token = generateToken ()
|
||||
console.log(token)
|
||||
|
||||
res.status(200).json({ data: token })
|
||||
}
|
||||
catch (error: any) {
|
||||
console.log(error)
|
||||
res.status(500).json({ error: error })
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
export default router
|
||||
@@ -11,6 +11,7 @@ import quotes from "@/routes/quotes"
|
||||
import rate from "@/routes/rate"
|
||||
import networks from "@/routes/networks"
|
||||
import exchanges from "@/routes/exchanges"
|
||||
import utila from "@/routes/utila"
|
||||
|
||||
dotenv.config()
|
||||
|
||||
@@ -30,6 +31,7 @@ app.use("/api/quotes", quotes)
|
||||
app.use("/api/rate", rate)
|
||||
app.use("/api/networks", networks)
|
||||
app.use("/api/exchanges", exchanges)
|
||||
app.use("/api/utila", utila)
|
||||
|
||||
app.get("/", async (req, res) => {
|
||||
res.json(">>> Hello world. We are LUX!!!")
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
// Importing JSON files for mainnet
|
||||
import mainnetNetworks from './mainnet/networks.json'
|
||||
import mainnetExchanges from './mainnet/exchanges.json'
|
||||
// Importing JSON files for testnet
|
||||
import testnetExchanges from './testnet/exchanges.json'
|
||||
import testnetNetworks from './testnet/networks.json'
|
||||
|
||||
export const mainnetSettings = {
|
||||
data: {
|
||||
currencies: [],
|
||||
discovery: {},
|
||||
exchanges: mainnetExchanges,
|
||||
networks: [...mainnetNetworks, ...testnetNetworks],
|
||||
},
|
||||
sources: [],
|
||||
destinations: [],
|
||||
contractAddress: {},
|
||||
error: null,
|
||||
}
|
||||
|
||||
export const testnetSettings = {
|
||||
data: {
|
||||
currencies: [],
|
||||
discovery: {},
|
||||
exchanges: testnetExchanges,
|
||||
networks: testnetNetworks,
|
||||
},
|
||||
sources: [],
|
||||
destinations: [],
|
||||
contractAddress: {},
|
||||
error: null,
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@ node_modules
|
||||
/coverage
|
||||
/coverage.json
|
||||
|
||||
/scripts/deploy.local.ts
|
||||
/scripts/deploy.local*
|
||||
|
||||
# Hardhat Ignition default folder for deployments against a local node
|
||||
ignition/deployments/chain-31337
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
/**
|
||||
███████╗ ██████╗ ██████╗ ██╗ ██╗ █████╗ ██╗ ██╗██╗ ████████╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██║ ██║██╔══██╗██║ ██║██║ ╚══██╔══╝
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║███████║██║ ██║██║ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ╚██╗ ██╔╝██╔══██║██║ ██║██║ ██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ╚████╔╝ ██║ ██║╚██████╔╝███████╗ ██║
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝
|
||||
*/
|
||||
|
||||
import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";
|
||||
import {LERC4626} from "./LERC4626.sol";
|
||||
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
||||
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
||||
import {ETHVault} from "./ETHVault.sol";
|
||||
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
||||
|
||||
contract ZooVault is Ownable {
|
||||
mapping(address => address) public erc20Vault;
|
||||
address payable public ethVaultAddress;
|
||||
uint256 public totalVaultLength;
|
||||
address[] public assets;
|
||||
|
||||
event ERC20VaultCreated(
|
||||
address indexed asset,
|
||||
address indexed vaultAddress
|
||||
);
|
||||
|
||||
constructor() Ownable(msg.sender) {
|
||||
ethVaultAddress = payable(0); // Setting to zero address
|
||||
}
|
||||
|
||||
function concat(
|
||||
string memory a,
|
||||
string memory b
|
||||
) internal pure returns (string memory) {
|
||||
return string(abi.encodePacked(a, b));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev add new ERC20 vault
|
||||
* @param asset_ ERC20 token address
|
||||
*/
|
||||
function addNewVault(address asset_) external onlyOwner {
|
||||
_addNewVault(asset_);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev add new ERC20 or ETH vault
|
||||
* @param asset_ asset address
|
||||
*/
|
||||
function _addNewVault(address asset_) private {
|
||||
if(asset_ == address(0)) {
|
||||
_addETHVault();
|
||||
} else {
|
||||
_addNewERC20Vault(asset_);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev add new ERC20 vault
|
||||
* @param asset_ ERC20 token address
|
||||
*/
|
||||
function _addNewERC20Vault(address asset_) private {
|
||||
require(erc20Vault[asset_] == address(0), "Vault already exists.");
|
||||
LERC4626 newERC20Vault = new LERC4626(
|
||||
IERC20(asset_),
|
||||
concat(ERC20(asset_).name(), " Vault"),
|
||||
concat("v", ERC20(asset_).symbol())
|
||||
);
|
||||
address newVaultAddress = address(newERC20Vault);
|
||||
erc20Vault[asset_] = newVaultAddress;
|
||||
IERC20(asset_).approve(newVaultAddress, type(uint256).max);
|
||||
totalVaultLength++;
|
||||
assets.push(asset_);
|
||||
emit ERC20VaultCreated(asset_, newVaultAddress);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev add ETH vault
|
||||
*/
|
||||
function _addETHVault() private {
|
||||
require(ethVaultAddress == payable(0), "ethVaultAddress already exists!");
|
||||
ETHVault _newETHVault = new ETHVault("Native Vault", "ethVault");
|
||||
ethVaultAddress = payable(address(_newETHVault));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev deposit asset
|
||||
* @param asset_ ERC20 token address
|
||||
* @param amount_ token amount
|
||||
*/
|
||||
function deposit(
|
||||
address asset_,
|
||||
uint256 amount_
|
||||
) external payable onlyOwner {
|
||||
if (asset_ == address(0)) {
|
||||
if(ethVaultAddress == payable(0)) {
|
||||
_addNewVault(address(0));
|
||||
}
|
||||
require(msg.value >= amount_, "Insufficient ETH amount");
|
||||
ETHVault(ethVaultAddress).deposit{value: amount_}(amount_, owner());
|
||||
} else {
|
||||
if(erc20Vault[asset_] == address(0)) {
|
||||
_addNewVault(asset_);
|
||||
}
|
||||
ERC4626(erc20Vault[asset_]).deposit(amount_, owner());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev withdraw asset
|
||||
* @param asset_ ERC20 token address
|
||||
* @param receiver_ receiver's address
|
||||
* @param amount_ token amount
|
||||
*/
|
||||
function withdraw(
|
||||
address asset_,
|
||||
address receiver_,
|
||||
uint256 amount_
|
||||
) external onlyOwner {
|
||||
if (asset_ == address(0)) {
|
||||
require(ethVaultAddress != payable(0), "Ethvault does not exist!");
|
||||
ETHVault(ethVaultAddress).withdraw(amount_, receiver_, owner());
|
||||
} else {
|
||||
require(erc20Vault[asset_] != payable(0), "Ethvault does not exist!");
|
||||
ERC4626(erc20Vault[asset_]).withdraw(amount_, receiver_, owner());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev preview withdraw
|
||||
* @param asset_ asset address
|
||||
* @return value token amount available for withdrawal
|
||||
*/
|
||||
function previewWithdraw(
|
||||
address asset_
|
||||
) public view returns (uint256) {
|
||||
if (asset_ == address(0)) {
|
||||
if(ethVaultAddress == payable(0)) {
|
||||
return 0;
|
||||
} else {
|
||||
return ETHVault(ethVaultAddress).balanceOf(owner());
|
||||
}
|
||||
} else {
|
||||
if(erc20Vault[asset_] == address(0)) {
|
||||
return 0;
|
||||
} else {
|
||||
return ERC4626(erc20Vault[asset_]).maxWithdraw(owner());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev get vault info according to asset address
|
||||
* @param asset_ ERC20 token address
|
||||
* @return info vault info
|
||||
*/
|
||||
function getVaultInfo(
|
||||
address asset_
|
||||
)
|
||||
external
|
||||
view
|
||||
returns (
|
||||
string memory,
|
||||
string memory,
|
||||
string memory,
|
||||
string memory,
|
||||
address,
|
||||
uint256
|
||||
)
|
||||
{
|
||||
if (asset_ == address(0)) {
|
||||
return (
|
||||
"Native Token",
|
||||
"ETH",
|
||||
ETHVault(ethVaultAddress).name(),
|
||||
ETHVault(ethVaultAddress).symbol(),
|
||||
ethVaultAddress,
|
||||
ETHVault(ethVaultAddress).totalSupply()
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
ERC20(asset_).name(),
|
||||
ERC20(asset_).symbol(),
|
||||
LERC4626(erc20Vault[asset_]).name(),
|
||||
LERC4626(erc20Vault[asset_]).symbol(), // Add parentheses here
|
||||
erc20Vault[asset_],
|
||||
LERC4626(erc20Vault[asset_]).totalAssets()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
receive() external payable {}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxBNB is ERC20B {
|
||||
string public constant _name = "Lux BNB";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.20;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxBTC is ERC20B {
|
||||
string public constant _name = "Lux BTC";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝╚══════╝ ╚═════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxCELO is ERC20B {
|
||||
string public constant _name = "Lux CELO";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxETH is ERC20B {
|
||||
string public constant _name = "Lux ETH";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxFTM is ERC20B {
|
||||
string public constant _name = "Lux FTM";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxPOL is ERC20B {
|
||||
string public constant _name = "Lux POL";
|
||||
@@ -5,15 +5,15 @@
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
██╗ ██╗ ██╗██╗ ██╗ ██████╗ ███╗ ██╗██████╗
|
||||
██║ ██║ ██║╚██╗██╔╝ ██╔══██╗████╗ ██║██╔══██╗
|
||||
██║ ██║ ██║ ╚███╔╝ ██████╔╝██╔██╗ ██║██████╔╝
|
||||
██║ ██║ ██║ ██╔██╗ ██╔══██╗██║╚██╗██║██╔══██╗
|
||||
███████╗╚██████╔╝██╔╝ ██╗ ██████╔╝██║ ╚████║██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝
|
||||
██╗ ██╗ ██╗██╗ ██╗ ███████╗ ██████╗ ██╗
|
||||
██║ ██║ ██║╚██╗██╔╝ ██╔════╝██╔═══██╗██║
|
||||
██║ ██║ ██║ ╚███╔╝ ███████╗██║ ██║██║
|
||||
██║ ██║ ██║ ██╔██╗ ╚════██║██║ ██║██║
|
||||
███████╗╚██████╔╝██╔╝ ██╗ ███████║╚██████╔╝███████╗
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚══════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxSOL is ERC20B {
|
||||
string public constant _name = "Lux Solana";
|
||||
@@ -5,15 +5,15 @@
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
██╗ ██╗ ██╗██╗ ██╗ ██████╗ ███╗ ██╗██████╗
|
||||
██║ ██║ ██║╚██╗██╔╝ ██╔══██╗████╗ ██║██╔══██╗
|
||||
██║ ██║ ██║ ╚███╔╝ ██████╔╝██╔██╗ ██║██████╔╝
|
||||
██║ ██║ ██║ ██╔██╗ ██╔══██╗██║╚██╗██║██╔══██╗
|
||||
███████╗╚██████╔╝██╔╝ ██╗ ██████╔╝██║ ╚████║██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝
|
||||
██╗ ██╗ ██╗██╗ ██╗ ████████╗ ██████╗ ███╗ ██╗
|
||||
██║ ██║ ██║╚██╗██╔╝ ╚══██╔══╝██╔═══██╗████╗ ██║
|
||||
██║ ██║ ██║ ╚███╔╝ ██║ ██║ ██║██╔██╗ ██║
|
||||
██║ ██║ ██║ ██╔██╗ ██║ ██║ ██║██║╚██╗██║
|
||||
███████╗╚██████╔╝██╔╝ ██╗ ██║ ╚██████╔╝██║ ╚████║
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxTON is ERC20B {
|
||||
string public constant _name = "Lux TON";
|
||||
@@ -10,7 +10,7 @@ pragma solidity ^0.8.20;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═════╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxUSD is ERC20B {
|
||||
string public constant _name = "Lux Dollar";
|
||||
@@ -13,7 +13,7 @@ pragma solidity ^0.8.19;
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝
|
||||
*/
|
||||
|
||||
import "./ERC20B.sol";
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxXDAI is ERC20B {
|
||||
string public constant _name = "Lux XDAI";
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
/**
|
||||
██╗ ██╗ ██╗██╗ ██╗ ███████╗ ██████╗ ██████╗
|
||||
██║ ██║ ██║╚██╗██╔╝ ╚══███╔╝██╔═══██╗██╔═══██╗
|
||||
██║ ██║ ██║ ╚███╔╝ ███╔╝ ██║ ██║██║ ██║
|
||||
██║ ██║ ██║ ██╔██╗ ███╔╝ ██║ ██║██║ ██║
|
||||
███████╗╚██████╔╝██╔╝ ██╗ ███████╗╚██████╔╝╚██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract LuxZOO is ERC20B {
|
||||
string public constant _name = "Lux ZOO";
|
||||
string public constant _symbol = "LZOO";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗██████╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔══██╗████╗ ██║██╔══██╗
|
||||
███╔╝ ██║ ██║██║ ██║ ██████╔╝██╔██╗ ██║██████╔╝
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔══██╗██║╚██╗██║██╔══██╗
|
||||
███████╗╚██████╔╝╚██████╔╝ ██████╔╝██║ ╚████║██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooBNB is ERC20B {
|
||||
string public constant _name = "Zoo BNB";
|
||||
string public constant _symbol = "ZBNB";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
/**
|
||||
███████╗ ██████╗ ██████╗ ██████╗ ████████╗ ██████╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔══██╗╚══██╔══╝██╔════╝
|
||||
███╔╝ ██║ ██║██║ ██║ ██████╔╝ ██║ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔══██╗ ██║ ██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ██████╔╝ ██║ ╚██████╗
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooBTC is ERC20B {
|
||||
string public constant _name = "Zoo BTC";
|
||||
string public constant _symbol = "ZBTC";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ██████╗███████╗██╗ ██████╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔════╝██╔════╝██║ ██╔═══██╗
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ █████╗ ██║ ██║ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██╔══╝ ██║ ██║ ██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ╚██████╗███████╗███████╗╚██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝╚══════╝ ╚═════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooCELO is ERC20B {
|
||||
string public constant _name = "Zoo CELO";
|
||||
string public constant _symbol = "ZCELO";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ███████╗████████╗██╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔════╝╚══██╔══╝██║ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ █████╗ ██║ ███████║
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔══╝ ██║ ██╔══██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ███████╗ ██║ ██║ ██║
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooETH is ERC20B {
|
||||
string public constant _name = "Zoo ETH";
|
||||
string public constant _symbol = "ZETH";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ███████╗████████╗███╗ ███╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔════╝╚══██╔══╝████╗ ████║
|
||||
███╔╝ ██║ ██║██║ ██║ █████╗ ██║ ██╔████╔██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔══╝ ██║ ██║╚██╔╝██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ██║ ██║ ██║ ╚═╝ ██║
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooFTM is ERC20B {
|
||||
string public constant _name = "Zoo FTM";
|
||||
string public constant _symbol = "ZFTM";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
/**
|
||||
███████╗ ██████╗ ██████╗ ██╗ ██╗ ██╗██╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██║ ██║ ██║╚██╗██╔╝
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║ ██║ ╚███╔╝
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║ ██║ ██╔██╗
|
||||
███████╗╚██████╔╝╚██████╔╝ ███████╗╚██████╔╝██╔╝ ██╗
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooLUX is ERC20B {
|
||||
string public constant _name = "Zoo LUX";
|
||||
string public constant _symbol = "ZLUX";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔══██╗██╔═══██╗██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██████╔╝██║ ██║██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔═══╝ ██║ ██║██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ██║ ╚██████╔╝███████╗
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooPOL is ERC20B {
|
||||
string public constant _name = "Zoo POL";
|
||||
string public constant _symbol = "ZPOL";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ███████╗ ██████╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██╔════╝██╔═══██╗██║
|
||||
███╔╝ ██║ ██║██║ ██║ ███████╗██║ ██║██║
|
||||
███╔╝ ██║ ██║██║ ██║ ╚════██║██║ ██║██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ███████║╚██████╔╝███████╗
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooSOL is ERC20B {
|
||||
string public constant _name = "Zoo Solana";
|
||||
string public constant _symbol = "ZSOL";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ████████╗ ██████╗ ███╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ╚══██╔══╝██╔═══██╗████╗ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║ ██║██╔██╗ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║ ██║██║╚██╗██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ██║ ╚██████╔╝██║ ╚████║
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooTON is ERC20B {
|
||||
string public constant _name = "Zoo TON";
|
||||
string public constant _symbol = "ZTON";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
/**
|
||||
███████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ██║ ██║██╔════╝██╔══██╗
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║███████╗██║ ██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██║ ██║╚════██║██║ ██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ╚██████╔╝███████║██████╔╝
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooUSD is ERC20B {
|
||||
string public constant _name = "Zoo Dollar";
|
||||
string public constant _symbol = "ZUSD";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
/*
|
||||
███████╗ ██████╗ ██████╗ ██╗ ██╗██████╗ █████╗ ██╗
|
||||
╚══███╔╝██╔═══██╗██╔═══██╗ ╚██╗██╔╝██╔══██╗██╔══██╗██║
|
||||
███╔╝ ██║ ██║██║ ██║ ╚███╔╝ ██║ ██║███████║██║
|
||||
███╔╝ ██║ ██║██║ ██║ ██╔██╗ ██║ ██║██╔══██║██║
|
||||
███████╗╚██████╔╝╚██████╔╝ ██╔╝ ██╗██████╔╝██║ ██║██║
|
||||
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝
|
||||
*/
|
||||
|
||||
import "../ERC20B.sol";
|
||||
|
||||
contract ZooXDAI is ERC20B {
|
||||
string public constant _name = "Zoo XDAI";
|
||||
string public constant _symbol = "ZXDAI";
|
||||
|
||||
constructor() ERC20B(_name, _symbol) {}
|
||||
|
||||
function mint(address account, uint256 amount) public {
|
||||
_mint(account, amount);
|
||||
}
|
||||
|
||||
function burn(address account, uint256 amount) public {
|
||||
_burn(account, amount);
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,8 @@ const HOLESKY_RPC: string = process.env.HOLESKY_RPC!;
|
||||
const BSC_TESTNET_RPC: string = process.env.BSC_TESTNET_RPC!;
|
||||
const LUX_MAINNET_RPC: string = process.env.LUX_MAINNET_RPC!;
|
||||
const LUX_TESTNET_RPC: string = process.env.LUX_TESTNET_RPC!;
|
||||
const ZOO_MAINNET_RPC: string = process.env.ZOO_MAINNET_RPC!;
|
||||
const ZOO_TESTNET_RPC: string = process.env.ZOO_TESTNET_RPC!;
|
||||
const MAINNET_RPC: string = process.env.MAINNET_RPC!;
|
||||
|
||||
const BSC_MAINNET_RPC = process.env.BSC_MAINNET_RPC!;
|
||||
@@ -68,6 +70,10 @@ const config: HardhatUserConfig = {
|
||||
url: LUX_MAINNET_RPC,
|
||||
accounts: [`0x${PRIVATE_KEY}`],
|
||||
},
|
||||
zoo: {
|
||||
url: ZOO_MAINNET_RPC,
|
||||
accounts: [`0x${PRIVATE_KEY}`],
|
||||
},
|
||||
//////////////////////// testnet ////////////////////
|
||||
sepolia: {
|
||||
url: SEPOLIA_RPC,
|
||||
@@ -89,6 +95,10 @@ const config: HardhatUserConfig = {
|
||||
url: LUX_TESTNET_RPC,
|
||||
accounts: [`0x${PRIVATE_KEY}`],
|
||||
},
|
||||
zooTestnet: {
|
||||
url: ZOO_TESTNET_RPC,
|
||||
accounts: [`0x${PRIVATE_KEY}`],
|
||||
},
|
||||
},
|
||||
etherscan: {
|
||||
apiKey: {
|
||||
@@ -123,6 +133,22 @@ const config: HardhatUserConfig = {
|
||||
browserURL: "https://explore.lux-test.network",
|
||||
},
|
||||
},
|
||||
{
|
||||
network: "zoo",
|
||||
chainId: 200200,
|
||||
urls: {
|
||||
apiURL: "https://api-explore.zoo.network",
|
||||
browserURL: "https://explore.zoo.network",
|
||||
},
|
||||
},
|
||||
{
|
||||
network: "zooTestnet",
|
||||
chainId: 200201,
|
||||
urls: {
|
||||
apiURL: "https://api-explore.zoo-test.network",
|
||||
browserURL: "https://explore.zoo-test.network",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
sourcify: {
|
||||
|
||||
@@ -88,6 +88,13 @@ export const MAIN_NETWORKS: NETWORK[] = [
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LZOO",
|
||||
asset: "LZOO",
|
||||
contract_address: "0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LBNB",
|
||||
asset: "LBNB",
|
||||
@@ -126,14 +133,139 @@ export const MAIN_NETWORKS: NETWORK[] = [
|
||||
{
|
||||
name: "LSOL",
|
||||
asset: "LSOL",
|
||||
contract_address: "0x1AF00A2590a834d14F4A8a26D1b03EBbA8cf7961",
|
||||
contract_address: "0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LTON",
|
||||
asset: "LTON",
|
||||
contract_address: "0xF5a313885832D4Fc71d1Ef80115197c4479B58C8",
|
||||
contract_address: "0x3141b94b89691009b950c96e97Bff48e0C543E3C",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
display_name: "Zoo Mainnet",
|
||||
internal_name: "ZOO_MAINNET",
|
||||
is_testnet: false,
|
||||
chain_id: "200200",
|
||||
teleporter: "0x5B562e80A56b600d729371eB14fE3B83298D0642",
|
||||
vault: "0x08c0f48517C6d94Dd18aB5b132CA4A84FB77108e",
|
||||
node: "https://api.zoo.network",
|
||||
currencies: [
|
||||
{
|
||||
name: "ZOO",
|
||||
asset: "ZOO",
|
||||
contract_address: "0x0000000000000000000000000000000000000000",
|
||||
decimals: 18,
|
||||
is_native: true
|
||||
},
|
||||
// main tokens
|
||||
{
|
||||
name: "Wrapped Ether",
|
||||
asset: "WETH",
|
||||
contract_address: "0x...",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "USDT",
|
||||
asset: "USDT",
|
||||
contract_address: "0x...",
|
||||
decimals: 6,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "USDC",
|
||||
asset: "USDC",
|
||||
contract_address: "0x...",
|
||||
decimals: 6,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "DAI",
|
||||
asset: "DAI",
|
||||
contract_address: "0x...",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
// lux tokens
|
||||
{
|
||||
name: "ZBTC",
|
||||
asset: "ZBTC",
|
||||
contract_address: "0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZETH",
|
||||
asset: "ZETH",
|
||||
contract_address: "0x60E0a8167FC13dE89348978860466C9ceC24B9ba",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZUSD",
|
||||
asset: "ZUSD",
|
||||
contract_address: "0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZLUX",
|
||||
asset: "ZLUX",
|
||||
contract_address: "0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZBNB",
|
||||
asset: "ZBNB",
|
||||
contract_address: "0x6EdcF3645DeF09DB45050638c41157D8B9FEa1cf",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZPOL",
|
||||
asset: "ZPOL",
|
||||
contract_address: "0x28BfC5DD4B7E15659e41190983e5fE3df1132bB9",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZCELO",
|
||||
asset: "ZCELO",
|
||||
contract_address: "0x3078847F879A33994cDa2Ec1540ca52b5E0eE2e5",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZFTM",
|
||||
asset: "ZFTM",
|
||||
contract_address: "0x8B982132d639527E8a0eAAD385f97719af8f5e04",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZXDAI",
|
||||
asset: "ZXDAI",
|
||||
contract_address: "0x7dfb3cBf7CF9c96fd56e3601FBA50AF45C731211",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZSOL",
|
||||
asset: "ZSOL",
|
||||
contract_address: "0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZTON",
|
||||
asset: "ZTON",
|
||||
contract_address: "0x3141b94b89691009b950c96e97Bff48e0C543E3C",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
}
|
||||
@@ -985,6 +1117,7 @@ export const TEST_NETWORKS: NETWORK[] = [
|
||||
decimals: 18,
|
||||
is_native: true
|
||||
},
|
||||
// main tokens
|
||||
{
|
||||
name: "Wrapped Ether",
|
||||
asset: "WETH",
|
||||
@@ -1013,7 +1146,7 @@ export const TEST_NETWORKS: NETWORK[] = [
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
///// lux tokens /////
|
||||
// lux tokens
|
||||
{
|
||||
name: "LBTC",
|
||||
asset: "LBTC",
|
||||
@@ -1035,6 +1168,13 @@ export const TEST_NETWORKS: NETWORK[] = [
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LZOO",
|
||||
asset: "LZOO",
|
||||
contract_address: "0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LBNB",
|
||||
asset: "LBNB",
|
||||
@@ -1073,14 +1213,139 @@ export const TEST_NETWORKS: NETWORK[] = [
|
||||
{
|
||||
name: "LSOL",
|
||||
asset: "LSOL",
|
||||
contract_address: "0x1AF00A2590a834d14F4A8a26D1b03EBbA8cf7961",
|
||||
contract_address: "0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "LTON",
|
||||
asset: "LTON",
|
||||
contract_address: "0xF5a313885832D4Fc71d1Ef80115197c4479B58C8",
|
||||
contract_address: "0x3141b94b89691009b950c96e97Bff48e0C543E3C",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
display_name: "Zoo Testnet",
|
||||
internal_name: "ZOO_TESTNET",
|
||||
is_testnet: true,
|
||||
chain_id: "200201",
|
||||
teleporter: "0x5B562e80A56b600d729371eB14fE3B83298D0642",
|
||||
vault: "0x08c0f48517C6d94Dd18aB5b132CA4A84FB77108e",
|
||||
node: "https://api.zoo-test.network",
|
||||
currencies: [
|
||||
{
|
||||
name: "ZOO",
|
||||
asset: "ZOO",
|
||||
contract_address: "0x0000000000000000000000000000000000000000",
|
||||
decimals: 18,
|
||||
is_native: true
|
||||
},
|
||||
// main tokens
|
||||
{
|
||||
name: "Wrapped Ether",
|
||||
asset: "WETH",
|
||||
contract_address: "0x...",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "USDT",
|
||||
asset: "USDT",
|
||||
contract_address: "0x...",
|
||||
decimals: 6,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "USDC",
|
||||
asset: "USDC",
|
||||
contract_address: "0x...",
|
||||
decimals: 6,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "DAI",
|
||||
asset: "DAI",
|
||||
contract_address: "0x...",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
// lux tokens
|
||||
{
|
||||
name: "ZBTC",
|
||||
asset: "ZBTC",
|
||||
contract_address: "0x1E48D32a4F5e9f08DB9aE4959163300FaF8A6C8e",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZETH",
|
||||
asset: "ZETH",
|
||||
contract_address: "0x60E0a8167FC13dE89348978860466C9ceC24B9ba",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZUSD",
|
||||
asset: "ZUSD",
|
||||
contract_address: "0x848Cff46eb323f323b6Bbe1Df274E40793d7f2c2",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZLUX",
|
||||
asset: "ZLUX",
|
||||
contract_address: "0x5E5290f350352768bD2bfC59c2DA15DD04A7cB88",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZBNB",
|
||||
asset: "ZBNB",
|
||||
contract_address: "0x6EdcF3645DeF09DB45050638c41157D8B9FEa1cf",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZPOL",
|
||||
asset: "ZPOL",
|
||||
contract_address: "0x28BfC5DD4B7E15659e41190983e5fE3df1132bB9",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZCELO",
|
||||
asset: "ZCELO",
|
||||
contract_address: "0x3078847F879A33994cDa2Ec1540ca52b5E0eE2e5",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZFTM",
|
||||
asset: "ZFTM",
|
||||
contract_address: "0x8B982132d639527E8a0eAAD385f97719af8f5e04",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZXDAI",
|
||||
asset: "ZXDAI",
|
||||
contract_address: "0x7dfb3cBf7CF9c96fd56e3601FBA50AF45C731211",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZSOL",
|
||||
asset: "ZSOL",
|
||||
contract_address: "0x26B40f650156C7EbF9e087Dd0dca181Fe87625B7",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
},
|
||||
{
|
||||
name: "ZTON",
|
||||
asset: "ZTON",
|
||||
contract_address: "0x3141b94b89691009b950c96e97Bff48e0C543E3C",
|
||||
decimals: 18,
|
||||
is_native: false
|
||||
}
|
||||
@@ -1089,23 +1354,43 @@ export const TEST_NETWORKS: NETWORK[] = [
|
||||
]
|
||||
|
||||
export const SWAP_PAIRS: Record<string, string[]> = {
|
||||
LETH: ["ETH"],
|
||||
LBNB: ["BNB"],
|
||||
LFTM: ["FTM"],
|
||||
LPOL: ["POL", "MATIC"],
|
||||
LUSD: ["USDT", "USDC", "DAI"],
|
||||
LWETH: ["WETH"],
|
||||
LCELO: ["CELO"],
|
||||
LXDAI: ["XDAI"],
|
||||
// lux tokens
|
||||
LUX: ['ZLUX'],
|
||||
LBTC: ['ZBTC'],
|
||||
LETH: ['ETH', 'ZETH'],
|
||||
LUSD: ['USDT', 'USDC', 'DAI', 'ZUSD'],
|
||||
LZOO: ['ZOO'],
|
||||
LBNB: ['BNB', 'ZBNB'],
|
||||
LPOL: ['POL', 'ZPOL'],
|
||||
LCELO: ['CELO', 'ZCELO'],
|
||||
LFTM: ['FTM', 'ZFTM'],
|
||||
LXDAI: ['XDAI', 'ZXDAI'],
|
||||
LSOL: ['ZSOL'],
|
||||
LTON: ['ZTON'],
|
||||
|
||||
// Zoo tokens
|
||||
ZOO: ['LZOO'],
|
||||
ZBTC: ['LBTC'],
|
||||
ZETH: ['ETH', 'LETH'],
|
||||
ZUSD: ['USDT', 'USDC', 'DAI', 'LUSD'],
|
||||
ZLUX: ['LUX'],
|
||||
ZBNB: ['BNB', 'LBNB'],
|
||||
ZPOL: ['POL', 'LPOL'],
|
||||
ZCELO: ['CELO', 'LCELO'],
|
||||
ZFTM: ['FTM', 'LFTM'],
|
||||
ZXDAI: ['XDAI', 'LXDAI'],
|
||||
ZSOL: ['LSOL'],
|
||||
ZTON: ['LTON'],
|
||||
|
||||
ETH: ["LETH"],
|
||||
POL: ["LPOL"],
|
||||
BNB: ["LBNB"],
|
||||
FTM: ["LFTM"],
|
||||
DAI: ["LUSD"],
|
||||
WETH: ["LWETH"],
|
||||
CELO: ["LCELO"],
|
||||
XDAI: ["LXDAI"],
|
||||
USDT: ["LUSD"],
|
||||
USDC: ["LUSD"]
|
||||
// Evm tokens
|
||||
ETH: ['LETH', 'ZETH'],
|
||||
WETH: ['LETH', 'ZETH'],
|
||||
POL: ['LPOL', 'ZPOL'],
|
||||
BNB: ['LBNB', 'ZBNB'],
|
||||
FTM: ['LFTM', 'ZFTM'],
|
||||
DAI: ['LUSD', 'ZUSD'],
|
||||
USDT: ['LUSD', 'ZUSD'],
|
||||
USDC: ['LUSD', 'ZUSD'],
|
||||
CELO: ['LCELO', 'ZCELO'],
|
||||
XDAI: ['LXDAI', 'ZXDAI'],
|
||||
}
|
||||
|
||||
Generated
+51
-45
@@ -483,6 +483,9 @@ importers:
|
||||
express-validator:
|
||||
specifier: ^7.2.0
|
||||
version: 7.2.0
|
||||
jsonwebtoken:
|
||||
specifier: ^9.0.2
|
||||
version: 9.0.2
|
||||
module-alias:
|
||||
specifier: ^2.2.3
|
||||
version: 2.2.3
|
||||
@@ -496,6 +499,9 @@ importers:
|
||||
'@types/express':
|
||||
specifier: ^4.17.21
|
||||
version: 4.17.21
|
||||
'@types/jsonwebtoken':
|
||||
specifier: ^9.0.7
|
||||
version: 9.0.7
|
||||
'@types/multicoin-address-validator':
|
||||
specifier: ^0.5.3
|
||||
version: 0.5.3
|
||||
@@ -1936,15 +1942,15 @@ packages:
|
||||
'@hanzo/[email protected]':
|
||||
resolution: {integrity: sha512-56+a82zFp2olo8utu6Ic/vxJTFASQPuZAfcmQFWxd5QnfO5fVgI+GW8bjqAj+tJANjL4rO0hItSBBg38BdcXag==}
|
||||
peerDependencies:
|
||||
'@hanzo/ui': ^3.8.36
|
||||
'@hanzo/ui': 4.0.5
|
||||
'@hookform/resolvers': ^3.3.4
|
||||
firebase: ^10.8.0
|
||||
lucide-react: ^0.344.0
|
||||
mobx: ^6.12.3
|
||||
mobx-react-lite: ^4.0.7
|
||||
next: ^14.2.16
|
||||
react: ^18.3.1
|
||||
react-hook-form: ^7.51.4
|
||||
next: 14.2.14
|
||||
react: 18.3.1
|
||||
react-hook-form: 7.51.4
|
||||
zod: 3.23.8
|
||||
|
||||
'@hanzo/[email protected]':
|
||||
@@ -1996,13 +2002,13 @@ packages:
|
||||
resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
react: ^16 || ^17 || ^18
|
||||
react-dom: ^16 || ^17 || ^18
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
|
||||
'@heroicons/[email protected]':
|
||||
resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==}
|
||||
peerDependencies:
|
||||
react: '>= 16'
|
||||
react: 18.3.1
|
||||
|
||||
'@hookform/[email protected]':
|
||||
resolution: {integrity: sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==}
|
||||
@@ -2127,30 +2133,30 @@ packages:
|
||||
resolution: {integrity: sha512-vhMBWDRW4RhzigaRNl2WvPME19MAE+S2eqxebjvPQY2USCnuStN4TbvVI+2v6tqD08TTZGaYoeDUBaWeXgzpOA==}
|
||||
peerDependencies:
|
||||
'@next/mdx': ^14.1.0
|
||||
next: ^14.1.0
|
||||
next: 14.2.14
|
||||
next-themes: ^0.2.1
|
||||
react: ^18.2.0
|
||||
react-dom: ^18.2.0
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
tailwind-merge: ^2.2.0
|
||||
tailwindcss: ^3.4.1
|
||||
tailwindcss: 3.4.3
|
||||
tailwindcss-animate: ^1.0.6
|
||||
tailwindcss-interaction-media: ^0.1.0
|
||||
|
||||
'@luxfi/[email protected]':
|
||||
resolution: {integrity: sha512-oc5n+zHz/ztt3KNFJ0IpejnoCUQSKOJyG9jYJzq+ILX2/XodKJ3VYrIdvru/Rmfd8InDamxN8LG1VeGzEjpMnA==}
|
||||
peerDependencies:
|
||||
'@hanzo/auth': '*'
|
||||
'@hanzo/commerce': '*'
|
||||
'@hanzo/ui': '*'
|
||||
'@hanzo/auth': 2.5.2
|
||||
'@hanzo/commerce': 7.3.4
|
||||
'@hanzo/ui': 4.0.5
|
||||
'@hookform/resolvers': ^3.3.2
|
||||
lucide-react: ^0.344.0
|
||||
mobx: ^6.12.3
|
||||
mobx-react-lite: ^4.0.7
|
||||
next: 15.0.1
|
||||
next: 14.2.14
|
||||
next-themes: ^0.2.1
|
||||
react: '*'
|
||||
react-dom: '*'
|
||||
react-hook-form: ^7.51.4
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
react-hook-form: 7.51.4
|
||||
validator: ^13.11.0
|
||||
zod: 3.23.8
|
||||
|
||||
@@ -2637,7 +2643,7 @@ packages:
|
||||
engines: {node: '>=14.1.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: '>= 4.7.4'
|
||||
typescript: 5.6.3
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
@@ -2660,10 +2666,10 @@ packages:
|
||||
'@radix-ui/[email protected]':
|
||||
resolution: {integrity: sha512-bg/l7l5QzUjgsh8kjwDFommzAshnUsuVMV5NM56QVCm+7ZckYdd9P/ExR8xG/Oup0OajVxNLaHJ1tb8mXk+nzQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
'@types/react': 18.3.12
|
||||
'@types/react-dom': 18.3.1
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
@@ -3197,10 +3203,10 @@ packages:
|
||||
'@radix-ui/[email protected]':
|
||||
resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
'@types/react': 18.3.12
|
||||
'@types/react-dom': 18.3.1
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
@@ -3403,8 +3409,8 @@ packages:
|
||||
'@radix-ui/[email protected]':
|
||||
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
'@types/react': 18.3.12
|
||||
react: 18.3.1
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
@@ -3426,8 +3432,8 @@ packages:
|
||||
'@radix-ui/[email protected]':
|
||||
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
'@types/react': 18.3.12
|
||||
react: 18.3.1
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
@@ -3569,8 +3575,8 @@ packages:
|
||||
engines: {node: '>=12.4'}
|
||||
peerDependencies:
|
||||
'@tanstack/react-query': '>=5.0.0'
|
||||
react: '>=18'
|
||||
react-dom: '>=18'
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
viem: 2.x
|
||||
wagmi: ^2.9.0
|
||||
|
||||
@@ -3647,7 +3653,7 @@ packages:
|
||||
'@reduxjs/[email protected]':
|
||||
resolution: {integrity: sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==}
|
||||
peerDependencies:
|
||||
react: ^16.9.0 || ^17.0.0 || ^18
|
||||
react: 18.3.1
|
||||
react-redux: ^7.2.1 || ^8.0.2
|
||||
peerDependenciesMeta:
|
||||
react:
|
||||
@@ -4019,9 +4025,9 @@ packages:
|
||||
resolution: {integrity: sha512-FqrV7/K2q998Y0t83QUauQxsifKWAg9CFZoSb64qRuH7IfHkDs5/OgU1ACkg0aTgsEPtFlH+kATQ+8X6MrizHQ==}
|
||||
peerDependencies:
|
||||
'@splinetool/runtime': '*'
|
||||
next: '>=14.2.0'
|
||||
react: '*'
|
||||
react-dom: '*'
|
||||
next: 14.2.14
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
peerDependenciesMeta:
|
||||
next:
|
||||
optional: true
|
||||
@@ -4102,7 +4108,7 @@ packages:
|
||||
'@stitches/[email protected]':
|
||||
resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==}
|
||||
peerDependencies:
|
||||
react: '>= 16.3.0'
|
||||
react: 18.3.1
|
||||
|
||||
'@storybook/[email protected]':
|
||||
resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==}
|
||||
@@ -4163,8 +4169,8 @@ packages:
|
||||
'@storybook/[email protected]':
|
||||
resolution: {integrity: sha512-p3DqQi+8QRL5k7jXhXmJZLsE/GqHqyY6PcoA1oNTJr0try48uhTGUOYkgzmqtDaa/qPFO5LP+xCPzZXckGtquQ==}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
|
||||
'@storybook/[email protected]':
|
||||
resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==}
|
||||
@@ -4578,7 +4584,7 @@ packages:
|
||||
'@tailwindcss/[email protected]':
|
||||
resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==}
|
||||
peerDependencies:
|
||||
tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20'
|
||||
tailwindcss: 3.4.3
|
||||
|
||||
'@tailwindcss/[email protected]':
|
||||
resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==}
|
||||
@@ -5055,8 +5061,8 @@ packages:
|
||||
resolution: {integrity: sha512-1I+RwWyS+kdv3Mv0Vmc+p0dPYH0DTRAo04HLyXReYBL9AeseDWUJyi4THuksBJcu9F0Pih69Ak150VDnqbVnXg==}
|
||||
engines: {node: '>=16'}
|
||||
peerDependencies:
|
||||
react: '>=18.0.0'
|
||||
react-dom: '>=18.0.0'
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1
|
||||
|
||||
'@ungap/[email protected]':
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
@@ -5097,7 +5103,7 @@ packages:
|
||||
'@wagmi/[email protected]':
|
||||
resolution: {integrity: sha512-ytMCvXbBOgfDu9Qw67279wq/jNEe7EZLjLyekX7ROnvHRADqFr3lwZI6ih41UmtRZAmXAx8Ghyuqy154EjB5mQ==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.4'
|
||||
typescript: 5.6.3
|
||||
viem: '>=0.3.35'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
@@ -12425,7 +12431,7 @@ packages:
|
||||
[email protected]:
|
||||
resolution: {integrity: sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==}
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.4'
|
||||
typescript: 5.6.3
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
Reference in New Issue
Block a user