Skip to content
This repository was archived by the owner on Sep 13, 2021. It is now read-only.
Prev Previous commit
Next Next commit
New ext_set_storage in Assemblyscript examples
  • Loading branch information
Stefie committed Mar 31, 2020
commit c4d9f5061561ec2fafa2655cf8aebd92f779c73d
3 changes: 2 additions & 1 deletion contracts/assemblyscript/erc20/assembly/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@

export declare function ext_balance(): void;
export declare function ext_caller(): void;
export declare function ext_clear_storage(key_ptr: i32): void;
export declare function ext_get_storage(key_ptr: i32): i32;
export declare function ext_println(str_ptr: i32, str_len: i32): void;
export declare function ext_scratch_read(dest_ptr: i32, offset: i32, len: i32): void;
export declare function ext_scratch_size(): i32;
export declare function ext_scratch_write(src_ptr: i32, len: i32): void;
export declare function ext_set_rent_allowance(value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_non_null: i32, value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_ptr: i32, value_len: i32): void;
export declare function ext_value_transferred(): void;
3 changes: 1 addition & 2 deletions contracts/assemblyscript/erc20/assembly/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,8 @@ export function setStorage(key: Uint8Array, value: Uint8Array | null): void {
if(key.length === 32) {
const pointer = value ? value!.dataStart : 0;
const length = value ? value.length : 0;
const valueNonNull = i32(value !== null);

ext_set_storage(key.dataStart, valueNonNull, pointer, length);
ext_set_storage(key.dataStart, pointer, length);
}
}

Expand Down
3 changes: 2 additions & 1 deletion contracts/assemblyscript/flipper/assembly/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
// If these functions are not used by our AssemblyScript module, they will not be included
// in the compiled wat ans wasm files.

export declare function ext_clear_storage(key_ptr: i32): void;
export declare function ext_get_storage(key_ptr: i32): i32;
export declare function ext_scratch_read(dest_ptr: i32, offset: i32, len: i32): void;
export declare function ext_scratch_size(): i32;
export declare function ext_scratch_write(src_ptr: i32, len: i32): void;
export declare function ext_set_rent_allowance(value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_non_null: i32, value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_ptr: i32, value_len: i32): void;
8 changes: 6 additions & 2 deletions contracts/assemblyscript/flipper/assembly/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import { u128 } from "as-bignum";
import {
ext_clear_storage,
ext_get_storage,
ext_scratch_read,
ext_scratch_size,
Expand All @@ -26,12 +27,15 @@ export function toBytes<T>(num: T, le: boolean = true): Uint8Array {
assert(false);
}

export function clearStorage(key: Uint8Array): void {
ext_clear_storage(key.dataStart);
}

export function setStorage(key: Uint8Array, value: Uint8Array | null): void {
const pointer = value ? value!.dataStart : 0;
const length = value ? value.length : 0;
const valueNonNull = i32(value !== null);

ext_set_storage(key.dataStart, valueNonNull, pointer, length);
ext_set_storage(key.dataStart, pointer, length);
}

// check for length 32 bytes
Expand Down
3 changes: 2 additions & 1 deletion contracts/assemblyscript/incrementer/assembly/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
// If these functions are not used by our AssemblyScript module, they will not be included
// in the compiled wat ans wasm files.

export declare function ext_clear_storage(key_ptr: i32): void;
export declare function ext_get_storage(key_ptr: i32): i32;
export declare function ext_scratch_read(dest_ptr: i32, offset: i32, len: i32): void;
export declare function ext_scratch_size(): i32;
export declare function ext_scratch_write(src_ptr: i32, len: i32): void;
export declare function ext_set_rent_allowance(value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_non_null: i32, value_ptr: i32, value_len: i32): void;
export declare function ext_set_storage(key_ptr: i32, value_ptr: i32, value_len: i32): void;
2 changes: 1 addition & 1 deletion contracts/assemblyscript/incrementer/assembly/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export function setStorage(key: Uint8Array, value: Uint8Array | null): void {
const length = value ? value.length : 0;
const valueNonNull = i32(value !== null);

ext_set_storage(key.dataStart, valueNonNull, pointer, length);
ext_set_storage(key.dataStart, pointer, length);
}

// check for length 32 bytes
Expand Down