Parcourir la source

Update substrate-contracts-node to v0.25.0 (#1300)

Cyrill Leutwiler il y a 2 ans
Parent
commit
f85e43ba64

+ 1 - 1
.github/workflows/test.yml

@@ -304,7 +304,7 @@ jobs:
       # We can't run substrate as a github actions service, since it requires
       # command line arguments. See https://github.com/actions/runner/pull/1152
     - name: Start substrate
-      run: echo id=$(docker run -d -p 9944:9944 paritytech/contracts-ci-linux@sha256:52b9324054778e6de0ddf210b821014daa8c8ac0468644fcc4141040f0c8d1df substrate-contracts-node --dev --ws-external) >> $GITHUB_OUTPUT
+      run: echo id=$(docker run -d -p 9944:9944 paritytech/contracts-ci-linux@sha256:dbfd21eb3b023a8cd00be74308a77b624fcc798001889247642b18a8f414e90f substrate-contracts-node --dev --ws-external) >> $GITHUB_OUTPUT
       id: substrate
     - uses: actions/setup-node@v3
       with:

+ 2 - 2
integration/substrate/builtins2.spec.ts

@@ -35,7 +35,7 @@ describe('Deploy builtins2 contract and test', () => {
         let { output: gas_left } = await query(conn, alice, contract, "burnGas", [0], undefined, convertWeight(gasLimit).v2Weight);
         let gas = BigInt(gas_left!.toString());
         expect(gasLimit.toJSON().refTime).toBeGreaterThan(gas);
-        let previous_diff = BigInt(gasLimit.toJSON().refTime) - gas;
+        let previous_diff = gasLimit.refTime.toBigInt() - gas;
 
         // Gas metering is based on execution time:
         // Expect each call to burn between 10000..1000000 more gas than the previous iteration.
@@ -44,7 +44,7 @@ describe('Deploy builtins2 contract and test', () => {
             let gas = BigInt(gas_left!.toString());
             expect(gasLimit.toJSON().refTime).toBeGreaterThan(gas);
 
-            let diff = BigInt(gasLimit.toJSON().refTime) - gas;
+            let diff = gasLimit.refTime.toBigInt() - gas;
             expect(diff).toBeGreaterThan(previous_diff);
             expect(diff - previous_diff).toBeLessThan(1e6);
             expect(diff - previous_diff).toBeGreaterThan(1e4);

+ 1 - 1
integration/substrate/index.ts

@@ -32,7 +32,7 @@ export function deploy(api: ApiPromise, pair: KeyringPair, file: PathLike, value
 
   const code = new CodePromise(api, contractJson, null);
 
-  const gasLimit = api.registry.createType('WeightV2', convertWeight(200000n * 1000000n).v2Weight);
+  const gasLimit = api.registry.createType('WeightV2', { refTime: 100000n * 1000000n, proofSize: 100000n });
   const tx = code.tx.new({ gasLimit, value }, ...params);
 
   return new Promise(async (resolve, reject) => {

+ 1 - 7
integration/substrate/ink/caller/Cargo.toml

@@ -5,18 +5,13 @@ authors = ["Cyrill Leutwiler <cyrill@parity.io>"]
 edition = "2021"
 
 [dependencies]
-ink = { version = "4.2", default-features = false }
+ink = { version = "4.2.0", default-features = false }
 
 scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["derive"] }
 scale-info = { version = "2.6", default-features = false, features = ["derive"], optional = true }
 
 [lib]
-name = "caller"
 path = "lib.rs"
-crate-type = [
-	# Used for normal contract Wasm blobs.
-	"cdylib",
-]
 
 [features]
 default = ["std"]
@@ -25,6 +20,5 @@ std = [
     "scale/std",
     "scale-info/std",
 ]
-ink-as-dependency = []
 
 [workspace]

+ 9 - 9
integration/substrate/package.json

@@ -6,7 +6,7 @@
   "scripts": {
     "test": "tsc; ts-mocha -t 20000 *.spec.ts",
     "build": "./build.sh",
-    "build-ink": "docker run --rm -v $(pwd)/ink/caller:/opt/contract paritytech/contracts-ci-linux@sha256:52b9324054778e6de0ddf210b821014daa8c8ac0468644fcc4141040f0c8d1df cargo contract build --manifest-path /opt/contract/Cargo.toml"
+    "build-ink": "docker run --rm -v $(pwd)/ink/caller:/opt/contract paritytech/contracts-ci-linux@sha256:dbfd21eb3b023a8cd00be74308a77b624fcc798001889247642b18a8f414e90f sh -c 'cargo install --force --locked cargo-contract --version 2.2.1 && cargo contract build --release --manifest-path /opt/contract/Cargo.toml'"
   },
   "contributors": [
     {
@@ -21,19 +21,19 @@
   "license": "Apache-2.0",
   "devDependencies": {
     "@types/mocha": "^9.1.0",
-    "@types/node": "^14.14.10",
-    "expect": "^26.6.2",
+    "@types/node": "^20.1",
+    "expect": "^29.5",
     "jest": "^29.4.1",
-    "mocha": "^9.1.0",
+    "mocha": "^10.2",
     "ts-jest": "^29.0.5",
     "ts-mocha": "^10.0.0",
     "typescript": "^4.7"
   },
   "dependencies": {
-    "@polkadot/api": "^9.9",
-    "@polkadot/api-contract": "^9.9",
-    "@polkadot/keyring": "^10.1",
-    "@polkadot/types": "^9.9",
-    "@polkadot/util-crypto": "^10.1"
+    "@polkadot/api": "^10.6",
+    "@polkadot/api-contract": "^10.6",
+    "@polkadot/keyring": "^12.1",
+    "@polkadot/types": "^10.6",
+    "@polkadot/util-crypto": "^12.1"
   }
 }

+ 12 - 12
integration/substrate/primitives.spec.ts

@@ -69,36 +69,36 @@ describe('Deploy primitives contract and test', () => {
 
         // // now for 256 bit operations
         res = await query(conn, alice, contract, "opI256", [0, 1000, 4100]);
-        expect(res.output?.toJSON()).toEqual(5100);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(5100n);
         res = await query(conn, alice, contract, "opI256", [1, 1000, 4100]);
-        expect(res.output?.toJSON()).toEqual(-3100);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(-3100n);
         res = await query(conn, alice, contract, "opI256", [2, 1000, 4100]);
-        expect(res.output?.toJSON()).toEqual(4100000);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(4100000n);
         res = await query(conn, alice, contract, "opI256", [3, 1000, 10]);
-        expect(res.output?.toJSON()).toEqual(100);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(100n);
         res = await query(conn, alice, contract, "opI256", [4, 1000, 99]);
-        expect(res.output?.toJSON()).toEqual(10);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(10n);
         res = await query(conn, alice, contract, "opI256", [6, - 10000000000000, 8]);
-        expect(res.output?.toJSON()).toEqual(-2560000000000000);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(-2560000000000000n);
         res = await query(conn, alice, contract, "opI256", [7, - 10000000000000, 8]);
-        expect(res.output?.toJSON()).toEqual(-39062500000);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(-39062500000n);
 
         res = await query(conn, alice, contract, "opU256", [0, 1000, 4100]);
-        expect(res.output?.toJSON()).toEqual(5100);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(5100n);
         res = await query(conn, alice, contract, "opU256", [1, 1000, 4100]);
         expect(res.output?.toString()).toEqual('115792089237316195423570985008687907853269984665640564039457584007913129636836'); // (2^64)-18446744073709548516 = 3100
         res = await query(conn, alice, contract, "opU256", [2, 123456789, 123456789]);
         expect(res.output?.toString()).toEqual('15241578750190521');
         res = await query(conn, alice, contract, "opU256", [3, 123456789, 100]);
-        expect(res.output?.toJSON()).toEqual(1234567);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(1234567n);
         res = await query(conn, alice, contract, "opU256", [4, 123456789, 100]);
-        expect(res.output?.toJSON()).toEqual(89);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(89n);
         res = await query(conn, alice, contract, "opU256", [5, 123456789, 9]);
         expect(res.output?.toString()).toEqual('6662462759719942007440037531362779472290810125440036903063319585255179509');
         res = await query(conn, alice, contract, "opI256", [6, 10000000000000, 8]);
-        expect(res.output?.toJSON()).toEqual(2560000000000000);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(2560000000000000n);
         res = await query(conn, alice, contract, "opI256", [7, 10000000000000, 8]);
-        expect(res.output?.toJSON()).toEqual(39062500000);
+        expect(BigInt(res.output?.toString() ?? "")).toEqual(39062500000n);
 
         // TEST bytesN
         res = await query(conn, alice, contract, "returnU86");