PHP是世界上最好的语言 / 重构了部分代码

在给微信公众号增加比特股内盘账户资产查询时,我遇到一个麻烦,bitshares系统中活跃的资产多达740项,不活跃的资产更是数不胜数。而读取账户资产的API返回的账户资产项目中,资产用ID的形式表示。那么,要把资产已可阅读的方式展现,则需要再用ID去查询资产的信息。

另外,资产项目中,资产以整数形式呈现,比如你账户中8.88bitCNY,那么资产项目中保存的数据为88800,所以我们需要知道资产的精度,以便于程序做出正确的处理。

如果是其它程序类型,我们在读回账户资产后,可以再逐项调用API读取对应资产数据(符号,精度等),然后再去进行处理。但是多次调用API会消耗很多时间,而微信又有5秒钟的时间限制。在API节点延迟大、微信时间限制短的前提下,如果一个用户资产项目过多,那么读取用户资产将会遇到问题。


(图源 :pixabay)

原始的解决办法

为了解决这个问题,我在程序中做了一些变通:

  • 只处理指定类型的资产
  • 将对应资产数据(ID、符号、精度)直接编码在程序中

比如我只支持这些资产:
"1.3.0", "1.3.113", "1.3.121", "1.3.1999", "1.3.973"

那么获取用户资产的API就可以 这样调用
curl -s --data '{"jsonrpc": "2.0", "method": "get_named_account_balances", "params": ["oflyhigh", ["1.3.0", "1.3.113", "1.3.121", "1.3.1999", "1.3.973"]], "id": 1}' https://openledger.hk/ws

返回内容如下:

然后在程序中,我就可以这样逐项处理返回的资产:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
switch($asset["asset_id"])
{
case "1.3.0":
$symbol="BTS";
$precision = 5;
break;
case "1.3.113":
$symbol="CNY";
$precision = 4;
break;
case "1.3.121":
$symbol="USD";
$precision = 4;
break;
case "1.3.1999":
$symbol="OPEN.EOS";
$precision = 6;
break;
default:
break;
}

然后再去处理资产余额以及符号等就方便了。

新的办法

上述方法,在处理几项有限的资产时,没有什么问题。但当资产数目达到十多项时,我发现我彻底懵逼了。这些ID都是啥啊,和谁对应啊?我陷入彻底的混乱当中。于是我在想,必须对这部分代码进行重构了。

首先,我制作了这样一个包含数组的数组:

1
2
3
4
5
6
$assets = array(
array("symbol"=>"BTS", "id"=>"1.3.0", "precision"=>5),
array("symbol"=>"CNY", "id"=>"1.3.113", "precision"=>4),
array("symbol"=>"USD", "id"=>"1.3.121", "precision"=>4),
array("symbol"=>"OPEN.EOS", "id"=>"1.3.1999", "precision"=>6),
}

上述数组中保存了,我程序支持的一些资产的数据(ID、符号、精度)
但是该如何使用这个数组我遇到一些问题。

生成资产ID列表

前边我们说过,我使用get_named_account_balances这个API调用返回账户资产,除了传入账户名以外,还要传入要获取的资产列表,比如:"1.3.0", "1.3.113", "1.3.121", "1.3.1999", "1.3.973"

那么如何从上述数组中生成列表呢?
一种方式是我做一个循环来遍历数组元素,获取每项资产的ID,生成新的数组。一听起来就不优雅。于是我使用了如下代码生成列表:

1
2
3
4
function get_id($v){
return $v["id"];
}
$asset_ids = array_map(get_id, $assets);

其中使用了PHP函数array_map以及我们自己定义的回调函数,是不是看起来就很先进?

查询数组

继续回到我们的问题上来,在前边我们说过,之前我们使用switch分支处理,来处理每项资产。那么有了上述资产数组定义后,我们当然不能在继续用分支处理了。那么如何处理呢?

一种方式还是循环,循环是万能的,循环然后对比资产ID,对上了,再去处理。这样做的一个弊端是需要循环好多次,效率低下。

另外有一些类似使用回调函数搜索数组的功能,看了一下感觉效率也不会高到哪里去。

从我们阅读的角度来看,我们知道了某个ID,可以直接去数组中找到对应项,那么我们程序中该如何实现呢?想了一下,最好的办法是给数组定义的时候用ID做KEY,

1
2
3
4
5
6
$assets = array(
"1.3.0"=>array("symbol"=>"BTS", "precision"=>5),
"1.3.113"=>array("symbol"=>"CNY", "precision"=>4),
"1.3.121"=>array("symbol"=>"USD", "precision"=>4),
"1.3.1999"=>array("symbol"=>"OPEN.EOS", "precision"=>6),
}

啊啊啊啊,这写法触发了我的强迫症,太不优雅了!让我这样写代码不如杀了我吧,那有没有办法让程序自动给它加上KEY呢,这样就眼不见心不烦了。

最终,我终于找到一种方法

1
2
3
4
5
function get_id($v){
return $v["id"];
}
$asset_ids = array_map(get_id, $assets);
$assets_new = array_combine($asset_ids, $assets);

其中使用了PHP函数array_combine将KEY和原来的数组组合起来。其中前些行代码我们之前就用到了, 所以只多了最后一行代码哦。

修改数组

在读回用户账户资产后,我们需要对用户的每项资产进行处理,计算数值、加上名称等等
比如将
{'amount': 500000000, 'asset_id': '1.3.0'}处理成类似5000 BTS的样子

于是我写了类似如下的循环

1
2
3
foreach ($balances as $asset){
$asset["xxx"] = xxxxx;
}

然而执行完毕,居然啥都没有变,还好脑袋里还有按值传递按引用传递的概念,将代码修改如下:

1
2
3
foreach ($balances as &$asset){
$asset["xxx"] = xxxxx;
}

瞬间搞定。

新增资产

有了上述工作后,再新增加新的资产变得特别方便。比如我们要加入OPEN.DOGE支持,只需在上述数组中加入新的条目:
array("symbol"=>"OPEN.DOGE", "id"=>"1.3.860", "precision"=>4),

增减资产从此变得如此简单。

总结


(图源 :pixabay)

通过简化处理资产的类型以及在程序中直接编码资产的数据,使得微信公众号可以很迅速得响应查询账户资产的请求。

通过使用array_maparray_combine按引用传递以及嵌套函数定义等,使得程序更加便于阅读和维护。

PHP果然是世界上最好的语言,哈哈哈,不服来辩!

相关链接


This page is synchronized from the post: PHP是世界上最好的语言 / 重构了部分代码

😰别吓唬我,我只想安静地囤币 😫😢😪😭

看到不少CN区以及CN区以外的朋友分享使用硬件钱包,甚为羡慕。我在想是不是也搞两个硬件钱包保管我为数不多的比特币和其它虚拟币呢?

仔细考虑一些,或许买到手之后,凭我这感人智商能否会用都不一定呢,那样就相当于花了大价钱买了砖头了。考虑到比特币的私钥不过是一串数字,并且我计划一直囤到一币一别墅,也不打算花掉或者变现,那么硬件钱包对我而言,真的没啥必要,或许和U盘没啥区别?

那么我是不是可以用计划买硬件钱包的钱买俩U盘呢?剩下的钱,没准还够我买几箱啤酒呢。说干就干,京东简单选了一下,挑中一款闪迪的U盘,一下买俩。

IMG_20180110_204237.jpg
这款U盘支持USB3.0, 容量为32G,足够我用了。

IMG_20180110_204250.jpg
宣称写入速度高达15倍,不过其实我不在意的啦,稳定和长寿才是最重要的。

IMG_20180110_204331.jpg
去掉外包装的包装。

IMG_20180110_204413.jpg
小巧精致的U盘。

IMG_20180110_204454.jpg
和以前的闪迪U盘做个对比。


费了半天劲,把我的比特币私钥、STEEM的账户密码以及BTS账户的私钥和BTS内盘钱包备份都弄到U盘中,一式两份,这样总该放心了吧。

不知何年何月,比特币能涨到一币一别墅啊,看今天的行情有点吓人。我的STEEM、EOS、BTS等大棒骨都跌了,我的狗狗币几乎跌成了狗🐶。

哎,我只想安静地囤币而已,干嘛这么吓唬我啊,心脏刺激得都受不了啦。话说,这行情,我也只能囤币了。再有一点,我至今不知道比特币有多少分叉,以及如何将分叉币搞出来,想想就一个头N个大啊。

还是安静地囤币吧。不过,话说,我刚刚复制完私钥的U盘被我放哪里去了?? 不多写了,我去找U盘了😭


This page is synchronized from the post: 😰别吓唬我,我只想安静地囤币 😫😢😪😭

公众号/ 行情查询功能 & 比特股内盘账户资产查询

继续安利公众号,前些天我们在公众号中增加了几项内盘资产。有朋友问,为何不多增加一些资产类型啊?答案很简单,我不懂啊。不过有朋友说IPFS还不错,恰巧内盘有HelloBTS发行并负责承兑的IPFS资产,那把这项资产也加上吧。


(图源 :pixabay)

但是除了行情查询,用户还可能非常关注自己比特股内盘账户的资产,比如说看看自己都持有哪些资产,以及这些资产是否有所变动。我个人觉得这个功能还是非常有必要的,比如说,我经常用其查询别人给我的转账是否到账以及我在内盘的挂单是否有成交

大家最近可能都遇到过网页钱包拥堵的情况,简单来讲就是接入点负载太高,这样就可能导致网页钱包区块链数据与最新区块不同步,数据老旧,报价延迟。如果我们按这个旧的价格信息来进行交易,可能就亏大了。另外,因为同样的原因,查询内盘账户资产也比较不方便。所以,使用公众号查询行情以及内盘账户资产,还是很不错的补充手段,至少我觉得是这样的😀

支持的资产类型

截至目前,行情查询功能支持以下资产类型

资产 描述
BTS Core Token
OPEN.BTC OpenLedger Bitcoin-backed asse
OPEN.ETH OpenLedger Ether backed asset
OPEN.EOS OpenLedger-issued asset for EOS Ethereum token.
OPEN.STEEM OpenLedger STEEM-backed asset
OPEN.SBD Steem Dollars backed by OpenLedger
OPEN.DOGE OpenLedger Dogecoin-backed asset
GDEX.BTC GDEX issued Bitcoin backed asset
GDEX.ETH GDEX issued Ether backed asset
GDEX.EOS GDEX issued EOS ERC20 token backed asset
YOYOW You Own Your Own Words
IPFS 星际文件系统代币,由HelloBTS发行并负责承兑

内盘账户资产查询功能除了上述资产外,还支持
资产 | 描述
—-|—-
CNY|SmartCoin: 1 Chinese yuan
USD|SmartCoin: 1 United States dollar

使用方法

查询行情

只需在公众号中输入对应资产名称,即可查询行情。名称不区分大小写,不用加?等其它符号

注:行情数据均来自于比特股内盘。


查询账户资产

只需在公众号中!bts_id,即可查询你在内盘的资产情况,其中!英文感叹号bts_id为你在bitshares系统中的用户名,用户名不区分大小写。


公众号添加方法

  • 方式一:
    进入微信通讯录->点击公众号->点右上角加号->搜索steemit,关注即可。

  • 方式二:
    直接扫描以下二维码:

欢迎大家多提宝贵意见啊。

相关文章


This page is synchronized from the post: 公众号/ 行情查询功能 & 比特股内盘账户资产查询

xxd 命令学习笔记 / xxd - make a hexdump or do the reverse.

今天工作的时候遇到一个命令:xxd,说来惭愧,虽然曾在Linux系统下工作了好多年,但是这个命令我却真的是第一次看到。为了搞明白这个命令,我对着man手册做了一些测试,我将学到的东西记录到这里,一则方便自己以后查找,二则希望给和我一样第一次遇到这个命令一头雾水的朋友一些参考。


(图源 :pixabay)

xxd的使用

对于给定的文件或者标准输入,以十六进制显示其内容,或者反过来转换

为了演示xxd的使用,我创建了一个简单的文本文件hello.txt:
Hello World, I am oflyhigh!
xxd - make a hexdump or do the reverse.

不带参数的xxd命令

xxd hello.txt

通过对比输出内容,我们的出结论:
不带参数的xxd命令,以16进制形式输出文件内容,前边是地址,数据2个字节一组,每行显示8组,后边显示对应的文本内容。

-g 分组参数

通过分组参数,我们可以指定多少个字节为一组,默认为2。
xxd -g 1 hello.txt

-c 列参数

通过 -c 参数,我们可以指定每列显示几个字节
xxd -g 1 -c 8 hello.txt

-b 二进制形式显示

通过 -b 参数,我们可以指定以二进制形式显示内容
xxd -b -g 1 -c 6 hello.txt

-i 参数,生成C语言格式的数组

通过-i 参数,我们生成C语言格式的数组,同时可以通过-c参数控制格式
xxd -i -c 10 hello.txt

-l 参数,指定长度

通过-l 参数,我们指定要处理的内容长度(字节数)
xxd -l 24 -g 1 -c 12 hello.txt

-p 参数,纯HEX转储

通过-p 参数,我们输出内容的纯HEX显示
xxd -p -l 24 -c 12 hello.txt

-s [+][-]seek 搜索功能

我们通过-s [+][-]seek来实现从文件首尾指定开始长度的功能
xxd -g 1 hello.txt

xxd -s 0x10 -g 1 hello.txt

-r 参数

通过 -r 参数,可以将类似这样输出,转出成普通文件

比如我们将上述例子中的输出存储到文件
xxd -s 0x10 -g 1 hello.txt > example.txt

打开这个文件,可以发现文件中包含如下文本:

1
2
3
4
0000010: 6d 20 6f 66 6c 79 68 69 67 68 21 0a 78 78 64 20  m oflyhigh!.xxd
0000020: 2d 20 6d 61 6b 65 20 61 20 68 65 78 64 75 6d 70 - make a hexdump
0000030: 20 6f 72 20 64 6f 20 74 68 65 20 72 65 76 65 72 or do the rever
0000040: 73 65 2e 0a se..

xxd -r example.txt

是不是非常神奇?

用途

通过上述介绍,我们应该想到xxd有很多用途啦。

不过一个重要的用途就是十六进制编辑,比如上述介绍的最后一条,我们可以编辑生成的十六进制的文本文件,再通过xxd -r保存成文件,这样就达到了十六进制编辑的目的。

地址编辑,我们还可以通过编辑上述文件中的地址,达到在指定地址写入指定内容的目的。

文件截取,在学习-r参数时,我组合出下列一条指令,猜猜它干什么用的?
xxd -s 0x10 -g 1 hello.txt | xxd -r -seek -0x10 >1.txt

更多内容

想了解关于xxd的更多内容,请输入man xxd


This page is synchronized from the post: xxd 命令学习笔记 / xxd - make a hexdump or do the reverse.

遇见往事 / 编程器与Intel HEX文件格式

今天早晨查找资料的时候,无意中发现一篇自己16年前翻译的文章,不胜感慨。


(图源 :pixabay)

欲做编程器

那时候和朋友一起创业做一些单片机相关的硬件开发,单片机开发一个重要的步骤就是将我们编写出来的程序烧写到单片机内部让其工作,而完成这个步骤需要用到一个设备叫做编程器(现在也有叫下载器的),为此我们特意花2000多大洋购入这个设备,对于当时的我们而言,这是比较巨大的一笔开销了。

尽管用我们购买的编程器可以完成程序的烧写的烧写工作,但是需要将待烧写的芯片插到编程器的芯片座上,再启动编程器软件,从一堆列表中选取芯片厂商、芯片型号,再从文件选择框中选择我们要烧写的目标文件,然后去执行烧写校验等诸多步骤,完成后再把芯片从芯片座上拔下来,插入到我们硬件电路对应的芯片座中。

这个过程很繁琐,并且有一些弊端,比如对于我们将芯片直接焊接到电路板上的情况,再想更新芯片程序基本上是没有可能了。所以为了解决这个问题,我们计划开发一款自己的编程器,一方面简化操作流程,另外一方面可以直接对已经焊接到电路板上的芯片进行操作(电路板上预留接口)。

HEX文件格式的挑战

开发自己的编程器主要可以分成两个方面的工作:一是硬件部分,负责将数据写入到对应芯片中(ICSP);一个是桌面软件,负责读取目标文件中的数据,并发送给硬件部分。桌面软件和硬件之间的按照我们自己约定的通信协议通信。

当时我们使用单片机开发软件(Keil C)主要生成两种格式的文件: bin格式以及hex格式bin格式就相当于一个二进制文件,对于桌面软件来讲,把读到的所有数据都发出去,就完工了,而hex格式则是很复杂的一个文本文件。

当时一些很多小伙伴的做法是使用两款软件,bin2hex以及hex2bin在两种格式间进行转换,也就是说,如果我们的编程器想处理hex文件,可以先调用hex2bin再处理bin文件即可。但是这样做有一个弊端,如果我想写入指定的地址区间,忽略掉其它区域(比如写eeprom的指定区域),从bin文件上,没法判断全零的区域是要擦除还是要保留的,而hex文件则没有这个问题。

因此,我们计划在桌面软件中增加hex格式的支持,对于硬件部分无需任何修改,因为它接收到是地址和数据,所有解析处理都是在软件部分完成的。这对软件部分是一个挑战,我们需要能理解和处理hex格式。

达成目标

当时能找到的资料有限,中文资料更是没有,当时最权威的一篇资料就是Keil网站上的这篇文章了:GENERAL: INTEL HEX FILE FORMAT,为了吃透Intel Hex File Format,我仔细读了N遍,并最终将其翻译成为中文。最后,基于我对Intel Hex文件格式的深刻理解,在软件中实现了Hex文件的解析和处理。在工作中使用我们自己的编程器后,大幅提升了我们的工作效率。

再后来我们创业失败散伙,几个小伙伴各奔东西,其中一个小伙伴接手了当时我们所有的设备、技术以及电子元件等,继续搞硬件开发,现在混得风生水起。前段时间我们闲聊时偶然提起那时候做的一些工具,他说我们实现的编程器现在依然是他团队成员常用的工具之一,当然了,做了一些改版,外观啥的漂亮多了,功能也愈加强大,但是核心的东西还是没有啥变化。

16年前开发的东西,现在还在发挥光和热,这真是让我很欣慰也很感概。恰巧今天翻到自己翻译的文章,那么就把它也贴区块链上吧,尽管现在看起来,翻译的不是那么完美,但是还是要比网上不少类似的介绍文章要强得多,毕竟当时倾注了我不少心血呢。


附原文及翻译内容

英文原文:
GENERAL: INTEL HEX FILE FORMAT

以下为翻译内容:
部分代码串行了,将就看吧😀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
问题:
什么是Intel HEX文件格式?

回答:
Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件。

记录格式
Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
:llaaaatt[dd...]cc
每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:
: 每个Intel HEX记录都由冒号开头.
ll 是数据长度域,它代表记录当中数据字节(dd)的数量.
aaaa 是地址域,它代表记录当中数据的起始地址.
tt 是代表HEX记录类型的域,它可能是以下数据当中的一个:
00 – 数据记录
01 – 文件结束记录
02 – 扩展段地址记录
04 – 扩展线性地址记录
dd 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符.
cc 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足.

数据记录
Intel HEX文件由任意数量以回车换行符结束的数据记录组成.数据记录外观如下:
:10246200464C5549442050524F46494C4500464C33
其中:
10 是这个记录当中数据字节的数量.
2462 是数据将被下载到存储器当中的地址.
00 是记录类型(数据记录)
464C…464C是数据.
33 是这个记录的校验和.

扩展线性地址记录(HEX386)
扩展线性地址记录也叫作32位地址记录或HEX386记录.这些记录包含数据地址的高16位.扩展线性地址记录总是有两个数据字节,外观如下:
:02000004FFFFFC
其中:
02 是这个记录当中数据字节的数量.
0000 是地址域,对于扩展线性地址记录,这个域总是0000.
04 是记录类型 04(扩展线性地址记录)
FFFF 是地址的高16位.
FC 是这个记录的校验和,计算方法如下:
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).
当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从Intel HEX文件读取来的随后的记录.线性地址保持有效,直到它被另外一个扩展地址记录所改变.
通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址.
以下的例子演示了这个过程..
来自数据记录地址域的地址 2462
扩展线性地址记录的数据域 + FFFF
------------
绝对存储器地址 FFFF2462

扩展段地址记录(HEX86)
扩展段地址记录也叫HEX86记录,它包括4-19位数据地址段.扩展段地址记录总是有两个数据字节,外观如下:
:020000021200EA
其中:
02 是记录当中数据字节的数量.
0000 是地址域.对于扩展段地址记录,这个域总是0000.
02 是记录类型 02(扩展段地址记录)
1200 是地址段.
EA 是这个记录的校验和,计算方法如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
当一个扩展段地址记录被读取,存储于数据域的扩展段地址被保存,它被应用于从Intel HEX文件读取来的随后的记录.段地址保持有效,直到它被另外一个扩展地址记录所改变.
通过把记录当中的地址域与被移位的来自扩展段地址记录的地址数据相加获得数据记录的绝对存储器地址.
以下的例子演示了这个过程..
来自数据记录地址域的地址 2462
扩展段地址记录数据域 + 1200
---------
绝对存储器地址 00014462

文件结束(EOF)记录
Intel HEX文件必须以文件结束(EOF)记录结束.这个记录的记录类型域的值必须是01.EOF记录外观总是如下:
:00000001FF
其中:
00 是记录当中数据字节的数量.
0000 是数据被下载到存储器当中的地址.在文件结束记录当中地址是没有意义被忽略的.0000h是典型的地址.
01 是记录类型 01(文件结束记录)
FF 是这个记录的校验和,计算方法如下:
01h + NOT(00h + 00h + 00h + 01h).

Intel HEX文件例子:
下面是一个完整的Intel HEX文件的例子:
:10001300AC12AD13AE10AF1112002F8E0E8F0F2244
:10000300E50B250DF509E50A350CF5081200132259
:03000000020023D8
:0C002300787FE4F6D8FD7581130200031D
:10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
:04003F00A42EFE22CB
:00000001FF


This page is synchronized from the post: 遇见往事 / 编程器与Intel HEX文件格式

继续安利公众号 / 增加OPEN.DOGE、OPEN.SBD、GDEX.EOS内盘价格查询

话说,自从买了狗狗币,整个人都觉得特别精神,那叫一个旺旺旺,整天盯着屏幕关注狗狗币的价格,结果看了下内盘价格,快要跌成狗了(好像没毛病呢)。不过对于我这种持有几万枚虚拟币的拉风男子,狗币的价格涨涨跌跌又与我何干呢?好吧,我还是忍不住要看行情。


(图源 :pixabay)

既然经常要看狗币的行情,就把OPEN.DOGE也加入微信公众号的价格查询功能里吧,SBD行情最近也不错,那么顺便把OPEN.SBD也加入价格查询,对了还有GDEX.EOS

支持的比特股内盘资产

那么现在微信公众号支持如下比特股内盘资产的价格查询了:
资产 | 描述
—-|—-
BTS|Core Token
OPEN.BTC|OpenLedger Bitcoin-backed asse
OPEN.ETH|OpenLedger Ether backed asset
OPEN.EOS| OpenLedger-issued asset for EOS Ethereum token.
OPEN.STEEM|OpenLedger STEEM-backed asset
OPEN.SBD|Steem Dollars backed by OpenLedger
OPEN.DOGE|OpenLedger Dogecoin-backed asset
GDEX.BTC|GDEX issued Bitcoin backed asset
GDEX.ETH|GDEX issued Ether backed asset
GDEX.EOS|GDEX issued EOS ERC20 token backed asset
YOYOW|You Own Your Own Words

嗯,这些已经够我玩的了。

如何使用

在微信公众号中直接输入上表中的资产名称即可。

比如:OPEN.DOGE

呜呜呜,我的狗狗币,像我这种持有几万枚虚拟币的拉风男子,一定要学会坚强,呜呜呜。😭

又如:OPEN.SBD

比特股内盘,OPEN.SBD,还算坚挺,不过量真的不大。

再如:GDEX.EOS

咦,竟然没人用BTS交易GDEX.EOS,奇了怪哉。

其它资产查询方式一样一样的啦。对了,补充一下,为了方便大家使用,查询资产输入时不区分大小写,所以你写小写字母也一样一样的啦。

公众号添加方法

  • 方式一:
    进入微信通讯录->点击公众号->点右上角加号->搜索steemit,关注即可。

  • 方式二:
    直接扫描以下二维码:

欢迎大家多提宝贵意见啊。看看狗狗币的价格,决定不多写了,容我哭一会去,哭成狗了

(图源 :pixabay)

相关文章


This page is synchronized from the post: 继续安利公众号 / 增加OPEN.DOGE、OPEN.SBD、GDEX.EOS内盘价格查询

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×