@greymass/eosio
Advanced tools
Comparing version 0.6.4 to 0.6.5-rc1
{ | ||
"name": "@greymass/eosio", | ||
"description": "Library for working with EOSIO blockchains", | ||
"version": "0.6.4", | ||
"version": "0.6.5-rc1", | ||
"homepage": "https://github.com/greymass/eosio-core", | ||
@@ -39,3 +39,3 @@ "license": "BSD-3-Clause-No-Military-License", | ||
"@types/elliptic": "^6.4.12", | ||
"@types/mocha": "^9.0.0", | ||
"@types/mocha": "^10.0.0", | ||
"@types/node": "^18.6.5", | ||
@@ -45,7 +45,8 @@ "@typescript-eslint/eslint-plugin": "^5.4.0", | ||
"chai": "^4.3.4", | ||
"eslint": "^8.2.0", | ||
"eslint": "^8.26.0", | ||
"eslint-config-prettier": "^8.1.0", | ||
"eslint-plugin-es-x": "^5.3.1", | ||
"eslint-plugin-prettier": "^4.0.0", | ||
"gh-pages": "^4.0.0", | ||
"mocha": "^9.0.2", | ||
"mocha": "^10.1.0", | ||
"node-fetch": "^2.6.1", | ||
@@ -52,0 +53,0 @@ "nyc": "^15.1.0", |
@@ -53,1 +53,7 @@ # eosio-core (@greymass/eosio) | ||
- Primative EOSIO Types: https://github.com/greymass/eosio-core/blob/master/test/chain.ts | ||
## Debugging | ||
Instructions and notes on debugging typescript in your IDE. Explains how to match the Mocha test configuration found in the Makefile. | ||
[Notes on setting up IDE Debuggers](docs/IDE_Debug.md) |
@@ -156,3 +156,13 @@ import {ABISerializableObject} from '../serializer/serializable' | ||
} | ||
if (!Symbol.symbolNamePattern.test(toSymbolName(value))) { | ||
/** | ||
* Within the `voters` table of the `eosio` contract, the `reserved3` value | ||
* is a required field with a type of `asset`, but has a value of UInt64.from(0) | ||
* | ||
* This doesn't match our regex, so we need to allow it to pass to deserialize | ||
* the data properly. The string renders out to "0 " according to nodeos APIs. | ||
*/ | ||
if ( | ||
!value.equals(UInt64.from(0)) && | ||
!Symbol.symbolNamePattern.test(toSymbolName(value)) | ||
) { | ||
throw new Error('Invalid asset symbol, name must be uppercase A-Z') | ||
@@ -159,0 +169,0 @@ } |
@@ -5,2 +5,3 @@ import { | ||
ABISerializableObject, | ||
ABITypeModifiers, | ||
} from '../serializer/serializable' | ||
@@ -93,4 +94,6 @@ import {abiDecode, Resolved} from '../serializer/decoder' | ||
} | ||
export function field(type: ABISerializableConstructor | string, options?: Partial<ABIField>) { | ||
if (!options) options = {} | ||
export function field( | ||
type: ABISerializableConstructor | string, | ||
options: ABITypeModifiers = {} | ||
) { | ||
return <T extends Struct>(target: T, name: string) => { | ||
@@ -97,0 +100,0 @@ const ctor = target.constructor as StructConstructor |
@@ -26,10 +26,18 @@ import {ABI} from '../chain' | ||
export interface ABITypeDescriptor { | ||
type: ABISerializableConstructor | string | ||
export interface ABITypeModifiers { | ||
/** Type is optional, defaults to false. */ | ||
optional?: boolean | ||
/** Type is an array, defaults to false. */ | ||
array?: boolean | ||
/** Type is a binary extension, defaults to false. */ | ||
extension?: boolean | ||
} | ||
export interface ABITypeDescriptor extends ABITypeModifiers { | ||
/** Type name or class. */ | ||
type: ABISerializableConstructor | string | ||
} | ||
export interface ABIField extends ABITypeDescriptor { | ||
/** Field name. */ | ||
name: string | ||
@@ -171,1 +179,6 @@ } | ||
} | ||
/** Returns true if the given value conforms to ABISerializableObject. */ | ||
export function isABISerializableObject(value: any): value is ABISerializableObject { | ||
return value && value.constructor && typeof value.constructor.abiName === 'string' | ||
} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
956895
17546
59
30