@flarestudio/fcc-workbench 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/contract.d.ts +53 -24
- package/dist/modules/contract.js +37 -22
- package/dist/modules/contract.js.map +1 -1
- package/dist/modules/registry.d.ts +2 -2
- package/dist/modules/registry.js +20 -18
- package/dist/modules/registry.js.map +1 -1
- package/dist/modules/scaffold.js +13 -0
- package/dist/modules/scaffold.js.map +1 -1
- package/dist/templates/index.d.ts +1 -0
- package/dist/templates/index.js +59 -4
- package/dist/templates/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25,6 +25,8 @@ program
|
|
|
25
25
|
message: 'Choose your Agent Brain (Language):',
|
|
26
26
|
choices: [
|
|
27
27
|
{ name: 'TypeScript (Node.js)', value: 'typescript' },
|
|
28
|
+
{ name: 'Python (Flask)', value: 'python' },
|
|
29
|
+
{ name: 'Go (Standard)', value: 'go' }
|
|
28
30
|
]
|
|
29
31
|
});
|
|
30
32
|
await scaffold.createAgent(name, language);
|
|
@@ -66,7 +68,10 @@ program
|
|
|
66
68
|
if (!env.PRIVATE_KEY || !env.INSTRUCTION_SENDER || !env.INITIAL_OWNER) {
|
|
67
69
|
throw new Error('Missing environment vars. Run setup and deploy first.');
|
|
68
70
|
}
|
|
69
|
-
const id = await registry.registerExtension(
|
|
71
|
+
const id = await registry.registerExtension({
|
|
72
|
+
privateKey: env.PRIVATE_KEY,
|
|
73
|
+
instructionSender: env.INSTRUCTION_SENDER
|
|
74
|
+
});
|
|
70
75
|
config.writeEnv({ EXTENSION_ID: id });
|
|
71
76
|
console.log(chalk.green('\n✔ Extension Registered! ID:'), id);
|
|
72
77
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iCAAiC;AAEjC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,59 +3,88 @@ declare const INSTRUCTION_SENDER_ABI: readonly [{
|
|
|
3
3
|
readonly inputs: readonly [];
|
|
4
4
|
readonly stateMutability: "nonpayable";
|
|
5
5
|
}, {
|
|
6
|
-
readonly
|
|
7
|
-
readonly type: "event";
|
|
6
|
+
readonly anonymous: false;
|
|
8
7
|
readonly inputs: readonly [{
|
|
8
|
+
readonly indexed: true;
|
|
9
|
+
readonly internalType: "bytes32";
|
|
9
10
|
readonly name: "instructionId";
|
|
10
11
|
readonly type: "bytes32";
|
|
11
|
-
readonly indexed: true;
|
|
12
12
|
}, {
|
|
13
|
+
readonly indexed: false;
|
|
14
|
+
readonly internalType: "bytes";
|
|
13
15
|
readonly name: "payload";
|
|
14
16
|
readonly type: "bytes";
|
|
15
|
-
readonly indexed: false;
|
|
16
17
|
}];
|
|
18
|
+
readonly name: "InstructionSent";
|
|
19
|
+
readonly type: "event";
|
|
17
20
|
}, {
|
|
18
|
-
readonly
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
|
|
22
|
-
readonly name: "
|
|
21
|
+
readonly inputs: readonly [];
|
|
22
|
+
readonly name: "extensionId";
|
|
23
|
+
readonly outputs: readonly [{
|
|
24
|
+
readonly internalType: "bytes32";
|
|
25
|
+
readonly name: "";
|
|
23
26
|
readonly type: "bytes32";
|
|
24
|
-
}, {
|
|
25
|
-
readonly name: "_payload";
|
|
26
|
-
readonly type: "bytes";
|
|
27
27
|
}];
|
|
28
|
-
readonly
|
|
29
|
-
}, {
|
|
30
|
-
readonly name: "markProcessed";
|
|
28
|
+
readonly stateMutability: "view";
|
|
31
29
|
readonly type: "function";
|
|
32
|
-
|
|
30
|
+
}, {
|
|
33
31
|
readonly inputs: readonly [{
|
|
32
|
+
readonly internalType: "bytes32";
|
|
34
33
|
readonly name: "_id";
|
|
35
34
|
readonly type: "bytes32";
|
|
36
35
|
}];
|
|
36
|
+
readonly name: "markProcessed";
|
|
37
37
|
readonly outputs: readonly [];
|
|
38
|
-
|
|
39
|
-
readonly name: "processedInstructions";
|
|
38
|
+
readonly stateMutability: "nonpayable";
|
|
40
39
|
readonly type: "function";
|
|
40
|
+
}, {
|
|
41
|
+
readonly inputs: readonly [];
|
|
42
|
+
readonly name: "owner";
|
|
43
|
+
readonly outputs: readonly [{
|
|
44
|
+
readonly internalType: "address";
|
|
45
|
+
readonly name: "";
|
|
46
|
+
readonly type: "address";
|
|
47
|
+
}];
|
|
41
48
|
readonly stateMutability: "view";
|
|
49
|
+
readonly type: "function";
|
|
50
|
+
}, {
|
|
42
51
|
readonly inputs: readonly [{
|
|
52
|
+
readonly internalType: "bytes32";
|
|
43
53
|
readonly name: "";
|
|
44
54
|
readonly type: "bytes32";
|
|
45
55
|
}];
|
|
56
|
+
readonly name: "processedInstructions";
|
|
46
57
|
readonly outputs: readonly [{
|
|
58
|
+
readonly internalType: "bool";
|
|
47
59
|
readonly name: "";
|
|
48
60
|
readonly type: "bool";
|
|
49
61
|
}];
|
|
62
|
+
readonly stateMutability: "view";
|
|
63
|
+
readonly type: "function";
|
|
50
64
|
}, {
|
|
51
|
-
readonly
|
|
65
|
+
readonly inputs: readonly [{
|
|
66
|
+
readonly internalType: "bytes32";
|
|
67
|
+
readonly name: "_id";
|
|
68
|
+
readonly type: "bytes32";
|
|
69
|
+
}, {
|
|
70
|
+
readonly internalType: "bytes";
|
|
71
|
+
readonly name: "_payload";
|
|
72
|
+
readonly type: "bytes";
|
|
73
|
+
}];
|
|
74
|
+
readonly name: "sendInstruction";
|
|
75
|
+
readonly outputs: readonly [];
|
|
76
|
+
readonly stateMutability: "nonpayable";
|
|
52
77
|
readonly type: "function";
|
|
53
|
-
|
|
54
|
-
readonly inputs: readonly [
|
|
55
|
-
|
|
56
|
-
readonly name: "";
|
|
57
|
-
readonly type: "
|
|
78
|
+
}, {
|
|
79
|
+
readonly inputs: readonly [{
|
|
80
|
+
readonly internalType: "bytes32";
|
|
81
|
+
readonly name: "_extensionId";
|
|
82
|
+
readonly type: "bytes32";
|
|
58
83
|
}];
|
|
84
|
+
readonly name: "setExtensionId";
|
|
85
|
+
readonly outputs: readonly [];
|
|
86
|
+
readonly stateMutability: "nonpayable";
|
|
87
|
+
readonly type: "function";
|
|
59
88
|
}];
|
|
60
89
|
/**
|
|
61
90
|
* Deploy a new InstructionSender contract to Coston2.
|
package/dist/modules/contract.js
CHANGED
|
@@ -4,7 +4,7 @@ import { flareTestnet } from 'viem/chains';
|
|
|
4
4
|
const RPC = 'https://coston2-api.flare.network/ext/C/rpc';
|
|
5
5
|
// Pre-compiled bytecode for InstructionSender.sol
|
|
6
6
|
// Compiled with solc 0.8.20, optimization enabled
|
|
7
|
-
const INSTRUCTION_SENDER_BYTECODE = '
|
|
7
|
+
const INSTRUCTION_SENDER_BYTECODE = '0x6080604052348015600e575f5ffd5b503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061053d8061005c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c8063526ac4641461006457806362d7076e146100805780637b2a19aa1461009e57806389e6b164146100ba5780638da5cb5b146100ea578063a4ddd26914610108575b5f5ffd5b61007e60048036038101906100799190610277565b610124565b005b61008861012d565b60405161009591906102b1565b60405180910390f35b6100b860048036038101906100b3919061032b565b610132565b005b6100d460048036038101906100cf9190610277565b6101cf565b6040516100e191906103a2565b60405180910390f35b6100f26101ec565b6040516100ff91906103fa565b60405180910390f35b610122600480360381019061011d9190610277565b610211565b005b805f8190555050565b5f5481565b60015f8481526020019081526020015f205f9054906101000a900460ff1615610190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101879061046d565b60405180910390fd5b827f670d1792bea5de10d806f5b569929923a25f6e502533c871244150607bc8b39883836040516101c29291906104e5565b60405180910390a2505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001805f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f5ffd5b5f5ffd5b5f819050919050565b61025681610244565b8114610260575f5ffd5b50565b5f813590506102718161024d565b92915050565b5f6020828403121561028c5761028b61023c565b5b5f61029984828501610263565b91505092915050565b6102ab81610244565b82525050565b5f6020820190506102c45f8301846102a2565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102eb576102ea6102ca565b5b8235905067ffffffffffffffff811115610308576103076102ce565b5b602083019150836001820283011115610324576103236102d2565b5b9250929050565b5f5f5f604084860312156103425761034161023c565b5b5f61034f86828701610263565b935050602084013567ffffffffffffffff8111156103705761036f610240565b5b61037c868287016102d6565b92509250509250925092565b5f8115159050919050565b61039c81610388565b82525050565b5f6020820190506103b55f830184610393565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e4826103bb565b9050919050565b6103f4816103da565b82525050565b5f60208201905061040d5f8301846103eb565b92915050565b5f82825260208201905092915050565b7f496e737472756374696f6e20616c72656164792070726f6365737365640000005f82015250565b5f610457601d83610413565b915061046282610423565b602082019050919050565b5f6020820190508181035f8301526104848161044b565b9050919050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6104c4838561048b565b93506104d183858461049b565b6104da836104a9565b840190509392505050565b5f6020820190508181035f8301526104fe8184866104b9565b9050939250505056fea26469706673582212204349619ed97d36de238068f371140b985ddc1961f1bed3a68475f828efb7bf6a64736f6c63430008230033';
|
|
8
8
|
const INSTRUCTION_SENDER_ABI = [
|
|
9
9
|
{
|
|
10
10
|
type: 'constructor',
|
|
@@ -12,43 +12,58 @@ const INSTRUCTION_SENDER_ABI = [
|
|
|
12
12
|
stateMutability: 'nonpayable',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
|
|
16
|
-
type: 'event',
|
|
15
|
+
anonymous: false,
|
|
17
16
|
inputs: [
|
|
18
|
-
{ name: 'instructionId', type: 'bytes32'
|
|
19
|
-
{ name: 'payload', type: 'bytes'
|
|
17
|
+
{ indexed: true, internalType: 'bytes32', name: 'instructionId', type: 'bytes32' },
|
|
18
|
+
{ indexed: false, internalType: 'bytes', name: 'payload', type: 'bytes' },
|
|
20
19
|
],
|
|
20
|
+
name: 'InstructionSent',
|
|
21
|
+
type: 'event',
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
|
-
|
|
24
|
+
inputs: [],
|
|
25
|
+
name: 'extensionId',
|
|
26
|
+
outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
|
|
27
|
+
stateMutability: 'view',
|
|
24
28
|
type: 'function',
|
|
25
|
-
stateMutability: 'nonpayable',
|
|
26
|
-
inputs: [
|
|
27
|
-
{ name: '_id', type: 'bytes32' },
|
|
28
|
-
{ name: '_payload', type: 'bytes' },
|
|
29
|
-
],
|
|
30
|
-
outputs: [],
|
|
31
29
|
},
|
|
32
30
|
{
|
|
31
|
+
inputs: [{ internalType: 'bytes32', name: '_id', type: 'bytes32' }],
|
|
33
32
|
name: 'markProcessed',
|
|
34
|
-
type: 'function',
|
|
35
|
-
stateMutability: 'nonpayable',
|
|
36
|
-
inputs: [{ name: '_id', type: 'bytes32' }],
|
|
37
33
|
outputs: [],
|
|
34
|
+
stateMutability: 'nonpayable',
|
|
35
|
+
type: 'function',
|
|
38
36
|
},
|
|
39
37
|
{
|
|
40
|
-
|
|
38
|
+
inputs: [],
|
|
39
|
+
name: 'owner',
|
|
40
|
+
outputs: [{ internalType: 'address', name: '', type: 'address' }],
|
|
41
|
+
stateMutability: 'view',
|
|
41
42
|
type: 'function',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
inputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }],
|
|
46
|
+
name: 'processedInstructions',
|
|
47
|
+
outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
|
|
42
48
|
stateMutability: 'view',
|
|
43
|
-
|
|
44
|
-
outputs: [{ name: '', type: 'bool' }],
|
|
49
|
+
type: 'function',
|
|
45
50
|
},
|
|
46
51
|
{
|
|
47
|
-
|
|
52
|
+
inputs: [
|
|
53
|
+
{ internalType: 'bytes32', name: '_id', type: 'bytes32' },
|
|
54
|
+
{ internalType: 'bytes', name: '_payload', type: 'bytes' },
|
|
55
|
+
],
|
|
56
|
+
name: 'sendInstruction',
|
|
57
|
+
outputs: [],
|
|
58
|
+
stateMutability: 'nonpayable',
|
|
59
|
+
type: 'function',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
inputs: [{ internalType: 'bytes32', name: '_extensionId', type: 'bytes32' }],
|
|
63
|
+
name: 'setExtensionId',
|
|
64
|
+
outputs: [],
|
|
65
|
+
stateMutability: 'nonpayable',
|
|
48
66
|
type: 'function',
|
|
49
|
-
stateMutability: 'view',
|
|
50
|
-
inputs: [],
|
|
51
|
-
outputs: [{ name: '', type: 'address' }],
|
|
52
67
|
},
|
|
53
68
|
];
|
|
54
69
|
function makeClients(privateKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/modules/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,GAAG,GAAG,6CAA6C,CAAC;AAE1D,kDAAkD;AAClD,kDAAkD;AAClD,MAAM,2BAA2B,GAC/B,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/modules/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* This is the Flare Foundation's on-chain registry for TEE extensions.
|
|
4
4
|
* Source: https://github.com/flare-foundation/tee-proxy
|
|
5
5
|
*/
|
|
6
|
-
declare const TEE_EXTENSION_REGISTRY = "
|
|
6
|
+
declare const TEE_EXTENSION_REGISTRY = "0x3d478d43426081BD5854be9C7c5c183bfe76C981";
|
|
7
7
|
/**
|
|
8
8
|
* Register a new TEE extension in the TeeExtensionRegistry.
|
|
9
9
|
* Links the extension to the InstructionSender contract.
|
|
10
10
|
* Returns the on-chain EXTENSION_ID (bytes32 hex).
|
|
11
11
|
*/
|
|
12
|
-
export declare function registerExtension(
|
|
12
|
+
export declare function registerExtension(options: any): Promise<string>;
|
|
13
13
|
/**
|
|
14
14
|
* Allow a TEE code version on-chain.
|
|
15
15
|
* Must be called after the Docker stack is running and proxy is healthy.
|
package/dist/modules/registry.js
CHANGED
|
@@ -7,18 +7,19 @@ const RPC = 'https://coston2-api.flare.network/ext/C/rpc';
|
|
|
7
7
|
* This is the Flare Foundation's on-chain registry for TEE extensions.
|
|
8
8
|
* Source: https://github.com/flare-foundation/tee-proxy
|
|
9
9
|
*/
|
|
10
|
-
const TEE_EXTENSION_REGISTRY = '
|
|
10
|
+
const TEE_EXTENSION_REGISTRY = '0x3d478d43426081BD5854be9C7c5c183bfe76C981';
|
|
11
|
+
const TEE_MACHINE_REGISTRY = '0x5918Cd58e5caf755b8584649Aa24077822F87613';
|
|
12
|
+
const TEE_STATE_VERIFIER = '0x1cE508dF0974d3D1b716A5EBd7ee7D14c7f98758';
|
|
11
13
|
const REGISTRY_ABI = [
|
|
12
14
|
{
|
|
13
|
-
name: '
|
|
15
|
+
name: 'register',
|
|
14
16
|
type: 'function',
|
|
15
17
|
stateMutability: 'nonpayable',
|
|
16
18
|
inputs: [
|
|
17
|
-
{ name: '
|
|
18
|
-
{ name: '
|
|
19
|
-
{ name: '_projectManager', type: 'address' },
|
|
19
|
+
{ name: '_teeExtensionStateVerifier', type: 'address' },
|
|
20
|
+
{ name: '_teeExtensionInstructionsSender', type: 'address' },
|
|
20
21
|
],
|
|
21
|
-
outputs: [{ name: '
|
|
22
|
+
outputs: [{ name: '_extensionId', type: 'uint256' }],
|
|
22
23
|
},
|
|
23
24
|
{
|
|
24
25
|
name: 'allowTeeVersion',
|
|
@@ -56,8 +57,8 @@ const REGISTRY_ABI = [
|
|
|
56
57
|
name: 'ExtensionRegistered',
|
|
57
58
|
type: 'event',
|
|
58
59
|
inputs: [
|
|
59
|
-
{ name: 'extensionId', type: '
|
|
60
|
-
{ name: '
|
|
60
|
+
{ name: 'extensionId', type: 'uint256', indexed: true },
|
|
61
|
+
{ name: 'owner', type: 'address', indexed: false },
|
|
61
62
|
],
|
|
62
63
|
},
|
|
63
64
|
];
|
|
@@ -82,17 +83,16 @@ function makeClients(privateKey) {
|
|
|
82
83
|
* Links the extension to the InstructionSender contract.
|
|
83
84
|
* Returns the on-chain EXTENSION_ID (bytes32 hex).
|
|
84
85
|
*/
|
|
85
|
-
export async function registerExtension(
|
|
86
|
-
const { account, walletClient, publicClient } = makeClients(privateKey);
|
|
87
|
-
const registry = (
|
|
86
|
+
export async function registerExtension(options) {
|
|
87
|
+
const { account, walletClient, publicClient } = makeClients(options.privateKey);
|
|
88
|
+
const registry = (options.registry || TEE_EXTENSION_REGISTRY);
|
|
88
89
|
const hash = await walletClient.writeContract({
|
|
89
90
|
address: registry,
|
|
90
91
|
abi: REGISTRY_ABI,
|
|
91
|
-
functionName: '
|
|
92
|
+
functionName: 'register',
|
|
92
93
|
args: [
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
ownerAddress,
|
|
94
|
+
'0x0000000000000000000000000000000000000000', // _stateVerifier
|
|
95
|
+
options.instructionSender,
|
|
96
96
|
],
|
|
97
97
|
account,
|
|
98
98
|
chain: flareTestnet,
|
|
@@ -100,12 +100,14 @@ export async function registerExtension(privateKey, instructionSenderAddress, ow
|
|
|
100
100
|
console.log(`Tx sent: ${hash}`);
|
|
101
101
|
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
102
102
|
// Extract EXTENSION_ID from the ExtensionRegistered event log
|
|
103
|
+
// Topic[0] is the signature, Topic[1] is the indexed extensionId
|
|
103
104
|
for (const log of receipt.logs) {
|
|
104
|
-
if (log.topics[1]) {
|
|
105
|
-
|
|
105
|
+
if (log.topics.length >= 2 && log.topics[1]) {
|
|
106
|
+
console.log(`✅ Extension Registered! ID: ${log.topics[1]}`);
|
|
107
|
+
return log.topics[1];
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
|
-
throw new Error('
|
|
110
|
+
throw new Error('Transaction succeeded but ExtensionRegistered event not found in logs.');
|
|
109
111
|
}
|
|
110
112
|
/**
|
|
111
113
|
* Allow a TEE code version on-chain.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/modules/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAa,MAAM,MAAM,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,GAAG,GAAG,6CAA6C,CAAC;AAE1D;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,4CAA4C,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/modules/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/scaffold.js
CHANGED
|
@@ -23,6 +23,7 @@ export async function createAgent(name, language) {
|
|
|
23
23
|
await fs.ensureDir(path.join(agentPath, 'scripts'));
|
|
24
24
|
// Write Docker stack
|
|
25
25
|
await fs.writeFile(path.join(agentPath, 'docker-compose.yml'), templates.DOCKER_COMPOSE);
|
|
26
|
+
await fs.writeFile(path.join(agentPath, 'extension', 'Dockerfile'), templates.DOCKERFILE);
|
|
26
27
|
await fs.writeFile(path.join(agentPath, '.env.example'), 'PRIVATE_KEY=0x...\nRPC_URL=https://coston2-api.flare.network/ext/C/rpc');
|
|
27
28
|
// Write App Kernel
|
|
28
29
|
const appFile = language === 'typescript' ? 'app.ts' : language === 'python' ? 'app.py' : 'main.go';
|
|
@@ -30,6 +31,18 @@ export async function createAgent(name, language) {
|
|
|
30
31
|
await fs.writeFile(path.join(agentPath, 'extension', appFile), appContent);
|
|
31
32
|
if (language === 'typescript') {
|
|
32
33
|
await fs.writeFile(path.join(agentPath, 'extension', 'package.json'), templates.TS_PACKAGE(name));
|
|
34
|
+
await fs.writeFile(path.join(agentPath, 'extension', 'tsconfig.json'), JSON.stringify({
|
|
35
|
+
compilerOptions: {
|
|
36
|
+
target: "ESNext",
|
|
37
|
+
module: "ESNext",
|
|
38
|
+
moduleResolution: "node",
|
|
39
|
+
outDir: "./dist",
|
|
40
|
+
rootDir: "./",
|
|
41
|
+
strict: true,
|
|
42
|
+
esModuleInterop: true,
|
|
43
|
+
skipLibCheck: true
|
|
44
|
+
}
|
|
45
|
+
}, null, 2));
|
|
33
46
|
}
|
|
34
47
|
// Write Solidity Contract (Level 10+)
|
|
35
48
|
await fs.writeFile(path.join(agentPath, 'contracts', 'InstructionSender.sol'), templates.SOL_CONTRACT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/modules/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAElD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,kBAAkB,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,KAAK,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnD,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAC3C,SAAS,CAAC,cAAc,CACzB,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE9B,wBAAwB;QACxB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAEpD,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,wEAAwE,CAAC,CAAC;QAEnI,mBAAmB;QACnB,MAAM,OAAO,GAAG,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,MAAM,UAAU,GAAG,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9H,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QAE3E,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/modules/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/templates/index.js
CHANGED
|
@@ -2,19 +2,24 @@ export const DOCKER_COMPOSE = [
|
|
|
2
2
|
"version: '3.8'",
|
|
3
3
|
"services:",
|
|
4
4
|
" extension-tee:",
|
|
5
|
-
" build:
|
|
5
|
+
" build:",
|
|
6
6
|
" context: ./extension",
|
|
7
7
|
" networks:",
|
|
8
8
|
" - flare-fcc",
|
|
9
9
|
" environment:",
|
|
10
|
-
" -
|
|
10
|
+
" - MODE=1",
|
|
11
|
+
" - CONFIG_PORT=5500",
|
|
12
|
+
" - SIGN_PORT=8882",
|
|
13
|
+
" - EXTENSION_PORT=8883",
|
|
14
|
+
" ports:",
|
|
15
|
+
" - \"5500:5500\"",
|
|
11
16
|
" depends_on:",
|
|
12
17
|
" - ext-proxy",
|
|
13
18
|
"",
|
|
14
19
|
" ext-proxy:",
|
|
15
20
|
" image: nginx:alpine",
|
|
16
21
|
" ports:",
|
|
17
|
-
" - \"
|
|
22
|
+
" - \"6676:6664\"",
|
|
18
23
|
" networks:",
|
|
19
24
|
" - flare-fcc",
|
|
20
25
|
"",
|
|
@@ -27,6 +32,44 @@ export const DOCKER_COMPOSE = [
|
|
|
27
32
|
" flare-fcc:",
|
|
28
33
|
" driver: bridge"
|
|
29
34
|
].join("\n");
|
|
35
|
+
export const DOCKERFILE = [
|
|
36
|
+
"ARG TEE_NODE_VERSION=main",
|
|
37
|
+
"",
|
|
38
|
+
"FROM golang:1.25.1-alpine AS node-builder",
|
|
39
|
+
"RUN apk add --no-cache git ca-certificates tzdata",
|
|
40
|
+
"ARG TEE_NODE_VERSION",
|
|
41
|
+
"WORKDIR /node",
|
|
42
|
+
"RUN git clone --depth 1 --branch ${TEE_NODE_VERSION} https://github.com/flare-foundation/tee-node.git .",
|
|
43
|
+
"RUN go mod download",
|
|
44
|
+
"RUN CGO_ENABLED=0 GOOS=linux go build -o /node/server cmd/extension/main.go",
|
|
45
|
+
"",
|
|
46
|
+
"FROM node:22-alpine AS ext-builder",
|
|
47
|
+
"WORKDIR /ext",
|
|
48
|
+
"COPY package.json package-lock.json* ./",
|
|
49
|
+
"RUN npm install",
|
|
50
|
+
"COPY . .",
|
|
51
|
+
"RUN npm run build",
|
|
52
|
+
"",
|
|
53
|
+
"FROM alpine:latest",
|
|
54
|
+
"WORKDIR /app",
|
|
55
|
+
"RUN apk add --no-cache nodejs gosu --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community",
|
|
56
|
+
"RUN adduser -DH -u 1000 server && adduser -DH -u 1001 extension",
|
|
57
|
+
"COPY --from=node-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/",
|
|
58
|
+
"COPY --from=node-builder /node/assets/google_confidential_space_root.crt assets/google_confidential_space_root.crt",
|
|
59
|
+
"COPY --from=node-builder /node/server ./",
|
|
60
|
+
"COPY --from=ext-builder /ext/dist* ./extension/dist/",
|
|
61
|
+
"COPY --from=ext-builder /ext/node_modules ./extension/node_modules/",
|
|
62
|
+
"COPY --from=ext-builder /ext/package.json ./extension/",
|
|
63
|
+
"COPY --from=ext-builder /ext/*.js ./extension/",
|
|
64
|
+
"",
|
|
65
|
+
"ENV TZ=UTC",
|
|
66
|
+
"ENV MODE=1",
|
|
67
|
+
"ENV CONFIG_PORT=5500",
|
|
68
|
+
"ENV SIGN_PORT=8882",
|
|
69
|
+
"ENV EXTENSION_PORT=8883",
|
|
70
|
+
"EXPOSE 5500",
|
|
71
|
+
"CMD [\"sh\", \"-c\", \"./server & gosu extension node extension/app.js\"]"
|
|
72
|
+
].join("\n");
|
|
30
73
|
export const TS_APP = [
|
|
31
74
|
"import express from 'express';",
|
|
32
75
|
"import { FlareTEE } from '@flarenetwork/tee-sdk';",
|
|
@@ -55,9 +98,13 @@ export const TS_PACKAGE = (name) => JSON.stringify({
|
|
|
55
98
|
name: `${name}-extension`,
|
|
56
99
|
version: "1.0.0",
|
|
57
100
|
type: "module",
|
|
101
|
+
scripts: {
|
|
102
|
+
"build": "tsc",
|
|
103
|
+
"start": "node dist/app.js"
|
|
104
|
+
},
|
|
58
105
|
dependencies: {
|
|
59
106
|
"express": "^4.18.2",
|
|
60
|
-
"
|
|
107
|
+
"viem": "^2.48.4"
|
|
61
108
|
}
|
|
62
109
|
}, null, 2);
|
|
63
110
|
export const PY_APP = [
|
|
@@ -107,6 +154,7 @@ export const SOL_CONTRACT = [
|
|
|
107
154
|
"contract InstructionSender {",
|
|
108
155
|
" event InstructionSent(bytes32 indexed instructionId, bytes payload);",
|
|
109
156
|
"",
|
|
157
|
+
" uint256 public extensionId;",
|
|
110
158
|
" mapping(bytes32 => bool) public processedInstructions;",
|
|
111
159
|
" address public owner;",
|
|
112
160
|
"",
|
|
@@ -114,6 +162,13 @@ export const SOL_CONTRACT = [
|
|
|
114
162
|
" owner = msg.sender;",
|
|
115
163
|
" }",
|
|
116
164
|
"",
|
|
165
|
+
" /**",
|
|
166
|
+
" * @dev Called by the TeeExtensionRegistry during registerExtension.",
|
|
167
|
+
" */",
|
|
168
|
+
" function setExtensionId(uint256 _extensionId) external {",
|
|
169
|
+
" extensionId = _extensionId;",
|
|
170
|
+
" }",
|
|
171
|
+
"",
|
|
117
172
|
" function sendInstruction(bytes32 _id, bytes calldata _payload) external {",
|
|
118
173
|
" require(!processedInstructions[_id], \"Instruction already processed\");",
|
|
119
174
|
" emit InstructionSent(_id, _payload);",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB,WAAW;IACX,kBAAkB;IAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED