Skip to content

Commit e114169

Browse files
authored
Merge pull request #81 from btc-vision/contract/repository
Add OPNet Package Registry contract and build config
2 parents 4027baf + 10e6c3d commit e114169

17 files changed

+8654
-4
lines changed

as-pect.asconfig.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"targets": {
3+
"coverage": {
4+
"lib": [
5+
"./node_modules/@btc-vision/as-covers-assembly/index.ts"
6+
],
7+
"transform": [
8+
"@btc-vision/opnet-transform",
9+
"@btc-vision/as-covers-transform",
10+
"@btc-vision/as-pect-transform"
11+
]
12+
},
13+
"noCoverage": {
14+
"transform": [
15+
"@btc-vision/opnet-transform",
16+
"@btc-vision/as-pect-transform"
17+
]
18+
}
19+
},
20+
"options": {
21+
"outFile": "output.wasm",
22+
"textFile": "output.wat",
23+
"debug": true,
24+
"bindings": "raw",
25+
"exportStart": "_start",
26+
"exportMemory": true,
27+
"exportRuntime": true,
28+
"exportTable": true,
29+
"use": [
30+
"RTRACE=1"
31+
]
32+
},
33+
"entries": [
34+
"./node_modules/@btc-vision/as-pect-assembly/assembly/index.ts"
35+
]
36+
}

as-pect.config.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
function __liftString(pointer, memory) {
2+
if (!pointer) return null;
3+
const end = (pointer + new Uint32Array(memory.buffer)[(pointer - 4) >>> 2]) >>> 1,
4+
memoryU16 = new Uint16Array(memory.buffer);
5+
let start = pointer >>> 1,
6+
string = '';
7+
while (end - start > 1024) {
8+
const a = memoryU16.subarray(start, (start += 1024));
9+
string += String.fromCharCode(...a);
10+
}
11+
return string + String.fromCharCode(...memoryU16.subarray(start, end));
12+
}
13+
14+
function log(text, memory) {
15+
text = __liftString(text >>> 0, memory);
16+
console.log(`CONTRACT LOG: ${text}`);
17+
}
18+
19+
export default {
20+
/**
21+
* A set of globs passed to the glob package that qualify typescript files for testing.
22+
*/
23+
entries: ['tests/**/*.spec.ts'],
24+
25+
/**
26+
* A set of globs passed to the glob package that quality files to be added to each test.
27+
*/
28+
include: ['tests/**/*.include.ts'],
29+
30+
/**
31+
* A set of regexp that will disclude source files from testing.
32+
*/
33+
disclude: [/node_modules/],
34+
35+
/**
36+
* Add your required AssemblyScript imports here.
37+
*/
38+
async instantiate(memory, createImports, instantiate, binary) {
39+
let memory2;
40+
const resp = instantiate(
41+
binary,
42+
createImports({
43+
env: {
44+
memory,
45+
'console.log': (data) => {
46+
log(data, memory2);
47+
},
48+
},
49+
}),
50+
);
51+
52+
const { exports } = await resp;
53+
memory2 = exports.memory || memory;
54+
55+
return resp;
56+
},
57+
58+
/** Enable code coverage. */
59+
coverage: ['src/**/*.ts'],
60+
61+
/**
62+
* Specify if the binary wasm file should be written to the file system.
63+
*/
64+
outputBinary: false,
65+
};

asconfig.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@
1919
"nft": {
2020
"outFile": "build/MyNFT.wasm",
2121
"use": ["abort=src/nft/index/abort"]
22+
},
23+
"registry": {
24+
"outFile": "build/PackageRegistry.wasm",
25+
"use": ["abort=src/registry/index/abort"]
26+
},
27+
"btc-resolver": {
28+
"initialMemory": 4,
29+
"outFile": "build/Resolver.wasm",
30+
"use": ["abort=src/btc-resolver/index/abort"]
2231
}
2332
},
2433
"options": {

package.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,20 @@
88
"build:stablecoin": "asc src/stablecoin/index.ts --target stablecoin --measure --uncheckedBehavior never",
99
"build:peggedcoin": "asc src/pegged-token/index.ts --target peggedcoin --measure --uncheckedBehavior never",
1010
"build:oraclecoin": "asc src/multi-oracle-stablecoin/index.ts --target oraclecoin --measure --uncheckedBehavior never",
11-
"build:nft": "asc src/nft/index.ts --target nft --measure --uncheckedBehavior never"
11+
"build:nft": "asc src/nft/index.ts --target nft --measure --uncheckedBehavior never",
12+
"build:registry": "asc src/registry/index.ts --target registry --measure --uncheckedBehavior never",
13+
"build:btc-resolver": "asc src/btc-resolver/index.ts --target btc-resolver --measure --uncheckedBehavior never",
14+
"test": "asp --config as-pect.config.js --verbose --no-logo",
15+
"test:ci": "asp --config as-pect.config.js --summary --no-logo"
1216
},
1317
"author": "BlobMaster41",
1418
"license": "MIT",
1519
"devDependencies": {
20+
"@btc-vision/as-covers-assembly": "^0.4.4",
21+
"@btc-vision/as-covers-transform": "^0.4.4",
22+
"@btc-vision/as-pect-assembly": "^8.2.0",
23+
"@btc-vision/as-pect-cli": "^8.2.0",
24+
"@btc-vision/as-pect-transform": "^8.2.0",
1625
"@types/node": "^25.0.1",
1726
"assemblyscript": "^0.28.9",
1827
"prettier": "^3.7.4"

0 commit comments

Comments
 (0)