Commit a59cf90b authored by EC2 Default User's avatar EC2 Default User

add deploy scripts

parents
Pipeline #857 failed with stages
appname: blockScan1
redis:
ip: 172.17.0.1
port: 6379
password: 123456
chain:
url: http://172.17.0.1:28545
<seelog type="asynctimer" asyncinterval="5000000" minlevel="info" maxlevel="critical">
<outputs formatid="main">
<filter levels="trace,debug,info,warn,error,critical">
<buffered size="10000" flushperiod="1000">
<rollingfile type="date" filename="./logs/block-scan.log" datepattern="20060102" maxrolls="2"/>
</buffered>
</filter>
</outputs>
<formats>
<format id="main" format="[%Date(2006-01-02 15:04:05.000)][%LEV][%File:%Line]%Msg%n"/>
</formats>
</seelog>
(LOG) {
log {
format json {
time_format "iso8601"
}
output file "{args[0]}" {
roll_size 100mb
roll_keep 3
roll_keep_for 7d
}
}
}
(TLS) {
# TLS 配置采用 https://mozilla.github.io/server-side-tls/ssl-config-generator/ 生成,SSL Labs 评分 A+
protocols tls1.2 tls1.3
ciphers TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
}
(HSTS) {
# HSTS (63072000 seconds)
header / Strict-Transport-Security "max-age=63072000"
}
# 聚合上面的配置片段为新的片段
(COMMON_CONFIG) {
encode zstd gzip
tls {
import TLS
}
import HSTS
}
import /srv/*.caddy
cmp20.bitheart.org {
# API代理
handle /api/* {
reverse_proxy http://172.17.0.1:12011 {
header_up Host {host}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
}
# blockBrowser和static/upload路径代理
@blockbrowser_or_upload {
path_regexp ^(/blockBrowser|/static/upload)
}
handle @blockbrowser_or_upload {
reverse_proxy http://172.17.0.1:12011 {
header_up Host {host}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
}
# blockBrowser特定配置
handle /blockBrowser* {
reverse_proxy http://172.17.0.1:12011 {
header_up Host {host}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
header_down Strict-Transport-Security "max-age=31536000; includeSubdomains"
header_down X-Content-Type-Options nosniff
header_down X-Frame-Options SAMEORIGIN
header_down Referrer-Policy origin
header_down Content-Security-Policy upgrade-insecure-requests
}
}
# IPFS代理
handle /ipfs/* {
reverse_proxy http://3.10.226.191:8080 {
header_up Host {host}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Port {server_port}
}
}
# 静态文件服务
handle {
header Strict-Transport-Security "max-age=31536000; includeSubdomains"
header X-Content-Type-Options nosniff
header X-Frame-Options SAMEORIGIN
header X-Content-Type-Options nosniff
header Referrer-Policy origin
header Content-Security-Policy upgrade-insecure-requests
root * /web
try_files {path} {path}/ /index.html
file_server
}
}
docker compose down
sudo rm -rf ./data
#!/bin/bash
source db.env
docker compose exec -it expmysql mysql -uroot -p$MYSQL_ROOT_PASSWORD
MYSQL_ROOT_PASSWORD=bXlzcWw=
TZ=Asia/Shanghai
REDIS_PASS=123456
version: '3'
networks:
default:
driver: bridge
services:
expmysql:
image: "mysql:8.0"
ports :
- "3306:3306"
env_file:
- path: ./db.env
restart: always
networks:
- default
privileged: true
volumes:
- "/etc/localtime:/etc/localtime"
- "./mysql/conf/my.cnf:/etc/my.cnf"
- "./mysql/init:/docker-entrypoint-initdb.d/"
- "./data/mysql:/var/lib/mysql"
expredis:
image: "redis:latest"
restart: always
networks:
- default
environment:
- TZ=Asia/Shanghai
command: /usr/local/bin/redis-server /etc/redis/redis.conf
ports:
- "6379:6379"
volumes:
- "/etc/localtime:/etc/localtime"
- "./redis/conf/redis.conf:/etc/redis/redis.conf"
- "./data/redis:/data"
expblockscan:
image: "blockscan:latest"
restart: always
networks:
- default
environment:
- TZ=Asia/Shanghai
volumes:
- "/etc/localtime:/etc/localtime"
- "./blockscan/config.yml:/root/config.yml"
- "./blockscan/loger.xml:/root/loger.xml"
- "./data/scanlog/:/root/logs"
depends_on:
- expredis
expservice:
image: "expservice:latest"
restart: always
networks:
- default
environment:
- TZ=Asia/Shanghai
volumes:
- "/etc/localtime:/etc/localtime"
- "./expservice/:/root/conf"
- "./data/servicelog/:/root/logs"
ports:
- "12011:12011"
depends_on:
- expredis
- expmysql
- expblockscan
caddy:
image: caddy:latest
restart: unless-stopped
environment:
- XDG_CONFIG_HOME=/config
- XDG_DATA_HOME=/data
- CADDY_ADMIN=0.0.0.0:2019
ports:
- "80:80"
- "443:443"
- "2019:2019"
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile
- ./caddy/data:/data
- ./caddy/certs:/certs
- ./caddy/config:/config
- ./caddy/root:/srv
- ./caddy/logs:/var/log/caddy
- ./web:/web
#应用名称
appname = explorer-api
#应用监听端口,默认为 8080
httpport = 12011
#应用的运行模式,可选值为 prod, dev 或者 test. 默认是 dev, 为开发模式
runmode = dev
#是否模板自动渲染,默认值为true
autorender = false
#是否允许在 HTTP 请求时,返回原始请求体数据字节,默认为 false (GET or HEAD or 上传文件请求除外)
copyrequestbody = true
#是否开启文档内置功能,默认是false
EnableDocs = true
#是否异常恢复,默认值为 true,即当应用出现异常的情况,通过 recover 恢复回来,而不会导致应用异常退出
RecoverPanic = true
#分页默认显示记录数
PageSize = 10
#日志目录
logPath = ./logs/explorer-api.log
#日志文件最多保存多少天,默认保存 7 天
logMaxDays = 3
#请求地址
domain = "https://cmp20.bitheart.org"
recaptchaSecret = "6Ld91-YkAAAAAPCe3ErpenCAkhlR_Pqzjc1aR_gE"
#=====================
# nft 模块地址,最后不用带"/"
nftUrl = http://15.206.56.79:30256
#=====================
#====================================================================================
# 节点访问地址
chainUrl = "http://172.17.0.1:28545"
#>>>>>>>>>>>>>>>开始分页配置>>>>>>>>>>>>>>>>>>>>>>>>>>>
[pagination]
#当前页
page = 0
#每页限制多少条
length = 10
#>>>>>>>>>>>>>>>结束分页配置>>>>>>>>>>>>>>>>>>>>>>>>>>>
#区块链配置
[Block]
#同步标志 1为打开同步 0为关闭同步
blockSyncFlag = 1
#内部交易同步标志 1为打开同步 0为关闭同步
internalSyncFlag = 1
#验证者同步标志 1为打开同步 0为关闭同步
validatorSyncFlag = 0
#验证者同步开启是检查验证者状态标志 1为打开 0为关闭 //validatorSyncFlag 为1时才生效,在同步时可关闭
validatorCheckFlag = 0
#余额同步标志 1为打开同步 0为关闭同步
balanceSyncFlag = 1
#账户同步标志 1为打开同步 0为关闭同步
accountSyncFlag = 1
#pending交易处理 1为打开同步 0为关闭同步
pendingTxnFlag = 0
#chainReport标志 1为打开同步 0为关闭同步
chainReportFlag = 1
contractSync = 0
#手动同步标志
[Manual]
# 手动查询并同步合约name和symbol标志 1为打开同步 0为关闭同步
contractNameSyncFlag = 0
# 查询无收据交易标志
ReceiptInfoSyncFlag = 0
# 查询待确定合约类型
contractTypeSyncFlag = 1
#市场价配置
[Market]
#同步标志 1为打开同步 0为关闭同步
MarketPriceSyncFlag = 0
#====================================================================================
#数据库
[mysql]
#主机
dbhost = 172.17.0.1
#端口
dbport = 3306
#用户名
dbuser = "root"
#密码
dbpassword = "bXlzcWw="
#数据库名称
dbname = "tidb_block_browser"
# 用户模块数据库
userdbhost = 172.17.0.1
userdbport = 3306
userdbuser = "root"
userdbpassword = "bXlzcWw="
userdbname = "tidb_block_browser_user"
[Redis]
ip = 172.17.0.1
port = 6379
password = "123456"
#====================================================================================
[jwt]
#有效时间s,默认为7天
expiretime = 604800
appexpiretime = 300
#业务配置
[email]
#邮件服务器
host = "smtp.gmail.com"
#服务端口
port = 465
#发件人昵称
senderName = "noreply"
#发件人用户名
user = "service@cmpscan.io"
#发件人密码
password = "nsgonwihymyvbyeg"
#邮箱验证码有效时间(s)
#expireTime = 600
#邮件发送频率间隔(s)
#interval = 120
#邮件验证失败次数
#failures = 5
#生产环境
[exchangeProd]
#总量地址
supplyUrl = "https://api.hecoinfo.com"
#火币API地址
huoBiUrl = "https://api.huobi.li"
#抹茶API地址
mexcUrl = "https://api.mexc.com"
#CMC API地址
cmcUrl = "https://pro-api.coinmarketcap.com"
cmcApiKey = "2a074c47-d73e-4f40-8043-b0fa23560db1"
#测试环境
[exchangeDev]
#总量地址
supplyUrl = "https://api.hecoinfo.com"
#火币API地址
huoBiUrl = "https://api.huobi.li"
#抹茶API地址
mexcUrl = "https://api.mexc.com"
#上传文件
[uploadFile]
#用户上传文件大小(字节)
UserSize = "20971520"
#用户存储目录(临时)
UserDir = "static/upload/temporary/user"
#用户存储目录(正式)
UserDirFormal = "static/upload/formal/user"
[Account]
# 合约地址
contractAccount = ""
[Verify]
# 用户模块验证地址签名信息模板
# [cmpscan.io 09/12/2022 06:58:02] I, hereby verify that I am the owner/creator of the address [0x0000000000000000000000000000000000001000]
messageTemp = "[cmpscan.io %s] I, hereby verify that I am the owner/creator of the address [%s]"
[WatchEmail]
# 地址监控邮件模板
cmpReceived = "Hi %s,<br/><br/>The address %s received %s CMP FROM the address %s<br/><br/>This transaction was processed at block index %d (TxHash %s/tx/%s) on %s (UTC)<br/><br/>Please see %s/address/%s for additional information.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
cmpSent = "Hi %s,<br/><br/>%s CMP was sent FROM the address %s TO the address %s<br/><br/>This transaction was processed at block index %d (TxHash %s/tx/%s) on %s (UTC)<br/><br/>Please see %s/address/%s for additional information.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
tokenReceived = "Hi %s,<br/><br/>The address %s received %s (%s) FROM the address %s<br/><br/>Token Contract: %s<br/>Token Name: %s<br/>Token Symbol: %s<br/>Token Decimals: %d<br/><br/>This transaction was processed at block index %d (TxHash %s/tx/%s) on %s (UTC)<br/><br/>Please see %s/token/%s?a=%s for additional information.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
tokenSent = "Hi %s,<br/><br/>%s (%s) was sent FROM the address %s TO the address %s<br/><br/>Token Contract: %s<br/>Token Name: %s<br/>Token Symbol: %s<br/>Token Decimals: %d<br/><br/>This transaction was processed at block index %d (TxHash %s/tx/%s) on %s (UTC)<br/><br/>Please see %s/token/%s?a=%s for additional information.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
[AuditRejectEmail]
# tokenInfo和addressTag审核失败邮件模板
tokenInfo = "Hi %s,<br/><br/>The Address: %s<br/><br/>Sorry! We can't pass your application for [Update Token Information]. Please see the reason and resubmission.<br/><br/>Reason: %s<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
addressTag = "Hi %s,<br/><br/>The Address(es): %s<br/><br/>Sorry! We can't pass your application for [Name Address Tag]. Please see the reason and resubmission.<br/><br/>Reason: %s<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
[ActivateEmail]
# 注册后激活邮件模板
temp = "Hi %s,<br/><br/>Welcome to CMPScan!<br/><br/>Please click the link below to activate your account:<br/><br/>%s<br/><br/>This link will expire in 15 minutes.<br/><br/>If you did not register for an account, please ignore this email.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
# 邮件15分钟内有效
expire = 900
[ChangeEmail]
# 个人资料修改邮箱邮件模板
temp = "Hi %s,<br/><br/>Welcome to CMPScan!<br/><br/>Please click the link below to change your email address from %s to %s:<br/><br/>%s<br/><br/>This link will expire in 15 minutes.<br/><br/>If you did not register for an account, please ignore this email.<br/><br/><br/>Best Regards,<br/><br/>Caduceus Lab Team"
# 邮件15分钟内有效
expire = 900
[DeleteUserEmail]
temp = "Hi %s,<br/><br/>An account deletion request was recently made at cmpscan.io.<br/><br/>Please confirm your account deletion request by clicking on the "confirmation" link below.<br/><br/>Confirmation Link : %s<br/><br/>NOTE: The above link will expire within 1 hour. If this link is expired, kindly resend the request again from your user dashboard.<br/><br/>*** If for any reason the above link is not clickable, please copy the link and paste in your choice of browser.<br/><br/>Best regards,<br/><br/>Caduceus Lab Team"
expire = 3600
[Monitor]
# 节点高度监控模块
enable = false
host = "smtp.163.com"
port = 465
user = "mozik188@163.com"
password = "NZLCFPICPZTKWXBL"
# 发送统计邮件间隔, 单位分钟
statisticalInterval = 30
# 高度阈值, 某节点高度与最高节点相差heightThreshold时发送邮件
heightThreshold = 20
# 收件人,可多个,使用分号分割,必须写在一行 "a@qq.com;b@qq.com"
receivers = "west.side@qq.com"
# 监控的节点,使用分号分割,必须写在一行 "http://a.eth;http://b.eth"
nodes = "http://172.17.0.1:28545"
[mysql]
default-character-set = utf8mb4
[mysql.server]
default-character-set = utf8mb4
[mysqld_safe]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
[mysqld]
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
secure-file-priv= NULL
sql_mode="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_ENGINE_SUBSTITUTION"
use mysql;
create database tidb_block_browser;
create database tidb_block_browser_user;
use mysql;
GRANT ALL ON *.* TO 'root' @'%';
GRANT ALL ON *.* TO 'root' @'127.0.0.1';
create database tidb_block_browser;
create database tidb_block_browser_user;
This diff is collapsed.
This diff is collapsed.
use tidb_block_browser;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_vyper_version
-- ----------------------------
DROP TABLE IF EXISTS `tb_whitelist`;
CREATE TABLE `tb_whitelist` (
`id` bigint(20) NOT NULL,
`contract_address` varchar(255) DEFAULT NULL COMMENT 'erc20合约地址',
`name` varchar(255) DEFAULT NULL COMMENT '合约名称',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='erc20白名单表';
SET FOREIGN_KEY_CHECKS = 1;
use tidb_block_browser;
/*
Navicat Premium Data Transfer
Source Server : tidb_block_browser
Source Server Type : MySQL
Source Server Version : 50725
Source Host : 47.117.70.83:4000
Source Schema : tidb_block_browser
Target Server Type : MySQL
Target Server Version : 50725
File Encoding : 65001
Date: 01/06/2021 17:13:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_contract_license
-- ----------------------------
DROP TABLE IF EXISTS `tb_contract_license`;
CREATE TABLE `tb_contract_license` (
`id` bigint(20) NOT NULL,
`license_type` varchar(255) DEFAULT NULL COMMENT '合约license版本',
`symbol` varchar(255) DEFAULT NULL COMMENT '版本简称',
`sync_time` datetime DEFAULT NULL COMMENT '同步时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of tb_contract_license
-- ----------------------------
BEGIN;
INSERT INTO `tb_contract_license` VALUES (10001, 'NO License', 'None', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10002, 'The Unlicense', 'Unlicense', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10003, 'MIT License', 'MIT', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10004, 'GNU General Public License v2.0', 'GNU GPLv2', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10005, 'GNU General Public License v3.0', 'GNU GPLv3', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10006, 'GNU Lesser General Public License v2.1', 'GNU LGPLv2.1', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10007, 'GNU Lesser General Public License v3.0', 'GNU LGPLv3', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10008, 'BSD 2-clause "Simplified" license', 'BSD-2-Clause', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10009, 'BSD 3-clause "New" Or "Revised" license', 'BSD-3-Clause', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10010, 'Mozilla Public License 2.0', 'MPL-2.0', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10011, 'Open Software License 3.0', 'OSL-3.0', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10012, 'Apache 2.0', 'Apache-2.0', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10013, 'GNU Affero General Public License', 'GNU AGPLv3', NULL, NULL, NULL);
INSERT INTO `tb_contract_license` VALUES (10014, 'Business Source License', 'BSL 1.1', NULL, NULL, NULL);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
use tidb_block_browser;
/*
Navicat Premium Data Transfer
Source Server : tidb_block_browser
Source Server Type : MySQL
Source Server Version : 50725
Source Host : 47.117.70.83:4000
Source Schema : tidb_block_browser
Target Server Type : MySQL
Target Server Version : 50725
File Encoding : 65001
Date: 01/06/2021 17:12:46
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_contract_compiler_version
-- ----------------------------
DROP TABLE IF EXISTS `tb_contract_compiler_version`;
CREATE TABLE `tb_contract_compiler_version` (
`id` bigint(20) NOT NULL,
`compiler_version` varchar(255) DEFAULT NULL COMMENT '编译器版本号',
`compiler_version_detail` varchar(255) DEFAULT NULL COMMENT ' 编译器版本详细信息',
`sync_time` timestamp NULL DEFAULT NULL COMMENT '同步时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='合约编译版本表';
-- ----------------------------
-- Records of tb_contract_compiler_version
-- ----------------------------
BEGIN;
INSERT INTO `tb_contract_compiler_version` VALUES (9992, '0.8.13', 'v0.8.13+commit.abaa5c0e', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9993, '0.8.12', 'v0.8.12+commit.f00d7308', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9994, '0.8.11', 'v0.8.11+commit.d7f03943', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9995, '0.8.10', 'v0.8.10+commit.fc410830', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9996, '0.8.9', 'v0.8.9+commit.e5eed63a', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9997, '0.8.8', 'v0.8.8+commit.dddeac2f', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9998, '0.8.7', 'v0.8.7+commit.e28d00a7', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (9999, '0.8.6', 'v0.8.6+commit.11564f7e', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (10000, '0.8.5', 'v0.8.5+commit.a4f2e591', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (10001, '0.8.4', 'v0.8.4+commit.c7e474f2', '2021-05-22 15:35:36', '2021-05-22 15:35:40', '2021-05-22 15:35:42');
INSERT INTO `tb_contract_compiler_version` VALUES (10002, '0.8.3', 'v0.8.3+commit.8d00100c', '2021-05-22 15:36:41', '2021-05-22 15:36:43', '2021-05-22 15:36:46');
INSERT INTO `tb_contract_compiler_version` VALUES (10003, '0.8.2', 'v0.8.2+commit.661d1103', '2021-05-22 15:37:27', '2021-05-22 15:37:30', '2021-05-22 15:37:31');
INSERT INTO `tb_contract_compiler_version` VALUES (10004, '0.8.1', 'v0.8.1+commit.df193b15', '2021-05-22 15:38:26', '2021-05-22 15:38:28', '2021-05-22 15:38:31');
INSERT INTO `tb_contract_compiler_version` VALUES (10005, '0.8.0', 'v0.8.0+commit.c7dfd78e', '2021-05-22 15:39:07', '2021-05-22 15:39:10', '2021-05-22 15:39:12');
INSERT INTO `tb_contract_compiler_version` VALUES (10006, '0.7.6', 'v0.7.6+commit.7338295f', '2021-05-22 15:39:43', '2021-05-22 15:39:45', '2021-05-22 15:39:47');
INSERT INTO `tb_contract_compiler_version` VALUES (10007, '0.7.5', 'v0.7.5+commit.eb77ed08', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10008, '0.7.4', 'v0.7.4+commit.3f05b770', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10009, '0.7.3', 'v0.7.3+commit.9bfce1f6', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10010, '0.7.2', 'v0.7.2+commit.51b20bc0', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10011, '0.7.1', 'v0.7.1+commit.f4a555be', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10012, '0.7.0', 'v0.7.0+commit.9e61f92b', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10013, '0.6.12', 'v0.6.12+commit.27d51765', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10014, '0.6.11', 'v0.6.11+commit.5ef660b1', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10015, '0.6.10', 'v0.6.10+commit.00c0fcaf', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10016, '0.6.9', 'v0.6.9+commit.3e3065ac', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10017, '0.6.8', 'v0.6.8+commit.0bbfe453', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10018, '0.6.7', 'v0.6.7+commit.b8d736ae', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10019, '0.6.6', 'v0.6.6+commit.6c089d02', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10020, '0.6.5', 'v0.6.5+commit.f956cc89', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10021, '0.6.4', 'v0.6.4+commit.1dca32f3', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10022, '0.6.3', 'v0.6.3+commit.8dda9521', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10023, '0.6.2', 'v0.6.2+commit.bacdbe57', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10024, '0.6.1', 'v0.6.1+commit.e6f7d5a4', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10025, '0.6.0', 'v0.6.0+commit.26b70077', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10026, '0.5.17', 'v0.5.17+commit.d19bba13', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10027, '0.5.16', 'v0.5.16+commit.9c3226ce', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10028, '0.5.15', 'v0.5.15+commit.6a57276f', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10029, '0.5.14', 'v0.5.14+commit.01f1aaa4', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10030, '0.5.13', 'v0.5.13+commit.5b0b510c', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10031, '0.5.12', 'v0.5.12+commit.7709ece9', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10032, '0.5.11', 'v0.5.11+commit.22be8592', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10033, '0.5.11', 'v0.5.11+commit.c082d0b4', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10034, '0.5.10', 'v0.5.10+commit.5a6ea5b1', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10035, '0.5.9', 'v0.5.9+commit.c68bc34e', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10036, '0.5.9', 'v0.5.9+commit.e560f70d', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10037, '0.5.8', 'v0.5.8+commit.23d335f2', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10038, '0.5.7', 'v0.5.7+commit.6da8b019', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10039, '0.5.6', 'v0.5.6+commit.b259423e', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10040, '0.5.5', 'v0.5.5+commit.47a71e8f', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10041, '0.5.4', 'v0.5.4+commit.9549d8ff', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10042, '0.5.3', 'v0.5.3+commit.10d17f24', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10043, '0.5.2', 'v0.5.2+commit.1df8f40c', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10044, '0.5.1', 'v0.5.1+commit.c8a2cb62', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10045, '0.5.0', 'v0.5.0+commit.1d4f565a', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10046, '0.4.26', 'v0.4.26+commit.4563c3fc', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10047, '0.4.25', 'v0.4.25+commit.59dbf8f1', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10048, '0.4.24', 'v0.4.24+commit.e67f0147', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10049, '0.4.23', 'v0.4.23+commit.124ca40d', NULL, NULL, NULL);
INSERT INTO `tb_contract_compiler_version` VALUES (10050, '0.4.22', 'v0.4.22+commit.4cb486ee', NULL, NULL, NULL);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
use tidb_block_browser;
/*
Navicat Premium Data Transfer
Source Server : tidb_block_browser
Source Server Type : MySQL
Source Server Version : 50725
Source Host : 47.117.70.83:4000
Source Schema : tidb_block_browser
Target Server Type : MySQL
Target Server Version : 50725
File Encoding : 65001
Date: 01/06/2021 17:13:21
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_evm_version
-- ----------------------------
DROP TABLE IF EXISTS `tb_evm_version`;
CREATE TABLE `tb_evm_version` (
`id` bigint(20) NOT NULL,
`evm_version` varchar(255) DEFAULT NULL COMMENT 'EVM虚拟机版本',
`info` varchar(255) DEFAULT NULL COMMENT '说明',
`sync_time` timestamp NULL DEFAULT NULL COMMENT '同步时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of tb_evm_version
-- ----------------------------
BEGIN;
INSERT INTO `tb_evm_version` VALUES (10001, 'default', 'compiler defaults', NULL, NULL, NULL);
INSERT INTO `tb_evm_version` VALUES (10002, 'byzantium', 'default for <=v0.5.4', NULL, NULL, NULL);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
use tidb_block_browser;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_vyper_version
-- ----------------------------
DROP TABLE IF EXISTS `tb_vyper_version`;
CREATE TABLE `tb_vyper_version` (
`id` bigint(20) NOT NULL,
`version` varchar(255) DEFAULT NULL COMMENT '版本号',
`api` varchar(255) DEFAULT NULL COMMENT ' 接口地址',
`sync_time` timestamp NULL DEFAULT NULL COMMENT '同步时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='vyper版本表';
-- ----------------------------
-- Records of tb_vyper_version
-- ----------------------------
BEGIN;
--
-- INSERT INTO `tb_vyper_version` VALUES (10000, 'vyper:0.1.0b4', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10001, 'vyper:0.1.0b7', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10002, 'vyper:0.1.0b8', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10003, 'vyper:0.1.0b9', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10004, 'vyper:0.1.0b10', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10005, 'vyper:0.1.0b11', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10006, 'vyper:0.1.0b12', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10007, 'vyper:0.1.0b13', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10008, 'vyper:0.1.0b13.hotfix', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10009, 'vyper:0.1.0b14', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10010, 'vyper:0.1.0b15', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10011, 'vyper:0.1.0b16', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10012, 'vyper:0.1.0b17', '', NULL, NULL, NULL);
--
-- INSERT INTO `tb_vyper_version` VALUES (10013, 'vyper:0.2.0', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10014, 'vyper:0.2.1', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10015, 'vyper:0.2.2', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10016, 'vyper:0.2.3', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10017, 'vyper:0.2.4', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10018, 'vyper:0.2.5', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10019, 'vyper:0.2.7', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10020, 'vyper:0.2.8', '', NULL, NULL, NULL);
-- INSERT INTO `tb_vyper_version` VALUES (10021, 'vyper:0.2.11', '', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10022, 'vyper:0.2.12', 'http://localhost:9000/compile', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10023, 'vyper:0.2.13', 'http://localhost:9001/compile', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10024, 'vyper:0.2.15', 'http://localhost:9002/compile', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10025, 'vyper:0.2.16', 'http://localhost:9003/compile', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10026, 'vyper:0.3.0', 'http://localhost:9004/compile', NULL, NULL, NULL);
INSERT INTO `tb_vyper_version` VALUES (10027, 'vyper:0.3.1', 'http://localhost:9005/compile', NULL, NULL, NULL);
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
use tidb_block_browser;
update tb_contract set symbol =replace(symbol,char(2),'');
update tb_contract set symbol =replace(symbol,char(3),'');
update tb_contract set symbol =replace(symbol,char(4),'');
update tb_contract set symbol =replace(symbol,char(5),'');
update tb_contract set symbol =replace(symbol,char(6),'');
update tb_contract set symbol =replace(symbol,char(7),'');
update tb_contract set symbol =replace(symbol,char(8),'');
update tb_contract set symbol =replace(symbol,char(9),'');
update tb_contract set symbol =replace(symbol,char(10),'');
update tb_contract set symbol =replace(symbol,char(11),'');
update tb_contract set symbol =replace(symbol,char(13),'');
update tb_contract set symbol =replace(symbol,char(14),'');
update tb_contract set symbol =replace(symbol,char(15),'');
update tb_contract set symbol =replace(symbol,char(17),'');
update tb_contract set symbol =replace(symbol,char(18),'');
update tb_contract set symbol =replace(symbol,char(21),'');
update tb_contract set symbol =replace(symbol,char(22),'');
update tb_contract set name =replace(name,char(2),'');
update tb_contract set name =replace(name,char(3),'');
update tb_contract set name =replace(name,char(4),'');
update tb_contract set name =replace(name,char(5),'');
update tb_contract set name =replace(name,char(6),'');
update tb_contract set name =replace(name,char(7),'');
update tb_contract set name =replace(name,char(8),'');
update tb_contract set name =replace(name,char(9),'');
update tb_contract set name =replace(name,char(10),'');
update tb_contract set name =replace(name,char(11),'');
update tb_contract set name =replace(name,char(13),'');
update tb_contract set name =replace(name,char(14),'');
update tb_contract set name =replace(name,char(15),'');
update tb_contract set name =replace(name,char(17),'');
update tb_contract set name =replace(name,char(18),'');
update tb_contract set name =replace(name,char(21),'');
update tb_contract set name =replace(name,char(22),'');
\ No newline at end of file
use tidb_block_browser;
-- select count(1) from tb_block where block_id >= @blocknum or block_id >= (@blocknum - 10000) ;
select count(1) from tb_block where block_id >= @blocknum ;
-- select * from tb_verify_code limit 1;
-- select * from tb_validator_snapshot limit 1;
-- select * from tb_user_api_key limit 1;
-- select * from tb_user limit 1;
--
--
delete from tb_transaction where block_id >= @blocknum;
-- select * from tb_token_price limit 1;
-- select * from tb_pending_block limit 1;
-- select * from tb_pending_block where block_id >= @blocknum;
--
-- select * from tb_original_transaction limit 1;
delete from tb_original_transaction where block_id >= @blocknum;
--
-- select * from tb_original_block limit 1;
delete from tb_original_block where block_id >= @blocknum;
--
--
-- select * from tb_internal_transaction limit 1;
delete from tb_internal_transaction where block_id >= @blocknum;
--
--
-- select * from tb_forked_block limit 1;
delete from tb_forked_block where block_id >= @blocknum;
-- select * from tb_event limit 1;
delete from tb_event where block_id >= @blocknum;
--
-- select * from tb_contract_transaction limit 1;
delete from tb_contract_transaction where block_id >= @blocknum;
--
-- select * from tb_contract_function limit 1;
-- select * from tb_contract_account order by block_id desc limit 1;
delete from tb_contract_account where block_id >= @blocknum;
--
-- select * from tb_contract order by block_id desc limit 10;
delete from tb_contract where block_id >= @blocknum;
-- select * from tb_config limit 1;
-- select * from tb_block_control;
update tb_block_control set last_analyze_block_id=(@blocknum-1) , write_block_id_lock=@blocknum;
-- select * from tb_block limit 1;
delete from tb_block where block_id >= @blocknum;
-- select * from tb_base_coin_price limit 1;
-- select * from tb_base_coin_info limit 1;
-- select * from tb_account_stats limit 1;
-- select * from tb_account_info limit 1;
delete from tb_account_info where block_id >= @blocknum;
requirepass 123456
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/data/redis.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
requirepass bXlzcWw=
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/data/redis.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
#!/bin/bash
source db.env
sed -i "/^requirepass.*$/c requirepass $REDIS_PASS" ./redis/conf/redis.conf
docker compose -f docker-compose.yml up -d
web/1.png

5.22 KB

{
"files": {
"main.css": "/static/css/main.b567dc0d.chunk.css",
"main.js": "/static/js/main.da4b8676.chunk.js",
"main.js.map": "/static/js/main.da4b8676.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.70c8541d.js",
"runtime-main.js.map": "/static/js/runtime-main.70c8541d.js.map",
"static/js/2.1e7dc57e.chunk.js": "/static/js/2.1e7dc57e.chunk.js",
"static/js/2.1e7dc57e.chunk.js.map": "/static/js/2.1e7dc57e.chunk.js.map",
"static/js/3.7add62f6.chunk.js": "/static/js/3.7add62f6.chunk.js",
"static/js/3.7add62f6.chunk.js.map": "/static/js/3.7add62f6.chunk.js.map",
"index.html": "/index.html",
"static/css/main.b567dc0d.chunk.css.map": "/static/css/main.b567dc0d.chunk.css.map",
"static/js/2.1e7dc57e.chunk.js.LICENSE.txt": "/static/js/2.1e7dc57e.chunk.js.LICENSE.txt"
},
"entrypoints": [
"static/js/runtime-main.70c8541d.js",
"static/js/2.1e7dc57e.chunk.js",
"static/css/main.b567dc0d.chunk.css",
"static/js/main.da4b8676.chunk.js"
]
}
\ No newline at end of file
body,html{height:100%}.wrapper{height:auto!important;height:100%;margin:0 auto -99px;min-height:100%;background-color:#f8f9fa!important}#push{height:99px}body.dark-mode .wrapper{background-color:#132a47!important}.ui-autocomplete{max-height:300px;overflow-y:auto;overflow-x:hidden;padding-bottom:1px;z-index:91199}body.dark-mode .ui-autocomplete{background-color:#132a47;border-color:#013558}.ui-autocomplete .left{float:left}.ui-autocomplete .right{float:right}.ui-autocomplete-category{padding:5px 15px;margin:0;font-weight:700}.jvectormap-container{width:100%;height:100%}.hd-doc-search__category{display:block;color:#377dff}.ui-autocomplete-input.form-control:not(:last-child){border-top-right-radius:.125rem;border-bottom-right-radius:.125rem}.anomaly{background:#f9f9f9!important}body.dark-mode .anomaly{background:#012c49!important}tspan{text-decoration:none;text-shadow:none!important}body.dark-mode .highcharts-data-labels text{color:#a2b9c8!important;fill:#a2b9c8!important}.u-label-inline{display:inline!important}.mn-3{margin-top:-3px;margin-bottom:-3px}.mn-b3{margin-bottom:-3px}.wordwrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}a.address-tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}@media(max-width:760px){.dropdown-menu-sm-right{right:0;left:0!important}}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff!important;border-color:#5f6a74!important;background-color:#5f6a74!important}
.hs-menu-initialized{position:relative;z-index:10}.hs-menu-initialized .animated{-webkit-animation-duration:300ms;animation-duration:300ms}.hs-overflow-x-locked{overflow-x:hidden}.hs-sub-menu,.hs-mega-menu{display:none;position:absolute;left:0;top:100%;z-index:2;margin-top:-.002rem;visibility:hidden;background-color:#fff;opacity:1!important}.hs-sub-menu-opened>.hs-sub-menu,.hs-mega-menu-opened>.hs-mega-menu{visibility:visible;opacity:1}.hs-sub-menu{min-width:180px}.hs-has-sub-menu{overflow:hidden;position:relative}.hs-sub-menu-opened{overflow:visible}.hs-sub-menu .hs-sub-menu,.hs-mega-menu .hs-sub-menu,.hs-sub-menu .hs-mega-menu,.hs-mega-menu .hs-mega-menu{top:0;left:100%;margin-top:0}.hs-menu-vertical .hs-sub-menu,.hs-menu-vertical .hs-mega-menu{top:0;left:100%;margin-top:0}.hs-menu-vertical .hs-sub-menu{width:auto}.hs-menu-vertical .hs-mega-menu{height:100%}.hs-mobile-state .hs-sub-menu,.hs-mobile-state .hs-mega-menu{position:static;visibility:visible}.hs-mobile-state .hs-has-mega-menu[data-max-width]>.hs-mega-menu,.hs-mobile-state .hs-has-sub-menu[data-max-width]>.hs-sub-menu{max-width:initial!important}.hs-menu-initialized.hs-rtl{direction:rtl;unicode-bidi:embed}.hs-menu-initialized.hs-rtl .hs-sub-menu,.hs-menu-initialized.hs-rtl .hs-mega-menu{left:auto;right:0}.hs-menu-initialized.hs-rtl .hs-sub-menu .hs-sub-menu,.hs-menu-initialized.hs-rtl .hs-mega-menu .hs-sub-menu,.hs-menu-initialized.hs-rtl .hs-sub-menu .hs-mega-menu,.hs-menu-initialized.hs-rtl .hs-mega-menu .hs-mega-menu{left:auto;right:100%}.hs-menu-initialized:not(.hs-mobile-state) .hs-sub-menu.hs-reversed,.hs-menu-initialized:not(.hs-mobile-state) .hs-mega-menu.hs-reversed{left:auto;right:0}.hs-menu-initialized:not(.hs-mobile-state) .hs-sub-menu .hs-sub-menu.hs-reversed,.hs-menu-initialized:not(.hs-mobile-state) .hs-mega-menu .hs-sub-menu.hs-reversed,.hs-menu-initialized:not(.hs-mobile-state) .hs-sub-menu .hs-mega-menu.hs-reversed,.hs-menu-initialized:not(.hs-mobile-state) .hs-mega-menu .hs-mega-menu.hs-reversed{left:auto;right:100%}.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-sub-menu.hs-reversed,.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-mega-menu.hs-reversed{right:auto;left:0}.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-sub-menu .hs-sub-menu.hs-reversed,.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-mega-menu .hs-sub-menu.hs-reversed,.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-sub-menu .hs-mega-menu.hs-reversed,.hs-menu-initialized.hs-rtl:not(.hs-mobile-state) .hs-mega-menu .hs-mega-menu.hs-reversed{right:auto;left:100%}.hs-menu-initialized.hs-menu-horizontal .hs-mega-menu.hs-position-left{left:0;right:auto}.hs-menu-initialized.hs-menu-horizontal .hs-mega-menu.hs-position-right{left:auto;right:0}.hs-menu-initialized.hs-menu-horizontal .hs-mega-menu.hs-position-center{right:auto;left:50%;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0)}
\ No newline at end of file
.customBgColor{
background-color: #3d1ff5 !important;
}
a:hover{
color: #4a75f3;
}
.bg-img-hero-main .btn-primary:not([href]), .bg-img-hero-main .btn-primary:not([href]):not([href]):not(:disabled):not(.disabled){
background-color: #3d1ff5;
border-color: #fff;
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
hs.graphicsDir='/assets/highslide/graphics/';hs.outlineType='rounded-white';hs.wrapperClassName='draggable-header';hs.captionEval='this.a.title';hs.showCredits=false;hs.marginTop=20;hs.marginRight=20;hs.marginBottom=20;hs.marginLeft=20;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="338.644" height="287.671" viewBox="0 0 338.644 287.671">
<defs>
<filter id="file" x="153.382" y="69.65" width="179.678" height="210.263" filterUnits="userSpaceOnUse">
<feOffset dy="2.008" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3.013" result="blur"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="file-2" x="24.855" y="51.573" width="188.287" height="221.302" filterUnits="userSpaceOnUse">
<feOffset dy="2.008" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3.013" result="blur-2"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-2"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="file-2-2" x="92.238" y="0" width="157" height="208" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-3"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-3"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="searfch-circle" x="174.245" y="116.995" width="128" height="129" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-4"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-4"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="search-pen" x="261.775" y="205.565" width="76.869" height="76.868" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-5"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-5"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g id="empty-search-state-dark" transform="translate(-429.756 -341.003)">
<g id="files" transform="translate(463.649 348.133)">
<g id="file-3">
<g transform="matrix(1, 0, 0, 1, -33.89, -7.13)" filter="url(#file)">
<g id="file-3-2" data-name="file" transform="translate(205.41 76.68) rotate(15)" fill="#00295d" stroke="#38649b" stroke-width="2.008">
<rect width="122.797" height="166.056" rx="11.047" stroke="none"/>
<rect x="1.004" y="1.004" width="120.788" height="164.048" rx="10.042" fill="none"/>
</g>
</g>
<circle id="Ellipse_2" data-name="Ellipse 2" cx="11" cy="11" r="11" transform="translate(197.351 96.867)" fill="#38649b"/>
<rect id="Rectangle_12" data-name="Rectangle 12" width="34.741" height="6.042" transform="translate(225.694 107.366) rotate(15.009)" fill="#38649b"/>
<rect id="Rectangle_13" data-name="Rectangle 13" width="49.091" height="3.776" transform="translate(223.107 116.846) rotate(15.009)" fill="#38649b"/>
</g>
<g id="file-2-3" data-name="file-2" transform="translate(0 51.627)">
<g transform="matrix(1, 0, 0, 1, -33.89, -58.76)" filter="url(#file-2)">
<g id="file-2-4" data-name="file-2" transform="translate(33.89 92.03) rotate(-15)" fill="#00295d" stroke="#38649b" stroke-width="2.008">
<rect width="129.099" height="175.795" rx="11.047" stroke="none"/>
<rect x="1.004" y="1.004" width="127.091" height="173.787" rx="10.042" fill="none"/>
</g>
</g>
<g id="content" transform="translate(23.284 51.485) rotate(-15.009)">
<rect id="Rectangle_2" data-name="Rectangle 2" width="34.741" height="6.042" transform="translate(27.651 1.642)" fill="#38649b"/>
<rect id="Rectangle_8" data-name="Rectangle 8" width="49.091" height="3.776" transform="translate(27.299 11.712)" fill="#38649b"/>
<rect id="Rectangle_3" data-name="Rectangle 3" width="88.364" height="3.776" transform="translate(0.827 32.234)" fill="#38649b"/>
<rect id="Rectangle_11" data-name="Rectangle 11" width="88.364" height="3.776" transform="translate(1.573 70.612)" fill="#38649b"/>
<rect id="Rectangle_4" data-name="Rectangle 4" width="88.364" height="3.776" transform="translate(0.827 42.053)" fill="#38649b"/>
<rect id="Rectangle_10" data-name="Rectangle 10" width="88.364" height="3.776" transform="translate(1.573 80.43)" fill="#38649b"/>
<rect id="Rectangle_5" data-name="Rectangle 5" width="67.217" height="3.776" transform="translate(0.827 51.871)" fill="#38649b"/>
<rect id="Rectangle_9" data-name="Rectangle 9" width="67.217" height="3.776" transform="translate(1.573 90.248)" fill="#38649b"/>
<rect id="Rectangle_6" data-name="Rectangle 6" width="40.028" height="12.084" transform="translate(0.527 120.936)" fill="#38649b"/>
<rect id="Rectangle_7" data-name="Rectangle 7" width="19.636" height="19.636" fill="#38649b"/>
</g>
</g>
<g id="file-1" transform="translate(67.535)">
<g transform="matrix(1, 0, 0, 1, -101.43, -7.13)" filter="url(#file-2-2)">
<g id="file-4" data-name="file" transform="translate(101.24 7)" fill="#00295d" stroke="#38649b" stroke-width="2">
<rect width="139" height="190" rx="11" stroke="none"/>
<rect x="1" y="1" width="137" height="188" rx="10" fill="none"/>
</g>
</g>
<g id="content-2" data-name="content" transform="translate(21.306 23.765)">
<rect id="Rectangle_1" data-name="Rectangle 1" width="78" height="10" transform="translate(3.51 42.102)" fill="#38649b"/>
<rect id="Rectangle_2-2" data-name="Rectangle 2" width="96" height="4" transform="translate(3.51 57.102)" fill="#38649b"/>
<rect id="Rectangle_3-2" data-name="Rectangle 3" width="96" height="4" transform="translate(3.51 76.102)" fill="#38649b"/>
<rect id="Rectangle_4-2" data-name="Rectangle 4" width="96" height="4" transform="translate(3.51 87.102)" fill="#38649b"/>
<rect id="Rectangle_5-2" data-name="Rectangle 5" width="73" height="4" transform="translate(3.51 98.102)" fill="#38649b"/>
<rect id="Rectangle_6-2" data-name="Rectangle 6" width="43" height="13" transform="translate(3.51 129.102)" fill="#38649b"/>
<text id="_" data-name="?" transform="translate(3.999 25.102)" fill="#38649b" font-size="35" font-family="Roboto-Medium, Roboto" font-weight="500"><tspan x="0" y="0">?</tspan></text>
</g>
</g>
</g>
<g id="lines" transform="translate(433.338 355.22)">
<line id="Line_2" data-name="Line 2" x1="14.839" y2="16.323" transform="translate(289.949 15.614)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="4"/>
<line id="Line_3" data-name="Line 3" x2="14.839" y2="16.323" transform="translate(36.202)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="4"/>
<line id="Line_4" data-name="Line 4" y1="16.323" x2="7.42" transform="translate(7.663 172.704) rotate(28)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="4"/>
<line id="Line_5" data-name="Line 5" y1="16.323" x2="7.42" transform="translate(169.847 254.302) rotate(-9)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="4"/>
</g>
<g id="search" transform="translate(613.131 465.318)">
<g transform="matrix(1, 0, 0, 1, -183.37, -124.31)" filter="url(#searfch-circle)">
<g id="searfch-circle-2" data-name="searfch-circle" transform="translate(183.24 123.99)" fill="#00295d" stroke="#38649b" stroke-width="12">
<ellipse cx="55" cy="55.5" rx="55" ry="55.5" stroke="none"/>
<ellipse cx="55" cy="55.5" rx="49" ry="49.5" fill="none"/>
</g>
</g>
<g transform="matrix(1, 0, 0, 1, -183.37, -124.31)" filter="url(#search-pen)">
<path id="search-pen-2" data-name="search-pen" d="M0,0,48.969,48.969" transform="translate(275.72 217.51)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="7"/>
</g>
<g id="x" transform="translate(-613.131 -465.318)">
<line id="Line_6" data-name="Line 6" x1="38.3" y2="38.3" transform="translate(650.2 500.2)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="5"/>
<line id="Line_7" data-name="Line 7" x2="38.3" y2="38.3" transform="translate(650.2 500.2)" fill="none" stroke="#38649b" stroke-linecap="round" stroke-width="5"/>
</g>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="338.642" height="287.675" viewBox="0 0 338.642 287.675">
<defs>
<filter id="file" x="153.613" y="69.675" width="178.908" height="209.369" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="file-2" x="24.892" y="51.76" width="187.481" height="220.36" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-2"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-2"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="file-2-2" x="92.244" y="0" width="157" height="208" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-3"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-3"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="searfch-circle" x="174.244" y="117" width="128" height="129" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-4"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-4"/>
<feComposite in="SourceGraphic"/>
</filter>
<filter id="search-pen" x="261.774" y="205.565" width="76.868" height="76.868" filterUnits="userSpaceOnUse">
<feOffset dy="2" input="SourceAlpha"/>
<feGaussianBlur stdDeviation="3" result="blur-5"/>
<feFlood flood-opacity="0.078"/>
<feComposite operator="in" in2="blur-5"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g id="empty-search-state" transform="translate(-429.756 -341)">
<g id="files" transform="translate(463.649 348.133)">
<g id="file-3">
<g transform="matrix(1, 0, 0, 1, -33.89, -7.13)" filter="url(#file)">
<g id="file-3-2" data-name="file" transform="matrix(0.97, 0.26, -0.26, 0.97, 205.41, 76.68)" fill="#fff" stroke="#e7eaf3" stroke-width="2">
<rect width="122.278" height="165.355" rx="11" stroke="none"/>
<rect x="1" y="1" width="120.278" height="163.355" rx="10" fill="none"/>
</g>
</g>
<circle id="Ellipse_2" data-name="Ellipse 2" cx="11" cy="11" r="11" transform="translate(197.351 96.867)" fill="#e7eaf3"/>
<rect id="Rectangle_12" data-name="Rectangle 12" width="34.741" height="6.042" transform="matrix(0.966, 0.259, -0.259, 0.966, 225.694, 107.366)" fill="#e7eaf3"/>
<rect id="Rectangle_13" data-name="Rectangle 13" width="49.091" height="3.776" transform="matrix(0.966, 0.259, -0.259, 0.966, 223.107, 116.846)" fill="#e7eaf3"/>
</g>
<g id="file-2-3" data-name="file-2" transform="translate(0 51.627)">
<g transform="matrix(1, 0, 0, 1, -33.89, -58.76)" filter="url(#file-2)">
<g id="file-2-4" data-name="file-2" transform="matrix(0.97, -0.26, 0.26, 0.97, 33.89, 92.03)" fill="#fff" stroke="#e7eaf3" stroke-width="2">
<rect width="128.554" height="175.053" rx="11" stroke="none"/>
<rect x="1" y="1" width="126.554" height="173.053" rx="10" fill="none"/>
</g>
</g>
<g id="content" transform="matrix(0.966, -0.259, 0.259, 0.966, 23.284, 51.485)">
<rect id="Rectangle_2" data-name="Rectangle 2" width="34.741" height="6.042" transform="translate(27.651 1.642)" fill="#e7eaf3"/>
<rect id="Rectangle_8" data-name="Rectangle 8" width="49.091" height="3.776" transform="translate(27.299 11.712)" fill="#e7eaf3"/>
<rect id="Rectangle_3" data-name="Rectangle 3" width="88.364" height="3.776" transform="translate(0.827 32.234)" fill="#e7eaf3"/>
<rect id="Rectangle_11" data-name="Rectangle 11" width="88.364" height="3.776" transform="translate(1.573 70.612)" fill="#e7eaf3"/>
<rect id="Rectangle_4" data-name="Rectangle 4" width="88.364" height="3.776" transform="translate(0.827 42.053)" fill="#e7eaf3"/>
<rect id="Rectangle_10" data-name="Rectangle 10" width="88.364" height="3.776" transform="translate(1.573 80.43)" fill="#e7eaf3"/>
<rect id="Rectangle_5" data-name="Rectangle 5" width="67.217" height="3.776" transform="translate(0.827 51.871)" fill="#e7eaf3"/>
<rect id="Rectangle_9" data-name="Rectangle 9" width="67.217" height="3.776" transform="translate(1.573 90.248)" fill="#e7eaf3"/>
<rect id="Rectangle_6" data-name="Rectangle 6" width="40.028" height="12.084" transform="translate(0.527 120.936)" fill="#e7eaf3"/>
<rect id="Rectangle_7" data-name="Rectangle 7" width="19.636" height="19.636" transform="translate(0 0)" fill="#e7eaf3"/>
</g>
</g>
<g id="file-1" transform="translate(67.535 0)">
<g transform="matrix(1, 0, 0, 1, -101.43, -7.13)" filter="url(#file-2-2)">
<g id="file-4" data-name="file" transform="translate(101.24 7)" fill="#fff" stroke="#e7eaf3" stroke-width="2">
<rect width="139" height="190" rx="11" stroke="none"/>
<rect x="1" y="1" width="137" height="188" rx="10" fill="none"/>
</g>
</g>
<g id="content-2" data-name="content" transform="translate(21.306 23.765)">
<rect id="Rectangle_1" data-name="Rectangle 1" width="78" height="10" transform="translate(3.51 42.102)" fill="#e7eaf3"/>
<rect id="Rectangle_2-2" data-name="Rectangle 2" width="96" height="4" transform="translate(3.51 57.102)" fill="#e7eaf3"/>
<rect id="Rectangle_3-2" data-name="Rectangle 3" width="96" height="4" transform="translate(3.51 76.102)" fill="#e7eaf3"/>
<rect id="Rectangle_4-2" data-name="Rectangle 4" width="96" height="4" transform="translate(3.51 87.102)" fill="#e7eaf3"/>
<rect id="Rectangle_5-2" data-name="Rectangle 5" width="73" height="4" transform="translate(3.51 98.102)" fill="#e7eaf3"/>
<rect id="Rectangle_6-2" data-name="Rectangle 6" width="43" height="13" transform="translate(3.51 129.102)" fill="#e7eaf3"/>
<text id="_" data-name="?" transform="translate(12.51 25.102)" fill="#d4d9e8" font-size="35" font-family="Roboto-Medium, Roboto" font-weight="500"><tspan x="-8.511" y="0">?</tspan></text>
</g>
</g>
</g>
<g id="lines" transform="translate(433.338 355.22)">
<line id="Line_2" data-name="Line 2" x1="14.839" y2="16.323" transform="translate(289.949 15.614)" fill="none" stroke="#d4d9e8" stroke-linecap="round" stroke-width="4"/>
<line id="Line_3" data-name="Line 3" x2="14.839" y2="16.323" transform="translate(36.202 0)" fill="none" stroke="#d4d9e8" stroke-linecap="round" stroke-width="4"/>
<line id="Line_4" data-name="Line 4" y1="16.323" x2="7.42" transform="translate(7.663 172.704) rotate(28)" fill="none" stroke="#d4d9e8" stroke-linecap="round" stroke-width="4"/>
<line id="Line_5" data-name="Line 5" y1="16.323" x2="7.42" transform="translate(169.847 254.302) rotate(-9)" fill="none" stroke="#d4d9e8" stroke-linecap="round" stroke-width="4"/>
</g>
<g id="search" transform="translate(613.131 465.318)">
<g transform="matrix(1, 0, 0, 1, -183.37, -124.32)" filter="url(#searfch-circle)">
<g id="searfch-circle-2" data-name="searfch-circle" transform="translate(183.24 124)" fill="#fff" stroke="#d4d9e8" stroke-width="12">
<ellipse cx="55" cy="55.5" rx="55" ry="55.5" stroke="none"/>
<ellipse cx="55" cy="55.5" rx="49" ry="49.5" fill="none"/>
</g>
</g>
<g transform="matrix(1, 0, 0, 1, -183.37, -124.32)" filter="url(#search-pen)">
<path id="search-pen-2" data-name="search-pen" d="M0,0,48.969,48.969" transform="translate(275.72 217.52)" fill="none" stroke="#d4d9e8" stroke-linecap="round" stroke-width="7"/>
</g>
<g id="x" transform="translate(-613.131 -465.318)">
<line id="Line_6" data-name="Line 6" x1="38.3" y2="38.3" transform="translate(650.2 500.2)" fill="none" stroke="#e7eaf3" stroke-linecap="round" stroke-width="5"/>
<line id="Line_7" data-name="Line 7" x2="38.3" y2="38.3" transform="translate(650.2 500.2)" fill="none" stroke="#e7eaf3" stroke-linecap="round" stroke-width="5"/>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 318.6 318.6"
style="enable-background:new 0 0 318.6 318.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E2761B;stroke:#E2761B;stroke-linecap:round;stroke-linejoin:round;}
.st1{fill:#E4761B;stroke:#E4761B;stroke-linecap:round;stroke-linejoin:round;}
.st2{fill:#D7C1B3;stroke:#D7C1B3;stroke-linecap:round;stroke-linejoin:round;}
.st3{fill:#233447;stroke:#233447;stroke-linecap:round;stroke-linejoin:round;}
.st4{fill:#CD6116;stroke:#CD6116;stroke-linecap:round;stroke-linejoin:round;}
.st5{fill:#E4751F;stroke:#E4751F;stroke-linecap:round;stroke-linejoin:round;}
.st6{fill:#F6851B;stroke:#F6851B;stroke-linecap:round;stroke-linejoin:round;}
.st7{fill:#C0AD9E;stroke:#C0AD9E;stroke-linecap:round;stroke-linejoin:round;}
.st8{fill:#161616;stroke:#161616;stroke-linecap:round;stroke-linejoin:round;}
.st9{fill:#763D16;stroke:#763D16;stroke-linecap:round;stroke-linejoin:round;}
</style>
<polygon class="st0" points="274.1,35.5 174.6,109.4 193,65.8 "/>
<g>
<polygon class="st1" points="44.4,35.5 143.1,110.1 125.6,65.8 "/>
<polygon class="st1" points="238.3,206.8 211.8,247.4 268.5,263 284.8,207.7 "/>
<polygon class="st1" points="33.9,207.7 50.1,263 106.8,247.4 80.3,206.8 "/>
<polygon class="st1" points="103.6,138.2 87.8,162.1 144.1,164.6 142.1,104.1 "/>
<polygon class="st1" points="214.9,138.2 175.9,103.4 174.6,164.6 230.8,162.1 "/>
<polygon class="st1" points="106.8,247.4 140.6,230.9 111.4,208.1 "/>
<polygon class="st1" points="177.9,230.9 211.8,247.4 207.1,208.1 "/>
</g>
<g>
<polygon class="st2" points="211.8,247.4 177.9,230.9 180.6,253 180.3,262.3 "/>
<polygon class="st2" points="106.8,247.4 138.3,262.3 138.1,253 140.6,230.9 "/>
</g>
<polygon class="st3" points="138.8,193.5 110.6,185.2 130.5,176.1 "/>
<polygon class="st3" points="179.7,193.5 188,176.1 208,185.2 "/>
<g>
<polygon class="st4" points="106.8,247.4 111.6,206.8 80.3,207.7 "/>
<polygon class="st4" points="207,206.8 211.8,247.4 238.3,207.7 "/>
<polygon class="st4" points="230.8,162.1 174.6,164.6 179.8,193.5 188.1,176.1 208.1,185.2 "/>
<polygon class="st4" points="110.6,185.2 130.6,176.1 138.8,193.5 144.1,164.6 87.8,162.1 "/>
</g>
<g>
<polygon class="st5" points="87.8,162.1 111.4,208.1 110.6,185.2 "/>
<polygon class="st5" points="208.1,185.2 207.1,208.1 230.8,162.1 "/>
<polygon class="st5" points="144.1,164.6 138.8,193.5 145.4,227.6 146.9,182.7 "/>
<polygon class="st5" points="174.6,164.6 171.9,182.6 173.1,227.6 179.8,193.5 "/>
</g>
<polygon class="st6" points="179.8,193.5 173.1,227.6 177.9,230.9 207.1,208.1 208.1,185.2 "/>
<polygon class="st6" points="110.6,185.2 111.4,208.1 140.6,230.9 145.4,227.6 138.8,193.5 "/>
<polygon class="st7" points="180.3,262.3 180.6,253 178.1,250.8 140.4,250.8 138.1,253 138.3,262.3 106.8,247.4 117.8,256.4
140.1,271.9 178.4,271.9 200.8,256.4 211.8,247.4 "/>
<polygon class="st8" points="177.9,230.9 173.1,227.6 145.4,227.6 140.6,230.9 138.1,253 140.4,250.8 178.1,250.8 180.6,253 "/>
<g>
<polygon class="st9" points="278.3,114.2 286.8,73.4 274.1,35.5 177.9,106.9 214.9,138.2 267.2,153.5 278.8,140 273.8,136.4
281.8,129.1 275.6,124.3 283.6,118.2 "/>
<polygon class="st9" points="31.8,73.4 40.3,114.2 34.9,118.2 42.9,124.3 36.8,129.1 44.8,136.4 39.8,140 51.3,153.5 103.6,138.2
140.6,106.9 44.4,35.5 "/>
</g>
<polygon class="st6" points="267.2,153.5 214.9,138.2 230.8,162.1 207.1,208.1 238.3,207.7 284.8,207.7 "/>
<polygon class="st6" points="103.6,138.2 51.3,153.5 33.9,207.7 80.3,207.7 111.4,208.1 87.8,162.1 "/>
<polygon class="st6" points="174.6,164.6 177.9,106.9 193.1,65.8 125.6,65.8 140.6,106.9 144.1,164.6 145.3,182.8 145.4,227.6
173.1,227.6 173.3,182.8 "/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23.133 22.133">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #bdc5d1;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 4px;
}
</style>
</defs>
<path id="Path_1" data-name="Path 1" class="cls-1" d="M86.4,99.4v17.133h18.133" transform="translate(-83.9 -96.9)"/>
</svg>
This diff is collapsed.
The MIT License (MIT)
Copyright (c) 2020 Daniel Eden
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Animate.css
[![GitHub Version](https://img.shields.io/github/release/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![Github Star](https://img.shields.io/github/stars/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![Github Fork](https://img.shields.io/github/forks/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css) [![License](https://img.shields.io/github/license/daneden/animate.css.svg?style=for-the-badge)](https://github.com/daneden/animate.css)
> If you need the old docs - v3.x.x and under - you can find it [here](https://github.com/animate-css/animate.css/tree/a8d92e585b1b302f7749809c3308d5e381f9cb17).
## _Just-add-water CSS animation_
## Installation
Install with npm:
```shell
npm install animate.css --save
```
Install with yarn:
```shell
yarn add animate.css
```
## Getting started
You can find the Animate.css documentation on the [website](https://animate.style/).
## Accessibility
Animate.css supports the [`prefers-reduced-motion` media query](https://webkit.org/blog/7551/responsive-design-for-motion/) so that users with motion sensitivity can opt out of animations. On supported platforms (currently all the majors browsers and OS), users can select "reduce motion" on their operating system preferences and it will turn off CSS transitions for them without any further work required.
## Core team
| ![](https://avatars2.githubusercontent.com/u/439365?s=460&u=512b4cc5324938ae40bbb8f3b7769d335953cd3a&v=4) | ![](https://avatars2.githubusercontent.com/u/5007208?s=460&u=418401ee605824272e5dcb955fd64ea24546a857&v=4) | ![](https://avatars1.githubusercontent.com/u/15052701?s=460&u=9e58364978379536d3f26c4ce5cae1a2a449a0e4&v=4) |
| --- | --- | --- |
| [Daniel Eden](https://github.com/daneden) | [Elton Mesquita](https://github.com/eltonmesquita) | [Waren Gonzaga](https://github.com/WarenGonzaga) |
| Animate.css creator | Maintainer | Core contributor |
## License
Animate.css is licensed under the MIT license. <https://opensource.org/licenses/MIT>
## Code of Conduct
This project and everyone participating in it is governed by the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [callmeelton@gmail.com](mailto:callmeelton@gmail.com).
## Contributing
Pull requests are the way to go here. We only have two rules for submitting a pull request: match the naming convention (camelCase, categorised [fades, bounces, etc]) and let us see a demo of submitted animations in a [pen](https://codepen.io). That **last one is important**.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"name": "animate.css",
"version": "4.1.1",
"main": "animate.css",
"repository": {
"type": "git",
"url": "https://github.com/animate-css/animate.css.git"
},
"author": {
"name": "Animate.css"
},
"homepage": "https://animate.style/",
"license": "MIT",
"animateConfig": {
"prefix": "animate__"
},
"scripts": {
"start": "npm-run-all raw prod compat",
"compat": "npx postcss source/animate.css -o animate.compat.css --no-map --env compat",
"dev": "npx postcss source/animate.css -o animate.css --no-map --env development -w",
"raw": "npx postcss source/animate.css -o animate.css --no-map --env development",
"prod": "npx postcss source/animate.css -o animate.min.css --no-map --env production",
"format": "prettier --write \"**/*.{js,json,md,css}\"",
"precommit": "lint-staged",
"docs:library": "npx postcss source/animate.css -o ./docs/animate.min.css --no-map --env production",
"docs:pages": "node ./docsSource/index.js",
"docs": "npm-run-all docs:library docs:pages",
"version": "npm-run-all start docs && git add -A docs animate.css animate.min.css animate.compat.css",
"postversion": "git push && git push --tags"
},
"browserslist": [
"> 3%",
"last 2 versions"
],
"style": "./animate.css",
"jspm": {
"main": "animate.css!",
"format": "global",
"directories": {
"lib": "./"
}
},
"devDependencies": {
"autoprefixer": "^9.7.6",
"cssnano": "^4.1.10",
"eslint": "^7.8.1",
"husky": "^4.2.5",
"lint-staged": "^10.3.0",
"markdown-it": "^11.0.0",
"npm-run-all": "^4.1.5",
"postcss": "^7.0.27",
"postcss-cli": "^7.1.2",
"postcss-header": "^2.0.0",
"postcss-import": "^12.0.1",
"postcss-prefixer": "^2.1.2",
"postcss-preset-env": "^6.7.0",
"prettier": "^2.1.1"
},
"lint-staged": {
"*.{js,json,md,css}": [
"prettier --write"
]
},
"husky": {
"hooks": {
"pre-commit": "npm-run-all start precommit"
}
},
"files": [
"animate.compat.css",
"animate.min.css",
"animate.css",
"source/**/*.css"
]
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<div class="tab-pane fade active show" id="bytecode">
<h4 class="h5 mb-1"></h4>
<p class="ml-1">
<b>Compiler debug log:</b><br>
<span id="ContentPlaceHolder1_litAdditionalContractInfo"></span>
<span id="ContentPlaceHolder1_lblResult">
<span class="text-danger">
<i class="fa fa-ban"></i>
Error! Unable to generate Contract ByteCode and ABI
</span>
<br/>
<i class="fa fa-angle-double-right"></i> Found the following ContractName(s) in source code : <b>ERC20Interface</b>, <b>MyToken</b>, <b>Ownable</b>, <b>SafeMath</b><br><i class="fa fa-angle-double-right"></i> But we were unable to locate a matching bytecode (err_code_2)<br><i class="fa fa-info-circle text-secondary"></i> For troubleshooting, you can try compiling your source code with the <span class="text-primary"><a href="https://remix.ethereum.org" target="_blank">Remix - Solidity IDE</a></span> and check for exceptions<br><br></span>
</p>
<div class="card bg-light mb-4">
<div class="card-body">
<ul class="list-unstyled font-size-1 text-monospace mb-3">
<li><strong>Compiler Version:</strong> v0.4.24+commit.e67f0147</li>
<li><strong>Optimization Enabled:</strong> False</li>
<li><strong>Runs:</strong> 200</li>
</ul>
<pre><strong>ByteCode (what we are looking for)</strong>:<br><br>{bzzr}</pre>
<br>
<div class="text-monospace my-4">- vs what we got -</div>
<br>
<pre>We tried looking for a match from the list of compiled contract bytecode outputs (as listed below), but was unable to find an exact match.<br><br>1) <b>MyToken</b><br><br>{bzzr}<span data-toggle="tooltip" title="" data-original-title="Constructor Arguments you provided"><i></i></span><br><br>2) <b>SafeMath</b><br>6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00<br>{bzzr}<span data-toggle="tooltip" title="" data-original-title="Constructor Arguments you provided"><i></i></span><br><br></pre>
</div>
</div>
<p></p>
<br>
<p>
<a id="ContentPlaceHolder1_linkStartOverButton" class="btn btn-primary btn-sm" href="#">Start Over</a>
</p>
</div>
\ No newline at end of file
<div class="tab-pane fade active show" id="bytecode">
<h4 class="h5 mb-1"></h4>
<p class="ml-1">
<b>Compiler debug log:</b><br>
<span id="ContentPlaceHolder1_litAdditionalContractInfo"><i class="fa fa-check-circle"></i> Note: Contract was created during TxHash# <span class="text-primary"><a href="/tx/0xbe10fa4a9d7239b146b9ce244b8356cec9dca30b8d8297c74b402dce3f1bd2b1">0xbe10fa4a9d7239b146b9ce244b8356cec9dca30b8d8297c74b402dce3f1bd2b1</a></span><br></span>
<span id="ContentPlaceHolder1_lblResult"><i class="fa fa-thumbs-up mr-1"></i><span class="text-success">Successfully generated ByteCode and ABI for Contract Address </span><span class="text-primary"><a href="/address/0xDf699C02cbF22eD25B36c7D791c65350bbC02B76#code">[0xDf699C02cbF22eD25B36c7D791c65350bbC02B76]</a></span><br><br></span>
</p>
<div class="card bg-light mb-4">
<div class="card-body">
<ul class="list-unstyled font-size-1 text-monospace mb-3">
<li><strong>Compiler Version:</strong> v0.4.24+commit.e67f0147</li>
<li><strong>Optimization Enabled:</strong> 1</li>
<li><strong>Runs:</strong> 200</li>
</ul>
<strong>ContractName:</strong><br>
<pre class="wordwrap">MyToken</pre>
<strong>ContractBytecode:</strong><br>
<pre class="wordwrap">608060405234801561001057600080fd5b5060008054600160a060020a0319163317808255604051600160a060020a039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36040805180820190915260078082527f4a44546f6b656e00000000000000000000000000000000000000000000000000602090920191825261009e9160019161014f565b506040805180820190915260028082527f4a4400000000000000000000000000000000000000000000000000000000000060209092019182526100e1918161014f565b506003805460ff191660121790556b033b2e3c9fd0803ce80000006004819055336000818152600560209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36101ea565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061019057805160ff19168380011785556101bd565b828001600101855582156101bd579182015b828111156101bd5782518255916020019190600101906101a2565b506101c99291506101cd565b5090565b6101e791905b808211156101c957600081556001016101d3565b90565b610847806101f96000396000f3006080604052600436106100b95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100be578063095ea7b31461014857806318160ddd1461018057806323b872dd146101a7578063313ce567146101d157806370a08231146101fc5780638da5cb5b1461021d5780638f32d59b1461024e57806395d89b4114610263578063a9059cbb14610278578063dd62ed3e1461029c578063f2fde38b146102c3575b600080fd5b3480156100ca57600080fd5b506100d36102e6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010d5781810151838201526020016100f5565b50505050905090810190601f16801561013a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015457600080fd5b5061016c600160a060020a0360043516602435610373565b604080519115158252519081900360200190f35b34801561018c57600080fd5b506101956103da565b60408051918252519081900360200190f35b3480156101b357600080fd5b5061016c600160a060020a036004358116906024351660443561040c565b3480156101dd57600080fd5b506101e6610505565b6040805160ff9092168252519081900360200190f35b34801561020857600080fd5b50610195600160a060020a036004351661050e565b34801561022957600080fd5b50610232610529565b60408051600160a060020a039092168252519081900360200190f35b34801561025a57600080fd5b5061016c610538565b34801561026f57600080fd5b506100d3610549565b34801561028457600080fd5b5061016c600160a060020a03600435166024356105a1565b3480156102a857600080fd5b50610195600160a060020a0360043581169060243516610645565b3480156102cf57600080fd5b506102e4600160a060020a0360043516610670565b005b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546004540390565b600160a060020a03831660009081526005602052604081205461042f90836106f1565b600160a060020a038516600090815260056020908152604080832093909355600681528282203383529052205461046690836106f1565b600160a060020a0380861660009081526006602090815260408083203384528252808320949094559186168152600590915220546104a49083610706565b600160a060020a0380851660008181526005602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60035460ff1681565b600160a060020a031660009081526005602052604090205490565b600054600160a060020a031690565b600054600160a060020a0316331490565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561036b5780601f106103405761010080835404028352916020019161036b565b336000908152600560205260408120546105bb90836106f1565b3360009081526005602052604080822092909255600160a060020a038516815220546105e79083610706565b600160a060020a0384166000818152600560209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b610678610538565b15156106e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106ee81610716565b50565b60008282111561070057600080fd5b50900390565b818101828110156103d457600080fd5b600160a060020a03811615156107b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058206a92680c77cb7f8a7c7b6498429a7289a2f43f47e28143f8464686bd41aab92b0029</pre>
<strong>ContractABI:</strong><br>
<pre class="wordwrap">[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]</pre>
<br>
</div>
</div>
<p></p>
<br>
<p></p>
</div>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment