@cartesi/cli 2.0.0-alpha.12 → 2.0.0-alpha.14

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.
Files changed (93) hide show
  1. package/dist/base.d.ts +8 -3
  2. package/dist/base.d.ts.map +1 -1
  3. package/dist/base.js +7 -4
  4. package/dist/commands/address-book.d.ts +1 -0
  5. package/dist/commands/address-book.d.ts.map +1 -1
  6. package/dist/commands/address-book.js +6 -3
  7. package/dist/commands/create.d.ts +1 -1
  8. package/dist/commands/create.d.ts.map +1 -1
  9. package/dist/commands/create.js +1 -0
  10. package/dist/commands/deploy.d.ts +1 -16
  11. package/dist/commands/deploy.d.ts.map +1 -1
  12. package/dist/commands/deploy.js +8 -267
  13. package/dist/commands/deposit/erc20.d.ts +11 -0
  14. package/dist/commands/deposit/erc20.d.ts.map +1 -0
  15. package/dist/commands/deposit/erc20.js +126 -0
  16. package/dist/commands/deposit/erc721.d.ts +12 -0
  17. package/dist/commands/deposit/erc721.d.ts.map +1 -0
  18. package/dist/commands/deposit/erc721.js +144 -0
  19. package/dist/commands/deposit/ether.d.ts +10 -0
  20. package/dist/commands/deposit/ether.d.ts.map +1 -0
  21. package/dist/commands/deposit/ether.js +66 -0
  22. package/dist/commands/deposit.d.ts +9 -0
  23. package/dist/commands/deposit.d.ts.map +1 -0
  24. package/dist/commands/deposit.js +36 -0
  25. package/dist/commands/logs.d.ts +1 -1
  26. package/dist/commands/logs.d.ts.map +1 -1
  27. package/dist/commands/logs.js +6 -4
  28. package/dist/commands/run.d.ts +13 -1
  29. package/dist/commands/run.d.ts.map +1 -1
  30. package/dist/commands/run.js +196 -4
  31. package/dist/commands/send.d.ts +6 -17
  32. package/dist/commands/send.d.ts.map +1 -1
  33. package/dist/commands/send.js +122 -59
  34. package/dist/commands/status.d.ts +1 -1
  35. package/dist/commands/status.d.ts.map +1 -1
  36. package/dist/commands/status.js +10 -7
  37. package/dist/compose/default.env +4 -3
  38. package/dist/compose/docker-compose-anvil.yaml +25 -3
  39. package/dist/compose/docker-compose-bundler.yaml +36 -2
  40. package/dist/compose/docker-compose-explorer.yaml +41 -6
  41. package/dist/compose/docker-compose-graphql.yaml +17 -2
  42. package/dist/compose/docker-compose-node.yaml +25 -6
  43. package/dist/compose/docker-compose-passkey-server.yaml +24 -2
  44. package/dist/compose/docker-compose-paymaster.yaml +24 -2
  45. package/dist/compose/docker-compose-proxy.yaml +1 -1
  46. package/dist/config.d.ts +2 -2
  47. package/dist/config.d.ts.map +1 -1
  48. package/dist/config.js +2 -2
  49. package/dist/contracts.d.ts +22 -22
  50. package/dist/contracts.js +11 -11
  51. package/dist/exec/cartesi-machine.js +1 -1
  52. package/dist/exec/rollups.d.ts +94 -5
  53. package/dist/exec/rollups.d.ts.map +1 -1
  54. package/dist/exec/rollups.js +356 -12
  55. package/dist/index.js +5 -7
  56. package/dist/prompts.d.ts +12 -1
  57. package/dist/prompts.d.ts.map +1 -1
  58. package/dist/prompts.js +58 -23
  59. package/dist/wallet.d.ts +15948 -21
  60. package/dist/wallet.d.ts.map +1 -1
  61. package/dist/wallet.js +33 -221
  62. package/package.json +25 -24
  63. package/dist/commands/send/eip712.d.ts +0 -34
  64. package/dist/commands/send/eip712.d.ts.map +0 -1
  65. package/dist/commands/send/eip712.js +0 -81
  66. package/dist/commands/send/erc20.d.ts +0 -12
  67. package/dist/commands/send/erc20.d.ts.map +0 -1
  68. package/dist/commands/send/erc20.js +0 -75
  69. package/dist/commands/send/erc721.d.ts +0 -12
  70. package/dist/commands/send/erc721.d.ts.map +0 -1
  71. package/dist/commands/send/erc721.js +0 -78
  72. package/dist/commands/send/ether.d.ts +0 -12
  73. package/dist/commands/send/ether.d.ts.map +0 -1
  74. package/dist/commands/send/ether.js +0 -36
  75. package/dist/commands/send/generic.d.ts +0 -15
  76. package/dist/commands/send/generic.d.ts.map +0 -1
  77. package/dist/commands/send/generic.js +0 -122
  78. package/dist/commands/start.d.ts +0 -14
  79. package/dist/commands/start.d.ts.map +0 -1
  80. package/dist/commands/start.js +0 -220
  81. package/dist/commands/stop.d.ts +0 -5
  82. package/dist/commands/stop.d.ts.map +0 -1
  83. package/dist/commands/stop.js +0 -27
  84. package/dist/compose/docker-compose-espresso.yaml +0 -59
  85. package/dist/compose/proxy/anvil.yaml +0 -17
  86. package/dist/compose/proxy/bundler.yaml +0 -29
  87. package/dist/compose/proxy/espresso.yaml +0 -17
  88. package/dist/compose/proxy/explorer-api.yaml +0 -17
  89. package/dist/compose/proxy/explorer.yaml +0 -10
  90. package/dist/compose/proxy/graphql.yaml +0 -10
  91. package/dist/compose/proxy/passkey-server.yaml +0 -17
  92. package/dist/compose/proxy/paymaster.yaml +0 -17
  93. package/dist/compose/proxy/rollups-node.yaml +0 -17
@@ -1,67 +1,130 @@
1
- import { Command } from "@commander-js/extra-typings";
2
- import input from "@inquirer/input";
3
- import select from "@inquirer/select";
4
- import { isAddress, } from "viem";
5
- import { parseAddress } from "../base.js";
6
- import { getApplicationAddress } from "../exec/rollups.js";
7
- import createClients, { supportedChains } from "../wallet.js";
8
- import { createErc20Command } from "./send/erc20.js";
9
- import { createErc721Command } from "./send/erc721.js";
10
- import { createEtherCommand } from "./send/ether.js";
11
- import { createGenericCommand } from "./send/generic.js";
12
- export const connect = (options) => {
13
- const { chainId, rpcUrl, mnemonic, mnemonicIndex } = options;
14
- // create viem clients
15
- return createClients({
16
- chain: supportedChains({ includeDevnet: true }).find((c) => c.id === chainId),
17
- rpcUrl,
18
- mnemonicPassphrase: mnemonic,
19
- mnemonicIndex,
20
- });
21
- };
22
- export const getInputApplicationAddress = async (dapp) => {
23
- if (dapp && isAddress(dapp)) {
24
- // honor the flag
25
- return dapp;
1
+ import { Command, Option } from "@commander-js/extra-typings";
2
+ import ora from "ora";
3
+ import { encodeAbiParameters, getAddress, isAddress, isHex, parseAbiParameters, stringToHex, } from "viem";
4
+ import { getProjectName } from "../base.js";
5
+ import { inputBoxAbi, inputBoxAddress } from "../contracts.js";
6
+ import { bytesInput, getInputApplicationAddress } from "../prompts.js";
7
+ import { connect } from "../wallet.js";
8
+ const getInput = async (input, options) => {
9
+ const { encoding } = options;
10
+ if (input) {
11
+ if (encoding === "hex") {
12
+ // validate if is a hex value
13
+ if (!isHex(input)) {
14
+ throw new Error("input encoded as hex must start with 0x");
15
+ }
16
+ return input;
17
+ }
18
+ if (encoding === "string") {
19
+ // encode UTF-8 string as hex
20
+ return stringToHex(input);
21
+ }
22
+ if (encoding === "abi") {
23
+ const abiParams = options.abiParams;
24
+ if (!abiParams) {
25
+ throw new Error("Undefined input-abi-params");
26
+ }
27
+ const abiParameters = parseAbiParameters(abiParams);
28
+ // TODO: decode values
29
+ const values = input.split(",").map((v, index) => {
30
+ if (index >= abiParameters.length) {
31
+ throw new Error(`Too many values, expected ${abiParameters.length} values based on --input-abi-params '${abiParams}', parsing value at index ${index} from input '${input}'`);
32
+ }
33
+ const param = abiParameters[index];
34
+ switch (param.type) {
35
+ case "string":
36
+ return v;
37
+ case "bool":
38
+ if (v === "true")
39
+ return true;
40
+ if (v === "false")
41
+ return false;
42
+ throw new Error(`Invalid boolean value: ${v}`);
43
+ case "uint":
44
+ case "uint8":
45
+ case "uint16":
46
+ case "uint32":
47
+ case "uint64":
48
+ case "uint128":
49
+ case "uint256":
50
+ try {
51
+ return BigInt(v);
52
+ }
53
+ catch (e) {
54
+ throw new Error(`Invalid uint value: ${v}`);
55
+ }
56
+ case "bytes":
57
+ if (isHex(v)) {
58
+ return v;
59
+ }
60
+ throw new Error(`Invalid bytes value: ${v}`);
61
+ case "address":
62
+ if (isAddress(v)) {
63
+ return getAddress(v);
64
+ }
65
+ throw new Error(`Invalid address value: ${v}`);
66
+ default:
67
+ throw new Error(`Unsupported type ${param.type}`);
68
+ }
69
+ });
70
+ if (values.length !== abiParameters.length) {
71
+ throw new Error(`Not enough values, expected ${abiParameters.length} values based on --input-abi-params '${abiParams}', parsed ${values.length} values from input '${input}'`);
72
+ }
73
+ return encodeAbiParameters(abiParameters, values);
74
+ }
75
+ if (isHex(input)) {
76
+ // encoding not specified, if starts with 0x, assume hex
77
+ return input;
78
+ }
79
+ // encode UTF-8 string as hex
80
+ return stringToHex(input);
26
81
  }
27
- // get the running container dapp address
28
- const nodeAddress = await getApplicationAddress();
29
- // query for the address
30
- const applicationAddress = await input({
31
- message: "Application address",
32
- validate: (value) => isAddress(value) || "Invalid address",
33
- default: nodeAddress,
34
- });
35
- return applicationAddress;
82
+ return undefined;
36
83
  };
37
84
  export const createSendCommand = () => {
38
85
  const command = new Command("send")
39
- .description("Sends different kinds of input to the application in interactive mode.")
40
- .option("--chain-id <id>", "Chain ID", Number.parseInt, 13370)
41
- .option("--rpc-url <url>", "RPC URL")
42
- .option("--mnemonic <phrase>", "Mnemonic passphrase")
43
- .option("--mnemonic-index <index>", "Mnemonic account index", Number.parseInt, 0)
44
- .option("--dapp <address>", "Application address", parseAddress, undefined)
45
- .action(async (options, program) => {
46
- // Get the registered subcommands from the program
47
- const commands = program.commands;
48
- // Create choices for the select prompt based on registered commands
49
- const choices = commands.map((cmd) => ({
50
- name: cmd.name(),
51
- value: cmd,
52
- description: cmd.description(),
53
- }));
54
- // Present the list of subcommands using @inquirer/select
55
- const subcommand = await select({
56
- message: "Select the type of input to send",
57
- choices,
86
+ .description("Send input to the application")
87
+ .argument("[input]", "input payload")
88
+ .option("--from <address>", "input sender address")
89
+ .option("--application <address>", "application address")
90
+ .addOption(new Option("--encoding <encoding>", "input encoding").choices([
91
+ "hex",
92
+ "string",
93
+ "abi",
94
+ ]))
95
+ .option("--abi-params <abi-params>", "input abi params")
96
+ .option("--project-name <string>", "name of project (used by docker compose and cartesi-rollups-node)")
97
+ .option("--rpc-url <url>", "RPC URL of the Cartesi Devnet")
98
+ .action(async (input, options, program) => {
99
+ const { application, from } = options;
100
+ const projectName = getProjectName(options);
101
+ // connect to anvil
102
+ const testClient = await connect(options);
103
+ // the input sender, impersonated
104
+ const account = from && isAddress(from)
105
+ ? getAddress(from)
106
+ : (await testClient.getAddresses())[0];
107
+ // get dapp address from local node, or ask
108
+ const applicationAddress = await getInputApplicationAddress({
109
+ application,
110
+ projectName,
111
+ });
112
+ const payload = (await getInput(input, options)) ||
113
+ (await bytesInput({
114
+ encoding: options.encoding,
115
+ message: "Input",
116
+ }));
117
+ const { request } = await testClient.simulateContract({
118
+ address: inputBoxAddress,
119
+ abi: inputBoxAbi,
120
+ account,
121
+ args: [applicationAddress, payload],
122
+ functionName: "addInput",
58
123
  });
59
- // Execute the selected subcommand
60
- subcommand.parseAsync(program.args);
124
+ const hash = await testClient.writeContract(request);
125
+ const progress = ora("Sending input...").start();
126
+ await testClient.waitForTransactionReceipt({ hash });
127
+ progress.succeed(`Input sent: ${hash}`);
61
128
  });
62
- command.addCommand(createGenericCommand());
63
- command.addCommand(createErc20Command());
64
- command.addCommand(createErc721Command());
65
- command.addCommand(createEtherCommand());
66
129
  return command;
67
130
  };
@@ -1,6 +1,6 @@
1
1
  import { Command } from "@commander-js/extra-typings";
2
2
  export declare const createStatusCommand: () => Command<[], {
3
- environmentName: string;
3
+ projectName?: string | undefined;
4
4
  json?: true | undefined;
5
5
  }, {}>;
6
6
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAOtD,eAAO,MAAM,mBAAmB;;;MAkD/B,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAMtD,eAAO,MAAM,mBAAmB;;;MAuD/B,CAAC"}
@@ -1,21 +1,24 @@
1
1
  import { Command } from "@commander-js/extra-typings";
2
2
  import chalk from "chalk";
3
3
  import Table from "cli-table3";
4
- import { getServiceState } from "../base.js";
5
- import { DEFAULT_COMPOSE_ENVIRONMENT_NAME } from "../config.js";
4
+ import { getProjectName, getServiceState } from "../base.js";
6
5
  import { getDeployments } from "../exec/rollups.js";
7
6
  export const createStatusCommand = () => {
8
7
  return new Command("status")
9
8
  .description("Shows the status of a local environment.")
10
9
  .configureHelp({ showGlobalOptions: true })
11
- .option("--environment-name <string>", "name of environment", DEFAULT_COMPOSE_ENVIRONMENT_NAME)
10
+ .option("--project-name <string>", "name of project (used by docker compose and cartesi-rollups-node)")
12
11
  .option("--json", "output in JSON format")
13
- .action(async ({ environmentName, json }, command) => {
12
+ .action(async (options) => {
13
+ const { json } = options;
14
+ const projectName = getProjectName(options);
14
15
  const status = await getServiceState({
15
- environmentName,
16
+ projectName,
16
17
  service: "rollups-node",
17
18
  });
18
- const deployments = await getDeployments({ environmentName });
19
+ const deployments = await getDeployments({
20
+ projectName,
21
+ });
19
22
  if (json) {
20
23
  process.stdout.write(JSON.stringify({
21
24
  status,
@@ -23,7 +26,7 @@ export const createStatusCommand = () => {
23
26
  }));
24
27
  }
25
28
  else {
26
- console.log(`${chalk.cyan(environmentName)} is ${status === "running" ? chalk.green("running") : chalk.red("not running")}`);
29
+ console.log(`${chalk.cyan(projectName)} is ${status === "running" ? chalk.green("running") : chalk.red("not running")}`);
27
30
  if (status === "running") {
28
31
  if (deployments.length === 0) {
29
32
  console.log(chalk.red("no applications deployed"));
@@ -24,9 +24,10 @@ CARTESI_BLOCKCHAIN_WS_ENDPOINT="${CARTESI_BLOCKCHAIN_WS_ENDPOINT:-ws://anvil:854
24
24
  CARTESI_BLOCKCHAIN_DEFAULT_BLOCK="${CARTESI_BLOCKCHAIN_DEFAULT_BLOCK:-latest}"
25
25
 
26
26
  # contracts
27
- CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0x2210ad1d9B0bD2D470c2bfA4814ab6253BC421A0}"
28
- CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS="${CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS:-0x451f57Ca716046D114Ab9ff23269a2F9F4a1bdaF}"
29
- CARTESI_CONTRACTS_SELF_HOSTED_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_SELF_HOSTED_APPLICATION_FACTORY_ADDRESS:-0x4a409e1CaB9229711C4e1f68625DdbC75809e721}"
27
+ CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_APPLICATION_FACTORY_ADDRESS:-0xc7006f70875BaDe89032001262A846D3Ee160051}"
28
+ CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS="${CARTESI_CONTRACTS_AUTHORITY_FACTORY_ADDRESS:-0xC7003566dD09Aa0fC0Ce201aC2769aFAe3BF0051}"
29
+ CARTESI_CONTRACTS_INPUT_BOX_ADDRESS="${CARTESI_CONTRACTS_INPUT_BOX_ADDRESS:-0xc70074BDD26d8cF983Ca6A5b89b8db52D5850051}"
30
+ CARTESI_CONTRACTS_SELF_HOSTED_APPLICATION_FACTORY_ADDRESS="${CARTESI_CONTRACTS_SELF_HOSTED_APPLICATION_FACTORY_ADDRESS:-0xc700285Ab555eeB5201BC00CFD4b2CC8DED90051}"
30
31
 
31
32
  # auth
32
33
  CARTESI_AUTH_MNEMONIC="${CARTESI_AUTH_MNEMONIC:-test test test test test test test test test test test junk}"
@@ -1,7 +1,28 @@
1
+ configs:
2
+ anvil_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ anvil:
7
+ rule: "PathPrefix(`/anvil`)"
8
+ middlewares:
9
+ - "remove-anvil-prefix"
10
+ service: anvil
11
+ middlewares:
12
+ remove-anvil-prefix:
13
+ replacePathRegex:
14
+ regex: "^/anvil(.*)"
15
+ replacement: "$1"
16
+ services:
17
+ anvil:
18
+ loadBalancer:
19
+ servers:
20
+ - url: "http://anvil:8545"
21
+
1
22
  services:
2
23
  anvil:
3
24
  image: ${CARTESI_SDK_IMAGE}
4
- command: ["devnet", "--block-time", "${BLOCK_TIME:-5}"]
25
+ command: ["devnet", "--block-time", "${CARTESI_BLOCK_TIME:-2}"]
5
26
  healthcheck:
6
27
  test: ["CMD", "eth_isready"]
7
28
  start_period: 10s
@@ -13,5 +34,6 @@ services:
13
34
  ANVIL_IP_ADDR: 0.0.0.0
14
35
 
15
36
  proxy:
16
- volumes:
17
- - ./proxy/anvil.yaml:/etc/traefik/conf.d/anvil.yaml
37
+ configs:
38
+ - source: anvil_proxy
39
+ target: /etc/traefik/conf.d/anvil.yaml
@@ -1,3 +1,36 @@
1
+ configs:
2
+ bundler_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ bundler:
7
+ rule: "PathPrefix(`/bundler`)"
8
+ middlewares:
9
+ - "cors"
10
+ - "remove-bundler-prefix"
11
+ service: bundler
12
+ middlewares:
13
+ cors:
14
+ headers:
15
+ accessControlAllowMethods:
16
+ - GET
17
+ - OPTIONS
18
+ - PUT
19
+ accessControlAllowHeaders: "*"
20
+ accessControlAllowOriginList:
21
+ - "*"
22
+ accessControlMaxAge: 100
23
+ addVaryHeader: true
24
+ remove-bundler-prefix:
25
+ replacePathRegex:
26
+ regex: "^/bundler/(.*)"
27
+ replacement: "/$1"
28
+ services:
29
+ bundler:
30
+ loadBalancer:
31
+ servers:
32
+ - url: "http://bundler:4337"
33
+
1
34
  services:
2
35
  bundler:
3
36
  image: ${CARTESI_SDK_IMAGE}
@@ -33,5 +66,6 @@ services:
33
66
  retries: 5
34
67
 
35
68
  proxy:
36
- volumes:
37
- - ./proxy/bundler.yaml:/etc/traefik/conf.d/bundler.yaml
69
+ configs:
70
+ - source: bundler_proxy
71
+ target: /etc/traefik/conf.d/bundler.yaml
@@ -4,9 +4,42 @@ x-explorer_db_env: &explorer_db_env
4
4
  DB_HOST: database
5
5
  DB_PASS: password
6
6
 
7
+ configs:
8
+ explorer_api_proxy:
9
+ content: |
10
+ http:
11
+ routers:
12
+ explorer-api:
13
+ rule: "PathPrefix(`/explorer-api`)"
14
+ middlewares:
15
+ - "remove-explorer-api-prefix"
16
+ service: explorer-api
17
+ middlewares:
18
+ remove-explorer-api-prefix:
19
+ replacePathRegex:
20
+ regex: "^/explorer-api/(.*)"
21
+ replacement: "/$1"
22
+ services:
23
+ explorer-api:
24
+ loadBalancer:
25
+ servers:
26
+ - url: "http://explorer_api:4350"
27
+ explorer_proxy:
28
+ content: |
29
+ http:
30
+ routers:
31
+ explorer:
32
+ rule: "PathPrefix(`/explorer`)"
33
+ service: explorer
34
+ services:
35
+ explorer:
36
+ loadBalancer:
37
+ servers:
38
+ - url: "http://explorer:3000"
39
+
7
40
  services:
8
41
  explorer_api:
9
- image: cartesi/rollups-explorer-api:1.0.0-alpha.3
42
+ image: cartesi/rollups-explorer-api:1.0.0-alpha.4
10
43
  environment:
11
44
  <<: *explorer_db_env
12
45
  GQL_PORT: 4350
@@ -31,7 +64,7 @@ services:
31
64
  condition: service_healthy
32
65
 
33
66
  squid_processor:
34
- image: cartesi/rollups-explorer-api:1.0.0-alpha.3
67
+ image: cartesi/rollups-explorer-api:1.0.0-alpha.4
35
68
  environment:
36
69
  <<: *explorer_db_env
37
70
  CHAIN_IDS: ${CARTESI_BLOCKCHAIN_ID:-13370}
@@ -44,7 +77,7 @@ services:
44
77
  condition: service_healthy
45
78
 
46
79
  explorer:
47
- image: cartesi/rollups-explorer:1.0.0-alpha.2
80
+ image: cartesi/rollups-explorer:1.0.0-alpha.3
48
81
  expose:
49
82
  - 3000
50
83
  depends_on:
@@ -52,6 +85,8 @@ services:
52
85
  condition: service_healthy
53
86
 
54
87
  proxy:
55
- volumes:
56
- - ./proxy/explorer.yaml:/etc/traefik/conf.d/explorer.yaml
57
- - ./proxy/explorer-api.yaml:/etc/traefik/conf.d/explorer-api.yaml
88
+ configs:
89
+ - source: explorer_proxy
90
+ target: /etc/traefik/conf.d/explorer.yaml
91
+ - source: explorer_api_proxy
92
+ target: /etc/traefik/conf.d/explorer-api.yaml
@@ -1,3 +1,17 @@
1
+ configs:
2
+ graphql_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ graphql:
7
+ rule: "PathPrefix(`/graphql`)"
8
+ service: graphql
9
+ services:
10
+ graphql:
11
+ loadBalancer:
12
+ servers:
13
+ - url: "http://graphql:8080"
14
+
1
15
  services:
2
16
  graphql:
3
17
  image: ${CARTESI_SDK_IMAGE}
@@ -19,5 +33,6 @@ services:
19
33
  condition: service_healthy
20
34
 
21
35
  proxy:
22
- volumes:
23
- - ./proxy/graphql.yaml:/etc/traefik/conf.d/graphql.yaml
36
+ configs:
37
+ - source: graphql_proxy
38
+ target: /etc/traefik/conf.d/graphql.yaml
@@ -1,3 +1,24 @@
1
+ configs:
2
+ rollups_node_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ inspect_server:
7
+ rule: "PathPrefix(`/inspect`)"
8
+ service: inspect_server
9
+ rpc_server:
10
+ rule: "PathPrefix(`/rpc`)"
11
+ service: rpc_server
12
+ services:
13
+ inspect_server:
14
+ loadBalancer:
15
+ servers:
16
+ - url: "http://rollups-node:10012"
17
+ rpc_server:
18
+ loadBalancer:
19
+ servers:
20
+ - url: "http://rollups-node:10011"
21
+
1
22
  services:
2
23
  rollups-node:
3
24
  image: cartesi/rollups-runtime:${CARTESI_SDK_VERSION}
@@ -21,11 +42,9 @@ services:
21
42
  env_file:
22
43
  - ${CARTESI_BIN_PATH}/compose/default.env
23
44
  volumes:
24
- - snapshots:/var/lib/cartesi-rollups-node/snapshots
45
+ - ./.cartesi:/var/lib/cartesi-rollups-node/snapshots:ro
25
46
 
26
47
  proxy:
27
- volumes:
28
- - ./proxy/rollups-node.yaml:/etc/traefik/conf.d/rollups-node.yaml
29
-
30
- volumes:
31
- snapshots:
48
+ configs:
49
+ - source: rollups_node_proxy
50
+ target: /etc/traefik/conf.d/rollups-node.yaml
@@ -1,3 +1,24 @@
1
+ configs:
2
+ passkey_server_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ passkey-server:
7
+ rule: "PathPrefix(`/passkey`)"
8
+ middlewares:
9
+ - "remove-passkey-server-prefix"
10
+ service: passkey-server
11
+ middlewares:
12
+ remove-passkey-server-prefix:
13
+ replacePathRegex:
14
+ regex: "^/passkey/(.*)"
15
+ replacement: "/$1"
16
+ services:
17
+ passkey-server:
18
+ loadBalancer:
19
+ servers:
20
+ - url: "http://passkey-server:3000"
21
+
1
22
  services:
2
23
  passkey-server:
3
24
  image: ${CARTESI_SDK_IMAGE}
@@ -11,5 +32,6 @@ services:
11
32
  retries: 5
12
33
 
13
34
  proxy:
14
- volumes:
15
- - ./proxy/passkey-server.yaml:/etc/traefik/conf.d/passkey-server.yaml
35
+ configs:
36
+ - source: passkey_server_proxy
37
+ target: /etc/traefik/conf.d/passkey-server.yaml
@@ -1,3 +1,24 @@
1
+ configs:
2
+ paymaster_proxy:
3
+ content: |
4
+ http:
5
+ routers:
6
+ paymaster:
7
+ rule: "PathPrefix(`/paymaster`)"
8
+ middlewares:
9
+ - "remove-paymaster-prefix"
10
+ service: paymaster
11
+ middlewares:
12
+ remove-paymaster-prefix:
13
+ replacePathRegex:
14
+ regex: "^/paymaster/(.*)"
15
+ replacement: "/$1"
16
+ services:
17
+ paymaster:
18
+ loadBalancer:
19
+ servers:
20
+ - url: "http://paymaster:3000"
21
+
1
22
  services:
2
23
  paymaster:
3
24
  image: ${CARTESI_SDK_IMAGE}
@@ -14,5 +35,6 @@ services:
14
35
  retries: 5
15
36
 
16
37
  proxy:
17
- volumes:
18
- - ./proxy/paymaster.yaml:/etc/traefik/conf.d/paymaster.yaml
38
+ configs:
39
+ - source: paymaster_proxy
40
+ target: /etc/traefik/conf.d/paymaster.yaml
@@ -21,4 +21,4 @@ services:
21
21
  "--log.level=INFO",
22
22
  ]
23
23
  ports:
24
- - ${CARTESI_LISTEN_PORT:-8080}:8088
24
+ - ${CARTESI_LISTEN_PORT:-6751}:8088
package/dist/config.d.ts CHANGED
@@ -29,9 +29,9 @@ export declare class RequiredFieldError extends Error {
29
29
  export declare class InvalidStringArrayError extends Error {
30
30
  constructor();
31
31
  }
32
- export declare const DEFAULT_COMPOSE_ENVIRONMENT_NAME = "cartesi-rollups";
33
- export declare const DEFAULT_SDK_VERSION = "0.12.0-alpha.15";
32
+ export declare const DEFAULT_SDK_VERSION = "0.12.0-alpha.20";
34
33
  export declare const DEFAULT_SDK_IMAGE = "cartesi/sdk";
34
+ export declare const PREFERRED_PORT = 6751;
35
35
  type DriveFormat = "ext2" | "sqfs";
36
36
  export type ImageInfo = {
37
37
  cmd: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -58,15 +58,15 @@ export class InvalidStringArrayError extends Error {
58
58
  this.name = "InvalidStringArrayError";
59
59
  }
60
60
  }
61
- export const DEFAULT_COMPOSE_ENVIRONMENT_NAME = "cartesi-rollups";
62
61
  /**
63
62
  * Configuration for drives of a Cartesi Machine. A drive may already exist or be built by a builder
64
63
  */
65
64
  const DEFAULT_FORMAT = "ext2";
66
65
  const DEFAULT_RAM = "128Mi";
67
66
  const DEFAULT_RAM_IMAGE = "/usr/share/cartesi-machine/images/linux.bin";
68
- export const DEFAULT_SDK_VERSION = "0.12.0-alpha.15";
67
+ export const DEFAULT_SDK_VERSION = "0.12.0-alpha.20";
69
68
  export const DEFAULT_SDK_IMAGE = "cartesi/sdk";
69
+ export const PREFERRED_PORT = 6751;
70
70
  export const defaultRootDriveConfig = () => ({
71
71
  builder: "docker",
72
72
  context: ".",