4.2 上下文
member now: number
当前block的时间戳
member height: number
当前block的块高度
member caller: string
发起该交易的地址
member storage: IReadWritableDataBase
可读写的数据存储对象
method emit
创建事件的日志实例
// @param name 事件名字
// @param param 其他参数
emit: (name: string, param?: any) => void;
method createAddress
生成新的地址
createAddress: () => string;
member value: BigNumber
交易支出的金额
member fee: BigNumber;
交易的手续费上限
method getBalance
获取某个地址的余额
getBalance: (address: string) => Promise<BigNumber>;
method transferTo
转账给某个地址
transferTo: (address: string, amount: BigNumber) => Promise<ErrorCode>;
method cost
扣除指定金额的手续费, 当超出手续费上限时, 交易失败
cost: (fee: BigNumber) => ErrorCode;
用来查看storage里数据的执行环境, 一般用作基类,不会单独使用
member storage: IReadableDataBase
只读的数据存储对象
派生自ViewContext 获得一个查看storage数据的执行环境
method getBalance
获取某个地址的余额
// @param address 地址
// @return Promise 余额
getBalance: (address: string) => Promise<BigNumber>
接口 只读的数据存储对象
method getReadableKeyValue
获取一个只读的key-value存储对象
// @param name 对象名字 类似表名
getReadableKeyValue(name: string) => Promise<{ err: ErrorCode, kv?: IReadableKeyValue }>;
接口 只写的数据存储对象
method createKeyValue
创建一个可以读写的 key-value对象, 可以根据需求和业务划分创建一个或多个key-value storage
// @param name 对象名字 类似表名
createKeyValue(name: string): Promise<{err: ErrorCode, kv?: IReadWritableKeyValue}>;
method getReadWritableKeyValue
获取一个只写的数据存储对象
// @param name 对象名字 类似表名
getReadWritableKeyValue(name: string): Promise<{ err: ErrorCode, kv?: IReadWritableKeyValue }>;
可写的 key-value对象
ps: 以下的函数可参照redis主要方法的使用方式
method set
将值 value 设置到 key
如果 key 已经持有其他值,SET 就覆写旧值,无视类型。
set(key: string, value: any): Promise<{ err: ErrorCode }>;
method hset
将哈希表 key 中的域 field 的值设为 value
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
hset(key: string, field: string, value: any): Promise<{ err: ErrorCode }>;
method hmset
同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。
hmset(key: string, fields: string[], values: any[]): Promise<{ err: ErrorCode }>;
method hclean
hclean(key: string): Promise<{err: ErrorCode}>;
method hdel
hdel(key: string, field: string): Promise<{err: ErrorCode}>;
method lset
将列表 key 下标为 index 的元素的值设置为 value 。
当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。
lset(key: string, index: number, value: any): Promise<{ err: ErrorCode }>;
method lpush
将一个或多个值 value 插入到列表 key 的表头
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作
当 key 存在但不是列表类型时,返回一个错误
lpush(key: string, value: any): Promise<{ err: ErrorCode }>;
method lpushx
将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。
和 LPUSH 命令相反,当 key 不存在时, LPUSHX 命令什么也不做
lpushx(key: string, value: any[]): Promise<{ err: ErrorCode }>;
method lpop
移除并返回列表 key 的头元素
lpop(key: string): Promise<{ err: ErrorCode, value?: any }>;
method rpush
将一个或多个值 value 插入到列表 key 的表尾(最右边)
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾
如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作
当 key 存在但不是列表类型时,返回一个错误
rpush(key: string, value: any): Promise<{ err: ErrorCode }>;
method rpushx
将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表
和 RPUSH 命令相反,当 key 不存在时, RPUSHX 命令什么也不做
rpushx(key: string, value: any[]): Promise<{ err: ErrorCode }>;
method rpop
移除并返回列表 key 的尾元素
rpop(key: string): Promise<{ err: ErrorCode, value?: any }>;
method linsert
将值 value 插入到列表 key 当中,位于值 index 之前或之后。
当 index 不存在于列表 key 时,不执行任何操作。
当 key 不存在时, key 被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误。
linsert(key: string, index: number, value: any): Promise<{ err: ErrorCode }>;
method lremove
lremove(key: string, index: number): Promise<{ err: ErrorCode, value?: any }>;
method get
返回 key 所关联的字符串值。
如果 key 不存在那么返回 null
get(key: string): Promise<{ err: ErrorCode, value?: any }>;
method hexists
查看哈希表 key 中,给定域 field 是否存在。
hexists(key: string, field: string): Promise<{ err: ErrorCode, value?: boolean}>;
method hget
返回哈希表 key 中给定域 field 的值。
hget(key: string, field: string): Promise<{ err: ErrorCode, value?: any }>;
method hmget
返回哈希表 key 中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回 null
hmget(key: string, fields: string[]): Promise<{ err: ErrorCode, value?: any[] }>;
method hlen
返回哈希表 key 中域的数量。
hlen(key: string): Promise<{ err: ErrorCode, value?: number }>;
method hkeys
返回哈希表 key 中的所有域。
hkeys(key: string): Promise<{ err: ErrorCode, value?: string[] }>;
method hvalues
返回哈希表 key 中所有域的值。
hvalues(key: string): Promise<{ err: ErrorCode, value?: any[] }>;
method hgetall
返回哈希表 key 中,所有的域和值
hgetall(key: string): Promise<{ err: ErrorCode; value?: {key: string, value: any}[]; }>;
method lindex
返回列表 key 中,下标为 index 的元素。
也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
lindex(key: string, index: number): Promise<{ err: ErrorCode, value?: any }>;
method llen
返回列表 key 的长度。
如果 key 不存在,则 key 被解释为一个空列表,返回 0 .
如果 key 不是列表类型,返回一个错误。
llen(key: string): Promise<{ err: ErrorCode, value?: number }>;
method lrange
返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
lrange(key: string, start: number, stop: number): Promise<{ err: ErrorCode, value?: any[] }>;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论