From 15f5e3bd14b6dc24d5a3f9453bf84adef792dee3 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 22:06:49 +0300 Subject: [PATCH 1/8] build command arguments added --- build/contract.js | 619 ++++++++++++++++++++++++++++++++++++++++++ build/contract.js.map | 1 + cli/cli.js | 24 +- 3 files changed, 638 insertions(+), 6 deletions(-) create mode 100644 build/contract.js create mode 100644 build/contract.js.map diff --git a/build/contract.js b/build/contract.js new file mode 100644 index 000000000..7fa6c263e --- /dev/null +++ b/build/contract.js @@ -0,0 +1,619 @@ +function call(target, name, descriptor) { + return descriptor; +} +function view(target, name, descriptor) { + return descriptor; +} +function NearBindgen(Class) { + let OriginalClass = Class; + + let NewClass = function () { + let args = OriginalClass.deserializeArgs(); + let ret = new OriginalClass(...args); + ret.serialize(); + return ret; + }; + + NewClass.prototype = OriginalClass.prototype; + + NewClass._get = function () { + let ret = Object.create(NewClass.prototype); + return ret; + }; + + return NewClass; +} + +class NearContract { + deserialize() { + let hasRead = env.jsvm_storage_read('STATE', 0); + + if (hasRead != 0) { + let state = env.read_register(0); + Object.assign(this, JSON.parse(state)); + } else throw new Error('Contract state is empty'); + } + + serialize() { + env.jsvm_storage_write('STATE', JSON.stringify(this), 0); + } + + static deserializeArgs() { + env.jsvm_args(0); + let args = env.read_register(0); + return JSON.parse(args || '[]'); + } + + static serializeReturn(ret) { + return JSON.stringify(ret); + } + +} + +const U64_MAX = 2n ** 64n - 1n; +const EVICTED_REGISTER = U64_MAX - 1n; +function signerAccountId() { + env.signer_account_id(0); + return env.read_register(0); +} +function signerAccountPk() { + env.signer_account_pk(0); + return env.read_register(0); +} +function predecessorAccountId() { + env.predecessor_account_id(0); + return env.read_register(0); +} +function randomSeed() { + env.random_seed(0); + return env.read_register(0); +} +function sha256(value) { + env.sha256(value, 0); + return env.read_register(0); +} +function keccak256(value) { + env.keccak256(value, 0); + return env.read_register(0); +} +function keccak512(value) { + env.keccak512(value, 0); + return env.read_register(0); +} +function ripemd160(value) { + env.ripemd160(value, 0); + return env.read_register(0); +} +function ecrecover(hash, sign, v, malleabilityFlag) { + let ret = env.ecrecover(hash, sign, v, malleabilityFlag, 0); + + if (ret === 0n) { + return null; + } + + return env.read_register(0); +} // TODO: env.promise_result returns need additioonal handling + +function storageRead(key) { + let ret = env.storage_read(key, 0); + + if (ret === 1n) { + return env.read_register(0); + } else { + return null; + } +} +function altBn128G1Multiexp(value) { + env.alt_bn128_g1_multiexp(value, 0); + return env.read_register(0); +} +function altBn128G1Sum(value) { + env.alt_bn128_g1_sum(value, 0); + return env.read_register(0); +} +function jsvmAccountId() { + env.jsvm_account_id(0); + return env.read_register(0); +} +function jsvmJsContractName() { + env.jsvm_js_contract_name(0); + return env.read_register(0); +} +function jsvmMethodName() { + env.jsvm_method_name(0); + return env.read_register(0); +} +function jsvmArgs() { + env.jsvm_args(0); + return env.read_register(0); +} +function jsvmStorageWrite(key, value) { + let exist = env.jsvm_storage_write(key, value, EVICTED_REGISTER); + + if (exist === 1n) { + return true; + } + + return false; +} +function jsvmStorageRead(key) { + let exist = env.jsvm_storage_read(key, 0); + + if (exist === 1n) { + return env.read_register(0); + } + + return null; +} +function jsvmStorageRemove(key) { + let exist = env.jsvm_storage_remove(key, EVICTED_REGISTER); + + if (exist === 1n) { + return true; + } + + return false; +} +function jsvmStorageHasKey(key) { + let exist = env.jsvm_storage_has_key(key); + + if (exist === 1n) { + return true; + } + + return false; +} +function jsvmCall(contractName, method, args) { + env.jsvm_call(contractName, method, JSON.stringify(args), 0); + return JSON.parse(env.read_register(0) || 'null'); +} +function storageGetEvicted() { + return env.read_register(EVICTED_REGISTER); +} + +var api = /*#__PURE__*/Object.freeze({ + __proto__: null, + signerAccountId: signerAccountId, + signerAccountPk: signerAccountPk, + predecessorAccountId: predecessorAccountId, + randomSeed: randomSeed, + sha256: sha256, + keccak256: keccak256, + keccak512: keccak512, + ripemd160: ripemd160, + ecrecover: ecrecover, + storageRead: storageRead, + altBn128G1Multiexp: altBn128G1Multiexp, + altBn128G1Sum: altBn128G1Sum, + jsvmAccountId: jsvmAccountId, + jsvmJsContractName: jsvmJsContractName, + jsvmMethodName: jsvmMethodName, + jsvmArgs: jsvmArgs, + jsvmStorageWrite: jsvmStorageWrite, + jsvmStorageRead: jsvmStorageRead, + jsvmStorageRemove: jsvmStorageRemove, + jsvmStorageHasKey: jsvmStorageHasKey, + jsvmCall: jsvmCall, + storageGetEvicted: storageGetEvicted +}); + +class LookupMap { + constructor(keyPrefix) { + this.keyPrefix = keyPrefix; + } + + containsKey(key) { + let storageKey = this.keyPrefix + key; + return jsvmStorageHasKey(storageKey); + } + + get(key) { + let storageKey = this.keyPrefix + key; + return jsvmStorageRead(storageKey); + } + + remove(key) { + let storageKey = this.keyPrefix + key; + + if (jsvmStorageRemove(storageKey)) { + return storageGetEvicted(); + } + + return null; + } + + set(key, value) { + let storageKey = this.keyPrefix + key; + + if (jsvmStorageWrite(storageKey, value)) { + return storageGetEvicted(); + } + + return null; + } + + extend(kvs) { + for (let kv of kvs) { + this.set(kv[0], kv[1]); + } + } + +} + +function u8ArrayToString(array) { + let ret = ''; + + for (let e of array) { + ret += String.fromCharCode(e); + } + + return ret; +} +function stringToU8Array(string) { + let ret = new Uint8Array(string.length); + + for (let i in string) { + ret[i] = string.charCodeAt(i); + } + + return ret; +} + +const ERR_INDEX_OUT_OF_BOUNDS = "Index out of bounds"; +const ERR_INCONSISTENT_STATE$1 = "The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?"; /// An iterable implementation of vector that stores its content on the trie. +/// Uses the following map: index -> element + +class Vector { + constructor(prefix) { + this.length = 0; + this.prefix = prefix; + } + + len() { + return this.length; + } + + isEmpty() { + return this.length == 0; + } + + indexToKey(index) { + let data = new Uint32Array([index]); + let array = new Uint8Array(data.buffer); + let key = u8ArrayToString(array); + return this.prefix + key; + } + + get(index) { + if (index >= this.length) { + return null; + } + + let storageKey = this.indexToKey(index); + return jsvmStorageRead(storageKey); + } /// Removes an element from the vector and returns it in serialized form. + /// The removed element is replaced by the last element of the vector. + /// Does not preserve ordering, but is `O(1)`. + + + swapRemove(index) { + if (index >= this.length) { + throw new Error(ERR_INDEX_OUT_OF_BOUNDS); + } else if (index + 1 == this.length) { + return this.pop(); + } else { + let key = this.indexToKey(index); + let last = this.pop(); + + if (jsvmStorageWrite(key, last)) { + return storageGetEvicted(); + } else { + throw new Error(ERR_INCONSISTENT_STATE$1); + } + } + } + + push(element) { + let key = this.indexToKey(this.length); + this.length += 1; + jsvmStorageWrite(key, element); + } + + pop() { + if (this.isEmpty()) { + return null; + } else { + let lastIndex = this.length - 1; + let lastKey = this.indexToKey(lastIndex); + this.length -= 1; + + if (jsvmStorageRemove(lastKey)) { + return storageGetEvicted(); + } else { + throw new Error(ERR_INCONSISTENT_STATE$1); + } + } + } + + replace(index, element) { + if (index >= this.length) { + throw new Error(ERR_INDEX_OUT_OF_BOUNDS); + } else { + let key = this.indexToKey(index); + + if (jsvmStorageWrite(key, element)) { + return storageGetEvicted(); + } else { + throw new Error(ERR_INCONSISTENT_STATE$1); + } + } + } + + extend(elements) { + for (let element of elements) { + this.push(element); + } + } + + [Symbol.iterator]() { + return new VectorIterator(this); + } + + clear() { + for (let i = 0; i < this.length; i++) { + let key = this.indexToKey(i); + jsvmStorageRemove(key); + } + + this.length = 0; + } + + toArray() { + let ret = []; + + for (let v of this) { + ret.push(v); + } + + return ret; + } + +} +class VectorIterator { + constructor(vector) { + this.current = 0; + this.vector = vector; + } + + next() { + if (this.current < this.vector.len()) { + let value = this.vector.get(this.current); + this.current += 1; + return { + value, + done: false + }; + } + + return { + value: null, + done: true + }; + } + +} + +class LookupSet { + constructor(keyPrefix) { + this.keyPrefix = keyPrefix; + } + + contains(key) { + let storageKey = this.keyPrefix + key; + return jsvmStorageHasKey(storageKey); + } + + remove(key) { + let storageKey = this.keyPrefix + key; + + if (jsvmStorageRemove(storageKey)) { + return storageGetEvicted(); + } + + return null; + } + + set(key) { + let storageKey = this.keyPrefix + key; + + if (jsvmStorageWrite(storageKey, '')) { + return storageGetEvicted(); + } + + return null; + } + + extend(kvs) { + for (let kv of kvs) { + this.set(kv[0]); + } + } + +} + +const ERR_INCONSISTENT_STATE = "The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?"; +class UnorderedMap { + constructor(prefix) { + this.length = 0; + this.keyIndexPrefix = prefix + 'i'; + let indexKey = prefix + 'k'; + let indexValue = prefix + 'v'; + this.keys = new Vector(indexKey); + this.values = new Vector(indexValue); + } + + len() { + let keysLen = this.keys.len(); + let valuesLen = this.values.len(); + + if (keysLen != valuesLen) { + throw new Error(ERR_INCONSISTENT_STATE); + } + + return keysLen; + } + + isEmpty() { + let keysIsEmpty = this.keys.isEmpty(); + let valuesIsEmpty = this.values.isEmpty(); + + if (keysIsEmpty != valuesIsEmpty) { + throw new Error(ERR_INCONSISTENT_STATE); + } + + return keysIsEmpty; + } + + serializeIndex(index) { + let data = new Uint32Array([index]); + let array = new Uint8Array(data.buffer); + return u8ArrayToString(array); + } + + deserializeIndex(rawIndex) { + let array = stringToU8Array(rawIndex); + let data = new Uint32Array(array.buffer); + return data[0]; + } + + getIndexRaw(key) { + let indexLookup = this.keyIndexPrefix + key; + let indexRaw = jsvmStorageRead(indexLookup); + return indexRaw; + } + + get(key) { + let indexRaw = this.getIndexRaw(key); + + if (indexRaw) { + let index = this.deserializeIndex(indexRaw); + let value = this.values.get(index); + + if (value) { + return value; + } else { + throw new Error(ERR_INCONSISTENT_STATE); + } + } + + return null; + } + + set(key, value) { + let indexLookup = this.keyIndexPrefix + key; + let indexRaw = jsvmStorageRead(indexLookup); + + if (indexRaw) { + let index = this.deserializeIndex(indexRaw); + return this.values.replace(index, value); + } else { + let nextIndex = this.len(); + let nextIndexRaw = this.serializeIndex(nextIndex); + jsvmStorageWrite(indexLookup, nextIndexRaw); + this.keys.push(key); + this.values.push(value); + return null; + } + } + + remove(key) { + let indexLookup = this.keyIndexPrefix + key; + let indexRaw = jsvmStorageRead(indexLookup); + + if (indexRaw) { + if (this.len() == 1) { + // If there is only one element then swap remove simply removes it without + // swapping with the last element. + jsvmStorageRemove(indexLookup); + } else { + // If there is more than one element then swap remove swaps it with the last + // element. + let lastKeyRaw = this.keys.get(this.len() - 1); + + if (!lastKeyRaw) { + throw new Error(ERR_INCONSISTENT_STATE); + } + + jsvmStorageRemove(indexLookup); // If the removed element was the last element from keys, then we don't need to + // reinsert the lookup back. + + if (lastKeyRaw != key) { + let lastLookupKey = this.keyIndexPrefix + lastKeyRaw; + jsvmStorageWrite(lastLookupKey, indexRaw); + } + } + + let index = this.deserializeIndex(indexRaw); + this.keys.swapRemove(index); + return this.values.swapRemove(index); + } + + return null; + } + + clear() { + for (let key of this.keys) { + let indexLookup = this.keyIndexPrefix + key; + jsvmStorageRemove(indexLookup); + } + + this.keys.clear(); + this.values.clear(); + } + + toArray() { + let ret = []; + + for (let v of this) { + ret.push(v); + } + + return ret; + } + + [Symbol.iterator]() { + return new UnorderedMapIterator(this); + } + + extend(kvs) { + for (let [k, v] of kvs) { + this.set(k, v); + } + } + +} + +class UnorderedMapIterator { + constructor(unorderedMap) { + this.keys = new VectorIterator(unorderedMap.keys); + this.values = new VectorIterator(unorderedMap.values); + } + + next() { + let key = this.keys.next(); + let value = this.values.next(); + + if (key.done != value.done) { + throw new Error(ERR_INCONSISTENT_STATE); + } + + return { + value: [key.value, value.value], + done: key.done + }; + } + +} + +export { LookupMap, LookupSet, NearBindgen, NearContract, UnorderedMap, Vector, call, api as near, view }; +//# sourceMappingURL=contract.js.map diff --git a/build/contract.js.map b/build/contract.js.map new file mode 100644 index 000000000..715f14514 --- /dev/null +++ b/build/contract.js.map @@ -0,0 +1 @@ +{"version":3,"file":"contract.js","sources":["../src/near-bindgen.js","../src/near-contract.js","../src/api.js","../src/collections/lookup-map.js","../src/utils.js","../src/collections/vector.js","../src/collections/lookup-set.js","../src/collections/unordered-map.js"],"sourcesContent":["export function call (target, name, descriptor) {\n return descriptor\n}\n\nexport function view (target, name, descriptor) {\n return descriptor\n}\n\nexport function NearBindgen (Class) {\n let OriginalClass = Class\n let NewClass = function() {\n let args = OriginalClass.deserializeArgs()\n let ret = new OriginalClass(...args)\n ret.serialize()\n return ret\n }\n NewClass.prototype = OriginalClass.prototype\n NewClass._get = function() {\n let ret = Object.create(NewClass.prototype)\n return ret\n }\n\n return NewClass\n}\n","export class NearContract {\n deserialize() {\n let hasRead = env.jsvm_storage_read('STATE', 0)\n if (hasRead != 0) {\n let state = env.read_register(0)\n Object.assign(this, JSON.parse(state))\n } else\n throw new Error('Contract state is empty')\n }\n\n serialize() {\n env.jsvm_storage_write('STATE', JSON.stringify(this), 0)\n }\n\n static deserializeArgs() {\n env.jsvm_args(0)\n let args = env.read_register(0)\n return JSON.parse(args || '[]')\n }\n\n static serializeReturn(ret) {\n return JSON.stringify(ret)\n }\n}\n","const U64_MAX = 2n**64n - 1n\nconst EVICTED_REGISTER = U64_MAX - 1n\n\nexport function signerAccountId() {\n env.signer_account_id(0)\n return env.read_register(0)\n}\n\nexport function signerAccountPk() {\n env.signer_account_pk(0)\n return env.read_register(0)\n}\n\nexport function predecessorAccountId() {\n env.predecessor_account_id(0)\n return env.read_register(0)\n}\n\nexport function randomSeed() {\n env.random_seed(0)\n return env.read_register(0)\n}\n\nexport function sha256(value) {\n env.sha256(value, 0)\n return env.read_register(0)\n}\n\nexport function keccak256(value) {\n env.keccak256(value, 0)\n return env.read_register(0)\n}\n\nexport function keccak512(value) {\n env.keccak512(value, 0)\n return env.read_register(0)\n}\n\nexport function ripemd160(value) {\n env.ripemd160(value, 0)\n return env.read_register(0)\n}\n\nexport function ecrecover(hash, sign, v, malleabilityFlag) {\n let ret = env.ecrecover(hash, sign, v, malleabilityFlag, 0)\n if (ret === 0n) {\n return null\n }\n return env.read_register(0)\n}\n\n// TODO: env.promise_result returns need additioonal handling\n\nexport function storageRead(key) {\n let ret = env.storage_read(key, 0)\n if (ret === 1n) {\n return env.read_register(0)\n } else {\n return null\n }\n}\n\nexport function altBn128G1Multiexp(value) {\n env.alt_bn128_g1_multiexp(value, 0)\n return env.read_register(0)\n}\n\nexport function altBn128G1Sum(value) {\n env.alt_bn128_g1_sum(value, 0)\n return env.read_register(0)\n}\n\nexport function jsvmAccountId() {\n env.jsvm_account_id(0)\n return env.read_register(0)\n}\n\nexport function jsvmJsContractName() {\n env.jsvm_js_contract_name(0)\n return env.read_register(0)\n}\n\nexport function jsvmMethodName() {\n env.jsvm_method_name(0)\n return env.read_register(0)\n}\n\nexport function jsvmArgs() {\n env.jsvm_args(0)\n return env.read_register(0)\n}\n\nexport function jsvmStorageWrite(key, value) {\n let exist = env.jsvm_storage_write(key, value, EVICTED_REGISTER)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmStorageRead(key) {\n let exist = env.jsvm_storage_read(key, 0)\n if (exist === 1n) {\n return env.read_register(0)\n }\n return null\n}\n\nexport function jsvmStorageRemove(key) {\n let exist = env.jsvm_storage_remove(key, EVICTED_REGISTER)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmStorageHasKey(key) {\n let exist = env.jsvm_storage_has_key(key)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmCall(contractName, method, args) {\n env.jsvm_call(contractName, method, JSON.stringify(args), 0)\n return JSON.parse(env.read_register(0) || 'null')\n}\n\nexport function storageGetEvicted() {\n return env.read_register(EVICTED_REGISTER)\n}","import * as near from '../api'\n\nexport class LookupMap {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix\n }\n\n containsKey(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageHasKey(storageKey)\n }\n\n get(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageRead(storageKey)\n }\n\n remove(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageRemove(storageKey)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n set(key, value) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageWrite(storageKey, value)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n extend(kvs) {\n for(let kv of kvs) {\n this.set(kv[0], kv[1])\n }\n }\n}","export function u8ArrayToString(array) {\n let ret = ''\n for (let e of array) {\n ret += String.fromCharCode(e)\n }\n return ret\n}\n\nexport function stringToU8Array(string) {\n let ret = new Uint8Array(string.length)\n for (let i in string) {\n ret[i] = string.charCodeAt(i)\n }\n return ret\n}","import * as near from '../api'\nimport {u8ArrayToString} from '../utils'\n\nconst ERR_INDEX_OUT_OF_BOUNDS = \"Index out of bounds\"\nconst ERR_INCONSISTENT_STATE = \"The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?\"\n\n/// An iterable implementation of vector that stores its content on the trie.\n/// Uses the following map: index -> element\nexport class Vector {\n constructor(prefix) {\n this.length = 0\n this.prefix = prefix\n }\n\n len() {\n return this.length\n }\n\n isEmpty() {\n return this.length == 0\n }\n\n indexToKey(index) {\n let data = new Uint32Array([index])\n let array = new Uint8Array(data.buffer)\n let key = u8ArrayToString(array)\n return this.prefix + key\n }\n\n get(index) {\n if (index >= this.length) {\n return null\n }\n let storageKey = this.indexToKey(index)\n return near.jsvmStorageRead(storageKey)\n }\n\n /// Removes an element from the vector and returns it in serialized form.\n /// The removed element is replaced by the last element of the vector.\n /// Does not preserve ordering, but is `O(1)`.\n swapRemove(index) {\n if (index >= this.length) {\n throw new Error(ERR_INDEX_OUT_OF_BOUNDS)\n } else if (index + 1 == this.length) {\n return this.pop()\n } else {\n let key = this.indexToKey(index)\n let last = this.pop()\n if (near.jsvmStorageWrite(key, last)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n push(element) {\n let key = this.indexToKey(this.length)\n this.length += 1\n near.jsvmStorageWrite(key, element)\n }\n\n pop() {\n if (this.isEmpty()) {\n return null\n } else {\n let lastIndex = this.length - 1\n let lastKey = this.indexToKey(lastIndex)\n this.length -= 1\n if (near.jsvmStorageRemove(lastKey)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n replace(index, element) {\n if (index >= this.length) {\n throw new Error(ERR_INDEX_OUT_OF_BOUNDS)\n } else {\n let key = this.indexToKey(index)\n if (near.jsvmStorageWrite(key, element)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n extend(elements) {\n for (let element of elements) {\n this.push(element)\n }\n }\n\n [Symbol.iterator]() {\n return new VectorIterator(this)\n }\n\n clear() {\n for (let i = 0; i < this.length; i++) {\n let key = this.indexToKey(i)\n near.jsvmStorageRemove(key)\n }\n this.length = 0\n }\n\n toArray() {\n let ret = []\n for (let v of this) {\n ret.push(v)\n }\n return ret\n }\n}\n\nexport class VectorIterator {\n constructor(vector) {\n this.current = 0\n this.vector = vector\n }\n\n next() {\n if (this.current < this.vector.len()) {\n let value = this.vector.get(this.current)\n this.current += 1\n return {value, done: false}\n }\n return {value: null, done: true}\n }\n}","import * as near from '../api'\n\nexport class LookupSet {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix\n }\n\n contains(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageHasKey(storageKey)\n }\n \n remove(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageRemove(storageKey)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n set(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageWrite(storageKey, '')) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n extend(kvs) {\n for(let kv of kvs) {\n this.set(kv[0])\n }\n }\n}","import * as near from '../api'\nimport {u8ArrayToString, stringToU8Array} from '../utils'\nimport { Vector, VectorIterator } from './vector'\n\nconst ERR_INCONSISTENT_STATE = \"The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?\"\n\nexport class UnorderedMap {\n constructor(prefix) {\n this.length = 0\n this.keyIndexPrefix = prefix + 'i'\n let indexKey = prefix + 'k'\n let indexValue = prefix + 'v'\n this.keys = new Vector(indexKey)\n this.values = new Vector(indexValue)\n }\n\n len() {\n let keysLen = this.keys.len()\n let valuesLen = this.values.len()\n if (keysLen != valuesLen) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return keysLen\n }\n\n isEmpty() {\n let keysIsEmpty = this.keys.isEmpty()\n let valuesIsEmpty = this.values.isEmpty()\n if (keysIsEmpty != valuesIsEmpty) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return keysIsEmpty\n }\n\n serializeIndex(index) {\n let data = new Uint32Array([index])\n let array = new Uint8Array(data.buffer)\n return u8ArrayToString(array)\n }\n\n deserializeIndex(rawIndex) {\n let array = stringToU8Array(rawIndex)\n let data = new Uint32Array(array.buffer)\n return data[0]\n }\n\n getIndexRaw(key) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n return indexRaw\n }\n\n get(key) {\n let indexRaw = this.getIndexRaw(key)\n if (indexRaw) {\n let index = this.deserializeIndex(indexRaw)\n let value = this.values.get(index)\n if (value) {\n return value\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n return null\n }\n\n set(key, value) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n if (indexRaw) {\n let index = this.deserializeIndex(indexRaw)\n return this.values.replace(index, value)\n } else {\n let nextIndex = this.len()\n let nextIndexRaw = this.serializeIndex(nextIndex)\n near.jsvmStorageWrite(indexLookup, nextIndexRaw)\n this.keys.push(key)\n this.values.push(value)\n return null\n }\n }\n\n remove(key) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n if (indexRaw) {\n if (this.len() == 1) {\n // If there is only one element then swap remove simply removes it without\n // swapping with the last element.\n near.jsvmStorageRemove(indexLookup)\n } else {\n // If there is more than one element then swap remove swaps it with the last\n // element. \n let lastKeyRaw = this.keys.get(this.len() - 1)\n if (!lastKeyRaw) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n near.jsvmStorageRemove(indexLookup)\n // If the removed element was the last element from keys, then we don't need to\n // reinsert the lookup back.\n if (lastKeyRaw != key) {\n let lastLookupKey = this.keyIndexPrefix + lastKeyRaw\n near.jsvmStorageWrite(lastLookupKey, indexRaw)\n }\n }\n let index = this.deserializeIndex(indexRaw)\n this.keys.swapRemove(index)\n return this.values.swapRemove(index)\n }\n return null\n }\n\n clear() {\n for (let key of this.keys) {\n let indexLookup = this.keyIndexPrefix + key\n near.jsvmStorageRemove(indexLookup)\n }\n this.keys.clear()\n this.values.clear()\n }\n\n toArray() {\n let ret = []\n for (let v of this) {\n ret.push(v)\n }\n return ret\n }\n\n [Symbol.iterator]() {\n return new UnorderedMapIterator(this)\n }\n\n extend(kvs) {\n for (let [k, v] of kvs) {\n this.set(k, v)\n }\n }\n}\n\nclass UnorderedMapIterator {\n constructor(unorderedMap) {\n this.keys = new VectorIterator(unorderedMap.keys)\n this.values = new VectorIterator(unorderedMap.values)\n }\n\n next() {\n let key = this.keys.next()\n let value = this.values.next()\n if (key.done != value.done) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return {value: [key.value, value.value], done: key.done}\n }\n}"],"names":["call","target","name","descriptor","view","NearBindgen","Class","OriginalClass","NewClass","args","deserializeArgs","ret","serialize","prototype","_get","Object","create","NearContract","deserialize","hasRead","env","jsvm_storage_read","state","read_register","assign","JSON","parse","Error","jsvm_storage_write","stringify","jsvm_args","serializeReturn","U64_MAX","EVICTED_REGISTER","signerAccountId","signer_account_id","signerAccountPk","signer_account_pk","predecessorAccountId","predecessor_account_id","randomSeed","random_seed","sha256","value","keccak256","keccak512","ripemd160","ecrecover","hash","sign","v","malleabilityFlag","storageRead","key","storage_read","altBn128G1Multiexp","alt_bn128_g1_multiexp","altBn128G1Sum","alt_bn128_g1_sum","jsvmAccountId","jsvm_account_id","jsvmJsContractName","jsvm_js_contract_name","jsvmMethodName","jsvm_method_name","jsvmArgs","jsvmStorageWrite","exist","jsvmStorageRead","jsvmStorageRemove","jsvm_storage_remove","jsvmStorageHasKey","jsvm_storage_has_key","jsvmCall","contractName","method","jsvm_call","storageGetEvicted","LookupMap","constructor","keyPrefix","containsKey","storageKey","near","get","remove","set","extend","kvs","kv","u8ArrayToString","array","e","String","fromCharCode","stringToU8Array","string","Uint8Array","length","i","charCodeAt","ERR_INDEX_OUT_OF_BOUNDS","ERR_INCONSISTENT_STATE","Vector","prefix","len","isEmpty","indexToKey","index","data","Uint32Array","buffer","swapRemove","pop","last","push","element","lastIndex","lastKey","replace","elements","Symbol","iterator","VectorIterator","clear","toArray","vector","current","next","done","LookupSet","contains","UnorderedMap","keyIndexPrefix","indexKey","indexValue","keys","values","keysLen","valuesLen","keysIsEmpty","valuesIsEmpty","serializeIndex","deserializeIndex","rawIndex","getIndexRaw","indexLookup","indexRaw","nextIndex","nextIndexRaw","lastKeyRaw","lastLookupKey","UnorderedMapIterator","k","unorderedMap"],"mappings":"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"} \ No newline at end of file diff --git a/cli/cli.js b/cli/cli.js index 3d7fc7ef7..317d533dd 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -14,23 +14,35 @@ import { promisify } from 'util'; const exec = promisify(exec_); -//TODO: build passed file instead of hardcoded one yargs(hideBin(process.argv)) .scriptName('near-sdk') .usage('$0 [args]') - .command('build', 'Build NEAR JS Smart-contract', (yargs) => {}, build) + .command('build [source] [target]', 'Build NEAR JS Smart-contract', (yargs) => { + yargs + .positional('source', { + type: 'string', + default: 'src/index.js', + describe: 'Contract to build' + }) + .positional('target', { + type: 'string', + default: 'build/contract.base64', + describe: 'Target file path and name' + }) + }, build) .help() .argv async function build(argv) { - console.log(`Building ${argv.contract} contract...`); + // TODO: use target + console.log(`Building ${argv.source} contract...`); console.log('Creating build directory...'); await executeCommand('mkdir -p build'); console.log('Executing rollup...'); const bundle = await rollup({ - input: 'src/index.js', + input: argv.source, plugins: [ nodeResolve(), sourcemaps(), @@ -57,9 +69,9 @@ async function build(argv) { await executeCommand(`node ${SAVE_BYTECODE} ${TEMP} ${TARGET}`); } -async function executeCommand(command, silent=false) { +async function executeCommand(command, silent = false) { console.log(command); - const {error, stdout, stderr} = await exec(command); + const { error, stdout, stderr } = await exec(command); if (error) { console.log(error); From 1d8d46a3b25e67ad4d990ff17021d575d0381f34 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 22:12:00 +0300 Subject: [PATCH 2/8] build added to gitignore --- .gitignore | 3 +- build/contract.js | 619 ------------------------------------------ build/contract.js.map | 1 - 3 files changed, 2 insertions(+), 621 deletions(-) delete mode 100644 build/contract.js delete mode 100644 build/contract.js.map diff --git a/.gitignore b/.gitignore index 99600f943..c6540a793 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -yarn-error.log \ No newline at end of file +yarn-error.log +build \ No newline at end of file diff --git a/build/contract.js b/build/contract.js deleted file mode 100644 index 7fa6c263e..000000000 --- a/build/contract.js +++ /dev/null @@ -1,619 +0,0 @@ -function call(target, name, descriptor) { - return descriptor; -} -function view(target, name, descriptor) { - return descriptor; -} -function NearBindgen(Class) { - let OriginalClass = Class; - - let NewClass = function () { - let args = OriginalClass.deserializeArgs(); - let ret = new OriginalClass(...args); - ret.serialize(); - return ret; - }; - - NewClass.prototype = OriginalClass.prototype; - - NewClass._get = function () { - let ret = Object.create(NewClass.prototype); - return ret; - }; - - return NewClass; -} - -class NearContract { - deserialize() { - let hasRead = env.jsvm_storage_read('STATE', 0); - - if (hasRead != 0) { - let state = env.read_register(0); - Object.assign(this, JSON.parse(state)); - } else throw new Error('Contract state is empty'); - } - - serialize() { - env.jsvm_storage_write('STATE', JSON.stringify(this), 0); - } - - static deserializeArgs() { - env.jsvm_args(0); - let args = env.read_register(0); - return JSON.parse(args || '[]'); - } - - static serializeReturn(ret) { - return JSON.stringify(ret); - } - -} - -const U64_MAX = 2n ** 64n - 1n; -const EVICTED_REGISTER = U64_MAX - 1n; -function signerAccountId() { - env.signer_account_id(0); - return env.read_register(0); -} -function signerAccountPk() { - env.signer_account_pk(0); - return env.read_register(0); -} -function predecessorAccountId() { - env.predecessor_account_id(0); - return env.read_register(0); -} -function randomSeed() { - env.random_seed(0); - return env.read_register(0); -} -function sha256(value) { - env.sha256(value, 0); - return env.read_register(0); -} -function keccak256(value) { - env.keccak256(value, 0); - return env.read_register(0); -} -function keccak512(value) { - env.keccak512(value, 0); - return env.read_register(0); -} -function ripemd160(value) { - env.ripemd160(value, 0); - return env.read_register(0); -} -function ecrecover(hash, sign, v, malleabilityFlag) { - let ret = env.ecrecover(hash, sign, v, malleabilityFlag, 0); - - if (ret === 0n) { - return null; - } - - return env.read_register(0); -} // TODO: env.promise_result returns need additioonal handling - -function storageRead(key) { - let ret = env.storage_read(key, 0); - - if (ret === 1n) { - return env.read_register(0); - } else { - return null; - } -} -function altBn128G1Multiexp(value) { - env.alt_bn128_g1_multiexp(value, 0); - return env.read_register(0); -} -function altBn128G1Sum(value) { - env.alt_bn128_g1_sum(value, 0); - return env.read_register(0); -} -function jsvmAccountId() { - env.jsvm_account_id(0); - return env.read_register(0); -} -function jsvmJsContractName() { - env.jsvm_js_contract_name(0); - return env.read_register(0); -} -function jsvmMethodName() { - env.jsvm_method_name(0); - return env.read_register(0); -} -function jsvmArgs() { - env.jsvm_args(0); - return env.read_register(0); -} -function jsvmStorageWrite(key, value) { - let exist = env.jsvm_storage_write(key, value, EVICTED_REGISTER); - - if (exist === 1n) { - return true; - } - - return false; -} -function jsvmStorageRead(key) { - let exist = env.jsvm_storage_read(key, 0); - - if (exist === 1n) { - return env.read_register(0); - } - - return null; -} -function jsvmStorageRemove(key) { - let exist = env.jsvm_storage_remove(key, EVICTED_REGISTER); - - if (exist === 1n) { - return true; - } - - return false; -} -function jsvmStorageHasKey(key) { - let exist = env.jsvm_storage_has_key(key); - - if (exist === 1n) { - return true; - } - - return false; -} -function jsvmCall(contractName, method, args) { - env.jsvm_call(contractName, method, JSON.stringify(args), 0); - return JSON.parse(env.read_register(0) || 'null'); -} -function storageGetEvicted() { - return env.read_register(EVICTED_REGISTER); -} - -var api = /*#__PURE__*/Object.freeze({ - __proto__: null, - signerAccountId: signerAccountId, - signerAccountPk: signerAccountPk, - predecessorAccountId: predecessorAccountId, - randomSeed: randomSeed, - sha256: sha256, - keccak256: keccak256, - keccak512: keccak512, - ripemd160: ripemd160, - ecrecover: ecrecover, - storageRead: storageRead, - altBn128G1Multiexp: altBn128G1Multiexp, - altBn128G1Sum: altBn128G1Sum, - jsvmAccountId: jsvmAccountId, - jsvmJsContractName: jsvmJsContractName, - jsvmMethodName: jsvmMethodName, - jsvmArgs: jsvmArgs, - jsvmStorageWrite: jsvmStorageWrite, - jsvmStorageRead: jsvmStorageRead, - jsvmStorageRemove: jsvmStorageRemove, - jsvmStorageHasKey: jsvmStorageHasKey, - jsvmCall: jsvmCall, - storageGetEvicted: storageGetEvicted -}); - -class LookupMap { - constructor(keyPrefix) { - this.keyPrefix = keyPrefix; - } - - containsKey(key) { - let storageKey = this.keyPrefix + key; - return jsvmStorageHasKey(storageKey); - } - - get(key) { - let storageKey = this.keyPrefix + key; - return jsvmStorageRead(storageKey); - } - - remove(key) { - let storageKey = this.keyPrefix + key; - - if (jsvmStorageRemove(storageKey)) { - return storageGetEvicted(); - } - - return null; - } - - set(key, value) { - let storageKey = this.keyPrefix + key; - - if (jsvmStorageWrite(storageKey, value)) { - return storageGetEvicted(); - } - - return null; - } - - extend(kvs) { - for (let kv of kvs) { - this.set(kv[0], kv[1]); - } - } - -} - -function u8ArrayToString(array) { - let ret = ''; - - for (let e of array) { - ret += String.fromCharCode(e); - } - - return ret; -} -function stringToU8Array(string) { - let ret = new Uint8Array(string.length); - - for (let i in string) { - ret[i] = string.charCodeAt(i); - } - - return ret; -} - -const ERR_INDEX_OUT_OF_BOUNDS = "Index out of bounds"; -const ERR_INCONSISTENT_STATE$1 = "The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?"; /// An iterable implementation of vector that stores its content on the trie. -/// Uses the following map: index -> element - -class Vector { - constructor(prefix) { - this.length = 0; - this.prefix = prefix; - } - - len() { - return this.length; - } - - isEmpty() { - return this.length == 0; - } - - indexToKey(index) { - let data = new Uint32Array([index]); - let array = new Uint8Array(data.buffer); - let key = u8ArrayToString(array); - return this.prefix + key; - } - - get(index) { - if (index >= this.length) { - return null; - } - - let storageKey = this.indexToKey(index); - return jsvmStorageRead(storageKey); - } /// Removes an element from the vector and returns it in serialized form. - /// The removed element is replaced by the last element of the vector. - /// Does not preserve ordering, but is `O(1)`. - - - swapRemove(index) { - if (index >= this.length) { - throw new Error(ERR_INDEX_OUT_OF_BOUNDS); - } else if (index + 1 == this.length) { - return this.pop(); - } else { - let key = this.indexToKey(index); - let last = this.pop(); - - if (jsvmStorageWrite(key, last)) { - return storageGetEvicted(); - } else { - throw new Error(ERR_INCONSISTENT_STATE$1); - } - } - } - - push(element) { - let key = this.indexToKey(this.length); - this.length += 1; - jsvmStorageWrite(key, element); - } - - pop() { - if (this.isEmpty()) { - return null; - } else { - let lastIndex = this.length - 1; - let lastKey = this.indexToKey(lastIndex); - this.length -= 1; - - if (jsvmStorageRemove(lastKey)) { - return storageGetEvicted(); - } else { - throw new Error(ERR_INCONSISTENT_STATE$1); - } - } - } - - replace(index, element) { - if (index >= this.length) { - throw new Error(ERR_INDEX_OUT_OF_BOUNDS); - } else { - let key = this.indexToKey(index); - - if (jsvmStorageWrite(key, element)) { - return storageGetEvicted(); - } else { - throw new Error(ERR_INCONSISTENT_STATE$1); - } - } - } - - extend(elements) { - for (let element of elements) { - this.push(element); - } - } - - [Symbol.iterator]() { - return new VectorIterator(this); - } - - clear() { - for (let i = 0; i < this.length; i++) { - let key = this.indexToKey(i); - jsvmStorageRemove(key); - } - - this.length = 0; - } - - toArray() { - let ret = []; - - for (let v of this) { - ret.push(v); - } - - return ret; - } - -} -class VectorIterator { - constructor(vector) { - this.current = 0; - this.vector = vector; - } - - next() { - if (this.current < this.vector.len()) { - let value = this.vector.get(this.current); - this.current += 1; - return { - value, - done: false - }; - } - - return { - value: null, - done: true - }; - } - -} - -class LookupSet { - constructor(keyPrefix) { - this.keyPrefix = keyPrefix; - } - - contains(key) { - let storageKey = this.keyPrefix + key; - return jsvmStorageHasKey(storageKey); - } - - remove(key) { - let storageKey = this.keyPrefix + key; - - if (jsvmStorageRemove(storageKey)) { - return storageGetEvicted(); - } - - return null; - } - - set(key) { - let storageKey = this.keyPrefix + key; - - if (jsvmStorageWrite(storageKey, '')) { - return storageGetEvicted(); - } - - return null; - } - - extend(kvs) { - for (let kv of kvs) { - this.set(kv[0]); - } - } - -} - -const ERR_INCONSISTENT_STATE = "The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?"; -class UnorderedMap { - constructor(prefix) { - this.length = 0; - this.keyIndexPrefix = prefix + 'i'; - let indexKey = prefix + 'k'; - let indexValue = prefix + 'v'; - this.keys = new Vector(indexKey); - this.values = new Vector(indexValue); - } - - len() { - let keysLen = this.keys.len(); - let valuesLen = this.values.len(); - - if (keysLen != valuesLen) { - throw new Error(ERR_INCONSISTENT_STATE); - } - - return keysLen; - } - - isEmpty() { - let keysIsEmpty = this.keys.isEmpty(); - let valuesIsEmpty = this.values.isEmpty(); - - if (keysIsEmpty != valuesIsEmpty) { - throw new Error(ERR_INCONSISTENT_STATE); - } - - return keysIsEmpty; - } - - serializeIndex(index) { - let data = new Uint32Array([index]); - let array = new Uint8Array(data.buffer); - return u8ArrayToString(array); - } - - deserializeIndex(rawIndex) { - let array = stringToU8Array(rawIndex); - let data = new Uint32Array(array.buffer); - return data[0]; - } - - getIndexRaw(key) { - let indexLookup = this.keyIndexPrefix + key; - let indexRaw = jsvmStorageRead(indexLookup); - return indexRaw; - } - - get(key) { - let indexRaw = this.getIndexRaw(key); - - if (indexRaw) { - let index = this.deserializeIndex(indexRaw); - let value = this.values.get(index); - - if (value) { - return value; - } else { - throw new Error(ERR_INCONSISTENT_STATE); - } - } - - return null; - } - - set(key, value) { - let indexLookup = this.keyIndexPrefix + key; - let indexRaw = jsvmStorageRead(indexLookup); - - if (indexRaw) { - let index = this.deserializeIndex(indexRaw); - return this.values.replace(index, value); - } else { - let nextIndex = this.len(); - let nextIndexRaw = this.serializeIndex(nextIndex); - jsvmStorageWrite(indexLookup, nextIndexRaw); - this.keys.push(key); - this.values.push(value); - return null; - } - } - - remove(key) { - let indexLookup = this.keyIndexPrefix + key; - let indexRaw = jsvmStorageRead(indexLookup); - - if (indexRaw) { - if (this.len() == 1) { - // If there is only one element then swap remove simply removes it without - // swapping with the last element. - jsvmStorageRemove(indexLookup); - } else { - // If there is more than one element then swap remove swaps it with the last - // element. - let lastKeyRaw = this.keys.get(this.len() - 1); - - if (!lastKeyRaw) { - throw new Error(ERR_INCONSISTENT_STATE); - } - - jsvmStorageRemove(indexLookup); // If the removed element was the last element from keys, then we don't need to - // reinsert the lookup back. - - if (lastKeyRaw != key) { - let lastLookupKey = this.keyIndexPrefix + lastKeyRaw; - jsvmStorageWrite(lastLookupKey, indexRaw); - } - } - - let index = this.deserializeIndex(indexRaw); - this.keys.swapRemove(index); - return this.values.swapRemove(index); - } - - return null; - } - - clear() { - for (let key of this.keys) { - let indexLookup = this.keyIndexPrefix + key; - jsvmStorageRemove(indexLookup); - } - - this.keys.clear(); - this.values.clear(); - } - - toArray() { - let ret = []; - - for (let v of this) { - ret.push(v); - } - - return ret; - } - - [Symbol.iterator]() { - return new UnorderedMapIterator(this); - } - - extend(kvs) { - for (let [k, v] of kvs) { - this.set(k, v); - } - } - -} - -class UnorderedMapIterator { - constructor(unorderedMap) { - this.keys = new VectorIterator(unorderedMap.keys); - this.values = new VectorIterator(unorderedMap.values); - } - - next() { - let key = this.keys.next(); - let value = this.values.next(); - - if (key.done != value.done) { - throw new Error(ERR_INCONSISTENT_STATE); - } - - return { - value: [key.value, value.value], - done: key.done - }; - } - -} - -export { LookupMap, LookupSet, NearBindgen, NearContract, UnorderedMap, Vector, call, api as near, view }; -//# sourceMappingURL=contract.js.map diff --git a/build/contract.js.map b/build/contract.js.map deleted file mode 100644 index 715f14514..000000000 --- a/build/contract.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"contract.js","sources":["../src/near-bindgen.js","../src/near-contract.js","../src/api.js","../src/collections/lookup-map.js","../src/utils.js","../src/collections/vector.js","../src/collections/lookup-set.js","../src/collections/unordered-map.js"],"sourcesContent":["export function call (target, name, descriptor) {\n return descriptor\n}\n\nexport function view (target, name, descriptor) {\n return descriptor\n}\n\nexport function NearBindgen (Class) {\n let OriginalClass = Class\n let NewClass = function() {\n let args = OriginalClass.deserializeArgs()\n let ret = new OriginalClass(...args)\n ret.serialize()\n return ret\n }\n NewClass.prototype = OriginalClass.prototype\n NewClass._get = function() {\n let ret = Object.create(NewClass.prototype)\n return ret\n }\n\n return NewClass\n}\n","export class NearContract {\n deserialize() {\n let hasRead = env.jsvm_storage_read('STATE', 0)\n if (hasRead != 0) {\n let state = env.read_register(0)\n Object.assign(this, JSON.parse(state))\n } else\n throw new Error('Contract state is empty')\n }\n\n serialize() {\n env.jsvm_storage_write('STATE', JSON.stringify(this), 0)\n }\n\n static deserializeArgs() {\n env.jsvm_args(0)\n let args = env.read_register(0)\n return JSON.parse(args || '[]')\n }\n\n static serializeReturn(ret) {\n return JSON.stringify(ret)\n }\n}\n","const U64_MAX = 2n**64n - 1n\nconst EVICTED_REGISTER = U64_MAX - 1n\n\nexport function signerAccountId() {\n env.signer_account_id(0)\n return env.read_register(0)\n}\n\nexport function signerAccountPk() {\n env.signer_account_pk(0)\n return env.read_register(0)\n}\n\nexport function predecessorAccountId() {\n env.predecessor_account_id(0)\n return env.read_register(0)\n}\n\nexport function randomSeed() {\n env.random_seed(0)\n return env.read_register(0)\n}\n\nexport function sha256(value) {\n env.sha256(value, 0)\n return env.read_register(0)\n}\n\nexport function keccak256(value) {\n env.keccak256(value, 0)\n return env.read_register(0)\n}\n\nexport function keccak512(value) {\n env.keccak512(value, 0)\n return env.read_register(0)\n}\n\nexport function ripemd160(value) {\n env.ripemd160(value, 0)\n return env.read_register(0)\n}\n\nexport function ecrecover(hash, sign, v, malleabilityFlag) {\n let ret = env.ecrecover(hash, sign, v, malleabilityFlag, 0)\n if (ret === 0n) {\n return null\n }\n return env.read_register(0)\n}\n\n// TODO: env.promise_result returns need additioonal handling\n\nexport function storageRead(key) {\n let ret = env.storage_read(key, 0)\n if (ret === 1n) {\n return env.read_register(0)\n } else {\n return null\n }\n}\n\nexport function altBn128G1Multiexp(value) {\n env.alt_bn128_g1_multiexp(value, 0)\n return env.read_register(0)\n}\n\nexport function altBn128G1Sum(value) {\n env.alt_bn128_g1_sum(value, 0)\n return env.read_register(0)\n}\n\nexport function jsvmAccountId() {\n env.jsvm_account_id(0)\n return env.read_register(0)\n}\n\nexport function jsvmJsContractName() {\n env.jsvm_js_contract_name(0)\n return env.read_register(0)\n}\n\nexport function jsvmMethodName() {\n env.jsvm_method_name(0)\n return env.read_register(0)\n}\n\nexport function jsvmArgs() {\n env.jsvm_args(0)\n return env.read_register(0)\n}\n\nexport function jsvmStorageWrite(key, value) {\n let exist = env.jsvm_storage_write(key, value, EVICTED_REGISTER)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmStorageRead(key) {\n let exist = env.jsvm_storage_read(key, 0)\n if (exist === 1n) {\n return env.read_register(0)\n }\n return null\n}\n\nexport function jsvmStorageRemove(key) {\n let exist = env.jsvm_storage_remove(key, EVICTED_REGISTER)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmStorageHasKey(key) {\n let exist = env.jsvm_storage_has_key(key)\n if (exist === 1n) {\n return true\n }\n return false\n}\n\nexport function jsvmCall(contractName, method, args) {\n env.jsvm_call(contractName, method, JSON.stringify(args), 0)\n return JSON.parse(env.read_register(0) || 'null')\n}\n\nexport function storageGetEvicted() {\n return env.read_register(EVICTED_REGISTER)\n}","import * as near from '../api'\n\nexport class LookupMap {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix\n }\n\n containsKey(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageHasKey(storageKey)\n }\n\n get(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageRead(storageKey)\n }\n\n remove(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageRemove(storageKey)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n set(key, value) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageWrite(storageKey, value)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n extend(kvs) {\n for(let kv of kvs) {\n this.set(kv[0], kv[1])\n }\n }\n}","export function u8ArrayToString(array) {\n let ret = ''\n for (let e of array) {\n ret += String.fromCharCode(e)\n }\n return ret\n}\n\nexport function stringToU8Array(string) {\n let ret = new Uint8Array(string.length)\n for (let i in string) {\n ret[i] = string.charCodeAt(i)\n }\n return ret\n}","import * as near from '../api'\nimport {u8ArrayToString} from '../utils'\n\nconst ERR_INDEX_OUT_OF_BOUNDS = \"Index out of bounds\"\nconst ERR_INCONSISTENT_STATE = \"The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?\"\n\n/// An iterable implementation of vector that stores its content on the trie.\n/// Uses the following map: index -> element\nexport class Vector {\n constructor(prefix) {\n this.length = 0\n this.prefix = prefix\n }\n\n len() {\n return this.length\n }\n\n isEmpty() {\n return this.length == 0\n }\n\n indexToKey(index) {\n let data = new Uint32Array([index])\n let array = new Uint8Array(data.buffer)\n let key = u8ArrayToString(array)\n return this.prefix + key\n }\n\n get(index) {\n if (index >= this.length) {\n return null\n }\n let storageKey = this.indexToKey(index)\n return near.jsvmStorageRead(storageKey)\n }\n\n /// Removes an element from the vector and returns it in serialized form.\n /// The removed element is replaced by the last element of the vector.\n /// Does not preserve ordering, but is `O(1)`.\n swapRemove(index) {\n if (index >= this.length) {\n throw new Error(ERR_INDEX_OUT_OF_BOUNDS)\n } else if (index + 1 == this.length) {\n return this.pop()\n } else {\n let key = this.indexToKey(index)\n let last = this.pop()\n if (near.jsvmStorageWrite(key, last)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n push(element) {\n let key = this.indexToKey(this.length)\n this.length += 1\n near.jsvmStorageWrite(key, element)\n }\n\n pop() {\n if (this.isEmpty()) {\n return null\n } else {\n let lastIndex = this.length - 1\n let lastKey = this.indexToKey(lastIndex)\n this.length -= 1\n if (near.jsvmStorageRemove(lastKey)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n replace(index, element) {\n if (index >= this.length) {\n throw new Error(ERR_INDEX_OUT_OF_BOUNDS)\n } else {\n let key = this.indexToKey(index)\n if (near.jsvmStorageWrite(key, element)) {\n return near.storageGetEvicted()\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n }\n\n extend(elements) {\n for (let element of elements) {\n this.push(element)\n }\n }\n\n [Symbol.iterator]() {\n return new VectorIterator(this)\n }\n\n clear() {\n for (let i = 0; i < this.length; i++) {\n let key = this.indexToKey(i)\n near.jsvmStorageRemove(key)\n }\n this.length = 0\n }\n\n toArray() {\n let ret = []\n for (let v of this) {\n ret.push(v)\n }\n return ret\n }\n}\n\nexport class VectorIterator {\n constructor(vector) {\n this.current = 0\n this.vector = vector\n }\n\n next() {\n if (this.current < this.vector.len()) {\n let value = this.vector.get(this.current)\n this.current += 1\n return {value, done: false}\n }\n return {value: null, done: true}\n }\n}","import * as near from '../api'\n\nexport class LookupSet {\n constructor(keyPrefix) {\n this.keyPrefix = keyPrefix\n }\n\n contains(key) {\n let storageKey = this.keyPrefix + key\n return near.jsvmStorageHasKey(storageKey)\n }\n \n remove(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageRemove(storageKey)) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n set(key) {\n let storageKey = this.keyPrefix + key\n if (near.jsvmStorageWrite(storageKey, '')) {\n return near.storageGetEvicted()\n }\n return null\n }\n\n extend(kvs) {\n for(let kv of kvs) {\n this.set(kv[0])\n }\n }\n}","import * as near from '../api'\nimport {u8ArrayToString, stringToU8Array} from '../utils'\nimport { Vector, VectorIterator } from './vector'\n\nconst ERR_INCONSISTENT_STATE = \"The collection is an inconsistent state. Did previous smart contract execution terminate unexpectedly?\"\n\nexport class UnorderedMap {\n constructor(prefix) {\n this.length = 0\n this.keyIndexPrefix = prefix + 'i'\n let indexKey = prefix + 'k'\n let indexValue = prefix + 'v'\n this.keys = new Vector(indexKey)\n this.values = new Vector(indexValue)\n }\n\n len() {\n let keysLen = this.keys.len()\n let valuesLen = this.values.len()\n if (keysLen != valuesLen) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return keysLen\n }\n\n isEmpty() {\n let keysIsEmpty = this.keys.isEmpty()\n let valuesIsEmpty = this.values.isEmpty()\n if (keysIsEmpty != valuesIsEmpty) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return keysIsEmpty\n }\n\n serializeIndex(index) {\n let data = new Uint32Array([index])\n let array = new Uint8Array(data.buffer)\n return u8ArrayToString(array)\n }\n\n deserializeIndex(rawIndex) {\n let array = stringToU8Array(rawIndex)\n let data = new Uint32Array(array.buffer)\n return data[0]\n }\n\n getIndexRaw(key) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n return indexRaw\n }\n\n get(key) {\n let indexRaw = this.getIndexRaw(key)\n if (indexRaw) {\n let index = this.deserializeIndex(indexRaw)\n let value = this.values.get(index)\n if (value) {\n return value\n } else {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n }\n return null\n }\n\n set(key, value) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n if (indexRaw) {\n let index = this.deserializeIndex(indexRaw)\n return this.values.replace(index, value)\n } else {\n let nextIndex = this.len()\n let nextIndexRaw = this.serializeIndex(nextIndex)\n near.jsvmStorageWrite(indexLookup, nextIndexRaw)\n this.keys.push(key)\n this.values.push(value)\n return null\n }\n }\n\n remove(key) {\n let indexLookup = this.keyIndexPrefix + key\n let indexRaw = near.jsvmStorageRead(indexLookup)\n if (indexRaw) {\n if (this.len() == 1) {\n // If there is only one element then swap remove simply removes it without\n // swapping with the last element.\n near.jsvmStorageRemove(indexLookup)\n } else {\n // If there is more than one element then swap remove swaps it with the last\n // element. \n let lastKeyRaw = this.keys.get(this.len() - 1)\n if (!lastKeyRaw) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n near.jsvmStorageRemove(indexLookup)\n // If the removed element was the last element from keys, then we don't need to\n // reinsert the lookup back.\n if (lastKeyRaw != key) {\n let lastLookupKey = this.keyIndexPrefix + lastKeyRaw\n near.jsvmStorageWrite(lastLookupKey, indexRaw)\n }\n }\n let index = this.deserializeIndex(indexRaw)\n this.keys.swapRemove(index)\n return this.values.swapRemove(index)\n }\n return null\n }\n\n clear() {\n for (let key of this.keys) {\n let indexLookup = this.keyIndexPrefix + key\n near.jsvmStorageRemove(indexLookup)\n }\n this.keys.clear()\n this.values.clear()\n }\n\n toArray() {\n let ret = []\n for (let v of this) {\n ret.push(v)\n }\n return ret\n }\n\n [Symbol.iterator]() {\n return new UnorderedMapIterator(this)\n }\n\n extend(kvs) {\n for (let [k, v] of kvs) {\n this.set(k, v)\n }\n }\n}\n\nclass UnorderedMapIterator {\n constructor(unorderedMap) {\n this.keys = new VectorIterator(unorderedMap.keys)\n this.values = new VectorIterator(unorderedMap.values)\n }\n\n next() {\n let key = this.keys.next()\n let value = this.values.next()\n if (key.done != value.done) {\n throw new Error(ERR_INCONSISTENT_STATE)\n }\n return {value: [key.value, value.value], done: key.done}\n }\n}"],"names":["call","target","name","descriptor","view","NearBindgen","Class","OriginalClass","NewClass","args","deserializeArgs","ret","serialize","prototype","_get","Object","create","NearContract","deserialize","hasRead","env","jsvm_storage_read","state","read_register","assign","JSON","parse","Error","jsvm_storage_write","stringify","jsvm_args","serializeReturn","U64_MAX","EVICTED_REGISTER","signerAccountId","signer_account_id","signerAccountPk","signer_account_pk","predecessorAccountId","predecessor_account_id","randomSeed","random_seed","sha256","value","keccak256","keccak512","ripemd160","ecrecover","hash","sign","v","malleabilityFlag","storageRead","key","storage_read","altBn128G1Multiexp","alt_bn128_g1_multiexp","altBn128G1Sum","alt_bn128_g1_sum","jsvmAccountId","jsvm_account_id","jsvmJsContractName","jsvm_js_contract_name","jsvmMethodName","jsvm_method_name","jsvmArgs","jsvmStorageWrite","exist","jsvmStorageRead","jsvmStorageRemove","jsvm_storage_remove","jsvmStorageHasKey","jsvm_storage_has_key","jsvmCall","contractName","method","jsvm_call","storageGetEvicted","LookupMap","constructor","keyPrefix","containsKey","storageKey","near","get","remove","set","extend","kvs","kv","u8ArrayToString","array","e","String","fromCharCode","stringToU8Array","string","Uint8Array","length","i","charCodeAt","ERR_INDEX_OUT_OF_BOUNDS","ERR_INCONSISTENT_STATE","Vector","prefix","len","isEmpty","indexToKey","index","data","Uint32Array","buffer","swapRemove","pop","last","push","element","lastIndex","lastKey","replace","elements","Symbol","iterator","VectorIterator","clear","toArray","vector","current","next","done","LookupSet","contains","UnorderedMap","keyIndexPrefix","indexKey","indexValue","keys","values","keysLen","valuesLen","keysIsEmpty","valuesIsEmpty","serializeIndex","deserializeIndex","rawIndex","getIndexRaw","indexLookup","indexRaw","nextIndex","nextIndexRaw","lastKeyRaw","lastLookupKey","UnorderedMapIterator","k","unorderedMap"],"mappings":"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"} \ No newline at end of file From 9a3026e5ca8b93a6eed386cc42b0a25420dfd682 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 23:08:44 +0300 Subject: [PATCH 3/8] target consts added --- cli/cli.js | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/cli/cli.js b/cli/cli.js index 317d533dd..209af2931 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -34,15 +34,31 @@ yargs(hideBin(process.argv)) .argv async function build(argv) { - // TODO: use target - console.log(`Building ${argv.source} contract...`); + const OS = await executeCommand('uname -s', true); + const ARCH = await executeCommand('uname -m', true); - console.log('Creating build directory...'); - await executeCommand('mkdir -p build'); + const SOURCE_FILE_WITH_PATH = argv.source; + // TODO: parce path + // const TARGET_DIR = getBuildDir(argv.target); + // const TARGET_FILE_NAME = getTargetFileName(argv.target); + const TARGET_DIR = 'build'; + const TARGET_FILE_NAME = 'contract'; - console.log('Executing rollup...'); + const ROLLUP_TARGET = `${TARGET_DIR}${TARGET_FILE_NAME}.js`; + const QJS_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.h`; + const CONTRACT_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.base64`; + + const SAVE_BYTECODE_SCRIPT = './node_modules/near-sdk-js/cli/save_bytecode.js'; + const QJSC = `./node_modules/near-sdk-js/res/${OS}-${ARCH}-qjsc`; + + console.log(`Building ${SOURCE_FILE_WITH_PATH} contract...`); + + console.log(`Creating ${TARGET_DIR} directory...`); + await executeCommand(`mkdir -p ${TARGET_DIR}`); + + console.log(`Creating ${ROLLUP_TARGET} file with Rollup...`); const bundle = await rollup({ - input: argv.source, + input: SOURCE_FILE_WITH_PATH, plugins: [ nodeResolve(), sourcemaps(), @@ -53,20 +69,15 @@ async function build(argv) { await bundle.write({ sourcemap: true, - file: 'build/contract.js', + file: ROLLUP_TARGET, format: 'es' }); - console.log('Creating <>.base64 file with the use of QJSC...'); - const SAVE_BYTECODE = './node_modules/near-sdk-js/cli/save_bytecode.js'; - const os = await executeCommand('uname -s', true); - const arch = await executeCommand('uname -m', true); - const QJSC = `./node_modules/near-sdk-js/res/${os}-${arch}-qjsc`; - const TEMP = 'build/contract.h'; - const TARGET = 'build/contract.base64'; - const CONTRACT_JS_FILE = 'build/contract.js'; - await executeCommand(`${QJSC} -c -m -o ${TEMP} -N code ${CONTRACT_JS_FILE}`); - await executeCommand(`node ${SAVE_BYTECODE} ${TEMP} ${TARGET}`); + console.log(`Creating ${QJS_TARGET} file with QJSC...`); + await executeCommand(`${QJSC} -c -m -o ${QJS_TARGET} -N code ${ROLLUP_TARGET}`); + + console.log(`Saving bytecode to ${CONTRACT_TARGET}`); + await executeCommand(`node ${SAVE_BYTECODE_SCRIPT} ${QJS_TARGET} ${CONTRACT_TARGET}`); } async function executeCommand(command, silent = false) { From ece7ba90f8c0a16c0a8273b14638da6295910243 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 23:24:41 +0300 Subject: [PATCH 4/8] path parsed --- cli/cli.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cli/cli.js b/cli/cli.js index 209af2931..04669a7aa 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -10,6 +10,7 @@ import { babel } from '@rollup/plugin-babel'; import { rollup } from 'rollup'; import { exec as exec_ } from 'child_process'; +import { path } from 'node:path'; import { promisify } from 'util'; const exec = promisify(exec_); @@ -38,11 +39,8 @@ async function build(argv) { const ARCH = await executeCommand('uname -m', true); const SOURCE_FILE_WITH_PATH = argv.source; - // TODO: parce path - // const TARGET_DIR = getBuildDir(argv.target); - // const TARGET_FILE_NAME = getTargetFileName(argv.target); - const TARGET_DIR = 'build'; - const TARGET_FILE_NAME = 'contract'; + const TARGET_DIR = path.dirname(argv.target); + const TARGET_FILE_NAME = path.basename(argv.target); const ROLLUP_TARGET = `${TARGET_DIR}${TARGET_FILE_NAME}.js`; const QJS_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.h`; From 8771cdfe16ac61ff43f3efa794a418c2958a6113 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 23:26:06 +0300 Subject: [PATCH 5/8] import fixed --- cli/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cli.js b/cli/cli.js index 04669a7aa..aa9df4271 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -10,7 +10,7 @@ import { babel } from '@rollup/plugin-babel'; import { rollup } from 'rollup'; import { exec as exec_ } from 'child_process'; -import { path } from 'node:path'; +import path from 'path'; import { promisify } from 'util'; const exec = promisify(exec_); From d8ee8a9aa8e9558c251c060e635444848640bf7f Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 23:29:43 +0300 Subject: [PATCH 6/8] path.basename fixed --- cli/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cli.js b/cli/cli.js index aa9df4271..542864f46 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -40,7 +40,7 @@ async function build(argv) { const SOURCE_FILE_WITH_PATH = argv.source; const TARGET_DIR = path.dirname(argv.target); - const TARGET_FILE_NAME = path.basename(argv.target); + const TARGET_FILE_NAME = path.basename(argv.target, false); const ROLLUP_TARGET = `${TARGET_DIR}${TARGET_FILE_NAME}.js`; const QJS_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.h`; From 661bca9348299c53c729d5590742384cda5c50de Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Mon, 30 May 2022 23:33:08 +0300 Subject: [PATCH 7/8] basename fixed --- cli/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cli.js b/cli/cli.js index 542864f46..285967c78 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -40,7 +40,7 @@ async function build(argv) { const SOURCE_FILE_WITH_PATH = argv.source; const TARGET_DIR = path.dirname(argv.target); - const TARGET_FILE_NAME = path.basename(argv.target, false); + const TARGET_FILE_NAME = path.basename(argv.target, '.base64'); const ROLLUP_TARGET = `${TARGET_DIR}${TARGET_FILE_NAME}.js`; const QJS_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.h`; From 722bdfb67a5f355f3ad68f5d1731d2706856ca97 Mon Sep 17 00:00:00 2001 From: Serhii Volovyk Date: Tue, 31 May 2022 00:00:44 +0300 Subject: [PATCH 8/8] file path bug fixed --- cli/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cli.js b/cli/cli.js index 285967c78..63b1758ef 100755 --- a/cli/cli.js +++ b/cli/cli.js @@ -42,7 +42,7 @@ async function build(argv) { const TARGET_DIR = path.dirname(argv.target); const TARGET_FILE_NAME = path.basename(argv.target, '.base64'); - const ROLLUP_TARGET = `${TARGET_DIR}${TARGET_FILE_NAME}.js`; + const ROLLUP_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.js`; const QJS_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.h`; const CONTRACT_TARGET = `${TARGET_DIR}/${TARGET_FILE_NAME}.base64`;