update AS

This commit is contained in:
DieMyst 2019-08-12 19:10:29 +03:00
parent 2387b6e7c1
commit c6a592a76d
2 changed files with 13 additions and 34 deletions

View File

@ -72,20 +72,20 @@ export class ByteInvoke {
return resultBytes; return resultBytes;
} }
sendBytes(localPtr: i32, len: i32): i32 { sendBytes(buffer: Uint8Array): i32 {
let addr = this.api.allocate(len); let addr = this.api.allocate(buffer.byteLength);
for (let i = 0; i < len; i++) { for (let i = 0; i < buffer.byteLength; i++) {
let b: u8 = load<u8>(localPtr + i) as u8; let b: u8 = buffer[i];
this.api.store(addr + i, b); this.api.store(addr + i, b);
} }
return addr; return addr;
} }
invoke(ptr: i32, len: i32): Uint8Array { invoke(buffer: Uint8Array): Uint8Array {
let requestPtr = this.sendBytes(ptr, len); let requestPtr = this.sendBytes(buffer);
let resultPtr = this.api.invokeImpl(requestPtr, len); let resultPtr = this.api.invokeImpl(requestPtr, buffer.byteLength);
return this.getBytes(resultPtr); return this.getBytes(resultPtr);
} }
} }
@ -99,11 +99,10 @@ export class StringInvoke {
} }
invoke(request: string): string { invoke(request: string): string {
let utf8ptr = request.toUTF8(); let buffer = String.UTF8.encode(request);
let len = request.length;
let resultBytes = this.byteInvoker.invoke(utf8ptr, len); let resultBytes = this.byteInvoker.invoke(Uint8Array.wrap(buffer));
return String.fromUTF8(resultBytes.buffer.data, resultBytes.length); return String.UTF8.decode(resultBytes.buffer);
} }
} }

View File

@ -1,36 +1,16 @@
{ {
"name": "signature-connector", "name": "signature-connector",
"version": "0.0.1", "version": "0.0.2",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"asbuild:untouched": "asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --sourceMap --validate --debug", "asbuild:untouched": "asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --sourceMap --validate --debug",
"asbuild:optimized": "asc assembly/index.ts -b build/optimized.wasm -t build/optimized.wat --sourceMap --validate --optimize", "asbuild:optimized": "asc assembly/index.ts -b build/optimized.wasm -t build/optimized.wat --sourceMap --validate --optimize",
"asbuild": "npm run asbuild:untouched && npm run asbuild:optimized", "asbuild": "npm run asbuild:untouched && npm run asbuild:optimized"
"asbuild:test": "npm run asbuild:test:signature",
"asbuild:test:signature": "npx asc tests/assembly/signature-test.spec.as.ts -b tests/build/signature-test.wasm -t tests/build/signature-test.wat --validate --sourceMap --importMemory --debug",
"test": "npm run asbuild:test && ava -v --serial",
"test:ci": "npm run asbuild:test && ava --fail-fast --serial"
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/node": "^10.12.3", "assemblyscript": "assemblyscript/assemblyscript"
"assemblyscript": "github:fluencelabs/assemblyscript",
"ts-node": "^7.0.1",
"ava": "^1.4.0",
"typescript": "^3.1.6"
},
"ava": {
"compileEnhancements": true,
"extensions": [
"ts"
],
"require": [
"ts-node/register/transpile-only"
],
"files": [
"tests/**/*.spec.ts"
]
} }
} }