as-soroban-sdk
Version:
AssemblyScript SDK for writing contracts for Soroban.
239 lines (198 loc) • 7.16 kB
text/typescript
import * as val from "../../lib/value";
import * as context from "../../lib/context";
import { Vec } from "../../lib/vec";
import { Map } from "../../lib/map";
import { Bytes } from "../../lib/bytes";
export function testU32(): val.BoolVal {
const U32VAL = 12;
let au32 = val.fromU32(U32VAL);
if(!val.isU32(au32) || val.toU32(au32) != U32VAL) {
return val.fromFalse();
}
return val.fromTrue();
}
export function testI32(): val.BoolVal {
const I32VAL = -112;
let ai32 = val.fromI32(I32VAL);
if(!val.isI32(ai32) || val.toI32(ai32) != I32VAL) {
return val.fromFalse();
}
return val.fromTrue();
}
export function testStatic(): val.BoolVal {
let aVoid = val.fromVoid();
if(!val.isVoid(aVoid)) {
return val.fromFalse();
}
let aTrue = val.fromTrue();
if(!val.isTrue(aTrue) || !val.toBool(aTrue)) {
return val.fromFalse();
}
let aFalse = val.fromFalse();
if(!val.isFalse(aFalse) || val.toBool(aFalse)) {
return val.fromFalse();
}
let aBool = val.fromBool(true);
if(!val.isTrue(aBool) || !val.toBool(aBool)) {
return val.fromFalse();
}
let alk = val.fromLedgerKeyContractCode();
if(!val.isLedgerKeyContractCode(alk)) {
return val.fromFalse();
}
return val.fromTrue();
}
export function testSmall(): val.BoolVal {
const U64SVAL = 12;
let au64S = val.fromU64Small(U64SVAL);
if(!val.isU64Small(au64S) || val.toU64Small(au64S) != U64SVAL) {
return val.fromFalse();
}
const I64SVAL = -12;
let ai64S = val.fromI64Small(I64SVAL);
if(!val.isI64Small(ai64S) || val.toI64Small(ai64S) != I64SVAL) {
return val.fromFalse();
}
const TS = 10919092912
let xt = val.fromTimepointSmall(TS);
if(!val.isTimepointSmall(xt) || val.toTimepointSmall(xt) != TS) {
return val.fromFalse();
}
const DUR = 109
let dt = val.fromDurationSmall(DUR);
if(!val.isDurationSmall(dt) || val.toDurationSmall(dt) != DUR) {
return val.fromFalse();
}
const U128S = 10919092912
let au128S = val.fromU128Small(U128S);
if(!val.isU128Small(au128S) || val.toU128Small(au128S) != U128S) {
return val.fromFalse();
}
const I128S = -10919092912
let ai128S = val.fromI128Small(I128S);
if(!val.isI128Small(ai128S) || val.toI128Small(ai128S) != I128S) {
return val.fromFalse();
}
const U256S = 10919092912
let au256S = val.fromU256Small(U256S);
if(!val.isU256Small(au256S) || val.toU256Small(au256S) != U256S) {
return val.fromFalse();
}
const I256S = -10919092912
let ai256S = val.fromI256Small(I256S);
if(!val.isI256Small(ai256S) || val.toI256Small(ai256S) != I256S) {
return val.fromFalse();
}
return val.fromTrue();
}
export function testSSym(): val.SmallSymbolVal {
let symbol = val.fromSmallSymbolStr("test_123")
if(!val.isSmallSymbol(symbol)) {
return val.fromFalse();
}
return symbol;
}
export function testObject(): val.BoolVal {
let vec = new Vec();
let vecObject = vec.getHostObject();
if(!val.isObject(vecObject) || !val.isVecObject(vecObject)) {
return val.fromFalse();
}
let map = new Map();
let mapObject = map.getHostObject();
if(!val.isObject(mapObject) || !val.isMapObject(mapObject)) {
return val.fromFalse();
}
const U64VAL = 12;
let u64Object = val.fromU64(U64VAL);
if(!val.isObject(u64Object) || !val.isU64(u64Object) || val.toU64(u64Object) != U64VAL) {
return val.fromFalse();
}
const I64VAL = -112;
let i64Object = val.fromI64(I64VAL);
if(!val.isObject(i64Object) || !val.isI64(i64Object) || val.toI64(i64Object) != I64VAL) {
return val.fromFalse();
}
const UA128VAL = 39;
var au128 = val.fromU128Small(UA128VAL);
if(!val.isU128Val(au128) || !val.isU128Small(au128) || val.toU128Small(au128) != UA128VAL) {
return val.fromFalse();
}
const UHI128VAL = 18446744073709551611;
const ULO128VAL = 18446744073709551610;
let u128Object = val.fromU128Pieces(UHI128VAL, ULO128VAL);
if(!val.isObject(u128Object) || !val.isU128Val(u128Object) || !val.isU128Object(u128Object) || val.toU128Low64(u128Object) != ULO128VAL || val.toU128High64(u128Object) != UHI128VAL) {
return val.fromFalse();
}
const IA128VAL = -39;
let ai128 = val.fromI128Small(IA128VAL);
if(!val.isI128Val(ai128) || !val.isI128Small(ai128) || val.toI128Small(ai128) != IA128VAL) {
return val.fromFalse();
}
const IHI128VAL = 18446744073709551611;
const ILO128VAL = -1844674407370955161;
let i128Object = val.fromI128Pieces(IHI128VAL, ILO128VAL);
if(!val.isObject(i128Object) || !val.isI128Val(i128Object) || !val.isI128Object(i128Object) || val.toI128Low64(i128Object) != ILO128VAL || val.toI128High64(i128Object) != IHI128VAL) {
return val.fromFalse();
}
const UA256VAL = 39;
var au256 = val.fromU256Small(UA256VAL);
if(!val.isU256Val(au256) || !val.isU256Small(au256) || val.toU256Small(au256) != UA256VAL) {
return val.fromFalse();
}
const U256HIHIVAL = 10;
const U256HILOVAL = 11;
const U256LOHIVAL = 12;
const U256LOLOVAL = 13;
let u256Object = val.fromU256Pieces(U256HIHIVAL, U256HILOVAL, U256LOHIVAL, U256LOLOVAL);
if(!val.isObject(u256Object) || !val.isU256Val(u256Object) || !val.isU256Object(u256Object)) {
return val.fromFalse();
}
if(val.toU256HiHi(u256Object) != U256HIHIVAL || val.toU256HiLo(u256Object) != U256HILOVAL) {
return val.fromFalse();
}
if(val.toU256LoHi(u256Object) != U256LOHIVAL || val.toU256LoLo(u256Object) != U256LOLOVAL) {
return val.fromFalse();
}
const IA256VAL = -39;
var iu256 = val.fromI256Small(IA256VAL);
if(!val.isI256Val(iu256) || !val.isI256Small(iu256) || val.toI256Small(iu256) != IA256VAL) {
return val.fromFalse();
}
const I256HIHIVAL = -10;
const I256HILOVAL = 11;
const I256LOHIVAL = 12;
const I256LOLOVAL = 13;
let i256Object = val.fromI256Pieces(I256HIHIVAL, I256HILOVAL, I256LOHIVAL, I256LOLOVAL);
if(!val.isObject(i256Object) || !val.isI256Val(i256Object) || !val.isI256Object(i256Object)) {
return val.fromFalse();
}
if(val.toI256HiHi(i256Object) != I256HIHIVAL || val.toI256HiLo(i256Object) != I256HILOVAL) {
return val.fromFalse();
}
if(val.toI256LoHi(i256Object) != I256LOHIVAL || val.toI256LoLo(i256Object) != I256LOLOVAL) {
return val.fromFalse();
}
let bytes = Bytes.fromString("test");
let bytesObject = bytes.getHostObject();
if(!val.isObject(bytesObject) || !val.isBytesObject(bytesObject)) {
return val.fromFalse();
}
let currAddress = context.getCurrentContractAddress();
if(!val.isAddressObject(currAddress)) {
return val.fromFalse();
}
return val.fromTrue();
}
export function testErrors(): val.BoolVal {
const errCode = 33;
let contractErr = val.contractError(errCode);
if(!val.isError(contractErr) || val.getErrorType(contractErr) != val.errorTypeContract || val.getErrorCode(contractErr) != errCode) {
return val.fromFalse();
}
let contractErr2 = val.fromError(val.errorTypeContract, errCode);
if (val.getErrorType(contractErr2) != val.getErrorType(contractErr) || val.getErrorCode(contractErr2) != val.getErrorCode(contractErr)) {
return val.fromFalse();
}
return val.fromTrue();
}